Elim cr-checkbox
[chromium-blink-merge.git] / chrome / browser / ui / location_bar / location_bar.h
blobb1475a01e8f83cf5d4ff657d73901593783b5eb9
1 // Copyright 2014 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_LOCATION_BAR_LOCATION_BAR_H_
6 #define CHROME_BROWSER_UI_LOCATION_BAR_LOCATION_BAR_H_
8 #include "ui/base/page_transition_types.h"
9 #include "ui/base/window_open_disposition.h"
10 #include "url/gurl.h"
12 class ExtensionAction;
13 class LocationBarTesting;
14 class OmniboxView;
15 class Profile;
17 namespace content {
18 class WebContents;
21 namespace extensions {
22 class Extension;
25 // The LocationBar class is a virtual interface, defining access to the
26 // window's location bar component. This class exists so that cross-platform
27 // components like the browser command system can talk to the platform
28 // specific implementations of the location bar control. It also allows the
29 // location bar to be mocked for testing.
30 class LocationBar {
31 public:
32 explicit LocationBar(Profile* profile);
34 // Shows the first run bubble anchored to the location bar.
35 virtual void ShowFirstRunBubble() = 0;
37 // The details necessary to open the user's desired omnibox match.
38 virtual GURL GetDestinationURL() const = 0;
39 virtual WindowOpenDisposition GetWindowOpenDisposition() const = 0;
40 virtual ui::PageTransition GetPageTransition() const = 0;
42 // Accepts the current string of text entered in the location bar.
43 virtual void AcceptInput() = 0;
45 // Focuses the location bar. Optionally also selects its contents.
46 virtual void FocusLocation(bool select_all) = 0;
48 // Clears the location bar, inserts an annoying little "?" turd and sets
49 // focus to it.
50 virtual void FocusSearch() = 0;
52 // Updates the state of the images showing the content settings status.
53 virtual void UpdateContentSettingsIcons() = 0;
55 // Updates the password icon and pops up a bubble from the icon if needed.
56 virtual void UpdateManagePasswordsIconAndBubble() = 0;
58 // Updates the state of the page actions.
59 virtual void UpdatePageActions() = 0;
61 // Updates the visibility of the bookmark star.
62 virtual void UpdateBookmarkStarVisibility() = 0;
64 // Updates the visibility of the location bar. Animates the transition if
65 // |animate| is true.
66 virtual void UpdateLocationBarVisibility(bool visible, bool animate) = 0;
68 // Shows the popup for the given |extension| and, if |grant_active_tab| is
69 // true, grants the extension active tab permissions.
70 // Returns true if a popup was shown.
71 virtual bool ShowPageActionPopup(const extensions::Extension* extension,
72 bool grant_active_tab) = 0;
74 // Updates the state of the button to open a PDF in Adobe Reader.
75 virtual void UpdateOpenPDFInReaderPrompt() = 0;
77 // Saves the state of the location bar to the specified WebContents, so that
78 // it can be restored later. (Done when switching tabs).
79 virtual void SaveStateToContents(content::WebContents* contents) = 0;
81 // Reverts the location bar. The bar's permanent text will be shown.
82 virtual void Revert() = 0;
84 virtual const OmniboxView* GetOmniboxView() const = 0;
85 virtual OmniboxView* GetOmniboxView() = 0;
87 // Returns a pointer to the testing interface.
88 virtual LocationBarTesting* GetLocationBarForTesting() = 0;
90 Profile* profile() { return profile_; }
92 protected:
93 virtual ~LocationBar();
95 // Checks if any extension has requested that the bookmark star be hidden.
96 bool IsBookmarkStarHiddenByExtension() const;
98 private:
99 Profile* profile_;
101 DISALLOW_COPY_AND_ASSIGN(LocationBar);
104 class LocationBarTesting {
105 public:
106 // Returns the total number of page actions in the Omnibox.
107 virtual int PageActionCount() = 0;
109 // Returns the number of visible page actions in the Omnibox.
110 virtual int PageActionVisibleCount() = 0;
112 // Returns the ExtensionAction at |index|.
113 virtual ExtensionAction* GetPageAction(size_t index) = 0;
115 // Returns the visible ExtensionAction at |index|.
116 virtual ExtensionAction* GetVisiblePageAction(size_t index) = 0;
118 // Simulates a left mouse pressed on the visible page action at |index|.
119 virtual void TestPageActionPressed(size_t index) = 0;
121 // Returns whether or not the bookmark star decoration is visible.
122 virtual bool GetBookmarkStarVisibility() = 0;
124 protected:
125 virtual ~LocationBarTesting() {}
128 #endif // CHROME_BROWSER_UI_LOCATION_BAR_LOCATION_BAR_H_