Chromium Code Reviews| 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()); |
| } |