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

Unified Diff: third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp

Issue 1964183004: Revert of Move DOMArrayBuffer, DOMArrayBufferViews and DataView to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp b/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
index 0bd16cc977916ae94c57afae27f0f6b822450f8f..84da834a16b44a23eb366b73c8dcb26d9ad102c6 100644
--- a/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
+++ b/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
@@ -88,37 +88,6 @@
} // namespace
-class PresentationConnection::Message final : public GarbageCollectedFinalized<PresentationConnection::Message> {
-public:
- Message(const String& text)
- : type(MessageTypeText)
- , text(text)
- {
- }
-
- Message(DOMArrayBuffer* arrayBuffer)
- : type(MessageTypeArrayBuffer)
- , arrayBuffer(arrayBuffer)
- {
- }
-
- Message(PassRefPtr<BlobDataHandle> blobDataHandle)
- : type(MessageTypeBlob)
- , blobDataHandle(blobDataHandle)
- {
- }
-
- DEFINE_INLINE_TRACE()
- {
- visitor->trace(arrayBuffer);
- }
-
- MessageType type;
- String text;
- Member<DOMArrayBuffer> arrayBuffer;
- RefPtr<BlobDataHandle> blobDataHandle;
-};
-
class PresentationConnection::BlobLoader final : public GarbageCollectedFinalized<PresentationConnection::BlobLoader>, public FileReaderLoaderClient {
public:
BlobLoader(PassRefPtr<BlobDataHandle> blobDataHandle, PresentationConnection* PresentationConnection)
@@ -233,7 +202,6 @@
DEFINE_TRACE(PresentationConnection)
{
visitor->trace(m_blobLoader);
- visitor->trace(m_messages);
RefCountedGarbageCollectedEventTargetWithInlineData<PresentationConnection>::trace(visitor);
DOMWindowProperty::trace(visitor);
}
@@ -248,27 +216,27 @@
if (!canSendMessage(exceptionState))
return;
- m_messages.append(new Message(message));
- handleMessageQueue();
-}
-
-void PresentationConnection::send(DOMArrayBuffer* arrayBuffer, ExceptionState& exceptionState)
+ m_messages.append(adoptPtr(new Message(message)));
+ handleMessageQueue();
+}
+
+void PresentationConnection::send(PassRefPtr<DOMArrayBuffer> arrayBuffer, ExceptionState& exceptionState)
{
ASSERT(arrayBuffer && arrayBuffer->buffer());
if (!canSendMessage(exceptionState))
return;
- m_messages.append(new Message(arrayBuffer));
- handleMessageQueue();
-}
-
-void PresentationConnection::send(DOMArrayBufferView* arrayBufferView, ExceptionState& exceptionState)
+ m_messages.append(adoptPtr(new Message(arrayBuffer)));
+ handleMessageQueue();
+}
+
+void PresentationConnection::send(PassRefPtr<DOMArrayBufferView> arrayBufferView, ExceptionState& exceptionState)
{
ASSERT(arrayBufferView);
if (!canSendMessage(exceptionState))
return;
- m_messages.append(new Message(arrayBufferView->buffer()));
+ m_messages.append(adoptPtr(new Message(arrayBufferView->buffer())));
handleMessageQueue();
}
@@ -278,7 +246,7 @@
if (!canSendMessage(exceptionState))
return;
- m_messages.append(new Message(data->blobDataHandle()));
+ m_messages.append(adoptPtr(new Message(data->blobDataHandle())));
handleMessageQueue();
}
@@ -365,8 +333,8 @@
return;
}
case BinaryTypeArrayBuffer:
- DOMArrayBuffer* buffer = DOMArrayBuffer::create(data, length);
- dispatchEvent(MessageEvent::create(buffer));
+ RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(data, length);
+ dispatchEvent(MessageEvent::create(buffer.release()));
return;
}
ASSERT_NOT_REACHED();
@@ -429,7 +397,7 @@
dispatchEvent(PresentationConnectionCloseEvent::create(EventTypeNames::close, connectionCloseReasonToString(reason), message));
}
-void PresentationConnection::didFinishLoadingBlob(DOMArrayBuffer* buffer)
+void PresentationConnection::didFinishLoadingBlob(PassRefPtr<DOMArrayBuffer> buffer)
{
ASSERT(!m_messages.isEmpty() && m_messages.first()->type == MessageTypeBlob);
ASSERT(buffer && buffer->buffer());
@@ -460,7 +428,10 @@
m_blobLoader->cancel();
m_blobLoader.clear();
}
- m_messages.clear();
+
+ // Clear message queue.
+ Deque<OwnPtr<Message>> empty;
+ m_messages.swap(empty);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698