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

Unified Diff: chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc

Issue 462423004: Revert CL 117933003. Re-add resource speculative prefetching code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase to fix patch failure Created 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc b/chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ec827f11dc067d921bb243088fff54a7e5863d36
--- /dev/null
+++ b/chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc
@@ -0,0 +1,62 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/predictors/resource_prefetch_predictor_tab_helper.h"
+
+#include "chrome/browser/predictors/resource_prefetch_predictor.h"
+#include "chrome/browser/predictors/resource_prefetch_predictor_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/load_from_memory_cache_details.h"
+
+DEFINE_WEB_CONTENTS_USER_DATA_KEY(
+ predictors::ResourcePrefetchPredictorTabHelper);
+
+using content::BrowserThread;
+
+namespace predictors {
+
+ResourcePrefetchPredictorTabHelper::ResourcePrefetchPredictorTabHelper(
+ content::WebContents* web_contents)
+ : content::WebContentsObserver(web_contents) {
+}
+
+ResourcePrefetchPredictorTabHelper::~ResourcePrefetchPredictorTabHelper() {
+}
+
+void ResourcePrefetchPredictorTabHelper::DocumentOnLoadCompletedInMainFrame() {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ ResourcePrefetchPredictor* predictor =
+ ResourcePrefetchPredictorFactory::GetForProfile(
+ web_contents()->GetBrowserContext());
+ if (!predictor)
+ return;
+
+ NavigationID navigation_id(web_contents());
+ predictor->RecordMainFrameLoadComplete(navigation_id);
+}
+
+void ResourcePrefetchPredictorTabHelper::DidLoadResourceFromMemoryCache(
+ const content::LoadFromMemoryCacheDetails& details) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ ResourcePrefetchPredictor* predictor =
+ ResourcePrefetchPredictorFactory::GetForProfile(
+ web_contents()->GetBrowserContext());
+ if (!predictor)
+ return;
+
+ ResourcePrefetchPredictor::URLRequestSummary summary;
+ summary.navigation_id = NavigationID(web_contents());
+ summary.resource_url = details.url;
+ summary.mime_type = details.mime_type;
+ summary.resource_type =
+ ResourcePrefetchPredictor::GetResourceTypeFromMimeType(
+ details.mime_type, details.resource_type);
+ summary.was_cached = true;
+ predictor->RecordURLResponse(summary);
+}
+
+} // namespace predictors

Powered by Google App Engine
This is Rietveld 408576698