Index: content/browser/download/mhtml_generation_manager.cc |
diff --git a/content/browser/download/mhtml_generation_manager.cc b/content/browser/download/mhtml_generation_manager.cc |
index df825ba7caccb2af0650473acef425ad85a713b6..f96f354106a4516b3604ea3c4e96d62cadfc3f4a 100644 |
--- a/content/browser/download/mhtml_generation_manager.cc |
+++ b/content/browser/download/mhtml_generation_manager.cc |
@@ -18,9 +18,11 @@ |
#include "base/stl_util.h" |
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
+#include "base/task_runner_util.h" |
#include "base/time/time.h" |
#include "base/trace_event/trace_event.h" |
#include "content/browser/bad_message.h" |
+#include "content/browser/download/download_task_runner.h" |
#include "content/browser/download/mhtml_extra_parts_impl.h" |
#include "content/browser/frame_host/frame_tree_node.h" |
#include "content/browser/frame_host/render_frame_host_impl.h" |
@@ -380,8 +382,8 @@ void MHTMLGenerationManager::Job::CloseFile( |
} |
// If no previous error occurred the boundary should be sent. |
- BrowserThread::PostTaskAndReplyWithResult( |
- BrowserThread::FILE, FROM_HERE, |
+ PostTaskAndReplyWithResult( |
+ GetDownloadTaskRunner().get(), FROM_HERE, |
base::Bind( |
&MHTMLGenerationManager::Job::FinalizeAndCloseFileOnFileThread, |
save_status, |
@@ -438,7 +440,7 @@ MHTMLGenerationManager::Job::FinalizeAndCloseFileOnFileThread( |
const std::string& boundary, |
base::File file, |
const MHTMLExtraPartsImpl* extra_parts) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ DCHECK(GetDownloadTaskRunner()->RunsTasksInCurrentSequence()); |
// If no previous error occurred the boundary should have been provided. |
if (save_status == MhtmlSaveStatus::SUCCESS) { |
@@ -474,7 +476,7 @@ bool MHTMLGenerationManager::Job::WriteExtraDataParts( |
const std::string& boundary, |
base::File& file, |
const MHTMLExtraPartsImpl* extra_parts) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ DCHECK(GetDownloadTaskRunner()->RunsTasksInCurrentSequence()); |
// Don't write an extra data part if there is none. |
if (extra_parts == nullptr) |
return true; |
@@ -509,7 +511,7 @@ bool MHTMLGenerationManager::Job::WriteExtraDataParts( |
// static |
bool MHTMLGenerationManager::Job::WriteFooter(const std::string& boundary, |
base::File& file) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ DCHECK(GetDownloadTaskRunner()->RunsTasksInCurrentSequence()); |
std::string footer = base::StringPrintf("--%s--\r\n", boundary.c_str()); |
DCHECK(base::IsStringASCII(footer)); |
return (file.WriteAtCurrentPos(footer.data(), footer.size()) >= 0); |
@@ -518,7 +520,7 @@ bool MHTMLGenerationManager::Job::WriteFooter(const std::string& boundary, |
// static |
bool MHTMLGenerationManager::Job::CloseFileIfValid(base::File& file, |
int64_t* file_size) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ DCHECK(GetDownloadTaskRunner()->RunsTasksInCurrentSequence()); |
DCHECK(file_size); |
if (file.IsValid()) { |
*file_size = file.GetLength(); |
@@ -549,8 +551,8 @@ void MHTMLGenerationManager::SaveMHTML(WebContents* web_contents, |
web_contents->GetLastCommittedURL().possibly_invalid_spec(), |
"file", params.file_path.AsUTF8Unsafe()); |
- BrowserThread::PostTaskAndReplyWithResult( |
- BrowserThread::FILE, FROM_HERE, |
+ PostTaskAndReplyWithResult( |
+ GetDownloadTaskRunner().get(), FROM_HERE, |
base::Bind(&MHTMLGenerationManager::CreateFile, params.file_path), |
base::Bind(&MHTMLGenerationManager::OnFileAvailable, |
base::Unretained(this), // Safe b/c |this| is a singleton. |
@@ -597,7 +599,7 @@ void MHTMLGenerationManager::OnSerializeAsMHTMLResponse( |
// static |
base::File MHTMLGenerationManager::CreateFile(const base::FilePath& file_path) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ DCHECK(GetDownloadTaskRunner()->RunsTasksInCurrentSequence()); |
// SECURITY NOTE: A file descriptor to the file created below will be passed |
// to multiple renderer processes which (in out-of-process iframes mode) can |