NaCl docs: add sanitizers to GSoC ideas
[chromium-blink-merge.git] / chrome / browser / ui / location_bar / location_bar.h
blobdf125323727870e0d7576c58576f11daa665a8cf
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 // Shows the popup for the given |extension| and, if |grant_active_tab| is
65 // true, grants the extension active tab permissions.
66 // Returns true if a popup was shown.
67 virtual bool ShowPageActionPopup(const extensions::Extension* extension,
68 bool grant_active_tab) = 0;
70 // Updates the state of the button to open a PDF in Adobe Reader.
71 virtual void UpdateOpenPDFInReaderPrompt() = 0;
73 // Updates the generated credit card view. This view serves as an anchor for
74 // the generated credit card bubble, which can show on successful generation
75 // of a new credit card number.
76 virtual void UpdateGeneratedCreditCardView() = 0;
78 // Saves the state of the location bar to the specified WebContents, so that
79 // it can be restored later. (Done when switching tabs).
80 virtual void SaveStateToContents(content::WebContents* contents) = 0;
82 // Reverts the location bar. The bar's permanent text will be shown.
83 virtual void Revert() = 0;
85 virtual const OmniboxView* GetOmniboxView() const = 0;
86 virtual OmniboxView* GetOmniboxView() = 0;
88 // Returns a pointer to the testing interface.
89 virtual LocationBarTesting* GetLocationBarForTesting() = 0;
91 Profile* profile() { return profile_; }
93 protected:
94 virtual ~LocationBar();
96 // Checks if any extension has requested that the bookmark star be hidden.
97 bool IsBookmarkStarHiddenByExtension() const;
99 private:
100 Profile* profile_;
102 DISALLOW_COPY_AND_ASSIGN(LocationBar);
105 class LocationBarTesting {
106 public:
107 // Returns the total number of page actions in the Omnibox.
108 virtual int PageActionCount() = 0;
110 // Returns the number of visible page actions in the Omnibox.
111 virtual int PageActionVisibleCount() = 0;
113 // Returns the ExtensionAction at |index|.
114 virtual ExtensionAction* GetPageAction(size_t index) = 0;
116 // Returns the visible ExtensionAction at |index|.
117 virtual ExtensionAction* GetVisiblePageAction(size_t index) = 0;
119 // Simulates a left mouse pressed on the visible page action at |index|.
120 virtual void TestPageActionPressed(size_t index) = 0;
122 // Returns whether or not the bookmark star decoration is visible.
123 virtual bool GetBookmarkStarVisibility() = 0;
125 protected:
126 virtual ~LocationBarTesting() {}
129 #endif // CHROME_BROWSER_UI_LOCATION_BAR_LOCATION_BAR_H_