| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/presentation/presentation_service_impl.h" | 5 #include "content/browser/presentation/presentation_service_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 DVLOG(2) << __FUNCTION__ << ": " << render_process_id_ << ", " | 69 DVLOG(2) << __FUNCTION__ << ": " << render_process_id_ << ", " |
| 70 << render_frame_id_; | 70 << render_frame_id_; |
| 71 | 71 |
| 72 if (auto* delegate = GetPresentationServiceDelegate()) | 72 if (auto* delegate = GetPresentationServiceDelegate()) |
| 73 delegate->RemoveObserver(render_process_id_, render_frame_id_); | 73 delegate->RemoveObserver(render_process_id_, render_frame_id_); |
| 74 } | 74 } |
| 75 | 75 |
| 76 // static | 76 // static |
| 77 void PresentationServiceImpl::CreateMojoService( | 77 void PresentationServiceImpl::CreateMojoService( |
| 78 RenderFrameHost* render_frame_host, | 78 RenderFrameHost* render_frame_host, |
| 79 mojo::InterfaceRequest<blink::mojom::PresentationService> request) { | 79 const service_manager::BindSourceInfo& source_info, |
| 80 blink::mojom::PresentationServiceRequest request) { |
| 80 DVLOG(2) << "CreateMojoService"; | 81 DVLOG(2) << "CreateMojoService"; |
| 81 WebContents* web_contents = | 82 WebContents* web_contents = |
| 82 WebContents::FromRenderFrameHost(render_frame_host); | 83 WebContents::FromRenderFrameHost(render_frame_host); |
| 83 DCHECK(web_contents); | 84 DCHECK(web_contents); |
| 84 | 85 |
| 85 auto* browser = GetContentClient()->browser(); | 86 auto* browser = GetContentClient()->browser(); |
| 86 auto* receiver_delegate = | 87 auto* receiver_delegate = |
| 87 browser->GetReceiverPresentationServiceDelegate(web_contents); | 88 browser->GetReceiverPresentationServiceDelegate(web_contents); |
| 88 | 89 |
| 89 // In current implementation, web_contents can be controller or receiver | 90 // In current implementation, web_contents can be controller or receiver |
| 90 // but not both. | 91 // but not both. |
| 91 auto* controller_delegate = | 92 auto* controller_delegate = |
| 92 receiver_delegate | 93 receiver_delegate |
| 93 ? nullptr | 94 ? nullptr |
| 94 : browser->GetControllerPresentationServiceDelegate(web_contents); | 95 : browser->GetControllerPresentationServiceDelegate(web_contents); |
| 95 | 96 |
| 96 // This object will be deleted when the RenderFrameHost is about to be | 97 // This object will be deleted when the RenderFrameHost is about to be |
| 97 // deleted (RenderFrameDeleted). | 98 // deleted (RenderFrameDeleted). |
| 98 PresentationServiceImpl* impl = new PresentationServiceImpl( | 99 PresentationServiceImpl* impl = new PresentationServiceImpl( |
| 99 render_frame_host, web_contents, controller_delegate, receiver_delegate); | 100 render_frame_host, web_contents, controller_delegate, receiver_delegate); |
| 100 impl->Bind(std::move(request)); | 101 impl->Bind(std::move(request)); |
| 101 } | 102 } |
| 102 | 103 |
| 103 void PresentationServiceImpl::Bind( | 104 void PresentationServiceImpl::Bind( |
| 104 mojo::InterfaceRequest<blink::mojom::PresentationService> request) { | 105 blink::mojom::PresentationServiceRequest request) { |
| 105 binding_.reset(new mojo::Binding<blink::mojom::PresentationService>( | 106 binding_.reset(new mojo::Binding<blink::mojom::PresentationService>( |
| 106 this, std::move(request))); | 107 this, std::move(request))); |
| 107 } | 108 } |
| 108 | 109 |
| 109 void PresentationServiceImpl::SetClient( | 110 void PresentationServiceImpl::SetClient( |
| 110 blink::mojom::PresentationServiceClientPtr client) { | 111 blink::mojom::PresentationServiceClientPtr client) { |
| 111 DCHECK(!client_.get()); | 112 DCHECK(!client_.get()); |
| 112 // TODO(imcheng): Set ErrorHandler to listen for errors. | 113 // TODO(imcheng): Set ErrorHandler to listen for errors. |
| 113 client_ = std::move(client); | 114 client_ = std::move(client); |
| 114 | 115 |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 | 511 |
| 511 void PresentationServiceImpl::NewPresentationCallbackWrapper::Run( | 512 void PresentationServiceImpl::NewPresentationCallbackWrapper::Run( |
| 512 const base::Optional<PresentationInfo>& presentation_info, | 513 const base::Optional<PresentationInfo>& presentation_info, |
| 513 const base::Optional<PresentationError>& error) { | 514 const base::Optional<PresentationError>& error) { |
| 514 DCHECK(!callback_.is_null()); | 515 DCHECK(!callback_.is_null()); |
| 515 callback_.Run(presentation_info, error); | 516 callback_.Run(presentation_info, error); |
| 516 callback_.Reset(); | 517 callback_.Reset(); |
| 517 } | 518 } |
| 518 | 519 |
| 519 } // namespace content | 520 } // namespace content |
| OLD | NEW |