Index: webkit/browser/blob/blob_url_request_job_factory.h |
diff --git a/webkit/browser/blob/blob_url_request_job_factory.h b/webkit/browser/blob/blob_url_request_job_factory.h |
index 2a78c95d1a6796ae05849d058558951e4b2325d5..e40eb5dacc291e97bb704ddfe764d878b0e8fb93 100644 |
--- a/webkit/browser/blob/blob_url_request_job_factory.h |
+++ b/webkit/browser/blob/blob_url_request_job_factory.h |
@@ -7,6 +7,8 @@ |
#include "base/compiler_specific.h" |
#include "base/memory/ref_counted.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "net/url_request/url_request.h" |
#include "net/url_request/url_request_job_factory.h" |
#include "webkit/browser/webkit_storage_browser_export.h" |
@@ -19,20 +21,30 @@ class FileSystemContext; |
} // namespace fileapi |
namespace net { |
-class URLRequest; |
+class URLRequestContext; |
} // namespace net |
namespace webkit_blob { |
class BlobData; |
-class BlobStorageController; |
+class BlobDataHandle; |
class WEBKIT_STORAGE_BROWSER_EXPORT BlobProtocolHandler |
: public net::URLRequestJobFactory::ProtocolHandler { |
public: |
- // |controller|'s lifetime should exceed the lifetime of the ProtocolHandler. |
- BlobProtocolHandler(BlobStorageController* blob_storage_controller, |
- fileapi::FileSystemContext* file_system_context, |
+ // A helper to manufacture an URLRequest to retrieve the given blob. |
+ static net::URLRequest* CreateBlobRequest( |
+ scoped_ptr<BlobDataHandle> blob_data_handle, |
+ const net::URLRequestContext* request_context, |
+ net::URLRequest::Delegate* request_delegate); |
+ |
+ // This class ignores the request's URL and uses the value given |
+ // to SetRequestedBlobDataHandle instead. |
+ static void SetRequestedBlobDataHandle( |
+ net::URLRequest* request, |
+ scoped_ptr<BlobDataHandle> blob_data_handle); |
+ |
+ BlobProtocolHandler(fileapi::FileSystemContext* file_system_context, |
base::MessageLoopProxy* file_loop_proxy); |
virtual ~BlobProtocolHandler(); |
@@ -41,12 +53,9 @@ class WEBKIT_STORAGE_BROWSER_EXPORT BlobProtocolHandler |
net::NetworkDelegate* network_delegate) const OVERRIDE; |
private: |
- virtual scoped_refptr<BlobData> LookupBlobData( |
+ scoped_refptr<BlobData> LookupBlobData( |
net::URLRequest* request) const; |
- // No scoped_refptr because |blob_storage_controller_| is owned by the |
- // ProfileIOData, which also owns this ProtocolHandler. |
- BlobStorageController* const blob_storage_controller_; |
const scoped_refptr<fileapi::FileSystemContext> file_system_context_; |
const scoped_refptr<base::MessageLoopProxy> file_loop_proxy_; |