Index: Source/modules/presentation/PresentationSession.cpp |
diff --git a/Source/modules/presentation/PresentationSession.cpp b/Source/modules/presentation/PresentationSession.cpp |
index dc665e2de1d2b3cb544a6e93db4f90f33a80c907..3e5bc97418651a18b8b3b6af1f3707ca0c1c5d60 100644 |
--- a/Source/modules/presentation/PresentationSession.cpp |
+++ b/Source/modules/presentation/PresentationSession.cpp |
@@ -221,9 +221,35 @@ void PresentationSession::handleMessageQueue() |
void PresentationSession::didReceiveTextMessage(const String& message) |
{ |
+ if (m_state == WebPresentationSessionState::Disconnected) |
+ return; |
+ |
dispatchEvent(MessageEvent::create(message)); |
} |
+void PresentationSession::didReceiveArrayBufferMessage(const uint8_t* data, size_t length) |
+{ |
+ if (m_state == WebPresentationSessionState::Disconnected) |
+ return; |
+ |
+ RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(data, length); |
+ dispatchEvent(MessageEvent::create(buffer.release())); |
+} |
+ |
+void PresentationSession::didReceiveBlobMessage(const uint8_t* data, size_t length) |
+{ |
+ if (m_state == WebPresentationSessionState::Disconnected) |
+ return; |
+ |
+ RefPtr<RawData> rawData = RawData::create(); |
+ rawData->mutableData()->resize(length); |
+ memcpy(rawData->mutableData()->data(), data, length); |
mark a. foltz
2015/07/06 21:19:44
Can you just call BlobData::appendBytes(data, leng
USE s.singapati at gmail.com
2015/07/07 15:00:32
Done. Manual tested.
|
+ OwnPtr<BlobData> blobData = BlobData::create(); |
+ blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile); |
+ Blob* blob = Blob::create(BlobDataHandle::create(blobData.release(), length)); |
+ dispatchEvent(MessageEvent::create(blob)); |
+} |
+ |
void PresentationSession::close() |
{ |
if (m_state != WebPresentationSessionState::Connected) |