| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef Response_h | 5 #ifndef Response_h | 
| 6 #define Response_h | 6 #define Response_h | 
| 7 | 7 | 
| 8 #include "bindings/core/v8/Dictionary.h" | 8 #include "bindings/core/v8/Dictionary.h" | 
| 9 #include "bindings/core/v8/ScriptWrappable.h" | 9 #include "bindings/core/v8/ScriptWrappable.h" | 
| 10 #include "bindings/modules/v8/UnionTypesModules.h" | 10 #include "bindings/modules/v8/UnionTypesModules.h" | 
| 11 #include "modules/serviceworkers/Body.h" | 11 #include "modules/serviceworkers/Body.h" | 
| 12 #include "modules/serviceworkers/FetchResponseData.h" | 12 #include "modules/serviceworkers/FetchResponseData.h" | 
| 13 #include "modules/serviceworkers/Headers.h" | 13 #include "modules/serviceworkers/Headers.h" | 
| 14 #include "platform/blob/BlobData.h" | 14 #include "platform/blob/BlobData.h" | 
| 15 #include "platform/heap/Handle.h" | 15 #include "platform/heap/Handle.h" | 
| 16 | 16 | 
| 17 namespace blink { | 17 namespace blink { | 
| 18 | 18 | 
| 19 class Blob; | 19 class Blob; | 
|  | 20 class BodyStreamBuffer; | 
| 20 class DOMArrayBuffer; | 21 class DOMArrayBuffer; | 
| 21 class DOMArrayBufferView; | 22 class DOMArrayBufferView; | 
| 22 class ExceptionState; | 23 class ExceptionState; | 
| 23 class ResponseInit; | 24 class ResponseInit; | 
| 24 class WebServiceWorkerResponse; | 25 class WebServiceWorkerResponse; | 
| 25 | 26 | 
| 26 typedef BlobOrArrayBufferOrArrayBufferViewOrUSVString BodyInit; | 27 typedef BlobOrArrayBufferOrArrayBufferViewOrUSVString BodyInit; | 
| 27 | 28 | 
| 28 class Response final : public Body { | 29 class Response final : public Body { | 
| 29     DEFINE_WRAPPERTYPEINFO(); | 30     DEFINE_WRAPPERTYPEINFO(); | 
| 30 public: | 31 public: | 
| 31     virtual ~Response() { } | 32     ~Response() override { } | 
| 32 | 33 | 
| 33     // From Response.idl: | 34     // From Response.idl: | 
| 34     static Response* create(ExecutionContext*, ExceptionState&); | 35     static Response* create(ExecutionContext*, ExceptionState&); | 
| 35     static Response* create(ExecutionContext*, const BodyInit&, const Dictionary
    &, ExceptionState&); | 36     static Response* create(ExecutionContext*, const BodyInit&, const Dictionary
    &, ExceptionState&); | 
| 36 | 37 | 
| 37     static Response* create(ExecutionContext*, Blob*, const ResponseInit&, Excep
    tionState&); | 38     static Response* create(ExecutionContext*, Blob*, const ResponseInit&, Excep
    tionState&); | 
| 38     static Response* create(ExecutionContext*, FetchResponseData*); | 39     static Response* create(ExecutionContext*, FetchResponseData*); | 
| 39     static Response* create(ExecutionContext*, const WebServiceWorkerResponse&); | 40     static Response* create(ExecutionContext*, const WebServiceWorkerResponse&); | 
| 40     // The 'FetchResponseData' object is shared between responses, as it is | 41 | 
| 41     // immutable to the user after Response creation. Headers are copied. | 42     static Response* createClone(const Response&); | 
| 42     static Response* create(const Response&); |  | 
| 43 | 43 | 
| 44     const FetchResponseData* response() const { return m_response; } | 44     const FetchResponseData* response() const { return m_response; } | 
| 45 | 45 | 
| 46     // From Response.idl: | 46     // From Response.idl: | 
| 47     String type() const; | 47     String type() const; | 
| 48     String url() const; | 48     String url() const; | 
| 49     unsigned short status() const; | 49     unsigned short status() const; | 
| 50     String statusText() const; | 50     String statusText() const; | 
| 51     Headers* headers() const; | 51     Headers* headers() const; | 
| 52 | 52 | 
| 53     // From Response.idl: | 53     // From Response.idl: | 
| 54     Response* clone(ExceptionState&) const; | 54     Response* clone(ExceptionState&) const; | 
| 55 | 55 | 
| 56     void populateWebServiceWorkerResponse(WebServiceWorkerResponse&); | 56     void populateWebServiceWorkerResponse(WebServiceWorkerResponse&); | 
| 57 | 57 | 
| 58     bool hasBody() const { return m_response->blobDataHandle(); } | 58     bool hasBody() const; | 
| 59 | 59 | 
| 60     virtual void trace(Visitor*) override; | 60     PassRefPtr<BlobDataHandle> blobDataHandle() const override; | 
|  | 61     BodyStreamBuffer* buffer() const override; | 
|  | 62     String contentType() const override; | 
|  | 63     PassRefPtr<BlobDataHandle> internalBlobDataHandle() const; | 
|  | 64     BodyStreamBuffer* internalBuffer() const; | 
|  | 65     String internalContentType() const; | 
|  | 66 | 
|  | 67     void trace(Visitor*) override; | 
| 61 | 68 | 
| 62 private: | 69 private: | 
| 63     explicit Response(const Response&); | 70     explicit Response(const Response&); | 
| 64     explicit Response(ExecutionContext*); | 71     explicit Response(ExecutionContext*); | 
| 65     Response(ExecutionContext*, FetchResponseData*); | 72     Response(ExecutionContext*, FetchResponseData*); | 
| 66 | 73 | 
| 67     virtual PassRefPtr<BlobDataHandle> blobDataHandle() override; |  | 
| 68 |  | 
| 69     const Member<FetchResponseData> m_response; | 74     const Member<FetchResponseData> m_response; | 
| 70     const Member<Headers> m_headers; | 75     const Member<Headers> m_headers; | 
| 71 }; | 76 }; | 
| 72 | 77 | 
| 73 } // namespace blink | 78 } // namespace blink | 
| 74 | 79 | 
| 75 #endif // Response_h | 80 #endif // Response_h | 
| OLD | NEW | 
|---|