| Index: content/renderer/presentation/presentation_dispatcher.cc
|
| diff --git a/content/renderer/presentation/presentation_dispatcher.cc b/content/renderer/presentation/presentation_dispatcher.cc
|
| index 2743b5d563a1033130166ce77a45b00676ff5738..eac8c3bcba52ba169bd262636a9def60ac80b8ae 100644
|
| --- a/content/renderer/presentation/presentation_dispatcher.cc
|
| +++ b/content/renderer/presentation/presentation_dispatcher.cc
|
| @@ -214,14 +214,12 @@
|
| }
|
|
|
| void PresentationDispatcher::DoSendMessage(SendMessageRequest* request) {
|
| - DCHECK(request->connection_proxy);
|
| - // TODO(crbug.com/684116): Remove static_cast after moving message queue logic
|
| - // from PresentationDispatcher to PresentationConnectionProxy.
|
| - static_cast<const PresentationConnectionProxy*>(request->connection_proxy)
|
| - ->SendConnectionMessage(
|
| - std::move(request->message),
|
| - base::Bind(&PresentationDispatcher::HandleSendMessageRequests,
|
| - base::Unretained(this)));
|
| + ConnectToPresentationServiceIfNeeded();
|
| +
|
| + presentation_service_->SendConnectionMessage(
|
| + std::move(request->session_info), std::move(request->message),
|
| + base::Bind(&PresentationDispatcher::HandleSendMessageRequests,
|
| + base::Unretained(this)));
|
| }
|
|
|
| void PresentationDispatcher::HandleSendMessageRequests(bool success) {
|
| @@ -243,20 +241,6 @@
|
| if (!message_request_queue_.empty()) {
|
| DoSendMessage(message_request_queue_.front().get());
|
| }
|
| -}
|
| -
|
| -void PresentationDispatcher::SetControllerConnection(
|
| - const PresentationSessionInfo& session_info,
|
| - blink::WebPresentationConnection* connection) {
|
| - DCHECK(connection);
|
| -
|
| - auto* controller_connection_proxy = new ControllerConnectionProxy(connection);
|
| - connection->bindProxy(base::WrapUnique(controller_connection_proxy));
|
| -
|
| - ConnectToPresentationServiceIfNeeded();
|
| - presentation_service_->SetPresentationConnection(
|
| - session_info, controller_connection_proxy->Bind(),
|
| - controller_connection_proxy->MakeRemoteRequest());
|
| }
|
|
|
| void PresentationDispatcher::closeSession(
|
| @@ -490,19 +474,13 @@
|
| if (!controller_)
|
| return;
|
|
|
| + presentation_service_->ListenForConnectionMessages(session_info);
|
| auto* connection =
|
| controller_->didStartDefaultSession(blink::WebPresentationSessionInfo(
|
| session_info.presentation_url,
|
| blink::WebString::fromUTF8(session_info.presentation_id)));
|
| -
|
| - if (connection) {
|
| - SetControllerConnection(session_info, connection);
|
| - // Change blink connection state to 'connected' before listening to
|
| - // connection message. Remove ListenForConnectionMessage() after
|
| - // TODO(crbug.com/687011): use BrowserPresentationConnectionProxy to send
|
| - // message from route to blink connection.
|
| - presentation_service_->ListenForConnectionMessages(session_info);
|
| - }
|
| + connection->bindProxy(
|
| + base::MakeUnique<ControllerConnectionProxy>(connection));
|
| }
|
|
|
| void PresentationDispatcher::OnSessionCreated(
|
| @@ -519,15 +497,14 @@
|
| }
|
|
|
| DCHECK(session_info);
|
| + presentation_service_->ListenForConnectionMessages(session_info.value());
|
| callback->onSuccess(blink::WebPresentationSessionInfo(
|
| session_info->presentation_url,
|
| blink::WebString::fromUTF8(session_info->presentation_id)));
|
| - // Change blink connection state to 'connected' before listening to
|
| - // connection message. Remove ListenForConnectionMessage() after
|
| - // TODO(crbug.com/687011): use BrowserPresentationConnectionProxy to send
|
| - // message from route to blink connection.
|
| - SetControllerConnection(session_info.value(), callback->getConnection());
|
| - presentation_service_->ListenForConnectionMessages(session_info.value());
|
| +
|
| + auto* connection = callback->getConnection();
|
| + connection->bindProxy(
|
| + base::MakeUnique<ControllerConnectionProxy>(connection));
|
| }
|
|
|
| void PresentationDispatcher::OnReceiverConnectionAvailable(
|
| @@ -535,7 +512,6 @@
|
| blink::mojom::PresentationConnectionPtr controller_connection_ptr,
|
| blink::mojom::PresentationConnectionRequest receiver_connection_request) {
|
| DCHECK(receiver_);
|
| -
|
| // Bind receiver_connection_proxy with PresentationConnection in receiver
|
| // page.
|
| auto* connection = receiver_->onReceiverConnectionAvailable(
|
|
|