Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Unified Diff: content/browser/download/save_file_resource_handler.cc

Issue 2526983002: Refactor ResourceHandler API. (Closed)
Patch Set: Response to comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/download/save_file_resource_handler.h ('k') | content/browser/loader/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/download/save_file_resource_handler.cc
diff --git a/content/browser/download/save_file_resource_handler.cc b/content/browser/download/save_file_resource_handler.cc
index 854c15a837437d19c9fd125f09266ac6a9f99b06..6ac4a09e42c478cc50a5638f04c5c3907c4552c3 100644
--- a/content/browser/download/save_file_resource_handler.cc
+++ b/content/browser/download/save_file_resource_handler.cc
@@ -9,6 +9,7 @@
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
#include "content/browser/download/save_file_manager.h"
+#include "content/browser/loader/resource_controller.h"
#include "content/public/browser/browser_thread.h"
#include "net/base/io_buffer.h"
#include "net/url_request/redirect_info.h"
@@ -37,16 +38,17 @@ SaveFileResourceHandler::SaveFileResourceHandler(
SaveFileResourceHandler::~SaveFileResourceHandler() {
}
-bool SaveFileResourceHandler::OnRequestRedirected(
+void SaveFileResourceHandler::OnRequestRedirected(
const net::RedirectInfo& redirect_info,
ResourceResponse* response,
- bool* defer) {
+ std::unique_ptr<ResourceController> controller) {
final_url_ = redirect_info.new_url;
- return true;
+ controller->Resume();
}
-bool SaveFileResourceHandler::OnResponseStarted(ResourceResponse* response,
- bool* defer) {
+void SaveFileResourceHandler::OnResponseStarted(
+ ResourceResponse* response,
+ std::unique_ptr<ResourceController> controller) {
// |save_manager_| consumes (deletes):
SaveFileCreateInfo* info = new SaveFileCreateInfo(
url_, final_url_, save_item_id_, save_package_id_, render_process_id_,
@@ -55,11 +57,17 @@ bool SaveFileResourceHandler::OnResponseStarted(ResourceResponse* response,
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
base::Bind(&SaveFileManager::StartSave, save_manager_, info));
- return true;
+ controller->Resume();
}
-bool SaveFileResourceHandler::OnWillStart(const GURL& url, bool* defer) {
- return authorization_state_ == AuthorizationState::AUTHORIZED;
+void SaveFileResourceHandler::OnWillStart(
+ const GURL& url,
+ std::unique_ptr<ResourceController> controller) {
+ if (authorization_state_ == AuthorizationState::AUTHORIZED) {
+ controller->Resume();
+ } else {
+ controller->Cancel();
+ }
}
bool SaveFileResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf,
@@ -75,7 +83,9 @@ bool SaveFileResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf,
return true;
}
-bool SaveFileResourceHandler::OnReadCompleted(int bytes_read, bool* defer) {
+void SaveFileResourceHandler::OnReadCompleted(
+ int bytes_read,
+ std::unique_ptr<ResourceController> controller) {
DCHECK_EQ(AuthorizationState::AUTHORIZED, authorization_state_);
DCHECK(read_buffer_.get());
// We are passing ownership of this buffer to the save file manager.
@@ -85,12 +95,12 @@ bool SaveFileResourceHandler::OnReadCompleted(int bytes_read, bool* defer) {
BrowserThread::FILE, FROM_HERE,
base::Bind(&SaveFileManager::UpdateSaveProgress, save_manager_,
save_item_id_, base::RetainedRef(buffer), bytes_read));
- return true;
+ controller->Resume();
}
void SaveFileResourceHandler::OnResponseCompleted(
const net::URLRequestStatus& status,
- bool* defer) {
+ std::unique_ptr<ResourceController> controller) {
if (authorization_state_ != AuthorizationState::AUTHORIZED)
DCHECK(!status.is_success());
@@ -99,7 +109,8 @@ void SaveFileResourceHandler::OnResponseCompleted(
base::Bind(&SaveFileManager::SaveFinished, save_manager_, save_item_id_,
save_package_id_,
status.is_success() && !status.is_io_pending()));
- read_buffer_ = NULL;
+ read_buffer_ = nullptr;
+ controller->Resume();
}
void SaveFileResourceHandler::OnDataDownloaded(int bytes_downloaded) {
« no previous file with comments | « content/browser/download/save_file_resource_handler.h ('k') | content/browser/loader/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698