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

Unified Diff: content/browser/service_worker/service_worker_cache.cc

Issue 617263002: Support WebServiceWorkerResponseType in ServiceWorkerCache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't run test on windows, see https://crbug.com/416940 Created 6 years, 2 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/service_worker/service_worker_cache.cc
diff --git a/content/browser/service_worker/service_worker_cache.cc b/content/browser/service_worker/service_worker_cache.cc
index 13a836513dcd51af3f107f42efcb5488b30a2c88..df8cfd38276cd4bf2d59411142f0440b79836d2e 100644
--- a/content/browser/service_worker/service_worker_cache.cc
+++ b/content/browser/service_worker/service_worker_cache.cc
@@ -19,6 +19,7 @@
#include "storage/browser/blob/blob_data_handle.h"
#include "storage/browser/blob/blob_storage_context.h"
#include "storage/browser/blob/blob_url_request_job_factory.h"
+#include "third_party/WebKit/public/platform/WebServiceWorkerResponseType.h"
namespace content {
@@ -40,6 +41,43 @@ const int kMaxCacheBytes = 512 * 1024 * 1024;
// Buffer size for cache and blob reading/writing.
const int kBufferSize = 1024 * 512;
+blink::WebServiceWorkerResponseType ProtoResponseTypeToWebResponseType(
+ ServiceWorkerRequestResponseHeaders_ResponseType response_type) {
+ switch (response_type) {
+ case ServiceWorkerRequestResponseHeaders_ResponseType_BASIC_TYPE:
+ return blink::WebServiceWorkerResponseTypeBasic;
+ case ServiceWorkerRequestResponseHeaders_ResponseType_CORS_TYPE:
+ return blink::WebServiceWorkerResponseTypeCORS;
+ case ServiceWorkerRequestResponseHeaders_ResponseType_DEFAULT_TYPE:
+ return blink::WebServiceWorkerResponseTypeDefault;
+ case ServiceWorkerRequestResponseHeaders_ResponseType_ERROR_TYPE:
+ return blink::WebServiceWorkerResponseTypeError;
+ case ServiceWorkerRequestResponseHeaders_ResponseType_OPAQUE_TYPE:
+ return blink::WebServiceWorkerResponseTypeOpaque;
+ }
+ NOTREACHED();
+ return blink::WebServiceWorkerResponseTypeOpaque;
+}
+
+ServiceWorkerRequestResponseHeaders_ResponseType
+WebResponseTypeToProtoResponseType(
+ blink::WebServiceWorkerResponseType response_type) {
+ switch (response_type) {
+ case blink::WebServiceWorkerResponseTypeBasic:
+ return ServiceWorkerRequestResponseHeaders_ResponseType_BASIC_TYPE;
+ case blink::WebServiceWorkerResponseTypeCORS:
+ return ServiceWorkerRequestResponseHeaders_ResponseType_CORS_TYPE;
+ case blink::WebServiceWorkerResponseTypeDefault:
+ return ServiceWorkerRequestResponseHeaders_ResponseType_DEFAULT_TYPE;
+ case blink::WebServiceWorkerResponseTypeError:
+ return ServiceWorkerRequestResponseHeaders_ResponseType_ERROR_TYPE;
+ case blink::WebServiceWorkerResponseTypeOpaque:
+ return ServiceWorkerRequestResponseHeaders_ResponseType_OPAQUE_TYPE;
+ }
+ NOTREACHED();
+ return ServiceWorkerRequestResponseHeaders_ResponseType_OPAQUE_TYPE;
+}
+
struct ResponseReadContext {
ResponseReadContext(scoped_refptr<net::IOBufferWithSize> buff,
scoped_refptr<storage::BlobData> blob)
@@ -265,9 +303,10 @@ void PutDidCreateEntry(scoped_ptr<PutContext> put_context, int rv) {
ServiceWorkerRequestResponseHeaders headers;
headers.set_method(put_context->request->method);
-
headers.set_status_code(put_context->response->status_code);
headers.set_status_text(put_context->response->status_text);
+ headers.set_response_type(
+ WebResponseTypeToProtoResponseType(put_context->response->response_type));
for (ServiceWorkerHeaderMap::const_iterator it =
put_context->request->headers.begin();
it != put_context->request->headers.end();
@@ -449,12 +488,13 @@ void MatchDidReadHeaderData(
return;
}
- scoped_ptr<ServiceWorkerResponse> response(
- new ServiceWorkerResponse(request->url,
- headers->status_code(),
- headers->status_text(),
- ServiceWorkerHeaderMap(),
- ""));
+ scoped_ptr<ServiceWorkerResponse> response(new ServiceWorkerResponse(
+ request->url,
+ headers->status_code(),
+ headers->status_text(),
+ ProtoResponseTypeToWebResponseType(headers->response_type()),
+ ServiceWorkerHeaderMap(),
+ ""));
for (int i = 0; i < headers->response_headers_size(); ++i) {
const ServiceWorkerRequestResponseHeaders::HeaderMap header =

Powered by Google App Engine
This is Rietveld 408576698