OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 COMPONENTS_PRECACHE_CORE_PRECACHE_FETCHER_H_ | 5 #ifndef COMPONENTS_PRECACHE_CORE_PRECACHE_FETCHER_H_ |
6 #define COMPONENTS_PRECACHE_CORE_PRECACHE_FETCHER_H_ | 6 #define COMPONENTS_PRECACHE_CORE_PRECACHE_FETCHER_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
11 #include <list> | 11 #include <list> |
| 12 #include <memory> |
12 #include <string> | 13 #include <string> |
13 #include <vector> | 14 #include <vector> |
14 | 15 |
15 #include "base/callback.h" | 16 #include "base/callback.h" |
16 #include "base/macros.h" | 17 #include "base/macros.h" |
17 #include "base/memory/ref_counted.h" | 18 #include "base/memory/ref_counted.h" |
18 #include "base/memory/scoped_ptr.h" | |
19 #include "base/time/time.h" | 19 #include "base/time/time.h" |
20 #include "components/precache/core/fetcher_pool.h" | 20 #include "components/precache/core/fetcher_pool.h" |
21 #include "net/url_request/url_fetcher.h" | 21 #include "net/url_request/url_fetcher.h" |
22 #include "net/url_request/url_fetcher_delegate.h" | 22 #include "net/url_request/url_fetcher_delegate.h" |
23 #include "url/gurl.h" | 23 #include "url/gurl.h" |
24 | 24 |
25 namespace net { | 25 namespace net { |
26 class URLRequestContextGetter; | 26 class URLRequestContextGetter; |
27 } | 27 } |
28 | 28 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 // const std::list<GURL>& top_urls) { | 61 // const std::list<GURL>& top_urls) { |
62 // fetcher_.reset(new PrecacheFetcher(request_context, top_urls, this)); | 62 // fetcher_.reset(new PrecacheFetcher(request_context, top_urls, this)); |
63 // fetcher_->Start(); | 63 // fetcher_->Start(); |
64 // } | 64 // } |
65 // | 65 // |
66 // virtual void OnDone() { | 66 // virtual void OnDone() { |
67 // // Do something when precaching is done. | 67 // // Do something when precaching is done. |
68 // } | 68 // } |
69 // | 69 // |
70 // private: | 70 // private: |
71 // scoped_ptr<PrecacheFetcher> fetcher_; | 71 // std::unique_ptr<PrecacheFetcher> fetcher_; |
72 // }; | 72 // }; |
73 class PrecacheFetcher { | 73 class PrecacheFetcher { |
74 public: | 74 public: |
75 class PrecacheDelegate { | 75 class PrecacheDelegate { |
76 public: | 76 public: |
77 // Called when the fetching of resources has finished, whether the resources | 77 // Called when the fetching of resources has finished, whether the resources |
78 // were fetched or not. If the PrecacheFetcher is destroyed before OnDone is | 78 // were fetched or not. If the PrecacheFetcher is destroyed before OnDone is |
79 // called, then precaching will be canceled and OnDone will not be called. | 79 // called, then precaching will be canceled and OnDone will not be called. |
80 virtual void OnDone() = 0; | 80 virtual void OnDone() = 0; |
81 }; | 81 }; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 // default flag-specified URL will be used. | 138 // default flag-specified URL will be used. |
139 const GURL config_url_; | 139 const GURL config_url_; |
140 | 140 |
141 // The custom URL prefix to use when fetching manifests. If not provided, the | 141 // The custom URL prefix to use when fetching manifests. If not provided, the |
142 // default flag-specified prefix will be used. | 142 // default flag-specified prefix will be used. |
143 const std::string manifest_url_prefix_; | 143 const std::string manifest_url_prefix_; |
144 | 144 |
145 // Non-owning pointer. Should not be NULL. | 145 // Non-owning pointer. Should not be NULL. |
146 PrecacheDelegate* precache_delegate_; | 146 PrecacheDelegate* precache_delegate_; |
147 | 147 |
148 scoped_ptr<PrecacheConfigurationSettings> config_; | 148 std::unique_ptr<PrecacheConfigurationSettings> config_; |
149 | 149 |
150 // Tally of the total number of bytes contained in URL fetches, including | 150 // Tally of the total number of bytes contained in URL fetches, including |
151 // config, manifests, and resources. This the number of bytes as they would be | 151 // config, manifests, and resources. This the number of bytes as they would be |
152 // compressed over the network. | 152 // compressed over the network. |
153 size_t total_response_bytes_; | 153 size_t total_response_bytes_; |
154 | 154 |
155 // Tally of the total number of bytes received over the network from URL | 155 // Tally of the total number of bytes received over the network from URL |
156 // fetches (the same ones as in total_response_bytes_). This includes response | 156 // fetches (the same ones as in total_response_bytes_). This includes response |
157 // headers and intermediate responses such as 30xs. | 157 // headers and intermediate responses such as 30xs. |
158 size_t network_response_bytes_; | 158 size_t network_response_bytes_; |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 void LoadFromNetwork(); | 216 void LoadFromNetwork(); |
217 | 217 |
218 net::URLRequestContextGetter* const request_context_; | 218 net::URLRequestContextGetter* const request_context_; |
219 const GURL url_; | 219 const GURL url_; |
220 const base::Callback<void(const Fetcher&)> callback_; | 220 const base::Callback<void(const Fetcher&)> callback_; |
221 const bool is_resource_request_; | 221 const bool is_resource_request_; |
222 const size_t max_bytes_; | 222 const size_t max_bytes_; |
223 | 223 |
224 FetchStage fetch_stage_; | 224 FetchStage fetch_stage_; |
225 // The cache_url_fetcher_ is kept alive until Fetcher destruction for testing. | 225 // The cache_url_fetcher_ is kept alive until Fetcher destruction for testing. |
226 scoped_ptr<net::URLFetcher> cache_url_fetcher_; | 226 std::unique_ptr<net::URLFetcher> cache_url_fetcher_; |
227 scoped_ptr<net::URLFetcher> network_url_fetcher_; | 227 std::unique_ptr<net::URLFetcher> network_url_fetcher_; |
228 int64_t response_bytes_; | 228 int64_t response_bytes_; |
229 int64_t network_response_bytes_; | 229 int64_t network_response_bytes_; |
230 | 230 |
231 DISALLOW_COPY_AND_ASSIGN(Fetcher); | 231 DISALLOW_COPY_AND_ASSIGN(Fetcher); |
232 }; | 232 }; |
233 | 233 |
234 } // namespace precache | 234 } // namespace precache |
235 | 235 |
236 #endif // COMPONENTS_PRECACHE_CORE_PRECACHE_FETCHER_H_ | 236 #endif // COMPONENTS_PRECACHE_CORE_PRECACHE_FETCHER_H_ |
OLD | NEW |