Index: webkit/browser/appcache/appcache_url_request_job.h |
diff --git a/webkit/browser/appcache/appcache_url_request_job.h b/webkit/browser/appcache/appcache_url_request_job.h |
index 87df368764f3389148ce45c909fbc064d3b2f950..8ed79dd09dafd91e88246cc8c68518400f5df5b2 100644 |
--- a/webkit/browser/appcache/appcache_url_request_job.h |
+++ b/webkit/browser/appcache/appcache_url_request_job.h |
@@ -19,6 +19,9 @@ |
namespace net { |
class GrowableIOBuffer; |
}; |
+namespace webkit_blob { |
+class BlobReader; |
+}; |
namespace appcache { |
@@ -60,6 +63,10 @@ class WEBKIT_STORAGE_BROWSER_EXPORT AppCacheURLRequestJob |
return delivery_type_ == ERROR_DELIVERY; |
} |
+ bool is_delivering_synthesized_response() const { |
+ return delivery_type_ == SYNTHESIZED_DELIVERY; |
+ } |
+ |
// Accessors for the info about the appcached response, if any, |
// that this job has been instructed to deliver. These are only |
// valid to call if is_delivering_appcache_response. |
@@ -87,6 +94,10 @@ class WEBKIT_STORAGE_BROWSER_EXPORT AppCacheURLRequestJob |
return cache_entry_not_found_; |
} |
+ // Executable handler hackery. |
+ void set_is_main_resource_load(bool is_main) { |
+ is_main_resource_load_ = is_main; |
+ } |
protected: |
virtual ~AppCacheURLRequestJob(); |
@@ -98,7 +109,8 @@ class WEBKIT_STORAGE_BROWSER_EXPORT AppCacheURLRequestJob |
AWAITING_DELIVERY_ORDERS, |
APPCACHED_DELIVERY, |
NETWORK_DELIVERY, |
- ERROR_DELIVERY |
+ ERROR_DELIVERY, |
+ SYNTHESIZED_DELIVERY |
}; |
// Returns true if one of the Deliver methods has been called. |
@@ -116,6 +128,7 @@ class WEBKIT_STORAGE_BROWSER_EXPORT AppCacheURLRequestJob |
void OnExecutableResponseCallback( |
const AppCacheExecutableHandler::Response& response); |
void BeginErrorDelivery(const char* message); |
+ void BeginSynthesizedDelivery(); |
// AppCacheStorage::Delegate methods |
virtual void OnResponseInfoLoaded( |
@@ -138,6 +151,11 @@ class WEBKIT_STORAGE_BROWSER_EXPORT AppCacheURLRequestJob |
int buf_size, |
int *bytes_read) OVERRIDE; |
+ bool ReadRawBlobData(net::IOBuffer* buf, |
+ int buf_size, |
+ int *bytes_read); |
+ void OnReadBlobDataComplete(int result); |
+ |
// Sets extra request headers for Job types that support request headers. |
// This is how we get informed of range-requests. |
virtual void SetExtraRequestHeaders( |
@@ -165,9 +183,11 @@ class WEBKIT_STORAGE_BROWSER_EXPORT AppCacheURLRequestJob |
net::HttpByteRange range_requested_; |
scoped_ptr<net::HttpResponseInfo> range_response_info_; |
scoped_ptr<AppCacheResponseReader> reader_; |
+ scoped_ptr<webkit_blob::BlobReader> blob_reader_; |
scoped_refptr<AppCache> cache_; |
scoped_refptr<AppCacheGroup> group_; |
base::WeakPtrFactory<AppCacheURLRequestJob> weak_factory_; |
+ bool is_main_resource_load_; |
}; |
} // namespace appcache |