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

Side by Side Diff: chrome/browser/prerender/prerender_manager.cc

Issue 2355453002: [NoStatePrefetch] Support only GET and HEAD (Closed)
Patch Set: format Created 4 years, 3 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 #include "chrome/browser/prerender/prerender_manager.h" 5 #include "chrome/browser/prerender/prerender_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <functional> 10 #include <functional>
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 using content::WebContents; 68 using content::WebContents;
69 using namespace chrome_browser_net; 69 using namespace chrome_browser_net;
70 70
71 namespace prerender { 71 namespace prerender {
72 72
73 namespace { 73 namespace {
74 74
75 // Time interval at which periodic cleanups are performed. 75 // Time interval at which periodic cleanups are performed.
76 const int kPeriodicCleanupIntervalMs = 1000; 76 const int kPeriodicCleanupIntervalMs = 1000;
77 77
78 // Valid HTTP methods for prerendering.
79 const char* const kValidHttpMethods[] = {
80 "GET",
81 "HEAD",
82 "OPTIONS",
83 "POST",
84 "TRACE",
85 };
86
87 // Length of prerender history, for display in chrome://net-internals 78 // Length of prerender history, for display in chrome://net-internals
88 const int kHistoryLength = 100; 79 const int kHistoryLength = 100;
89 80
90 } // namespace 81 } // namespace
91 82
92 class PrerenderManager::OnCloseWebContentsDeleter 83 class PrerenderManager::OnCloseWebContentsDeleter
93 : public content::WebContentsDelegate, 84 : public content::WebContentsDelegate,
94 public base::SupportsWeakPtr< 85 public base::SupportsWeakPtr<
95 PrerenderManager::OnCloseWebContentsDeleter> { 86 PrerenderManager::OnCloseWebContentsDeleter> {
96 public: 87 public:
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 base::TimeDelta delta = GetCurrentTimeTicks() - it->time; 691 base::TimeDelta delta = GetCurrentTimeTicks() - it->time;
701 histograms_->RecordTimeSinceLastRecentVisit(origin, delta); 692 histograms_->RecordTimeSinceLastRecentVisit(origin, delta);
702 return true; 693 return true;
703 } 694 }
704 } 695 }
705 696
706 return false; 697 return false;
707 } 698 }
708 699
709 // static 700 // static
710 bool PrerenderManager::IsValidHttpMethod(const std::string& method) {
711 // method has been canonicalized to upper case at this point so we can just
712 // compare them.
713 DCHECK_EQ(method, base::ToUpperASCII(method));
714 for (size_t i = 0; i < arraysize(kValidHttpMethods); ++i) {
715 if (method.compare(kValidHttpMethods[i]) == 0)
716 return true;
717 }
718
719 return false;
720 }
721
722 // static
723 bool PrerenderManager::DoesURLHaveValidScheme(const GURL& url) { 701 bool PrerenderManager::DoesURLHaveValidScheme(const GURL& url) {
724 return (url.SchemeIsHTTPOrHTTPS() || 702 return (url.SchemeIsHTTPOrHTTPS() ||
725 url.SchemeIs(extensions::kExtensionScheme) || 703 url.SchemeIs(extensions::kExtensionScheme) ||
726 url.SchemeIs("data")); 704 url.SchemeIs("data"));
727 } 705 }
728 706
729 // static 707 // static
730 bool PrerenderManager::DoesSubresourceURLHaveValidScheme(const GURL& url) { 708 bool PrerenderManager::DoesSubresourceURLHaveValidScheme(const GURL& url) {
731 return DoesURLHaveValidScheme(url) || url == GURL(url::kAboutBlankURL); 709 return DoesURLHaveValidScheme(url) || url == GURL(url::kAboutBlankURL);
732 } 710 }
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
1333 DCHECK_EQ(1u, erased); 1311 DCHECK_EQ(1u, erased);
1334 } 1312 }
1335 1313
1336 void PrerenderManager::SetPrerenderContentsFactoryForTest( 1314 void PrerenderManager::SetPrerenderContentsFactoryForTest(
1337 PrerenderContents::Factory* prerender_contents_factory) { 1315 PrerenderContents::Factory* prerender_contents_factory) {
1338 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1316 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1339 prerender_contents_factory_.reset(prerender_contents_factory); 1317 prerender_contents_factory_.reset(prerender_contents_factory);
1340 } 1318 }
1341 1319
1342 } // namespace prerender 1320 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698