OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCHER_H_ | 5 #ifndef CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCHER_H_ |
6 #define CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCHER_H_ | 6 #define CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCHER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <list> | 10 #include <list> |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 // out the Start() call to net::URLRequest for unittesting. | 74 // out the Start() call to net::URLRequest for unittesting. |
75 virtual void StartURLRequest(net::URLRequest* request); | 75 virtual void StartURLRequest(net::URLRequest* request); |
76 | 76 |
77 // Marks the request as finished, with the given status. | 77 // Marks the request as finished, with the given status. |
78 void FinishRequest(net::URLRequest* request); | 78 void FinishRequest(net::URLRequest* request); |
79 | 79 |
80 // Reads the response data from the response - required for the resource to | 80 // Reads the response data from the response - required for the resource to |
81 // be cached correctly. Stubbed out during testing. | 81 // be cached correctly. Stubbed out during testing. |
82 virtual void ReadFullResponse(net::URLRequest* request); | 82 virtual void ReadFullResponse(net::URLRequest* request); |
83 | 83 |
84 // Returns true if the request has more data that needs to be read. If it | |
85 // returns false, the request should not be referenced again. | |
86 bool ShouldContinueReadingRequest(net::URLRequest* request, int bytes_read); | |
87 | |
88 // net::URLRequest::Delegate methods. | 84 // net::URLRequest::Delegate methods. |
89 void OnReceivedRedirect(net::URLRequest* request, | 85 void OnReceivedRedirect(net::URLRequest* request, |
90 const net::RedirectInfo& redirect_info, | 86 const net::RedirectInfo& redirect_info, |
91 bool* defer_redirect) override; | 87 bool* defer_redirect) override; |
92 void OnAuthRequired(net::URLRequest* request, | 88 void OnAuthRequired(net::URLRequest* request, |
93 net::AuthChallengeInfo* auth_info) override; | 89 net::AuthChallengeInfo* auth_info) override; |
94 void OnCertificateRequested( | 90 void OnCertificateRequested( |
95 net::URLRequest* request, | 91 net::URLRequest* request, |
96 net::SSLCertRequestInfo* cert_request_info) override; | 92 net::SSLCertRequestInfo* cert_request_info) override; |
97 void OnSSLCertificateError(net::URLRequest* request, | 93 void OnSSLCertificateError(net::URLRequest* request, |
98 const net::SSLInfo& ssl_info, | 94 const net::SSLInfo& ssl_info, |
99 bool fatal) override; | 95 bool fatal) override; |
100 void OnResponseStarted(net::URLRequest* request) override; | 96 void OnResponseStarted(net::URLRequest* request, int net_error) override; |
101 void OnReadCompleted(net::URLRequest* request, int bytes_read) override; | 97 void OnReadCompleted(net::URLRequest* request, int bytes_read) override; |
102 | 98 |
103 enum PrefetcherState { | 99 enum PrefetcherState { |
104 INITIALIZED = 0, // Prefetching hasn't started. | 100 INITIALIZED = 0, // Prefetching hasn't started. |
105 RUNNING = 1, // Prefetching started, allowed to add more requests. | 101 RUNNING = 1, // Prefetching started, allowed to add more requests. |
106 STOPPED = 2, // Prefetching started, not allowed to add more requests. | 102 STOPPED = 2, // Prefetching started, not allowed to add more requests. |
107 FINISHED = 3 // No more inflight request, new requests not possible. | 103 FINISHED = 3 // No more inflight request, new requests not possible. |
108 }; | 104 }; |
109 | 105 |
110 base::ThreadChecker thread_checker_; | 106 base::ThreadChecker thread_checker_; |
111 PrefetcherState state_; | 107 PrefetcherState state_; |
112 Delegate* const delegate_; | 108 Delegate* const delegate_; |
113 ResourcePrefetchPredictorConfig const config_; | 109 ResourcePrefetchPredictorConfig const config_; |
114 GURL main_frame_url_; | 110 GURL main_frame_url_; |
115 std::unique_ptr<GURL> urls_; | 111 std::unique_ptr<GURL> urls_; |
116 | 112 |
117 std::map<net::URLRequest*, std::unique_ptr<net::URLRequest>> | 113 std::map<net::URLRequest*, std::unique_ptr<net::URLRequest>> |
118 inflight_requests_; | 114 inflight_requests_; |
119 std::list<GURL> request_queue_; | 115 std::list<GURL> request_queue_; |
120 std::map<std::string, size_t> host_inflight_counts_; | 116 std::map<std::string, size_t> host_inflight_counts_; |
121 | 117 |
122 DISALLOW_COPY_AND_ASSIGN(ResourcePrefetcher); | 118 DISALLOW_COPY_AND_ASSIGN(ResourcePrefetcher); |
123 }; | 119 }; |
124 | 120 |
125 } // namespace predictors | 121 } // namespace predictors |
126 | 122 |
127 #endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCHER_H_ | 123 #endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCHER_H_ |
OLD | NEW |