Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Side by Side Diff: components/omnibox/browser/omnibox_view.h

Issue 2641003002: Show scheme in black and content in gray for data: protocol urls (Closed)
Patch Set: Move misplaced #include to mm files Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // This file defines the interface class OmniboxView. Each toolkit will 5 // This file defines the interface class OmniboxView. Each toolkit will
6 // implement the edit view differently, so that code is inherently platform 6 // implement the edit view differently, so that code is inherently platform
7 // specific. However, the OmniboxEditModel needs to do some communication with 7 // specific. However, the OmniboxEditModel needs to do some communication with
8 // the view. Since the model is shared between platforms, we need to define an 8 // the view. Since the model is shared between platforms, we need to define an
9 // interface that all view implementations will share. 9 // interface that all view implementations will share.
10 10
11 #ifndef COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_VIEW_H_ 11 #ifndef COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_VIEW_H_
12 #define COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_VIEW_H_ 12 #define COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_VIEW_H_
13 13
14 #include <stddef.h> 14 #include <stddef.h>
15 15
16 #include <string> 16 #include <string>
17 17
18 #include "base/gtest_prod_util.h" 18 #include "base/gtest_prod_util.h"
19 #include "base/macros.h" 19 #include "base/macros.h"
20 #include "base/strings/string16.h" 20 #include "base/strings/string16.h"
21 #include "base/strings/string_util.h" 21 #include "base/strings/string_util.h"
22 #include "base/strings/utf_string_conversions.h" 22 #include "base/strings/utf_string_conversions.h"
23 #include "components/omnibox/browser/autocomplete_match.h" 23 #include "components/omnibox/browser/autocomplete_match.h"
24 #include "ui/base/window_open_disposition.h" 24 #include "ui/base/window_open_disposition.h"
25 #include "ui/gfx/native_widget_types.h" 25 #include "ui/gfx/native_widget_types.h"
26 #include "ui/gfx/range/range.h"
26 27
27 class GURL; 28 class GURL;
28 class OmniboxClient; 29 class OmniboxClient;
29 class OmniboxEditController; 30 class OmniboxEditController;
30 class OmniboxViewMacTest; 31 class OmniboxViewMacTest;
31 class OmniboxEditModel; 32 class OmniboxEditModel;
32 33
33 namespace gfx { 34 namespace gfx {
34 enum class VectorIconId; 35 enum class VectorIconId;
35 } 36 }
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 // Fills |state| with the current text state. 242 // Fills |state| with the current text state.
242 void GetState(State* state); 243 void GetState(State* state);
243 244
244 // Returns the delta between |before| and |after|. 245 // Returns the delta between |before| and |after|.
245 StateChanges GetStateChanges(const State& before, 246 StateChanges GetStateChanges(const State& before,
246 const State& after); 247 const State& after);
247 248
248 // Internally invoked whenever the text changes in some way. 249 // Internally invoked whenever the text changes in some way.
249 virtual void TextChanged(); 250 virtual void TextChanged();
250 251
252 // Returns whether the current text in the model represents a URL. Provided
253 // to allow tests to override the result.
254 virtual bool CurrentTextIsURL();
255
251 // Return the number of characters in the current buffer. The name 256 // Return the number of characters in the current buffer. The name
252 // |GetTextLength| can't be used as the Windows override of this class 257 // |GetTextLength| can't be used as the Windows override of this class
253 // inherits from a class that defines a method with that name. 258 // inherits from a class that defines a method with that name.
254 virtual int GetOmniboxTextLength() const = 0; 259 virtual int GetOmniboxTextLength() const = 0;
255 260
256 // Try to parse the current text as a URL and colorize the components. 261 // Try to parse the current text as a URL and colorize the components.
257 virtual void EmphasizeURLComponents() = 0; 262 virtual void EmphasizeURLComponents() = 0;
258 263
259 OmniboxEditController* controller() { return controller_; } 264 OmniboxEditController* controller() { return controller_; }
260 const OmniboxEditController* controller() const { return controller_; } 265 const OmniboxEditController* controller() const { return controller_; }
261 266
267 // Marks part (or, if |range| is invalid, all) of the current text as
268 // emphasized or de-emphasized, by changing its color.
269 virtual void SetEmphasis(bool emphasize, const gfx::Range& range) = 0;
270
271 // Sets the color and strikethrough state for |range|, which represents the
272 // current scheme, based on the current security state. Schemes are displayed
273 // in different ways for different security levels.
274 virtual void UpdateSchemeStyle(const gfx::Range& range) = 0;
275
276 // Parses |display_text|, then invokes SetEmphasis() and UpdateSchemeStyle()
277 // appropriately. If the text is a query string, there is no scheme, and
278 // everything is emphasized equally, whereas for URLs the scheme may be styled
279 // based on the current security state, with parts of the URL de-emphasized to
280 // draw attention to whatever best represents the "identity" of the current
281 // URL.
282 void UpdateTextStyle(const base::string16& display_text,
283 const AutocompleteSchemeClassifier& classifier);
284
262 private: 285 private:
263 friend class OmniboxViewMacTest; 286 friend class OmniboxViewMacTest;
264 287
265 // |model_| can be NULL in tests. 288 // |model_| can be NULL in tests.
266 std::unique_ptr<OmniboxEditModel> model_; 289 std::unique_ptr<OmniboxEditModel> model_;
267 OmniboxEditController* controller_; 290 OmniboxEditController* controller_;
268 291
269 DISALLOW_COPY_AND_ASSIGN(OmniboxView); 292 DISALLOW_COPY_AND_ASSIGN(OmniboxView);
270 }; 293 };
271 294
272 #endif // COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_VIEW_H_ 295 #endif // COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_VIEW_H_
OLDNEW
« no previous file with comments | « components/omnibox/browser/omnibox_edit_unittest.cc ('k') | components/omnibox/browser/omnibox_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698