| 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 5daeb24a9f1fa97c78b7653dfd09de0cecd76f0e..cf277010a74f316a6700fdcdcea8481fd29a9aee 100644
|
| --- a/content/browser/background_fetch/background_fetch_data_manager.cc
|
| +++ b/content/browser/background_fetch/background_fetch_data_manager.cc
|
| @@ -6,7 +6,6 @@
|
|
|
| #include "base/memory/ptr_util.h"
|
| #include "content/browser/background_fetch/background_fetch_context.h"
|
| -#include "content/browser/background_fetch/background_fetch_job_info.h"
|
| #include "content/browser/background_fetch/background_fetch_request_info.h"
|
|
|
| namespace content {
|
| @@ -20,7 +19,8 @@ BackgroundFetchDataManager::BackgroundFetchDataManager(
|
|
|
| BackgroundFetchDataManager::~BackgroundFetchDataManager() = default;
|
|
|
| -BackgroundFetchJobData* BackgroundFetchDataManager::CreateRequest(
|
| +std::unique_ptr<BackgroundFetchJobData>
|
| +BackgroundFetchDataManager::CreateRequest(
|
| const BackgroundFetchJobInfo& job_info,
|
| BackgroundFetchRequestInfos request_infos) {
|
| JobIdentifier id(job_info.service_worker_registration_id(), job_info.tag());
|
| @@ -32,19 +32,32 @@ BackgroundFetchJobData* BackgroundFetchDataManager::CreateRequest(
|
| // TODO(harkness) Figure out how to return errors like this.
|
| return nullptr;
|
| }
|
| - 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();
|
| + WriteJobToStorage(job_info, std::move(request_infos));
|
| + // TODO(harkness): Remove data when the job is complete.
|
| +
|
| + return base::MakeUnique<BackgroundFetchJobData>(
|
| + ReadRequestsFromStorage(job_info.guid()));
|
| +}
|
| +
|
| +void BackgroundFetchDataManager::WriteJobToStorage(
|
| + const BackgroundFetchJobInfo& job_info,
|
| + BackgroundFetchRequestInfos request_infos) {
|
| + // TODO(harkness): Replace these maps with actually writing to storage.
|
| + // TODO(harkness): Check for job_guid clash.
|
| + job_map_[job_info.guid()] = job_info;
|
| + request_map_[job_info.guid()] = std::move(request_infos);
|
| +}
|
| +
|
| +// TODO(harkness): This should be changed to read (and cache) small numbers of
|
| +// the RequestInfos instead of returning all of them.
|
| +BackgroundFetchRequestInfos&
|
| +BackgroundFetchDataManager::ReadRequestsFromStorage(
|
| + const std::string& job_guid) {
|
| + return request_map_[job_guid];
|
| }
|
|
|
| } // namespace content
|
|
|