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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/FetchDataLoader.h

Issue 2292763002: [Fetch API] Implement Request.formData and Response.formData. (Closed)
Patch Set: More global-interface-listing*-expected.txt, urlencoded-parser-expected.txt Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 FetchDataLoader_h 5 #ifndef FetchDataLoader_h
6 #define FetchDataLoader_h 6 #define FetchDataLoader_h
7 7
8 #include "core/dom/DOMArrayBuffer.h" 8 #include "core/dom/DOMArrayBuffer.h"
9 #include "core/streams/Stream.h" 9 #include "core/streams/Stream.h"
10 #include "modules/ModulesExport.h" 10 #include "modules/ModulesExport.h"
11 #include "mojo/public/cpp/system/data_pipe.h" 11 #include "mojo/public/cpp/system/data_pipe.h"
12 #include "platform/blob/BlobData.h" 12 #include "platform/blob/BlobData.h"
13 #include "platform/heap/Handle.h" 13 #include "platform/heap/Handle.h"
14 #include "platform/wtf/Forward.h" 14 #include "platform/wtf/Forward.h"
15 15
16 namespace blink { 16 namespace blink {
17 17
18 class BytesConsumer; 18 class BytesConsumer;
19 class FormData;
19 20
20 // FetchDataLoader subclasses 21 // FetchDataLoader subclasses
21 // 1. take a BytesConsumer, 22 // 1. take a BytesConsumer,
22 // 2. read all data, and 23 // 2. read all data, and
23 // 3. call either didFetchDataLoaded...() on success or 24 // 3. call either didFetchDataLoaded...() on success or
24 // difFetchDataLoadFailed() otherwise 25 // difFetchDataLoadFailed() otherwise
25 // on the thread where FetchDataLoader is created. 26 // on the thread where FetchDataLoader is created.
26 // 27 //
27 // - Client's methods can be called synchronously in start(). 28 // - Client's methods can be called synchronously in start().
28 // - If FetchDataLoader::cancel() is called, Client's methods will not be 29 // - If FetchDataLoader::cancel() is called, Client's methods will not be
29 // called anymore. 30 // called anymore.
30 class MODULES_EXPORT FetchDataLoader 31 class MODULES_EXPORT FetchDataLoader
31 : public GarbageCollectedFinalized<FetchDataLoader> { 32 : public GarbageCollectedFinalized<FetchDataLoader> {
32 public: 33 public:
33 class MODULES_EXPORT Client : public GarbageCollectedMixin { 34 class MODULES_EXPORT Client : public GarbageCollectedMixin {
34 public: 35 public:
35 virtual ~Client() {} 36 virtual ~Client() {}
36 37
37 // The method corresponding to createLoaderAs... is called on success. 38 // The method corresponding to createLoaderAs... is called on success.
38 virtual void DidFetchDataLoadedBlobHandle(PassRefPtr<BlobDataHandle>) { 39 virtual void DidFetchDataLoadedBlobHandle(PassRefPtr<BlobDataHandle>) {
39 NOTREACHED(); 40 NOTREACHED();
40 } 41 }
41 virtual void DidFetchDataLoadedArrayBuffer(DOMArrayBuffer*) { 42 virtual void DidFetchDataLoadedArrayBuffer(DOMArrayBuffer*) {
42 NOTREACHED(); 43 NOTREACHED();
43 } 44 }
45 virtual void DidFetchDataLoadedFormData(FormData*) { NOTREACHED(); }
44 virtual void DidFetchDataLoadedString(const String&) { NOTREACHED(); } 46 virtual void DidFetchDataLoadedString(const String&) { NOTREACHED(); }
45 // This is called after all data are read from |handle| and written 47 // This is called after all data are read from |handle| and written
46 // to |out_data_pipe|, and |out_data_pipe| is closed or aborted. 48 // to |out_data_pipe|, and |out_data_pipe| is closed or aborted.
47 virtual void DidFetchDataLoadedDataPipe() { NOTREACHED(); } 49 virtual void DidFetchDataLoadedDataPipe() { NOTREACHED(); }
48 50
49 // This function is called when a "custom" FetchDataLoader (none of the 51 // This function is called when a "custom" FetchDataLoader (none of the
50 // ones listed above) finishes loading. 52 // ones listed above) finishes loading.
51 virtual void DidFetchDataLoadedCustomFormat() { NOTREACHED(); } 53 virtual void DidFetchDataLoadedCustomFormat() { NOTREACHED(); }
52 54
53 virtual void DidFetchDataLoadFailed() = 0; 55 virtual void DidFetchDataLoadFailed() = 0;
54 56
55 DEFINE_INLINE_VIRTUAL_TRACE() {} 57 DEFINE_INLINE_VIRTUAL_TRACE() {}
56 }; 58 };
57 59
58 static FetchDataLoader* CreateLoaderAsBlobHandle(const String& mime_type); 60 static FetchDataLoader* CreateLoaderAsBlobHandle(const String& mime_type);
59 static FetchDataLoader* CreateLoaderAsArrayBuffer(); 61 static FetchDataLoader* CreateLoaderAsArrayBuffer();
62 static FetchDataLoader* CreateLoaderAsFailure();
63 static FetchDataLoader* CreateLoaderAsFormData(
64 const String& multipart_boundary);
60 static FetchDataLoader* CreateLoaderAsString(); 65 static FetchDataLoader* CreateLoaderAsString();
61 static FetchDataLoader* CreateLoaderAsDataPipe( 66 static FetchDataLoader* CreateLoaderAsDataPipe(
62 mojo::ScopedDataPipeProducerHandle out_data_pipe); 67 mojo::ScopedDataPipeProducerHandle out_data_pipe);
63 68
64 virtual ~FetchDataLoader() {} 69 virtual ~FetchDataLoader() {}
65 70
66 // |consumer| must not have a client when called. 71 // |consumer| must not have a client when called.
67 virtual void Start(BytesConsumer* /* consumer */, Client*) = 0; 72 virtual void Start(BytesConsumer* /* consumer */, Client*) = 0;
68 73
69 virtual void Cancel() = 0; 74 virtual void Cancel() = 0;
70 75
71 DEFINE_INLINE_VIRTUAL_TRACE() {} 76 DEFINE_INLINE_VIRTUAL_TRACE() {}
72 }; 77 };
73 78
74 } // namespace blink 79 } // namespace blink
75 80
76 #endif // FetchDataLoader_h 81 #endif // FetchDataLoader_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698