| 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 CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_MODEL_H_ | 5 #ifndef CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_MODEL_H_ |
| 6 #define CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_MODEL_H_ | 6 #define CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_MODEL_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 | 47 |
| 48 // Attempted HTTPS and failed, page not authenticated | 48 // Attempted HTTPS and failed, page not authenticated |
| 49 SECURITY_ERROR = 5, | 49 SECURITY_ERROR = 5, |
| 50 | 50 |
| 51 NUM_SECURITY_LEVELS = 6, | 51 NUM_SECURITY_LEVELS = 6, |
| 52 }; | 52 }; |
| 53 | 53 |
| 54 virtual ~ToolbarModel(); | 54 virtual ~ToolbarModel(); |
| 55 | 55 |
| 56 // Returns the text to be displayed in the toolbar for the current page. | 56 // Returns the text to be displayed in the toolbar for the current page. |
| 57 // The text is formatted in various ways: | 57 // This will have been formatted for display to the user. |
| 58 // - If the current page's URL is a search URL for the user's default search | 58 // - If the current page's URL is a search URL for the user's default search |
| 59 // engine, the query will be extracted and returned for display instead | 59 // engine, the query will be extracted and returned for display instead |
| 60 // of the URL. | 60 // of the URL. |
| 61 // - If the origin chip is enabled and visible, the text will be empty. | |
| 62 // - Otherwise, the text will contain the URL returned by GetFormattedURL(). | 61 // - Otherwise, the text will contain the URL returned by GetFormattedURL(). |
| 63 virtual base::string16 GetText() const = 0; | 62 virtual base::string16 GetText() const = 0; |
| 64 | 63 |
| 65 // Returns a formatted URL for display in the toolbar. The formatting | 64 // Returns a formatted URL for display in the toolbar. The formatting |
| 66 // includes: | 65 // includes: |
| 67 // - Some characters may be unescaped. | 66 // - Some characters may be unescaped. |
| 68 // - The scheme and/or trailing slash may be dropped. | 67 // - The scheme and/or trailing slash may be dropped. |
| 69 // If |prefix_end| is non-NULL, it is set to the length of the pre-hostname | 68 // If |prefix_end| is non-NULL, it is set to the length of the pre-hostname |
| 70 // portion of the resulting URL. | 69 // portion of the resulting URL. |
| 71 virtual base::string16 GetFormattedURL(size_t* prefix_end) const = 0; | 70 virtual base::string16 GetFormattedURL(size_t* prefix_end) const = 0; |
| 72 | 71 |
| 73 // Some search URLs bundle a special "corpus" param that we can extract and | 72 // Some search URLs bundle a special "corpus" param that we can extract and |
| 74 // display next to users' search terms in cases where we'd show the search | 73 // display next to users' search terms in cases where we'd show the search |
| 75 // terms instead of the URL anyway. For example, a Google image search might | 74 // terms instead of the URL anyway. For example, a Google image search might |
| 76 // show the corpus "Images:" plus a search string. This is only used on | 75 // show the corpus "Images:" plus a search string. This is only used on |
| 77 // mobile. | 76 // mobile. |
| 78 virtual base::string16 GetCorpusNameForMobile() const = 0; | 77 virtual base::string16 GetCorpusNameForMobile() const = 0; |
| 79 | 78 |
| 80 // Returns the URL of the current navigation entry. | 79 // Returns the URL of the current navigation entry. |
| 81 virtual GURL GetURL() const = 0; | 80 virtual GURL GetURL() const = 0; |
| 82 | 81 |
| 83 // Returns true if a call to GetText() would successfully replace the URL | 82 // Returns true if a call to GetText() would successfully replace the URL |
| 84 // with search terms. If |ignore_editing| is true, the result reflects the | 83 // with search terms. If |ignore_editing| is true, the result reflects the |
| 85 // underlying state of the page without regard to any user edits that may be | 84 // underlying state of the page without regard to any user edits that may be |
| 86 // in progress in the omnibox. | 85 // in progress in the omnibox. |
| 87 virtual bool WouldPerformSearchTermReplacement(bool ignore_editing) const = 0; | 86 virtual bool WouldPerformSearchTermReplacement(bool ignore_editing) const = 0; |
| 88 | 87 |
| 89 // Returns true if a call to GetText() would return something other than the | 88 // Returns true if a call to GetText() would return something other than the |
| 90 // URL because of either search term replacement or URL omission in favor of | 89 // URL because of search term replacement. |
| 91 // the origin chip. | |
| 92 bool WouldReplaceURL() const; | 90 bool WouldReplaceURL() const; |
| 93 | 91 |
| 94 // Returns the security level that the toolbar should display. If | 92 // Returns the security level that the toolbar should display. If |
| 95 // |ignore_editing| is true, the result reflects the underlying state of the | 93 // |ignore_editing| is true, the result reflects the underlying state of the |
| 96 // page without regard to any user edits that may be in progress in the | 94 // page without regard to any user edits that may be in progress in the |
| 97 // omnibox. | 95 // omnibox. |
| 98 virtual SecurityLevel GetSecurityLevel(bool ignore_editing) const = 0; | 96 virtual SecurityLevel GetSecurityLevel(bool ignore_editing) const = 0; |
| 99 | 97 |
| 100 // Returns the resource_id of the icon to show to the left of the address, | 98 // Returns the resource_id of the icon to show to the left of the address, |
| 101 // based on the current URL. When search term replacement is active, this | 99 // based on the current URL. When search term replacement is active, this |
| 102 // returns a search icon. This doesn't cover specialized icons while the | 100 // returns a search icon. This doesn't cover specialized icons while the |
| 103 // user is editing; see OmniboxView::GetIcon(). | 101 // user is editing; see OmniboxView::GetIcon(). |
| 104 virtual int GetIcon() const = 0; | 102 virtual int GetIcon() const = 0; |
| 105 | 103 |
| 106 // As |GetIcon()|, but returns the icon only taking into account the security | 104 // As |GetIcon()|, but returns the icon only taking into account the security |
| 107 // |level| given, ignoring search term replacement state. | 105 // |level| given, ignoring search term replacement state. |
| 108 virtual int GetIconForSecurityLevel(SecurityLevel level) const = 0; | 106 virtual int GetIconForSecurityLevel(SecurityLevel level) const = 0; |
| 109 | 107 |
| 110 // Returns the name of the EV cert holder. This returns an empty string if | 108 // Returns the name of the EV cert holder. This returns an empty string if |
| 111 // the security level is not EV_SECURE. | 109 // the security level is not EV_SECURE. |
| 112 virtual base::string16 GetEVCertName() const = 0; | 110 virtual base::string16 GetEVCertName() const = 0; |
| 113 | 111 |
| 114 // Returns whether the URL for the current navigation entry should be | 112 // Returns whether the URL for the current navigation entry should be |
| 115 // in the location bar. | 113 // in the location bar. |
| 116 virtual bool ShouldDisplayURL() const = 0; | 114 virtual bool ShouldDisplayURL() const = 0; |
| 117 | 115 |
| 118 // Returns true if a call to GetText() would return an empty string instead of | |
| 119 // the URL that would have otherwise been displayed because the host/origin is | |
| 120 // instead being displayed in the origin chip. This returns false when we | |
| 121 // wouldn't have displayed a URL to begin with (e.g. for the NTP). | |
| 122 virtual bool WouldOmitURLDueToOriginChip() const = 0; | |
| 123 | |
| 124 // Returns true if the origin should be shown based on the current state of | |
| 125 // the ToolbarModel. | |
| 126 bool ShouldShowOriginChip() const; | |
| 127 | |
| 128 // Whether the text in the omnibox is currently being edited. | 116 // Whether the text in the omnibox is currently being edited. |
| 129 void set_input_in_progress(bool input_in_progress) { | 117 void set_input_in_progress(bool input_in_progress) { |
| 130 input_in_progress_ = input_in_progress; | 118 input_in_progress_ = input_in_progress; |
| 131 } | 119 } |
| 132 bool input_in_progress() const { return input_in_progress_; } | 120 bool input_in_progress() const { return input_in_progress_; } |
| 133 | 121 |
| 134 // Whether the origin chip should be enabled. | |
| 135 void set_origin_chip_enabled(bool enabled) { | |
| 136 origin_chip_enabled_ = enabled; | |
| 137 } | |
| 138 bool origin_chip_enabled() const { | |
| 139 return origin_chip_enabled_; | |
| 140 } | |
| 141 | |
| 142 // Whether URL replacement should be enabled. | 122 // Whether URL replacement should be enabled. |
| 143 void set_url_replacement_enabled(bool enabled) { | 123 void set_url_replacement_enabled(bool enabled) { |
| 144 url_replacement_enabled_ = enabled; | 124 url_replacement_enabled_ = enabled; |
| 145 } | 125 } |
| 146 bool url_replacement_enabled() const { | 126 bool url_replacement_enabled() const { |
| 147 return url_replacement_enabled_; | 127 return url_replacement_enabled_; |
| 148 } | 128 } |
| 149 | 129 |
| 150 protected: | 130 protected: |
| 151 ToolbarModel(); | 131 ToolbarModel(); |
| 152 | 132 |
| 153 private: | 133 private: |
| 154 bool input_in_progress_; | 134 bool input_in_progress_; |
| 155 bool origin_chip_enabled_; | |
| 156 bool url_replacement_enabled_; | 135 bool url_replacement_enabled_; |
| 157 | 136 |
| 158 DISALLOW_COPY_AND_ASSIGN(ToolbarModel); | 137 DISALLOW_COPY_AND_ASSIGN(ToolbarModel); |
| 159 }; | 138 }; |
| 160 | 139 |
| 161 #endif // CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_MODEL_H_ | 140 #endif // CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_MODEL_H_ |
| OLD | NEW |