1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_H_ 7 8#include "content/public/browser/web_ui_message_handler.h" 9 10// The base class handler for the inline login WebUI. 11class InlineLoginHandler : public content::WebUIMessageHandler { 12 public: 13 InlineLoginHandler(); 14 virtual ~InlineLoginHandler(); 15 16 // content::WebUIMessageHandler overrides: 17 virtual void RegisterMessages() OVERRIDE; 18 19 protected: 20 // Enum for gaia auth mode, must match AuthMode defined in 21 // chrome/browser/resources/gaia_auth_host/gaia_auth_host.js. 22 enum AuthMode { 23 kDefaultAuthMode = 0, 24 kOfflineAuthMode = 1, 25 kDesktopAuthMode = 2 26 }; 27 28 private: 29 // JS callback to initialize the gaia auth extension. It calls 30 // |SetExtraInitParams| to set extra init params. 31 void HandleInitializeMessage(const base::ListValue* args); 32 // JS callback to complete login. It calls |CompleteLogin| to do the real 33 // work. 34 void HandleCompleteLoginMessage(const base::ListValue* args); 35 36 // JS callback to switch the UI from a constrainted dialog to a full tab. 37 void HandleSwitchToFullTabMessage(const base::ListValue* args); 38 39 virtual void SetExtraInitParams(base::DictionaryValue& params) {} 40 virtual void CompleteLogin(const base::ListValue* args) = 0; 41 42 DISALLOW_COPY_AND_ASSIGN(InlineLoginHandler); 43}; 44 45#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_H_ 46