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

Side by Side Diff: Source/modules/fetch/Headers.h

Issue 848673002: Add keys(), values() and entries() methods on iterable<> interfaces (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « Source/core/testing/Internals.cpp ('k') | Source/modules/fetch/Headers.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 Headers_h 5 #ifndef Headers_h
6 #define Headers_h 6 #define Headers_h
7 7
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "bindings/core/v8/ScriptWrappable.h" 9 #include "bindings/core/v8/ScriptWrappable.h"
10 #include "core/dom/Iterable.h"
10 #include "modules/fetch/FetchHeaderList.h" 11 #include "modules/fetch/FetchHeaderList.h"
11 #include "wtf/Forward.h" 12 #include "wtf/Forward.h"
12 #include "wtf/PassOwnPtr.h" 13 #include "wtf/PassOwnPtr.h"
13 14
14 namespace blink { 15 namespace blink {
15 16
16 class Dictionary; 17 class Dictionary;
17 class ExceptionState; 18 class ExceptionState;
18 class Iterator; 19 class Iterator;
19 20
20 // http://fetch.spec.whatwg.org/#headers-class 21 // http://fetch.spec.whatwg.org/#headers-class
21 class Headers final : public GarbageCollected<Headers>, public ScriptWrappable { 22 class Headers final : public GarbageCollectedFinalized<Headers>, public ScriptWr appable, public PairIterable<String, String> {
22 DEFINE_WRAPPERTYPEINFO(); 23 DEFINE_WRAPPERTYPEINFO();
23 public: 24 public:
24 enum Guard { ImmutableGuard, RequestGuard, RequestNoCORSGuard, ResponseGuard , NoneGuard }; 25 enum Guard { ImmutableGuard, RequestGuard, RequestNoCORSGuard, ResponseGuard , NoneGuard };
25 26
26 static Headers* create(); 27 static Headers* create();
27 static Headers* create(ExceptionState&); 28 static Headers* create(ExceptionState&);
28 static Headers* create(const Headers*, ExceptionState&); 29 static Headers* create(const Headers*, ExceptionState&);
29 static Headers* create(const Vector<Vector<String> >&, ExceptionState&); 30 static Headers* create(const Vector<Vector<String> >&, ExceptionState&);
30 static Headers* create(const Dictionary&, ExceptionState&); 31 static Headers* create(const Dictionary&, ExceptionState&);
31 32
32 // Shares the FetchHeaderList. Called when creating a Request or Response. 33 // Shares the FetchHeaderList. Called when creating a Request or Response.
33 static Headers* create(FetchHeaderList*); 34 static Headers* create(FetchHeaderList*);
34 35
35 Headers* createCopy() const; 36 Headers* createCopy() const;
36 37
37 // Headers.idl implementation. 38 // Headers.idl implementation.
38 void append(const String& name, const String& value, ExceptionState&); 39 void append(const String& name, const String& value, ExceptionState&);
39 void remove(const String& key, ExceptionState&); 40 void remove(const String& key, ExceptionState&);
40 String get(const String& key, ExceptionState&); 41 String get(const String& key, ExceptionState&);
41 Vector<String> getAll(const String& key, ExceptionState&); 42 Vector<String> getAll(const String& key, ExceptionState&);
42 bool has(const String& key, ExceptionState&); 43 bool has(const String& key, ExceptionState&);
43 void set(const String& key, const String& value, ExceptionState&); 44 void set(const String& key, const String& value, ExceptionState&);
44 45
45 // iterable<ByteString, ByteString>
46 Iterator* iterator(ScriptState*, ExceptionState&);
47
48 void setGuard(Guard guard) { m_guard = guard; } 46 void setGuard(Guard guard) { m_guard = guard; }
49 Guard guard() const { return m_guard; } 47 Guard guard() const { return m_guard; }
50 48
51 // These methods should only be called when size() would return 0. 49 // These methods should only be called when size() would return 0.
52 void fillWith(const Headers*, ExceptionState&); 50 void fillWith(const Headers*, ExceptionState&);
53 void fillWith(const Vector<Vector<String> >&, ExceptionState&); 51 void fillWith(const Vector<Vector<String> >&, ExceptionState&);
54 void fillWith(const Dictionary&, ExceptionState&); 52 void fillWith(const Dictionary&, ExceptionState&);
55 53
56 FetchHeaderList* headerList() const { return m_headerList; } 54 FetchHeaderList* headerList() const { return m_headerList; }
57 void trace(Visitor*); 55 void trace(Visitor*);
58 56
59 private: 57 private:
60 Headers(); 58 Headers();
61 // Shares the FetchHeaderList. Called when creating a Request or Response. 59 // Shares the FetchHeaderList. Called when creating a Request or Response.
62 explicit Headers(FetchHeaderList*); 60 explicit Headers(FetchHeaderList*);
63 61
64 Member<FetchHeaderList> m_headerList; 62 Member<FetchHeaderList> m_headerList;
65 Guard m_guard; 63 Guard m_guard;
64
65 IterationSource* startIteration(ScriptState*, ExceptionState&) override;
66 }; 66 };
67 67
68 } // namespace blink 68 } // namespace blink
69 69
70 #endif // Headers_h 70 #endif // Headers_h
OLDNEW
« no previous file with comments | « Source/core/testing/Internals.cpp ('k') | Source/modules/fetch/Headers.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698