OLD | NEW |
---|---|
(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_predictor_observer.h" | |
6 | |
7 #include "content/public/browser/browser_thread.h" | |
8 #include "net/url_request/url_request.h" | |
9 | |
10 using content::BrowserThread; | |
11 using predictors::ResourcePrefetchPredictor; | |
12 | |
13 namespace chrome_browser_net { | |
14 | |
15 ResourcePrefetchPredictorObserver::ResourcePrefetchPredictorObserver( | |
16 ResourcePrefetchPredictor* predictor) | |
17 : predictor_(predictor->AsWeakPtr()) { | |
18 } | |
19 | |
20 ResourcePrefetchPredictorObserver::~ResourcePrefetchPredictorObserver() { | |
21 } | |
22 | |
23 void ResourcePrefetchPredictorObserver::OnRequestStarted( | |
24 net::URLRequest* request, | |
25 ResourceType::Type resource_type, | |
26 int child_id, | |
27 int route_id) { | |
28 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | |
29 | |
30 if (!ResourcePrefetchPredictor::ShouldRecordRequest(request, resource_type)) | |
31 return; | |
32 | |
33 ResourcePrefetchPredictor::URLRequestSummary summary; | |
dominich
2012/05/30 15:35:01
I think it's Chromium-style to create and initiali
Shishir
2012/05/30 18:07:15
Added a todo to NavigationId to use a constructor
| |
34 summary.navigation_id_.render_process_id_ = child_id; | |
35 summary.navigation_id_.render_view_id_ = route_id; | |
36 summary.navigation_id_.main_frame_url_ = request->first_party_for_cookies(); | |
37 summary.resource_url_ = request->original_url(); | |
38 summary.resource_type_ = resource_type; | |
39 | |
40 BrowserThread::PostTask( | |
41 BrowserThread::UI, | |
42 FROM_HERE, | |
43 base::Bind(&ResourcePrefetchPredictor::RecordURLRequest, | |
44 predictor_, | |
45 summary)); | |
46 } | |
47 | |
48 void ResourcePrefetchPredictorObserver::OnRequestRedirected( | |
49 net::URLRequest* request) { | |
50 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | |
51 | |
52 if (!ResourcePrefetchPredictor::ShouldRecordRedirect(request)) | |
53 return; | |
54 ResourcePrefetchPredictor::URLRequestSummary summary; | |
dominich
2012/05/30 15:35:01
similar to the above - I prefer a constructor that
Shishir
2012/05/30 18:07:15
As Above.
| |
55 if (!summary.InitFromURLRequest(request, true)) | |
56 return; | |
57 | |
58 BrowserThread::PostTask( | |
59 BrowserThread::UI, | |
60 FROM_HERE, | |
61 base::Bind(&ResourcePrefetchPredictor::RecordUrlRedirect, | |
62 predictor_, | |
63 summary)); | |
64 } | |
65 | |
66 void ResourcePrefetchPredictorObserver::OnResponseStarted( | |
67 net::URLRequest* request) { | |
68 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | |
69 | |
70 if (!ResourcePrefetchPredictor::ShouldRecordResponse(request)) | |
71 return; | |
72 ResourcePrefetchPredictor::URLRequestSummary summary; | |
73 if (!summary.InitFromURLRequest(request, true)) | |
74 return; | |
75 | |
76 BrowserThread::PostTask( | |
77 BrowserThread::UI, | |
78 FROM_HERE, | |
79 base::Bind(&ResourcePrefetchPredictor::RecordUrlResponse, | |
80 predictor_, | |
81 summary)); | |
82 } | |
83 | |
84 } // namespace chrome_browser_net | |
OLD | NEW |