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

Unified Diff: Source/modules/serviceworkers/Response.h

Issue 786893004: [ServiceWorker] Use BodyStreamBuffer as the body data of the Response object. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « Source/modules/serviceworkers/Request.cpp ('k') | Source/modules/serviceworkers/Response.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/serviceworkers/Response.h
diff --git a/Source/modules/serviceworkers/Response.h b/Source/modules/serviceworkers/Response.h
index 7bccea39ce2c856f21fa419b84b6ec4207d46767..0fc38e7e6d0569061c31419583c803fd07233449 100644
--- a/Source/modules/serviceworkers/Response.h
+++ b/Source/modules/serviceworkers/Response.h
@@ -17,6 +17,7 @@
namespace blink {
class Blob;
+class BodyStreamBuffer;
class DOMArrayBuffer;
class DOMArrayBufferView;
class ExceptionState;
@@ -28,7 +29,7 @@ typedef BlobOrArrayBufferOrArrayBufferViewOrUSVString BodyInit;
class Response final : public Body {
DEFINE_WRAPPERTYPEINFO();
public:
- virtual ~Response() { }
+ ~Response() override { }
// From Response.idl:
static Response* create(ExecutionContext*, ExceptionState&);
@@ -37,9 +38,8 @@ public:
static Response* create(ExecutionContext*, Blob*, const ResponseInit&, ExceptionState&);
static Response* create(ExecutionContext*, FetchResponseData*);
static Response* create(ExecutionContext*, const WebServiceWorkerResponse&);
- // The 'FetchResponseData' object is shared between responses, as it is
- // immutable to the user after Response creation. Headers are copied.
- static Response* create(const Response&);
+
+ static Response* createClone(const Response&);
const FetchResponseData* response() const { return m_response; }
@@ -55,17 +55,23 @@ public:
void populateWebServiceWorkerResponse(WebServiceWorkerResponse&);
- bool hasBody() const { return m_response->blobDataHandle(); }
+ bool hasBody() const;
+
+ PassRefPtr<BlobDataHandle> blobDataHandle() const override;
+ BodyStreamBuffer* buffer() const override;
+ String contentTypeForBuffer() const override;
- virtual void trace(Visitor*) override;
+ PassRefPtr<BlobDataHandle> internalBlobDataHandle() const;
+ BodyStreamBuffer* internalBuffer() const;
+ String internalContentTypeForBuffer() const;
+
+ void trace(Visitor*) override;
private:
explicit Response(const Response&);
explicit Response(ExecutionContext*);
Response(ExecutionContext*, FetchResponseData*);
- virtual PassRefPtr<BlobDataHandle> blobDataHandle() override;
-
const Member<FetchResponseData> m_response;
const Member<Headers> m_headers;
};
« no previous file with comments | « Source/modules/serviceworkers/Request.cpp ('k') | Source/modules/serviceworkers/Response.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698