OLD | NEW |
---|---|
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_TOOLBAR_TOOLBAR_MODEL_H_ | 5 #ifndef COMPONENTS_TOOLBAR_TOOLBAR_MODEL_H_ |
6 #define COMPONENTS_TOOLBAR_TOOLBAR_MODEL_H_ | 6 #define COMPONENTS_TOOLBAR_TOOLBAR_MODEL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #include "base/macros.h" | 12 #include "base/macros.h" |
13 #include "base/strings/string16.h" | 13 #include "base/strings/string16.h" |
14 #include "components/security_state/security_state_model.h" | 14 #include "components/security_state/security_state_model.h" |
15 #include "url/gurl.h" | 15 #include "url/gurl.h" |
16 | 16 |
17 namespace gfx { | 17 namespace gfx { |
18 enum class VectorIconId; | 18 enum class VectorIconId; |
19 } | 19 } |
20 | 20 |
21 namespace net { | |
22 class X509Certificate; | |
23 } | |
24 | |
25 // This class is the model used by the toolbar, location bar and autocomplete | 21 // This class is the model used by the toolbar, location bar and autocomplete |
26 // edit. It populates its states from the current navigation entry retrieved | 22 // edit. It populates its states from the current navigation entry retrieved |
27 // from the navigation controller returned by GetNavigationController(). | 23 // from the navigation controller returned by GetNavigationController(). |
28 class ToolbarModel { | 24 class ToolbarModel { |
29 public: | 25 public: |
30 virtual ~ToolbarModel(); | 26 virtual ~ToolbarModel(); |
31 | 27 |
32 // Returns the text to be displayed in the toolbar for the current page. | 28 // Returns the text to be displayed in the toolbar for the current page. |
33 // This will have been formatted for display to the user. | 29 // This will have been formatted for display to the user. |
34 // - If the current page's URL is a search URL for the user's default search | 30 // - If the current page's URL is a search URL for the user's default search |
35 // engine, the query will be extracted and returned for display instead | 31 // engine, the query will be extracted and returned for display instead |
36 // of the URL. | 32 // of the URL. |
37 // - Otherwise, the text will contain the URL returned by GetFormattedURL(). | 33 // - Otherwise, the text will contain the URL returned by GetFormattedURL(). |
38 virtual base::string16 GetText() const = 0; | 34 virtual base::string16 GetText() const = 0; |
39 | 35 |
40 // Returns a formatted URL for display in the toolbar. The formatting | 36 // Returns a formatted URL for display in the toolbar. The formatting |
41 // includes: | 37 // includes: |
42 // - Some characters may be unescaped. | 38 // - Some characters may be unescaped. |
43 // - The scheme and/or trailing slash may be dropped. | 39 // - The scheme and/or trailing slash may be dropped. |
44 // If |prefix_end| is non-NULL, it is set to the length of the pre-hostname | 40 // If |prefix_end| is non-NULL, it is set to the length of the pre-hostname |
45 // portion of the resulting URL. | 41 // portion of the resulting URL. |
46 virtual base::string16 GetFormattedURL(size_t* prefix_end) const = 0; | 42 virtual base::string16 GetFormattedURL(size_t* prefix_end) const = 0; |
47 | 43 |
48 // Returns the URL of the current navigation entry. | 44 // Returns the URL of the current navigation entry. |
49 virtual GURL GetURL() const = 0; | 45 virtual GURL GetURL() const = 0; |
50 | 46 |
51 // Returns true if a call to GetText() would successfully replace the URL | |
52 // with search terms. If |ignore_editing| is true, the result reflects the | |
53 // underlying state of the page without regard to any user edits that may be | |
54 // in progress in the omnibox. | |
55 virtual bool WouldPerformSearchTermReplacement(bool ignore_editing) const = 0; | |
56 | |
57 // Returns the security level that the toolbar should display. If | 47 // Returns the security level that the toolbar should display. If |
58 // |ignore_editing| is true, the result reflects the underlying state of the | 48 // |ignore_editing| is true, the result reflects the underlying state of the |
59 // page without regard to any user edits that may be in progress in the | 49 // page without regard to any user edits that may be in progress in the |
60 // omnibox. | 50 // omnibox. |
61 virtual security_state::SecurityStateModel::SecurityLevel GetSecurityLevel( | 51 virtual security_state::SecurityStateModel::SecurityLevel GetSecurityLevel( |
62 bool ignore_editing) const = 0; | 52 bool ignore_editing) const = 0; |
63 | 53 |
64 // Returns true if a call to GetText() would return something other than the | |
65 // URL because of search term replacement. | |
66 bool WouldReplaceURL() const; | |
67 | |
68 // Returns the resource_id of the icon to show to the left of the address, | 54 // Returns the resource_id of the icon to show to the left of the address, |
69 // based on the current URL. When search term replacement is active, this | 55 // based on the current URL. When search term replacement is active, this |
70 // returns a search icon. This doesn't cover specialized icons while the | 56 // returns a search icon. This doesn't cover specialized icons while the |
71 // user is editing; see OmniboxView::GetIcon(). | 57 // user is editing; see OmniboxView::GetIcon(). |
72 virtual int GetIcon() const = 0; | 58 virtual int GetIcon() const = 0; |
73 | 59 |
74 // Like GetIcon(), but gets the vector asset ID. | 60 // Like GetIcon(), but gets the vector asset ID. |
75 virtual gfx::VectorIconId GetVectorIcon() const = 0; | 61 virtual gfx::VectorIconId GetVectorIcon() const = 0; |
76 | 62 |
77 // Returns the name of the EV cert holder. This returns an empty string if | 63 // Returns the name of the EV cert holder. This returns an empty string if |
78 // the security level is not EV_SECURE. | 64 // the security level is not EV_SECURE. |
79 virtual base::string16 GetEVCertName() const = 0; | 65 virtual base::string16 GetEVCertName() const = 0; |
80 | 66 |
81 // Returns whether the URL for the current navigation entry should be | 67 // Returns whether the URL for the current navigation entry should be |
82 // in the location bar. | 68 // in the location bar. |
83 virtual bool ShouldDisplayURL() const = 0; | 69 virtual bool ShouldDisplayURL() const = 0; |
84 | 70 |
85 // Whether the text in the omnibox is currently being edited. | 71 // Whether the text in the omnibox is currently being edited. |
86 void set_input_in_progress(bool input_in_progress) { | 72 void set_input_in_progress(bool input_in_progress) { |
87 input_in_progress_ = input_in_progress; | 73 input_in_progress_ = input_in_progress; |
88 } | 74 } |
89 bool input_in_progress() const { return input_in_progress_; } | 75 bool input_in_progress() const { return input_in_progress_; } |
90 | 76 |
91 // Whether URL replacement should be enabled. | 77 // Whether URL replacement should be enabled. |
78 // TODO(treib,pkasting): Can this be removed? crbug.com/627747 | |
Peter Kasting
2016/08/13 05:03:44
Yes, it can.
Marc Treib
2016/08/16 12:00:18
Thanks! I left a TODO for now, since removing it i
| |
92 void set_url_replacement_enabled(bool enabled) { | 79 void set_url_replacement_enabled(bool enabled) { |
93 url_replacement_enabled_ = enabled; | 80 url_replacement_enabled_ = enabled; |
94 } | 81 } |
95 bool url_replacement_enabled() const { | 82 bool url_replacement_enabled() const { |
96 return url_replacement_enabled_; | 83 return url_replacement_enabled_; |
97 } | 84 } |
98 | 85 |
99 protected: | 86 protected: |
100 ToolbarModel(); | 87 ToolbarModel(); |
101 | 88 |
102 private: | 89 private: |
103 bool input_in_progress_; | 90 bool input_in_progress_; |
104 bool url_replacement_enabled_; | 91 bool url_replacement_enabled_; |
105 | 92 |
106 DISALLOW_COPY_AND_ASSIGN(ToolbarModel); | 93 DISALLOW_COPY_AND_ASSIGN(ToolbarModel); |
107 }; | 94 }; |
108 | 95 |
109 #endif // COMPONENTS_TOOLBAR_TOOLBAR_MODEL_H_ | 96 #endif // COMPONENTS_TOOLBAR_TOOLBAR_MODEL_H_ |
OLD | NEW |