Chromium Code Reviews| 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_context.h" | 5 #include "content/browser/background_fetch/background_fetch_context.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "content/browser/background_fetch/background_fetch_client_proxy.h" | |
| 8 #include "content/browser/background_fetch/background_fetch_data_manager.h" | 9 #include "content/browser/background_fetch/background_fetch_data_manager.h" |
| 9 #include "content/browser/background_fetch/background_fetch_job_controller.h" | 10 #include "content/browser/background_fetch/background_fetch_job_controller.h" |
| 10 #include "content/browser/background_fetch/background_fetch_registration_id.h" | 11 #include "content/browser/background_fetch/background_fetch_registration_id.h" |
| 11 #include "content/browser/service_worker/service_worker_context_wrapper.h" | 12 #include "content/browser/service_worker/service_worker_context_wrapper.h" |
| 12 #include "content/browser/storage_partition_impl.h" | 13 #include "content/browser/storage_partition_impl.h" |
| 14 #include "content/public/browser/background_fetch_client.h" | |
| 13 #include "content/public/browser/browser_context.h" | 15 #include "content/public/browser/browser_context.h" |
| 14 | 16 |
| 15 namespace content { | 17 namespace content { |
| 16 | 18 |
| 17 BackgroundFetchContext::BackgroundFetchContext( | 19 BackgroundFetchContext::BackgroundFetchContext( |
| 18 BrowserContext* browser_context, | 20 BrowserContext* browser_context, |
| 19 StoragePartitionImpl* storage_partition, | 21 StoragePartitionImpl* storage_partition, |
| 20 const scoped_refptr<ServiceWorkerContextWrapper>& service_worker_context) | 22 const scoped_refptr<ServiceWorkerContextWrapper>& service_worker_context) |
| 21 : browser_context_(browser_context), | 23 : browser_context_(browser_context), |
| 22 storage_partition_(storage_partition), | 24 storage_partition_(storage_partition), |
| 23 service_worker_context_(service_worker_context), | 25 service_worker_context_(service_worker_context), |
| 24 background_fetch_data_manager_( | 26 background_fetch_data_manager_( |
| 25 base::MakeUnique<BackgroundFetchDataManager>(browser_context)) { | 27 base::MakeUnique<BackgroundFetchDataManager>(browser_context)), |
| 28 client_proxy_(base::MakeUnique<BackgroundFetchClientProxy>(this)) { | |
| 26 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 29 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 30 BackgroundFetchClient* client = browser_context_->GetBackgroundFetchClient(); | |
| 31 if (client) | |
| 32 client->SetDelegate(client_proxy_.get()); | |
| 27 } | 33 } |
| 28 | 34 |
| 29 BackgroundFetchContext::~BackgroundFetchContext() { | 35 BackgroundFetchContext::~BackgroundFetchContext() { |
| 30 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 36 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 37 | |
| 38 BackgroundFetchClient* client = browser_context_->GetBackgroundFetchClient(); | |
| 39 if (client) | |
| 40 client->SetDelegate(nullptr); | |
|
Peter Beverloo
2017/03/31 01:32:23
Thinking more about this, we should probably do th
harkness
2017/03/31 10:11:44
Excellent point. Done.
| |
| 31 } | 41 } |
| 32 | 42 |
| 33 void BackgroundFetchContext::Shutdown() { | 43 void BackgroundFetchContext::Shutdown() { |
| 34 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 44 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 35 BrowserThread::PostTask( | 45 BrowserThread::PostTask( |
| 36 BrowserThread::IO, FROM_HERE, | 46 BrowserThread::IO, FROM_HERE, |
| 37 base::Bind(&BackgroundFetchContext::ShutdownOnIO, this)); | 47 base::Bind(&BackgroundFetchContext::ShutdownOnIO, this)); |
| 38 } | 48 } |
| 39 | 49 |
| 40 void BackgroundFetchContext::ShutdownOnIO() { | 50 void BackgroundFetchContext::ShutdownOnIO() { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 94 void BackgroundFetchContext::DidFinishFetch( | 104 void BackgroundFetchContext::DidFinishFetch( |
| 95 const BackgroundFetchRegistrationId& registration_id) { | 105 const BackgroundFetchRegistrationId& registration_id) { |
| 96 DCHECK_GT(active_fetches_.count(registration_id), 0u); | 106 DCHECK_GT(active_fetches_.count(registration_id), 0u); |
| 97 | 107 |
| 98 // TODO(peter): Dispatch the `backgroundfetched` or the `backgroundfetchfail` | 108 // TODO(peter): Dispatch the `backgroundfetched` or the `backgroundfetchfail` |
| 99 // event to the Service Worker. | 109 // event to the Service Worker. |
| 100 | 110 |
| 101 active_fetches_.erase(registration_id); | 111 active_fetches_.erase(registration_id); |
| 102 } | 112 } |
| 103 | 113 |
| 114 void BackgroundFetchContext::CancelFetch( | |
| 115 const BackgroundFetchRegistrationId& registration_id) { | |
| 116 // TODO(harkness): pass the command to the JobController for the given task. | |
|
Peter Beverloo
2017/03/31 01:32:23
DCHECK_CURRENTLY_ON(BrowserThread::IO);
harkness
2017/03/31 10:11:44
Done.
| |
| 117 } | |
| 118 | |
| 119 void BackgroundFetchContext::PauseFetch( | |
| 120 const BackgroundFetchRegistrationId& registration_id) { | |
| 121 // TODO(harkness): pass the command to the JobController for the given task. | |
| 122 } | |
| 123 | |
| 124 void BackgroundFetchContext::ResumeFetch( | |
| 125 const BackgroundFetchRegistrationId& registration_id) { | |
| 126 // TODO(harkness): pass the command to the JobController for the given task. | |
| 127 } | |
| 128 | |
| 104 } // namespace content | 129 } // namespace content |
| OLD | NEW |