Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4988)

Unified Diff: chrome/browser/media/router/presentation_service_delegate_impl.cc

Issue 1838903006: [Media Router] Cherrypick "add sinks to origin list" to beta (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2661
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 5a5ffd65dd726b91c0ebbcb7ddc695f0e3d51b74..8b62c7cd7c61d43f73ff0a56cb43d4f69948a251 100644
--- a/chrome/browser/media/router/presentation_service_delegate_impl.cc
+++ b/chrome/browser/media/router/presentation_service_delegate_impl.cc
@@ -53,8 +53,7 @@ RenderFrameHostId GetRenderFrameHostId(RenderFrameHost* render_frame_host) {
GURL GetLastCommittedURLForFrame(RenderFrameHostId render_frame_host_id) {
RenderFrameHost* render_frame_host = RenderFrameHost::FromID(
render_frame_host_id.first, render_frame_host_id.second);
- DCHECK(render_frame_host);
- return render_frame_host->GetLastCommittedURL();
+ return render_frame_host ? render_frame_host->GetLastCommittedURL() : GURL();
}
} // namespace
@@ -67,7 +66,9 @@ GURL GetLastCommittedURLForFrame(RenderFrameHostId render_frame_host_id) {
// * PresentationFrameManager.RemoveDelegateObserver.
class PresentationFrame {
public:
- PresentationFrame(content::WebContents* web_contents, MediaRouter* router);
+ PresentationFrame(const RenderFrameHostId& render_frame_host_id,
+ content::WebContents* web_contents,
+ MediaRouter* router);
~PresentationFrame();
// Mirror corresponding APIs in PresentationServiceDelegateImpl.
@@ -113,6 +114,8 @@ class PresentationFrame {
connection_state_subscriptions_;
ScopedVector<PresentationSessionMessagesObserver> session_messages_observers_;
+ RenderFrameHostId render_frame_host_id_;
+
// References to the owning WebContents, and the corresponding MediaRouter.
const content::WebContents* web_contents_;
MediaRouter* router_;
@@ -120,9 +123,12 @@ class PresentationFrame {
DelegateObserver* delegate_observer_;
};
-PresentationFrame::PresentationFrame(content::WebContents* web_contents,
- MediaRouter* router)
- : web_contents_(web_contents),
+PresentationFrame::PresentationFrame(
+ const RenderFrameHostId& render_frame_host_id,
+ content::WebContents* web_contents,
+ MediaRouter* router)
+ : render_frame_host_id_(render_frame_host_id),
+ web_contents_(web_contents),
router_(router),
delegate_observer_(nullptr) {
DCHECK(web_contents_);
@@ -162,8 +168,9 @@ bool PresentationFrame::SetScreenAvailabilityListener(
return false;
MediaSource source(GetMediaSourceFromListener(listener));
- sinks_observer_.reset(
- new PresentationMediaSinksObserver(router_, listener, source));
+ sinks_observer_.reset(new PresentationMediaSinksObserver(
+ router_, listener, source,
+ GetLastCommittedURLForFrame(render_frame_host_id_).GetOrigin()));
if (!sinks_observer_->Init()) {
sinks_observer_.reset();
@@ -546,8 +553,8 @@ PresentationFrame* PresentationFrameManager::GetOrAddPresentationFrame(
if (!presentation_frames_.contains(render_frame_host_id)) {
presentation_frames_.add(
render_frame_host_id,
- scoped_ptr<PresentationFrame>(
- new PresentationFrame(web_contents_, router_)));
+ scoped_ptr<PresentationFrame>(new PresentationFrame(
+ render_frame_host_id, web_contents_, router_)));
}
return presentation_frames_.get(render_frame_host_id);
}

Powered by Google App Engine
This is Rietveld 408576698