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 #include "chrome/browser/prerender/prerender_manager.h" | 5 #include "chrome/browser/prerender/prerender_manager.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "base/stl_util.h" | 11 #include "base/stl_util.h" |
12 #include "base/string_util.h" | |
13 #include "base/time.h" | 12 #include "base/time.h" |
14 #include "base/values.h" | 13 #include "base/values.h" |
15 #include "base/utf_string_conversions.h" | 14 #include "base/utf_string_conversions.h" |
16 #include "chrome/browser/browser_process.h" | 15 #include "chrome/browser/browser_process.h" |
17 #include "chrome/browser/favicon/favicon_tab_helper.h" | 16 #include "chrome/browser/favicon/favicon_tab_helper.h" |
18 #include "chrome/browser/history/top_sites.h" | 17 #include "chrome/browser/history/top_sites.h" |
19 #include "chrome/browser/prerender/prerender_condition.h" | 18 #include "chrome/browser/prerender/prerender_condition.h" |
20 #include "chrome/browser/prerender/prerender_contents.h" | 19 #include "chrome/browser/prerender/prerender_contents.h" |
21 #include "chrome/browser/prerender/prerender_final_status.h" | 20 #include "chrome/browser/prerender/prerender_final_status.h" |
22 #include "chrome/browser/prerender/prerender_histograms.h" | 21 #include "chrome/browser/prerender/prerender_histograms.h" |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 return AddPrerender(ORIGIN_OMNIBOX, std::make_pair(-1, -1), url, GURL()); | 290 return AddPrerender(ORIGIN_OMNIBOX, std::make_pair(-1, -1), url, GURL()); |
292 } | 291 } |
293 | 292 |
294 bool PrerenderManager::AddPrerender( | 293 bool PrerenderManager::AddPrerender( |
295 Origin origin, | 294 Origin origin, |
296 const std::pair<int, int>& child_route_id_pair, | 295 const std::pair<int, int>& child_route_id_pair, |
297 const GURL& url_arg, | 296 const GURL& url_arg, |
298 const GURL& referrer) { | 297 const GURL& referrer) { |
299 DCHECK(CalledOnValidThread()); | 298 DCHECK(CalledOnValidThread()); |
300 | 299 |
301 if (origin == ORIGIN_LINK_REL_PRERENDER && | 300 if (origin == ORIGIN_LINK_REL_PRERENDER && IsGoogleSearchResultURL(referrer)) |
302 StartsWithASCII(referrer.host(), std::string("www.google."), true) && | |
303 !StartsWithASCII(referrer.path(), std::string("/imgres"), true)) { | |
304 origin = ORIGIN_GWS_PRERENDER; | 301 origin = ORIGIN_GWS_PRERENDER; |
305 } | |
306 | 302 |
307 histograms_->RecordPrerender(origin, url_arg); | 303 histograms_->RecordPrerender(origin, url_arg); |
308 | 304 |
309 // If the referring page is prerendering, defer the prerender. | 305 // If the referring page is prerendering, defer the prerender. |
310 if (FindPrerenderContentsForChildRouteIdPair(child_route_id_pair) != | 306 if (FindPrerenderContentsForChildRouteIdPair(child_route_id_pair) != |
311 prerender_list_.end()) { | 307 prerender_list_.end()) { |
312 AddPendingPrerender(origin, child_route_id_pair, url_arg, referrer); | 308 AddPendingPrerender(origin, child_route_id_pair, url_arg, referrer); |
313 return true; | 309 return true; |
314 } | 310 } |
315 | 311 |
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 DeletePendingDeleteEntries(); | 1028 DeletePendingDeleteEntries(); |
1033 } | 1029 } |
1034 | 1030 |
1035 void PrerenderManager::RecordFinalStatus(Origin origin, | 1031 void PrerenderManager::RecordFinalStatus(Origin origin, |
1036 uint8 experiment_id, | 1032 uint8 experiment_id, |
1037 FinalStatus final_status) const { | 1033 FinalStatus final_status) const { |
1038 histograms_->RecordFinalStatus(origin, experiment_id, final_status); | 1034 histograms_->RecordFinalStatus(origin, experiment_id, final_status); |
1039 } | 1035 } |
1040 | 1036 |
1041 } // namespace prerender | 1037 } // namespace prerender |
OLD | NEW |