Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / signin / inline_login_handler_impl.h
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_IMPL_H_
6 #define CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_IMPL_H_
7
8 #include <string>
9
10 #include "base/memory/scoped_ptr.h"
11 #include "base/memory/weak_ptr.h"
12 #include "chrome/browser/ui/sync/one_click_signin_sync_starter.h"
13 #include "chrome/browser/ui/webui/signin/inline_login_handler.h"
14 #include "content/public/browser/web_contents_delegate.h"
15
16 class GaiaAuthFetcher;
17
18 // Implementation for the inline login WebUI handler on desktop Chrome. Once
19 // CrOS migrates to the same webview approach as desktop Chrome, much of the
20 // code in this class should move to its base class |InlineLoginHandler|.
21 class InlineLoginHandlerImpl : public InlineLoginHandler,
22                                public content::WebContentsDelegate,
23                                public content::WebContentsObserver {
24  public:
25   InlineLoginHandlerImpl();
26   virtual ~InlineLoginHandlerImpl();
27
28   using InlineLoginHandler::web_ui;
29
30   base::WeakPtr<InlineLoginHandlerImpl> GetWeakPtr() {
31     return weak_factory_.GetWeakPtr();
32   }
33
34   Browser* GetDesktopBrowser();
35   void SyncStarterCallback(OneClickSigninSyncStarter::SyncSetupResult result);
36   // Closes the current tab and shows the account management view of the avatar
37   // bubble if |show_account_management| is true.
38   void CloseTab(bool show_account_management);
39   void HandleLoginError(const std::string& error_msg);
40
41  private:
42   // InlineLoginHandler overrides:
43   virtual void SetExtraInitParams(base::DictionaryValue& params) OVERRIDE;
44   virtual void CompleteLogin(const base::ListValue* args) OVERRIDE;
45
46   // Overridden from content::WebContentsDelegate.
47   virtual bool HandleContextMenu(
48       const content::ContextMenuParams& params) OVERRIDE;
49
50   // Overridden from content::WebContentsObserver overrides.
51   virtual void DidCommitProvisionalLoadForFrame(
52       content::RenderFrameHost* render_frame_host,
53       const GURL& url,
54       content::PageTransition transition_type) OVERRIDE;
55
56   base::WeakPtrFactory<InlineLoginHandlerImpl> weak_factory_;
57   // True if the user has navigated to untrusted domains during the signin
58   // process.
59   bool confirm_untrusted_signin_;
60
61   DISALLOW_COPY_AND_ASSIGN(InlineLoginHandlerImpl);
62 };
63
64 #endif  // CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_IMPL_H_