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 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; |
| + } |
| } |
| } |