OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> | 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> |
4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
5 Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 5 Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
6 | 6 |
7 This library is free software; you can redistribute it and/or | 7 This library is free software; you can redistribute it and/or |
8 modify it under the terms of the GNU Library General Public | 8 modify it under the terms of the GNU Library General Public |
9 License as published by the Free Software Foundation; either | 9 License as published by the Free Software Foundation; either |
10 version 2 of the License, or (at your option) any later version. | 10 version 2 of the License, or (at your option) any later version. |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 Resource::Type type = resource.getType(); | 95 Resource::Type type = resource.getType(); |
96 return type == Resource::MainResource || type == Resource::Raw || type == Re
source::TextTrack || type == Resource::Media || type == Resource::Manifest || ty
pe == Resource::ImportResource; | 96 return type == Resource::MainResource || type == Resource::Raw || type == Re
source::TextTrack || type == Resource::Media || type == Resource::Manifest || ty
pe == Resource::ImportResource; |
97 } | 97 } |
98 #endif | 98 #endif |
99 inline RawResource* toRawResource(Resource* resource) | 99 inline RawResource* toRawResource(Resource* resource) |
100 { | 100 { |
101 ASSERT_WITH_SECURITY_IMPLICATION(!resource || isRawResource(*resource)); | 101 ASSERT_WITH_SECURITY_IMPLICATION(!resource || isRawResource(*resource)); |
102 return static_cast<RawResource*>(resource); | 102 return static_cast<RawResource*>(resource); |
103 } | 103 } |
104 | 104 |
105 class CORE_EXPORT RawResourceClient : public GarbageCollectedMixin, public Resou
rceClient { | 105 class CORE_EXPORT RawResourceClient : public ResourceClient { |
106 public: | 106 public: |
107 static bool isExpectedType(ResourceClient* client) { return client->getResou
rceClientType() == RawResourceType; } | 107 static bool isExpectedType(ResourceClient* client) { return client->getResou
rceClientType() == RawResourceType; } |
108 ResourceClientType getResourceClientType() const final { return RawResourceT
ype; } | 108 ResourceClientType getResourceClientType() const final { return RawResourceT
ype; } |
109 | 109 |
110 // The order of the callbacks is as follows: | 110 // The order of the callbacks is as follows: |
111 // [Case 1] A successful load: | 111 // [Case 1] A successful load: |
112 // 0+ redirectReceived() and/or dataSent() | 112 // 0+ redirectReceived() and/or dataSent() |
113 // 1 responseReceived() | 113 // 1 responseReceived() |
114 // 0-1 setSerializedCachedMetadata() | 114 // 0-1 setSerializedCachedMetadata() |
115 // 0+ dataReceived() or dataDownloaded(), but never both | 115 // 0+ dataReceived() or dataDownloaded(), but never both |
116 // 1 notifyFinished() with errorOccurred() = false | 116 // 1 notifyFinished() with errorOccurred() = false |
117 // [Case 2] When redirect is blocked: | 117 // [Case 2] When redirect is blocked: |
118 // 0+ redirectReceived() and/or dataSent() | 118 // 0+ redirectReceived() and/or dataSent() |
119 // 1 redirectBlocked() | 119 // 1 redirectBlocked() |
120 // 1 notifyFinished() with errorOccurred() = true | 120 // 1 notifyFinished() with errorOccurred() = true |
121 // [Case 3] Other failures: | 121 // [Case 3] Other failures: |
122 // notifyFinished() with errorOccurred() = true is called at any time | 122 // notifyFinished() with errorOccurred() = true is called at any time |
123 // (unless notifyFinished() is already called). | 123 // (unless notifyFinished() is already called). |
124 // In all cases: | 124 // In all cases: |
125 // No callbacks are made after notifyFinished() or | 125 // No callbacks are made after notifyFinished() or |
126 // removeClient() is called. | 126 // removeClient() is called. |
127 virtual void dataSent(Resource*, unsigned long long /* bytesSent */, unsigne
d long long /* totalBytesToBeSent */) { } | 127 virtual void dataSent(Resource*, unsigned long long /* bytesSent */, unsigne
d long long /* totalBytesToBeSent */) { } |
128 virtual void responseReceived(Resource*, const ResourceResponse&, std::uniqu
e_ptr<WebDataConsumerHandle>) { } | 128 virtual void responseReceived(Resource*, const ResourceResponse&, std::uniqu
e_ptr<WebDataConsumerHandle>) { } |
129 virtual void setSerializedCachedMetadata(Resource*, const char*, size_t) { } | 129 virtual void setSerializedCachedMetadata(Resource*, const char*, size_t) { } |
130 virtual void dataReceived(Resource*, const char* /* data */, size_t /* lengt
h */) { } | 130 virtual void dataReceived(Resource*, const char* /* data */, size_t /* lengt
h */) { } |
131 virtual void redirectReceived(Resource*, ResourceRequest&, const ResourceRes
ponse&) { } | 131 virtual void redirectReceived(Resource*, ResourceRequest&, const ResourceRes
ponse&) { } |
132 virtual void redirectBlocked() {} | 132 virtual void redirectBlocked() {} |
133 virtual void dataDownloaded(Resource*, int) { } | 133 virtual void dataDownloaded(Resource*, int) { } |
134 virtual void didReceiveResourceTiming(Resource*, const ResourceTimingInfo&)
{ } | 134 virtual void didReceiveResourceTiming(Resource*, const ResourceTimingInfo&)
{ } |
135 | |
136 DEFINE_INLINE_VIRTUAL_TRACE() {} | |
137 }; | 135 }; |
138 | 136 |
139 // Checks the sequence of callbacks of RawResourceClient. | 137 // Checks the sequence of callbacks of RawResourceClient. |
140 // This can be used only when a RawResourceClient is added as a client to | 138 // This can be used only when a RawResourceClient is added as a client to |
141 // at most one RawResource. | 139 // at most one RawResource. |
142 class CORE_EXPORT RawResourceClientStateChecker final { | 140 class CORE_EXPORT RawResourceClientStateChecker final { |
143 public: | 141 public: |
144 RawResourceClientStateChecker(); | 142 RawResourceClientStateChecker(); |
145 ~RawResourceClientStateChecker(); | 143 ~RawResourceClientStateChecker(); |
146 | 144 |
(...skipping 22 matching lines...) Expand all Loading... |
169 DataReceived, | 167 DataReceived, |
170 DataDownloaded, | 168 DataDownloaded, |
171 NotifyFinished | 169 NotifyFinished |
172 }; | 170 }; |
173 State m_state; | 171 State m_state; |
174 }; | 172 }; |
175 | 173 |
176 } // namespace blink | 174 } // namespace blink |
177 | 175 |
178 #endif // RawResource_h | 176 #endif // RawResource_h |
OLD | NEW |