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 |