Chromium Code Reviews| 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( |
|
jochen (gone - plz use gerrit)
2014/10/02 07:35:28
can you use the assert matching enums macro and ju
jkarlin
2014/10/02 13:34:29
After chat discussion with jochen@ it was clarifie
|
| + 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 = |