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

Side by Side Diff: chrome/browser/net/resource_prefetch_interceptor.cc

Issue 10416002: Seculative resource prefetching for URLs CL. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 7 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/net/resource_prefetch_interceptor.h"
6
7 #include "content/public/browser/browser_thread.h"
8 #include "net/url_request/url_request.h"
9
10 using predictors::ResourcePrefetchPredictor;
11
12 namespace chrome_browser_net {
13
14 ResourcePrefetchInterceptor::ResourcePrefetchInterceptor(
15 scoped_refptr<ResourcePrefetchPredictor> predictor)
16 : predictor_(predictor) {
17 CHECK(predictor_.get());
18 }
19
20 ResourcePrefetchInterceptor::~ResourcePrefetchInterceptor() {
21 }
22
23 void ResourcePrefetchInterceptor::Intercept(
24 net::URLRequest* request,
25 bool is_response,
26 void(ResourcePrefetchPredictor::*interceptFunction)(
27 const ResourcePrefetchPredictor::URLRequestSummary&)) const {
28 ResourcePrefetchPredictor::URLRequestSummary summary;
29 if (!summary.InitFromURLRequest(request, is_response))
30 return;
31
32 CHECK(predictor_.get());
33 content::BrowserThread::PostTask(
34 content::BrowserThread::UI,
35 FROM_HERE,
36 base::Bind(interceptFunction, predictor_, summary));
37 }
38
39 net::URLRequestJob* ResourcePrefetchInterceptor::MaybeIntercept(
40 net::URLRequest* request) const {
41 if (ResourcePrefetchPredictor::ShouldInterceptRequest(request))
42 Intercept(request, false, &ResourcePrefetchPredictor::RecordURLRequest);
43
44 return NULL;
45 }
46
47 net::URLRequestJob* ResourcePrefetchInterceptor::MaybeInterceptResponse(
48 net::URLRequest* request) const {
49 if (ResourcePrefetchPredictor::ShouldInterceptResponse(request))
50 Intercept(request, true, &ResourcePrefetchPredictor::RecordUrlResponse);
51
52 return NULL;
53 }
54
55 net::URLRequestJob* ResourcePrefetchInterceptor::MaybeInterceptRedirect(
56 const GURL& location, net::URLRequest* request) const {
57 if (ResourcePrefetchPredictor::ShouldInterceptRedirect(request))
58 Intercept(request, false, &ResourcePrefetchPredictor::RecordUrlRedirect);
59
60 return NULL;
61 }
62
63 } // namespace chrome_browser_net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698