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 #include "chrome/renderer/searchbox/searchbox.h" | 5 #include "chrome/renderer/searchbox/searchbox.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
13 #include "chrome/common/favicon/fallback_icon_url_parser.h" | |
13 #include "chrome/common/favicon/favicon_url_parser.h" | 14 #include "chrome/common/favicon/favicon_url_parser.h" |
15 #include "chrome/common/favicon/large_icon_url_parser.h" | |
14 #include "chrome/common/omnibox_focus_state.h" | 16 #include "chrome/common/omnibox_focus_state.h" |
15 #include "chrome/common/render_messages.h" | 17 #include "chrome/common/render_messages.h" |
16 #include "chrome/common/url_constants.h" | 18 #include "chrome/common/url_constants.h" |
17 #include "chrome/renderer/searchbox/searchbox_extension.h" | 19 #include "chrome/renderer/searchbox/searchbox_extension.h" |
18 #include "components/favicon_base/favicon_types.h" | 20 #include "components/favicon_base/favicon_types.h" |
19 #include "content/public/renderer/render_view.h" | 21 #include "content/public/renderer/render_view.h" |
20 #include "net/base/escape.h" | 22 #include "net/base/escape.h" |
21 #include "third_party/WebKit/public/web/WebDocument.h" | 23 #include "third_party/WebKit/public/web/WebDocument.h" |
22 #include "third_party/WebKit/public/web/WebFrame.h" | 24 #include "third_party/WebKit/public/web/WebFrame.h" |
23 #include "third_party/WebKit/public/web/WebView.h" | 25 #include "third_party/WebKit/public/web/WebView.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
108 // default favicon. | 110 // default favicon. |
109 std::string id_part = raw_path.substr(parsed.path_index); | 111 std::string id_part = raw_path.substr(parsed.path_index); |
110 InstantRestrictedID id; | 112 InstantRestrictedID id; |
111 if (!GetInstantRestrictedIDFromPath(render_view_id, id_part, &id)) | 113 if (!GetInstantRestrictedIDFromPath(render_view_id, id_part, &id)) |
112 return true; | 114 return true; |
113 | 115 |
114 *rid = id; | 116 *rid = id; |
115 return true; | 117 return true; |
116 } | 118 } |
117 | 119 |
120 bool GetRestrictedIDFromLargeIconUrl(int render_view_id, | |
James Hawkins
2015/03/17 21:46:41
nit: Document methods and params.
huangs
2015/03/18 21:43:10
Done.
| |
121 const GURL& url, | |
122 std::string* favicon_params, | |
123 InstantRestrictedID* rid) { | |
124 // Strip leading slash. | |
125 std::string raw_path = url.path(); | |
126 DCHECK_GT(raw_path.length(), (size_t) 0); | |
127 DCHECK_EQ(raw_path[0], '/'); | |
128 raw_path = raw_path.substr(1); | |
129 | |
130 chrome::LargeIconUrlParser parser; | |
131 if (!parser.Parse(raw_path)) | |
132 return false; | |
133 | |
134 *favicon_params = raw_path.substr(0, parser.path_index()); | |
135 | |
136 std::string id_part = raw_path.substr(parser.path_index()); | |
137 InstantRestrictedID id; | |
138 if (!GetInstantRestrictedIDFromPath(render_view_id, id_part, &id)) | |
139 return true; | |
140 | |
141 *rid = id; | |
142 return true; | |
143 } | |
144 | |
145 bool GetRestrictedIDFromFallbackIconUrl(int render_view_id, | |
146 const GURL& url, | |
147 std::string* favicon_params, | |
148 InstantRestrictedID* rid) { | |
149 // Strip leading slash. | |
150 std::string raw_path = url.path(); | |
151 DCHECK_GT(raw_path.length(), (size_t) 0); | |
152 DCHECK_EQ(raw_path[0], '/'); | |
153 raw_path = raw_path.substr(1); | |
154 | |
155 chrome::ParsedFallbackIconPath parser; | |
156 if (!parser.Parse(raw_path)) | |
157 return false; | |
158 | |
159 *favicon_params = raw_path.substr(0, parser.path_index()); | |
160 | |
161 std::string id_part = raw_path.substr(parser.path_index()); | |
162 InstantRestrictedID id; | |
163 if (!GetInstantRestrictedIDFromPath(render_view_id, id_part, &id)) | |
164 return true; | |
165 | |
166 *rid = id; | |
167 return true; | |
168 } | |
169 | |
170 | |
118 // Parses a thumbnail |url| and fills in |id| with the InstantRestrictedID | 171 // Parses a thumbnail |url| and fills in |id| with the InstantRestrictedID |
119 // obtained from the |url|. |render_view_id| is the ID of the associated | 172 // obtained from the |url|. |render_view_id| is the ID of the associated |
120 // RenderView. | 173 // RenderView. |
121 // | 174 // |
122 // Valid |url| forms: | 175 // Valid |url| forms: |
123 // chrome-search://thumb/<view_id>/<restricted_id> | 176 // chrome-search://thumb/<view_id>/<restricted_id> |
124 // | 177 // |
125 // If the |url| is valid, returns true and fills in |id| with restricted_id | 178 // If the |url| is valid, returns true and fills in |id| with restricted_id |
126 // value. If the |url| is invalid, returns false and |id| is not set. | 179 // value. If the |url| is invalid, returns false and |id| is not set. |
127 bool GetRestrictedIDFromThumbnailUrl(int render_view_id, | 180 bool GetRestrictedIDFromThumbnailUrl(int render_view_id, |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
203 std::string item_url; | 256 std::string item_url; |
204 if (rid != -1 && GetMostVisitedItemWithID(rid, &item)) | 257 if (rid != -1 && GetMostVisitedItemWithID(rid, &item)) |
205 item_url = item.url.spec(); | 258 item_url = item.url.spec(); |
206 | 259 |
207 *url = GURL(base::StringPrintf("chrome-search://favicon/%s%s", | 260 *url = GURL(base::StringPrintf("chrome-search://favicon/%s%s", |
208 favicon_params.c_str(), | 261 favicon_params.c_str(), |
209 item_url.c_str())); | 262 item_url.c_str())); |
210 return true; | 263 return true; |
211 } | 264 } |
212 | 265 |
266 bool SearchBox::GenerateLargeIconURLFromTransientURL(const GURL& transient_url, | |
267 GURL* url) const { | |
268 std::string favicon_params; | |
269 InstantRestrictedID rid = -1; | |
270 bool success = internal::GetRestrictedIDFromLargeIconUrl( | |
271 render_view()->GetRoutingID(), transient_url, &favicon_params, &rid); | |
272 if (!success) | |
273 return false; | |
274 | |
275 InstantMostVisitedItem item; | |
276 std::string item_url; | |
277 if (rid != -1 && GetMostVisitedItemWithID(rid, &item)) | |
278 item_url = item.url.spec(); | |
279 | |
280 *url = GURL(base::StringPrintf("chrome-search://large-icon/%s%s", | |
281 favicon_params.c_str(), | |
282 item_url.c_str())); | |
283 return true; | |
284 } | |
285 | |
286 bool SearchBox::GenerateFallbackIconURLFromTransientURL( | |
287 const GURL& transient_url, | |
288 GURL* url) const { | |
289 std::string favicon_params; | |
290 InstantRestrictedID rid = -1; | |
291 bool success = internal::GetRestrictedIDFromFallbackIconUrl( | |
292 render_view()->GetRoutingID(), transient_url, &favicon_params, &rid); | |
293 if (!success) | |
294 return false; | |
295 | |
296 InstantMostVisitedItem item; | |
297 std::string item_url; | |
298 if (rid != -1 && GetMostVisitedItemWithID(rid, &item)) | |
299 item_url = item.url.spec(); | |
300 | |
301 *url = GURL(base::StringPrintf("chrome-search://fallback-icon/%s%s", | |
302 favicon_params.c_str(), | |
303 item_url.c_str())); | |
304 return true; | |
305 } | |
306 | |
213 bool SearchBox::GenerateThumbnailURLFromTransientURL(const GURL& transient_url, | 307 bool SearchBox::GenerateThumbnailURLFromTransientURL(const GURL& transient_url, |
214 GURL* url) const { | 308 GURL* url) const { |
215 InstantRestrictedID rid = 0; | 309 InstantRestrictedID rid = 0; |
216 if (!internal::GetRestrictedIDFromThumbnailUrl(render_view()->GetRoutingID(), | 310 if (!internal::GetRestrictedIDFromThumbnailUrl(render_view()->GetRoutingID(), |
217 transient_url, &rid)) { | 311 transient_url, &rid)) { |
218 return false; | 312 return false; |
219 } | 313 } |
220 | 314 |
221 GURL most_visited_item_url(GetURLForMostVisitedItem(rid)); | 315 GURL most_visited_item_url(GetURLForMostVisitedItem(rid)); |
222 if (most_visited_item_url.is_empty()) | 316 if (most_visited_item_url.is_empty()) |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
483 | 577 |
484 void SearchBox::Reset() { | 578 void SearchBox::Reset() { |
485 query_.clear(); | 579 query_.clear(); |
486 embedded_search_request_params_ = EmbeddedSearchRequestParams(); | 580 embedded_search_request_params_ = EmbeddedSearchRequestParams(); |
487 suggestion_ = InstantSuggestion(); | 581 suggestion_ = InstantSuggestion(); |
488 start_margin_ = 0; | 582 start_margin_ = 0; |
489 is_focused_ = false; | 583 is_focused_ = false; |
490 is_key_capture_enabled_ = false; | 584 is_key_capture_enabled_ = false; |
491 theme_info_ = ThemeBackgroundInfo(); | 585 theme_info_ = ThemeBackgroundInfo(); |
492 } | 586 } |
OLD | NEW |