Index: content/browser/background_fetch/background_fetch_request_info.cc |
diff --git a/content/browser/background_fetch/background_fetch_request_info.cc b/content/browser/background_fetch/background_fetch_request_info.cc |
index 1973d359ab0e35a4f4a655a87077c7412ef99c93..0f23af18e1a2b20e914440634a9d971b37101a7b 100644 |
--- a/content/browser/background_fetch/background_fetch_request_info.cc |
+++ b/content/browser/background_fetch/background_fetch_request_info.cc |
@@ -7,6 +7,8 @@ |
#include <string> |
#include "base/strings/string_util.h" |
+#include "base/threading/sequenced_task_runner_handle.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/download_item.h" |
#include "net/http/http_response_headers.h" |
@@ -15,13 +17,19 @@ namespace content { |
BackgroundFetchRequestInfo::BackgroundFetchRequestInfo( |
int request_index, |
const ServiceWorkerFetchRequest& fetch_request) |
- : request_index_(request_index), fetch_request_(fetch_request) {} |
+ : RefCountedDeleteOnSequence<BackgroundFetchRequestInfo>( |
+ base::SequencedTaskRunnerHandle::Get()), |
+ request_index_(request_index), |
+ fetch_request_(fetch_request) {} |
-BackgroundFetchRequestInfo::~BackgroundFetchRequestInfo() {} |
+BackgroundFetchRequestInfo::~BackgroundFetchRequestInfo() { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
+} |
-void BackgroundFetchRequestInfo::PopulateDownloadState( |
+void BackgroundFetchRequestInfo::PopulateDownloadStateOnUI( |
DownloadItem* download_item, |
DownloadInterruptReason download_interrupt_reason) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
DCHECK(!download_state_populated_); |
download_guid_ = download_item->GetGuid(); |
@@ -41,54 +49,68 @@ void BackgroundFetchRequestInfo::PopulateDownloadState( |
while (headers->EnumerateHeaderLines(&iter, &name, &value)) |
response_headers_[base::ToLowerASCII(name)] = value; |
} |
+} |
+void BackgroundFetchRequestInfo::SetDownloadStatePopulated() { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
download_state_populated_ = true; |
} |
-void BackgroundFetchRequestInfo::PopulateResponseFromDownloadItem( |
+void BackgroundFetchRequestInfo::PopulateResponseFromDownloadItemOnUI( |
DownloadItem* download_item) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
DCHECK(!response_data_populated_); |
url_chain_ = download_item->GetUrlChain(); |
file_path_ = download_item->GetTargetFilePath(); |
file_size_ = download_item->GetReceivedBytes(); |
response_time_ = download_item->GetEndTime(); |
+} |
+void BackgroundFetchRequestInfo::SetResponseDataPopulated() { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
response_data_populated_ = true; |
} |
int BackgroundFetchRequestInfo::GetResponseCode() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(download_state_populated_); |
return response_code_; |
} |
const std::string& BackgroundFetchRequestInfo::GetResponseText() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(download_state_populated_); |
return response_text_; |
} |
const std::map<std::string, std::string>& |
BackgroundFetchRequestInfo::GetResponseHeaders() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(download_state_populated_); |
return response_headers_; |
} |
const std::vector<GURL>& BackgroundFetchRequestInfo::GetURLChain() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(response_data_populated_); |
return url_chain_; |
} |
const base::FilePath& BackgroundFetchRequestInfo::GetFilePath() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(response_data_populated_); |
return file_path_; |
} |
int64_t BackgroundFetchRequestInfo::GetFileSize() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(response_data_populated_); |
return file_size_; |
} |
const base::Time& BackgroundFetchRequestInfo::GetResponseTime() const { |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(response_data_populated_); |
return response_time_; |
} |