summaryrefslogtreecommitdiffstats
path: root/content/browser/loader/resource_handler.h
diff options
context:
space:
mode:
authorcreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-07 19:45:52 +0000
committercreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-07 19:45:52 +0000
commit66ab87e8ebc518ab54238f9899f813311844997b (patch)
treeb26bbd221e2668c33d84ab9ca92cc45a01828080 /content/browser/loader/resource_handler.h
parentc745d405c8ac5a39c4ede5ccafe3445878b3767b (diff)
downloadchromium_src-66ab87e8ebc518ab54238f9899f813311844997b.zip
chromium_src-66ab87e8ebc518ab54238f9899f813311844997b.tar.gz
chromium_src-66ab87e8ebc518ab54238f9899f813311844997b.tar.bz2
Clean up ResourceHandler API.
1. Move URLRequest member to ResourceHandler base class and add convenience functions for subclasses. 2. Make OnWillRead take a scoped_refptr to avoid leaking the buffer. BUG=295239 TEST=No behavior change. Review URL: https://codereview.chromium.org/25536005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227318 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/loader/resource_handler.h')
-rw-r--r--content/browser/loader/resource_handler.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/content/browser/loader/resource_handler.h b/content/browser/loader/resource_handler.h
index de8bd9d..8ec4117 100644
--- a/content/browser/loader/resource_handler.h
+++ b/content/browser/loader/resource_handler.h
@@ -14,6 +14,7 @@
#include <string>
+#include "base/memory/ref_counted.h"
#include "base/sequenced_task_runner_helpers.h"
#include "base/threading/non_thread_safe.h"
#include "content/common/content_export.h"
@@ -22,11 +23,14 @@ class GURL;
namespace net {
class IOBuffer;
+class URLRequest;
class URLRequestStatus;
} // namespace net
namespace content {
class ResourceController;
+class ResourceMessageFilter;
+class ResourceRequestInfoImpl;
struct ResourceResponse;
// The resource dispatcher host uses this interface to process network events
@@ -77,7 +81,7 @@ class CONTENT_EXPORT ResourceHandler
// If the handler returns false, then the request is cancelled. Otherwise,
// once data is available, OnReadCompleted will be called.
virtual bool OnWillRead(int request_id,
- net::IOBuffer** buf,
+ scoped_refptr<net::IOBuffer>* buf,
int* buf_size,
int min_size) = 0;
@@ -102,11 +106,19 @@ class CONTENT_EXPORT ResourceHandler
virtual void OnDataDownloaded(int request_id, int bytes_downloaded) = 0;
protected:
- ResourceHandler() : controller_(NULL) {}
- ResourceController* controller() { return controller_; }
+ ResourceHandler(net::URLRequest* request);
+
+ ResourceController* controller() const { return controller_; }
+ net::URLRequest* request() const { return request_; }
+
+ // Convenience functions.
+ ResourceRequestInfoImpl* GetRequestInfo() const;
+ int GetRequestID() const;
+ ResourceMessageFilter* GetFilter() const;
private:
ResourceController* controller_;
+ net::URLRequest* request_;
};
} // namespace content