| Index: Source/modules/serviceworkers/Response.h | 
| diff --git a/Source/modules/serviceworkers/Response.h b/Source/modules/serviceworkers/Response.h | 
| index 7bccea39ce2c856f21fa419b84b6ec4207d46767..c60af9b1c6c9a55d8deba27e034a19bb7517ff80 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,18 @@ public: | 
|  | 
| void populateWebServiceWorkerResponse(WebServiceWorkerResponse&); | 
|  | 
| -    bool hasBody() const { return m_response->blobDataHandle(); } | 
| +    bool hasBody(bool /* internal */) const; | 
| + | 
| +    PassRefPtr<BlobDataHandle> blobDataHandle(bool /* internal */) const override; | 
| +    BodyStreamBuffer* buffer(bool /* internal */) const override; | 
|  | 
| -    virtual void trace(Visitor*) override; | 
| +    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; | 
| }; | 
|  |