Index: content/renderer/presentation/presentation_dispatcher.cc |
diff --git a/content/renderer/presentation/presentation_dispatcher.cc b/content/renderer/presentation/presentation_dispatcher.cc |
index 29f5047f0b57ec0639ff4d9765a2c645beb807f9..bee97c7d85bc19e465c5168bf19dc8f2b130b3e0 100644 |
--- a/content/renderer/presentation/presentation_dispatcher.cc |
+++ b/content/renderer/presentation/presentation_dispatcher.cc |
@@ -183,6 +183,35 @@ void PresentationDispatcher::sendArrayBuffer( |
} |
} |
+void PresentationDispatcher::sendBlobData( |
+ const blink::WebString& presentationUrl, |
+ const blink::WebString& presentationId, |
+ const uint8* data, |
+ size_t length) { |
+ DCHECK(data); |
imcheng (use chromium acct)
2015/05/18 18:24:48
This code looks mostly identical to sendArrayBuffe
USE s.singapati at gmail.com
2015/05/20 19:28:42
Done. Added helper method that returns new Session
|
+ if (length > kMaxPresentationSessionMessageSize) { |
+ // TODO(crbug.com/459008): Same as in sendString(). |
+ LOG(WARNING) << "data size exceeded limit!"; |
+ return; |
+ } |
+ |
+ const std::vector<uint8> vector(data, data + length); |
+ presentation::SessionMessage* session_message = |
+ new presentation::SessionMessage(); |
+ session_message->presentation_url = presentationUrl.utf8(); |
+ session_message->presentation_id = presentationId.utf8(); |
+ session_message->type = presentation::PresentationMessageType:: |
+ PRESENTATION_MESSAGE_TYPE_BLOB; |
+ session_message->data = mojo::Array<uint8>::From(vector); |
+ |
+ message_request_queue_.push(make_linked_ptr(session_message)); |
+ if (message_request_queue_.size() == 1) { |
+ const linked_ptr<presentation::SessionMessage>& request = |
+ message_request_queue_.front(); |
+ DoSendMessage(*request); |
+ } |
+} |
+ |
void PresentationDispatcher::DoSendMessage( |
const presentation::SessionMessage& session_message) { |
ConnectToPresentationServiceIfNeeded(); |
@@ -195,8 +224,8 @@ void PresentationDispatcher::DoSendMessage( |
if (session_message.type == presentation::PresentationMessageType:: |
PRESENTATION_MESSAGE_TYPE_TEXT) { |
message_request->message = session_message.message; |
- } else if (session_message.type == presentation::PresentationMessageType:: |
- PRESENTATION_MESSAGE_TYPE_ARRAY_BUFFER) { |
+ } else { |
+ // ArrayBuffer or Blob types. |
message_request->data = mojo::Array<uint8>::From( |
session_message.data.storage()); |
} |