OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 AutocompleteEditModel needs to do some communication | 7 // specific. However, the AutocompleteEditModel needs to do some communication |
8 // with the view. Since the model is shared between platforms, we need to | 8 // with the view. Since the model is shared between platforms, we need to |
9 // define an interface that all view implementations will share. | 9 // define an interface that all view implementations will share. |
10 | 10 |
11 #ifndef CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_VIEW_H_ | 11 #ifndef CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_VIEW_H_ |
12 #define CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_VIEW_H_ | 12 #define CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_VIEW_H_ |
13 #pragma once | 13 #pragma once |
14 | 14 |
15 #include <string> | 15 #include <string> |
16 | 16 |
17 #include "base/string16.h" | 17 #include "base/string16.h" |
18 #include "base/string_util.h" | |
19 #include "base/utf_string_conversions.h" | |
18 #include "chrome/browser/autocomplete/autocomplete_match.h" | 20 #include "chrome/browser/autocomplete/autocomplete_match.h" |
19 #include "content/common/page_transition_types.h" | 21 #include "content/common/page_transition_types.h" |
22 #include "content/common/url_constants.h" | |
20 #include "ui/gfx/native_widget_types.h" | 23 #include "ui/gfx/native_widget_types.h" |
21 #include "webkit/glue/window_open_disposition.h" | 24 #include "webkit/glue/window_open_disposition.h" |
22 | 25 |
23 class AutocompleteEditModel; | 26 class AutocompleteEditModel; |
24 class CommandUpdater; | 27 class CommandUpdater; |
25 class GURL; | 28 class GURL; |
26 class TabContents; | 29 class TabContents; |
27 | 30 |
28 #if defined(TOOLKIT_VIEWS) | 31 #if defined(TOOLKIT_VIEWS) |
29 namespace views { | 32 namespace views { |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
180 // returns the views::View of the edit view. | 183 // returns the views::View of the edit view. |
181 virtual views::View* AddToView(views::View* parent) = 0; | 184 virtual views::View* AddToView(views::View* parent) = 0; |
182 | 185 |
183 // Performs the drop of a drag and drop operation on the view. | 186 // Performs the drop of a drag and drop operation on the view. |
184 virtual int OnPerformDrop(const views::DropTargetEvent& event) = 0; | 187 virtual int OnPerformDrop(const views::DropTargetEvent& event) = 0; |
185 #endif | 188 #endif |
186 | 189 |
187 virtual ~OmniboxView() {} | 190 virtual ~OmniboxView() {} |
188 }; | 191 }; |
189 | 192 |
193 // Strips any leading javascript schemas from a string. | |
194 // Returns true if the output string differs from the input. | |
195 static inline bool StripJavascriptSchema(const string16& text, string16* out) { | |
Peter Kasting
2011/05/20 22:04:14
Nit: Don't do this inline. It's not speed-critica
Cris Neckar
2011/05/24 00:10:06
Done.
| |
196 const string16 kJsPrefix(UTF8ToUTF16(chrome::kJavaScriptScheme) + | |
197 UTF8ToUTF16(":")); | |
Peter Kasting
2011/05/20 22:04:14
Nit: I think both of these can be ASCIIToUTF16().
Cris Neckar
2011/05/24 00:10:06
Done.
| |
198 bool changed = false; | |
199 *out = text; | |
Peter Kasting
2011/05/20 22:04:14
Nit: Shorter:
for (*out = text; StartsWith(*out
Cris Neckar
2011/05/24 00:10:06
Done.
| |
200 while (StartsWith(*out, kJsPrefix, false)) { | |
201 changed = true; | |
202 TrimWhitespace(out->substr(kJsPrefix.length()), TRIM_LEADING, out); | |
203 } | |
204 return changed; | |
205 } | |
206 | |
190 #endif // CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_VIEW_H_ | 207 #endif // CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_VIEW_H_ |
OLD | NEW |