Index: content/browser/service_worker/service_worker_url_request_job.h |
diff --git a/content/browser/service_worker/service_worker_url_request_job.h b/content/browser/service_worker/service_worker_url_request_job.h |
index e8f0f0b2f7dfed9a97793229683e89c3e396f7ee..cd28132b16b3c992304fba7fef17996c8c1ce1fd 100644 |
--- a/content/browser/service_worker/service_worker_url_request_job.h |
+++ b/content/browser/service_worker/service_worker_url_request_job.h |
@@ -8,8 +8,11 @@ |
#include <map> |
#include <string> |
+#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
#include "base/time/time.h" |
+#include "content/browser/streams/stream_read_observer.h" |
+#include "content/browser/streams/stream_register_observer.h" |
#include "content/common/content_export.h" |
#include "content/common/service_worker/service_worker_status_code.h" |
#include "content/common/service_worker/service_worker_types.h" |
@@ -20,6 +23,11 @@ |
#include "net/url_request/url_request.h" |
#include "net/url_request/url_request_job.h" |
#include "third_party/WebKit/public/platform/WebServiceWorkerResponseType.h" |
+#include "url/gurl.h" |
+ |
+namespace net { |
+class IOBuffer; |
+} |
namespace storage { |
class BlobDataHandle; |
@@ -28,20 +36,25 @@ class BlobStorageContext; |
namespace content { |
+class ResourceContext; |
class ResourceRequestBody; |
class ServiceWorkerContextCore; |
class ServiceWorkerFetchDispatcher; |
class ServiceWorkerProviderHost; |
+class Stream; |
class CONTENT_EXPORT ServiceWorkerURLRequestJob |
: public net::URLRequestJob, |
- public net::URLRequest::Delegate { |
+ public net::URLRequest::Delegate, |
+ public StreamReadObserver, |
+ public StreamRegisterObserver { |
public: |
ServiceWorkerURLRequestJob( |
net::URLRequest* request, |
net::NetworkDelegate* network_delegate, |
base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
base::WeakPtr<storage::BlobStorageContext> blob_storage_context, |
+ const ResourceContext* resource_context, |
FetchRequestMode request_mode, |
FetchCredentialsMode credentials_mode, |
RequestContextType request_context_type, |
@@ -88,6 +101,12 @@ class CONTENT_EXPORT ServiceWorkerURLRequestJob |
void OnResponseStarted(net::URLRequest* request) override; |
void OnReadCompleted(net::URLRequest* request, int bytes_read) override; |
+ // StreamObserver override: |
+ void OnDataAvailable(Stream* stream) override; |
+ |
+ // StreamRegisterObserver override: |
+ void OnStreamRegistered(Stream* stream) override; |
+ |
const net::HttpResponseInfo* http_info() const; |
void GetExtraResponseInfo( |
@@ -163,7 +182,13 @@ class CONTENT_EXPORT ServiceWorkerURLRequestJob |
// Used when response type is FORWARD_TO_SERVICE_WORKER. |
scoped_ptr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; |
base::WeakPtr<storage::BlobStorageContext> blob_storage_context_; |
+ const ResourceContext* resource_context_; |
scoped_ptr<net::URLRequest> blob_request_; |
+ scoped_refptr<Stream> stream_; |
+ GURL waiting_stream_url_; |
+ scoped_refptr<net::IOBuffer> stream_pending_buffer_; |
+ int stream_pending_buffer_size_; |
+ |
FetchRequestMode request_mode_; |
FetchCredentialsMode credentials_mode_; |
RequestContextType request_context_type_; |