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 #include "modules/presentation/PresentationConnection.h" | 5 #include "modules/presentation/PresentationConnection.h" |
6 | 6 |
7 #include "bindings/core/v8/ScriptPromiseResolver.h" | 7 #include "bindings/core/v8/ScriptPromiseResolver.h" |
8 #include "core/dom/DOMArrayBuffer.h" | 8 #include "core/dom/DOMArrayBuffer.h" |
9 #include "core/dom/DOMArrayBufferView.h" | 9 #include "core/dom/DOMArrayBufferView.h" |
10 #include "core/dom/Document.h" | 10 #include "core/dom/Document.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 MessageType type; | 116 MessageType type; |
117 String text; | 117 String text; |
118 Member<DOMArrayBuffer> arrayBuffer; | 118 Member<DOMArrayBuffer> arrayBuffer; |
119 RefPtr<BlobDataHandle> blobDataHandle; | 119 RefPtr<BlobDataHandle> blobDataHandle; |
120 }; | 120 }; |
121 | 121 |
122 class PresentationConnection::BlobLoader final : public GarbageCollectedFinalize
d<PresentationConnection::BlobLoader>, public FileReaderLoaderClient { | 122 class PresentationConnection::BlobLoader final : public GarbageCollectedFinalize
d<PresentationConnection::BlobLoader>, public FileReaderLoaderClient { |
123 public: | 123 public: |
124 BlobLoader(PassRefPtr<BlobDataHandle> blobDataHandle, PresentationConnection
* PresentationConnection) | 124 BlobLoader(PassRefPtr<BlobDataHandle> blobDataHandle, PresentationConnection
* PresentationConnection) |
125 : m_PresentationConnection(PresentationConnection) | 125 : m_PresentationConnection(PresentationConnection) |
126 , m_loader(FileReaderLoader::ReadAsArrayBuffer, this) | 126 , m_loader(FileReaderLoader::create(FileReaderLoader::ReadAsArrayBuffer,
this)) |
127 { | 127 { |
128 m_loader.start(m_PresentationConnection->getExecutionContext(), blobData
Handle); | 128 m_loader->start(m_PresentationConnection->getExecutionContext(), blobDat
aHandle); |
129 } | 129 } |
130 ~BlobLoader() override { } | 130 ~BlobLoader() override { } |
131 | 131 |
132 // FileReaderLoaderClient functions. | 132 // FileReaderLoaderClient functions. |
133 void didStartLoading() override { } | 133 void didStartLoading() override { } |
134 void didReceiveData() override { } | 134 void didReceiveData() override { } |
135 void didFinishLoading() override | 135 void didFinishLoading() override |
136 { | 136 { |
137 m_PresentationConnection->didFinishLoadingBlob(m_loader.arrayBufferResul
t()); | 137 m_PresentationConnection->didFinishLoadingBlob(m_loader->arrayBufferResu
lt()); |
138 } | 138 } |
139 void didFail(FileError::ErrorCode errorCode) override | 139 void didFail(FileError::ErrorCode errorCode) override |
140 { | 140 { |
141 m_PresentationConnection->didFailLoadingBlob(errorCode); | 141 m_PresentationConnection->didFailLoadingBlob(errorCode); |
142 } | 142 } |
143 | 143 |
144 void cancel() | 144 void cancel() |
145 { | 145 { |
146 m_loader.cancel(); | 146 m_loader->cancel(); |
147 } | 147 } |
148 | 148 |
149 DEFINE_INLINE_TRACE() | 149 DEFINE_INLINE_TRACE() |
150 { | 150 { |
151 visitor->trace(m_PresentationConnection); | 151 visitor->trace(m_PresentationConnection); |
152 } | 152 } |
153 | 153 |
154 private: | 154 private: |
155 Member<PresentationConnection> m_PresentationConnection; | 155 Member<PresentationConnection> m_PresentationConnection; |
156 FileReaderLoader m_loader; | 156 std::unique_ptr<FileReaderLoader> m_loader; |
157 }; | 157 }; |
158 | 158 |
159 PresentationConnection::PresentationConnection(LocalFrame* frame, const String&
id, const String& url) | 159 PresentationConnection::PresentationConnection(LocalFrame* frame, const String&
id, const String& url) |
160 : DOMWindowProperty(frame) | 160 : DOMWindowProperty(frame) |
161 , m_id(id) | 161 , m_id(id) |
162 , m_url(url) | 162 , m_url(url) |
163 , m_state(WebPresentationConnectionState::Connected) | 163 , m_state(WebPresentationConnectionState::Connected) |
164 , m_binaryType(BinaryTypeBlob) | 164 , m_binaryType(BinaryTypeBlob) |
165 { | 165 { |
166 } | 166 } |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 { | 453 { |
454 // Cancel current Blob loading if any. | 454 // Cancel current Blob loading if any. |
455 if (m_blobLoader) { | 455 if (m_blobLoader) { |
456 m_blobLoader->cancel(); | 456 m_blobLoader->cancel(); |
457 m_blobLoader.clear(); | 457 m_blobLoader.clear(); |
458 } | 458 } |
459 m_messages.clear(); | 459 m_messages.clear(); |
460 } | 460 } |
461 | 461 |
462 } // namespace blink | 462 } // namespace blink |
OLD | NEW |