| Index: chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| diff --git a/chrome/browser/media/router/presentation_service_delegate_impl.cc b/chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| index ee50d71f6a75cbff3d128fb813eb4800d12aefc5..b3f6f1d3f491de55710c3a7a07df3c7c523180a8 100644
|
| --- a/chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| +++ b/chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| @@ -69,7 +69,8 @@ class PresentationFrame {
|
|
|
| // Mirror corresponding APIs in PresentationServiceDelegateImpl.
|
| bool SetScreenAvailabilityListener(
|
| - content::PresentationScreenAvailabilityListener* listener);
|
| + content::PresentationScreenAvailabilityListener* listener,
|
| + const GURL &origin);
|
| bool RemoveScreenAvailabilityListener(
|
| content::PresentationScreenAvailabilityListener* listener);
|
| bool HasScreenAvailabilityListenerForTest(
|
| @@ -154,13 +155,14 @@ const std::vector<MediaRoute::Id> PresentationFrame::GetRouteIds() const {
|
| }
|
|
|
| bool PresentationFrame::SetScreenAvailabilityListener(
|
| - content::PresentationScreenAvailabilityListener* listener) {
|
| + content::PresentationScreenAvailabilityListener* listener,
|
| + const GURL &origin) {
|
| if (sinks_observer_ && sinks_observer_->listener() == listener)
|
| return false;
|
|
|
| MediaSource source(GetMediaSourceFromListener(listener));
|
| sinks_observer_.reset(
|
| - new PresentationMediaSinksObserver(router_, listener, source));
|
| + new PresentationMediaSinksObserver(router_, listener, source, origin));
|
|
|
| if (!sinks_observer_->Init()) {
|
| sinks_observer_.reset();
|
| @@ -422,7 +424,8 @@ bool PresentationFrameManager::SetScreenAvailabilityListener(
|
| content::PresentationScreenAvailabilityListener* listener) {
|
| DCHECK(listener);
|
| auto presentation_frame = GetOrAddPresentationFrame(render_frame_host_id);
|
| - return presentation_frame->SetScreenAvailabilityListener(listener);
|
| + GURL frame_url(GetLastCommittedURLForFrame(render_frame_host_id));
|
| + return presentation_frame->SetScreenAvailabilityListener(listener, frame_url);
|
| }
|
|
|
| bool PresentationFrameManager::RemoveScreenAvailabilityListener(
|
|
|