| 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 |