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

Side by Side Diff: third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp

Issue 2193173002: Move ThreadableLoader to Oilpan heap (1/3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onheap-bridge-peer-in-worker-threadable-loader
Patch Set: rebase Created 4 years, 4 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 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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698