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

Unified Diff: content/browser/loader/resource_handler.cc

Issue 2526983002: Refactor ResourceHandler API. (Closed)
Patch Set: Silly merge 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
Index: content/browser/loader/resource_handler.cc
diff --git a/content/browser/loader/resource_handler.cc b/content/browser/loader/resource_handler.cc
index 896809a3d2d334001d4d3f5fb92352b2657de096..cfd6d71988b5d4a3d8b609688ae154caa0611c40 100644
--- a/content/browser/loader/resource_handler.cc
+++ b/content/browser/loader/resource_handler.cc
@@ -8,15 +8,52 @@
namespace content {
+ResourceHandler::Delegate::Delegate() {}
+
+ResourceHandler::Delegate::~Delegate() {}
+
+void ResourceHandler::SetDelegate(Delegate* delegate) {
+ delegate_ = delegate;
+}
+
ResourceHandler::~ResourceHandler() {}
ResourceHandler::ResourceHandler(net::URLRequest* request)
- : controller_(NULL),
- request_(request) {
+ : request_(request) {}
+
+void ResourceHandler::HoldController(
+ std::unique_ptr<ResourceController> controller) {
+ controller_ = std::move(controller);
+}
+
+std::unique_ptr<ResourceController> ResourceHandler::ReleaseController() {
+ DCHECK(controller_);
+
+ // Can't use std::move, as that doesn't allow subsequently checking if
+ // |controller_| is null or not.
Charlie Harrison 2017/01/25 20:23:00 Are you sure? I thought move semantics guaranteed
mmenke 2017/01/25 22:07:59 You're right...It's not guaranteed be std::move in
+ std::unique_ptr<ResourceController> controller;
+ std::swap(controller, controller_);
+ return controller;
+}
+
+void ResourceHandler::Resume() {
+ ReleaseController()->Resume();
+}
+
+void ResourceHandler::Cancel() {
+ ReleaseController()->Cancel();
+}
+
+void ResourceHandler::CancelAndIgnore() {
+ ReleaseController()->CancelAndIgnore();
+}
+
+void ResourceHandler::CancelWithError(int error_code) {
+ ReleaseController()->CancelWithError(error_code);
}
-void ResourceHandler::SetController(ResourceController* controller) {
- controller_ = controller;
+void ResourceHandler::OutOfBandCancel(int error_code, bool tell_renderer) {
+ delegate_->OutOfBandCancel(error_code, tell_renderer);
}
ResourceRequestInfoImpl* ResourceHandler::GetRequestInfo() const {

Powered by Google App Engine
This is Rietveld 408576698