Revert of Add button to add new FSP services to Files app. (patchset #8 id:140001...
[chromium-blink-merge.git] / chrome / browser / ui / autofill / autofill_dialog_sign_in_delegate.h
blobe81bf80842946c8757ecd0abd23d6a4bdc90c901
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.
5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_SIGN_IN_DELEGATE_H_
6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_SIGN_IN_DELEGATE_H_
8 #include "base/basictypes.h"
9 #include "content/public/browser/web_contents_delegate.h"
10 #include "content/public/browser/web_contents_observer.h"
11 #include "ui/gfx/geometry/size.h"
13 namespace autofill {
15 class AutofillDialogView;
17 // AutofillDialogSignInDelegate provides a WebContentsDelegate and
18 // WebContentsObserver for the sign-in page in the autofill dialog. Allows the
19 // dialog to resize based on the size of the hosted web page.
20 // TODO(abodenha) It probably makes sense to move the NotificationObserver
21 // for detecting completed sign-in to this class instead of
22 // AutofillDialogControllerImpl.
23 class AutofillDialogSignInDelegate: public content::WebContentsDelegate,
24 public content::WebContentsObserver {
25 public:
26 AutofillDialogSignInDelegate(AutofillDialogView* dialog_view,
27 content::WebContents* dialog_web_contents,
28 content::WebContents* originating_web_contents,
29 const gfx::Size& minimum_size,
30 const gfx::Size& maximum_size);
32 // WebContentsDelegate implementation.
33 void ResizeDueToAutoResize(content::WebContents* source,
34 const gfx::Size& preferred_size) override;
35 content::WebContents* OpenURLFromTab(
36 content::WebContents* source,
37 const content::OpenURLParams& params) override;
38 void AddNewContents(content::WebContents* source,
39 content::WebContents* new_contents,
40 WindowOpenDisposition disposition,
41 const gfx::Rect& initial_rect,
42 bool user_gesture,
43 bool* was_blocked) override;
44 bool PreHandleGestureEvent(content::WebContents* source,
45 const blink::WebGestureEvent& event) override;
47 // WebContentsObserver implementation.
48 void RenderViewCreated(content::RenderViewHost* render_view_host) override;
50 // Updates the size limits and enables auto-resize for this view.
51 void UpdateLimitsAndEnableAutoResize(const gfx::Size& minimum_size,
52 const gfx::Size& maximum_size);
54 private:
55 // Enables auto-resizing for this view, if possible, constrained to the latest
56 // minimum and maximum size allowed by the delegate.
57 void EnableAutoResize();
59 // The dialog view hosting this sign in page.
60 AutofillDialogView* const dialog_view_;
62 // The WebContents of the page that originated the dialog. Weak ptr, but
63 // guaranteed to outlive the dialog, since the dialog is tab-modal to those
64 // contents.
65 content::WebContents* const originating_web_contents_;
67 // The minimum and maximum sizes that the sign-in view may have.
68 gfx::Size minimum_size_;
69 gfx::Size maximum_size_;
71 DISALLOW_COPY_AND_ASSIGN(AutofillDialogSignInDelegate);
74 } // namespace autofill
76 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_SIGN_IN_DELEGATE_H_