| Index: content/browser/background_fetch/background_fetch_data_manager.cc
|
| diff --git a/content/browser/background_fetch/background_fetch_data_manager.cc b/content/browser/background_fetch/background_fetch_data_manager.cc
|
| index 06a82d4d31bbe50e3dc5b571bb0faabaf35dac1e..5daeb24a9f1fa97c78b7653dfd09de0cecd76f0e 100644
|
| --- a/content/browser/background_fetch/background_fetch_data_manager.cc
|
| +++ b/content/browser/background_fetch/background_fetch_data_manager.cc
|
| @@ -4,8 +4,10 @@
|
|
|
| #include "content/browser/background_fetch/background_fetch_data_manager.h"
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "content/browser/background_fetch/background_fetch_context.h"
|
| -#include "content/browser/background_fetch/fetch_request.h"
|
| +#include "content/browser/background_fetch/background_fetch_job_info.h"
|
| +#include "content/browser/background_fetch/background_fetch_request_info.h"
|
|
|
| namespace content {
|
|
|
| @@ -16,20 +18,33 @@ BackgroundFetchDataManager::BackgroundFetchDataManager(
|
| // TODO(harkness) Read from persistent storage and recreate requests.
|
| }
|
|
|
| -BackgroundFetchDataManager::~BackgroundFetchDataManager() {}
|
| +BackgroundFetchDataManager::~BackgroundFetchDataManager() = default;
|
|
|
| -void BackgroundFetchDataManager::CreateRequest(
|
| - const FetchRequest& fetch_request) {
|
| - FetchIdentifier id(fetch_request.service_worker_registration_id(),
|
| - fetch_request.tag());
|
| - if (fetch_map_.find(id) != fetch_map_.end()) {
|
| - DLOG(ERROR) << "Origin " << fetch_request.origin()
|
| - << " has already created a fetch request with tag "
|
| - << fetch_request.tag();
|
| +BackgroundFetchJobData* BackgroundFetchDataManager::CreateRequest(
|
| + const BackgroundFetchJobInfo& job_info,
|
| + BackgroundFetchRequestInfos request_infos) {
|
| + JobIdentifier id(job_info.service_worker_registration_id(), job_info.tag());
|
| + // Ensure that this is not a duplicate request.
|
| + if (service_worker_tag_map_.find(id) != service_worker_tag_map_.end()) {
|
| + DVLOG(1) << "Origin " << job_info.origin()
|
| + << " has already created a batch request with tag "
|
| + << job_info.tag();
|
| // TODO(harkness) Figure out how to return errors like this.
|
| - return;
|
| + return nullptr;
|
| }
|
| - fetch_map_[id] = fetch_request;
|
| + if (batch_map_.find(job_info.guid()) != batch_map_.end()) {
|
| + DVLOG(1) << "Job with UID " << job_info.guid() << " already exists.";
|
| + // TODO(harkness) Figure out how to return errors like this.
|
| + return nullptr;
|
| + }
|
| +
|
| + // Add the request to our maps and return a JobData to track the individual
|
| + // files in the request.
|
| + service_worker_tag_map_[id] = job_info.guid();
|
| + // TODO(harkness): When a job is complete, remove the JobData from the map.
|
| + batch_map_[job_info.guid()] =
|
| + base::MakeUnique<BackgroundFetchJobData>(std::move(request_infos));
|
| + return batch_map_[job_info.guid()].get();
|
| }
|
|
|
| } // namespace content
|
|
|