| Index: chrome/browser/media/router/browser_presentation_connection_proxy.cc
|
| diff --git a/chrome/browser/media/router/browser_presentation_connection_proxy.cc b/chrome/browser/media/router/browser_presentation_connection_proxy.cc
|
| index 00bd0c4f55fbd866ead16138b23dbe00368ff969..e6b6fa2d4f1392aae14ef5c358b7c73383e7d818 100644
|
| --- a/chrome/browser/media/router/browser_presentation_connection_proxy.cc
|
| +++ b/chrome/browser/media/router/browser_presentation_connection_proxy.cc
|
| @@ -9,15 +9,26 @@
|
| #include "base/memory/ptr_util.h"
|
|
|
| #include "chrome/browser/media/router/media_router.h"
|
| +#include "chrome/common/media_router/route_message.h"
|
|
|
| namespace media_router {
|
|
|
| +namespace {
|
| +
|
| +void OnMessageReceivedByRenderer(bool success) {
|
| + DLOG_IF(ERROR, !success)
|
| + << "Renderer PresentationConnection failed to process message!";
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| BrowserPresentationConnectionProxy::BrowserPresentationConnectionProxy(
|
| MediaRouter* router,
|
| const MediaRoute::Id& route_id,
|
| blink::mojom::PresentationConnectionRequest receiver_connection_request,
|
| blink::mojom::PresentationConnectionPtr controller_connection_ptr)
|
| - : router_(router),
|
| + : RouteMessageObserver(router, route_id),
|
| + router_(router),
|
| route_id_(route_id),
|
| binding_(this),
|
| target_connection_ptr_(std::move(controller_connection_ptr)) {
|
| @@ -46,4 +57,27 @@ void BrowserPresentationConnectionProxy::OnMessage(
|
| }
|
| }
|
|
|
| +void BrowserPresentationConnectionProxy::OnMessagesReceived(
|
| + const std::vector<RouteMessage>& messages) {
|
| + DVLOG(2) << __func__ << ", number of messages : " << messages.size();
|
| + // TODO(mfoltz): Remove RouteMessage and replace with move-only
|
| + // PresentationConnectionMessage.
|
| + std::vector<content::PresentationConnectionMessage> presentation_messages;
|
| + for (const RouteMessage& message : messages) {
|
| + if (message.type == RouteMessage::TEXT && message.text) {
|
| + presentation_messages.emplace_back(message.text.value());
|
| + } else if (message.type == RouteMessage::BINARY && message.binary) {
|
| + presentation_messages.emplace_back(message.binary.value());
|
| + } else {
|
| + NOTREACHED() << "Unknown route message type";
|
| + }
|
| + }
|
| +
|
| + // TODO(imcheng): It would be slightly more efficient to send messages in
|
| + // a single batch.
|
| + for (auto& message : presentation_messages) {
|
| + target_connection_ptr_->OnMessage(std::move(message),
|
| + base::Bind(&OnMessageReceivedByRenderer));
|
| + }
|
| +}
|
| } // namespace media_router
|
|
|