OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 #include "content/browser/background_fetch/background_fetch_data_manager.h" | 5 #include "content/browser/background_fetch/background_fetch_data_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <queue> | 8 #include <queue> |
9 | 9 |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
11 #include "content/browser/background_fetch/background_fetch_constants.h" | 11 #include "content/browser/background_fetch/background_fetch_constants.h" |
12 #include "content/browser/background_fetch/background_fetch_context.h" | 12 #include "content/browser/background_fetch/background_fetch_context.h" |
13 #include "content/browser/background_fetch/background_fetch_request_info.h" | 13 #include "content/browser/background_fetch/background_fetch_request_info.h" |
14 #include "content/browser/blob_storage/chrome_blob_storage_context.h" | 14 #include "content/browser/blob_storage/chrome_blob_storage_context.h" |
15 #include "content/public/browser/blob_handle.h" | 15 #include "content/public/browser/blob_handle.h" |
16 #include "content/public/browser/browser_context.h" | 16 #include "content/public/browser/browser_context.h" |
17 #include "content/public/browser/download_interrupt_reasons.h" | 17 #include "content/public/browser/download_interrupt_reasons.h" |
18 #include "content/public/browser/download_item.h" | 18 #include "content/public/browser/download_item.h" |
| 19 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor
kerResponseType.h" |
19 | 20 |
20 namespace content { | 21 namespace content { |
21 | 22 |
22 // The Registration Data class encapsulates the data stored for a particular | 23 // The Registration Data class encapsulates the data stored for a particular |
23 // Background Fetch registration. This roughly matches the on-disk format that | 24 // Background Fetch registration. This roughly matches the on-disk format that |
24 // will be adhered to in the future. | 25 // will be adhered to in the future. |
25 class BackgroundFetchDataManager::RegistrationData { | 26 class BackgroundFetchDataManager::RegistrationData { |
26 public: | 27 public: |
27 RegistrationData(const std::vector<ServiceWorkerFetchRequest>& requests, | 28 RegistrationData(const std::vector<ServiceWorkerFetchRequest>& requests, |
28 const BackgroundFetchOptions& options) | 29 const BackgroundFetchOptions& options) |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 | 202 |
202 std::vector<std::unique_ptr<BlobHandle>> blob_handles; | 203 std::vector<std::unique_ptr<BlobHandle>> blob_handles; |
203 | 204 |
204 for (const auto& request : requests) { | 205 for (const auto& request : requests) { |
205 BackgroundFetchSettledFetch settled_fetch; | 206 BackgroundFetchSettledFetch settled_fetch; |
206 settled_fetch.request = request->fetch_request(); | 207 settled_fetch.request = request->fetch_request(); |
207 | 208 |
208 settled_fetch.response.url_list = request->GetURLChain(); | 209 settled_fetch.response.url_list = request->GetURLChain(); |
209 // TODO: settled_fetch.response.status_code | 210 // TODO: settled_fetch.response.status_code |
210 // TODO: settled_fetch.response.status_text | 211 // TODO: settled_fetch.response.status_text |
211 // TODO: settled_fetch.response.response_type | 212 settled_fetch.response.response_type = |
| 213 blink::WebServiceWorkerResponseTypeDefault; |
212 // TODO: settled_fetch.response.headers | 214 // TODO: settled_fetch.response.headers |
213 | 215 |
214 if (request->GetFileSize() > 0) { | 216 if (request->GetFileSize() > 0) { |
215 DCHECK(!request->GetFilePath().empty()); | 217 DCHECK(!request->GetFilePath().empty()); |
216 | 218 |
217 std::unique_ptr<BlobHandle> blob_handle = | 219 std::unique_ptr<BlobHandle> blob_handle = |
218 blob_storage_context_->CreateFileBackedBlob( | 220 blob_storage_context_->CreateFileBackedBlob( |
219 request->GetFilePath(), 0 /* offset */, request->GetFileSize(), | 221 request->GetFilePath(), 0 /* offset */, request->GetFileSize(), |
220 base::Time() /* expected_modification_time */); | 222 base::Time() /* expected_modification_time */); |
221 | 223 |
(...skipping 25 matching lines...) Expand all Loading... |
247 std::move(callback).Run(blink::mojom::BackgroundFetchError::INVALID_TAG); | 249 std::move(callback).Run(blink::mojom::BackgroundFetchError::INVALID_TAG); |
248 return; | 250 return; |
249 } | 251 } |
250 | 252 |
251 registrations_.erase(iter); | 253 registrations_.erase(iter); |
252 | 254 |
253 std::move(callback).Run(blink::mojom::BackgroundFetchError::NONE); | 255 std::move(callback).Run(blink::mojom::BackgroundFetchError::NONE); |
254 } | 256 } |
255 | 257 |
256 } // namespace content | 258 } // namespace content |
OLD | NEW |