Index: content/renderer/presentation/presentation_dispatcher.cc |
diff --git a/content/renderer/presentation/presentation_dispatcher.cc b/content/renderer/presentation/presentation_dispatcher.cc |
index 8100c03b94ed8b117aa243379d37bd18328ef2eb..8e0dd1d16550c36498924c276de1da5a9ed4db3d 100644 |
--- a/content/renderer/presentation/presentation_dispatcher.cc |
+++ b/content/renderer/presentation/presentation_dispatcher.cc |
@@ -369,14 +369,35 @@ void PresentationDispatcher::OnSessionMessagesReceived( |
return; |
for (size_t i = 0; i < messages.size(); ++i) { |
- if (messages[i]->type == |
- presentation::PresentationMessageType::PRESENTATION_MESSAGE_TYPE_TEXT) { |
- controller_->didReceiveSessionTextMessage( |
- new PresentationSessionClient(messages[i]->presentation_url, |
- messages[i]->presentation_id), |
- blink::WebString::fromUTF8(messages[i]->message)); |
- } else { |
- // TODO(haibinlu): handle binary message |
+ scoped_ptr<PresentationSessionClient> session_client( |
+ new PresentationSessionClient(messages[i]->presentation_url, |
mark a. foltz
2015/06/29 22:21:28
It appears that this ctor will copy the contents o
|
+ messages[i]->presentation_id)); |
+ switch (messages[i]->type) { |
+ case presentation::PresentationMessageType:: |
+ PRESENTATION_MESSAGE_TYPE_TEXT: { |
+ controller_->didReceiveSessionTextMessage( |
+ session_client.release(), |
+ blink::WebString::fromUTF8(messages[i]->message)); |
+ break; |
+ } |
+ case presentation::PresentationMessageType:: |
+ PRESENTATION_MESSAGE_TYPE_ARRAY_BUFFER: { |
+ controller_->didReceiveSessionArrayBufferMessage( |
+ session_client.release(), &(messages[i]->data.front()), |
+ messages[i]->data.size()); |
+ break; |
+ } |
+ case presentation::PresentationMessageType:: |
+ PRESENTATION_MESSAGE_TYPE_BLOB: { |
+ controller_->didReceiveSessionBlobMessage(session_client.release(), |
+ &(messages[i]->data.front()), |
+ messages[i]->data.size()); |
+ break; |
+ } |
+ default: { |
+ NOTREACHED(); |
+ break; |
+ } |
} |
} |