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

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

Issue 1693963003: Pass origin to StartObservingMediaSinks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Marks Review Fixes with URL changes Created 4 years, 10 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/media_router_mojo_impl.cc
diff --git a/chrome/browser/media/router/media_router_mojo_impl.cc b/chrome/browser/media/router/media_router_mojo_impl.cc
index 787dbdb50c214333bb4730b1eea55f83b2c4d415..98e3f7428c522a8e617e4b8edc3b31286e4bf8d9 100644
--- a/chrome/browser/media/router/media_router_mojo_impl.cc
+++ b/chrome/browser/media/router/media_router_mojo_impl.cc
@@ -165,10 +165,13 @@ void MediaRouterMojoImpl::OnIssue(const interfaces::IssuePtr issue) {
void MediaRouterMojoImpl::OnSinksReceived(
const mojo::String& media_source,
+ const mojo::String& origin,
mojo::Array<interfaces::MediaSinkPtr> sinks) {
DCHECK(thread_checker_.CalledOnValidThread());
DVLOG_WITH_INSTANCE(1) << "OnSinksReceived";
- auto it = sinks_queries_.find(media_source);
+ MediaSource source(media_source);
+ source.set_origin(origin);
+ auto it = sinks_queries_.find(source);
if (it == sinks_queries_.end()) {
DVLOG_WITH_INSTANCE(1) << "Received sink list without MediaSinksQuery.";
return;
@@ -187,7 +190,7 @@ void MediaRouterMojoImpl::OnSinksReceived(
<< "Received sink list without any active observers: " << media_source;
} else {
FOR_EACH_OBSERVER(MediaSinksObserver, sinks_query->observers,
- OnSinksReceived(cached_sink_list));
+ OnSinksReceived(source, cached_sink_list));
}
}
@@ -380,13 +383,13 @@ bool MediaRouterMojoImpl::RegisterMediaSinksObserver(
// Create an observer list for the media source and add |observer|
// to it. Fail if |observer| is already registered.
- const std::string& source_id = observer->source().id();
- auto* sinks_query = sinks_queries_.get(source_id);
+ const MediaSource& source = observer->source();
+ auto* sinks_query = sinks_queries_.get(source);
bool new_query = false;
if (!sinks_query) {
new_query = true;
sinks_query = new MediaSinksQuery;
- sinks_queries_.add(source_id, make_scoped_ptr(sinks_query));
+ sinks_queries_.add(source, make_scoped_ptr(sinks_query));
} else {
DCHECK(!sinks_query->observers.HasObserver(observer));
}
@@ -395,15 +398,15 @@ bool MediaRouterMojoImpl::RegisterMediaSinksObserver(
// |observer| can be immediately notified with an empty list.
sinks_query->observers.AddObserver(observer);
if (availability_ == interfaces::MediaRouter::SinkAvailability::UNAVAILABLE) {
- observer->OnSinksReceived(std::vector<MediaSink>());
+ observer->OnSinksReceived(source, std::vector<MediaSink>());
} else {
// Need to call MRPM to start observing sinks if the query is new.
if (new_query) {
SetWakeReason(MediaRouteProviderWakeReason::START_OBSERVING_MEDIA_SINKS);
RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoStartObservingMediaSinks,
- base::Unretained(this), source_id));
+ base::Unretained(this), source));
} else if (sinks_query->has_cached_result) {
- observer->OnSinksReceived(sinks_query->cached_sink_list);
+ observer->OnSinksReceived(source, sinks_query->cached_sink_list);
}
}
return true;
@@ -413,8 +416,8 @@ void MediaRouterMojoImpl::UnregisterMediaSinksObserver(
MediaSinksObserver* observer) {
DCHECK(thread_checker_.CalledOnValidThread());
- const MediaSource::Id& source_id = observer->source().id();
- auto* sinks_query = sinks_queries_.get(source_id);
+ const MediaSource& source = observer->source();
+ auto* sinks_query = sinks_queries_.get(source);
if (!sinks_query || !sinks_query->observers.HasObserver(observer)) {
return;
}
@@ -434,9 +437,9 @@ void MediaRouterMojoImpl::UnregisterMediaSinksObserver(
// The |sinks_queries_| entry will be removed in the immediate or deferred
// |DoStopObservingMediaSinks| call.
RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoStopObservingMediaSinks,
- base::Unretained(this), source_id));
+ base::Unretained(this), source));
} else {
- sinks_queries_.erase(source_id);
+ sinks_queries_.erase(source);
}
}
}
@@ -726,27 +729,28 @@ void MediaRouterMojoImpl::OnPresentationConnectionClosed(
}
void MediaRouterMojoImpl::DoStartObservingMediaSinks(
- const MediaSource::Id& source_id) {
- DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaSinks: " << source_id;
+ const MediaSource& source) {
+ DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaSinks: " << source.id();
// No need to call MRPM if there are no sinks available.
if (availability_ == interfaces::MediaRouter::SinkAvailability::UNAVAILABLE)
return;
// No need to call MRPM if all observers have been removed in the meantime.
- auto* sinks_query = sinks_queries_.get(source_id);
+ auto* sinks_query = sinks_queries_.get(source);
if (!sinks_query || !sinks_query->observers.might_have_observers())
return;
- DVLOG_WITH_INSTANCE(1) << "MRPM.StartObservingMediaSinks: " << source_id;
- media_route_provider_->StartObservingMediaSinks(source_id);
+ DVLOG_WITH_INSTANCE(1) << "MRPM.StartObservingMediaSinks: " << source.id();
+ media_route_provider_->StartObservingMediaSinks(source.id(),
+ source.origin());
sinks_query->is_active = true;
}
void MediaRouterMojoImpl::DoStopObservingMediaSinks(
- const MediaSource::Id& source_id) {
- DVLOG_WITH_INSTANCE(1) << "DoStopObservingMediaSinks: " << source_id;
+ const MediaSource& source) {
+ DVLOG_WITH_INSTANCE(1) << "DoStopObservingMediaSinks: " << source.id();
- auto* sinks_query = sinks_queries_.get(source_id);
+ auto* sinks_query = sinks_queries_.get(source);
// No need to call MRPM if observers have been added in the meantime,
// or StopObservingMediaSinks has already been called.
if (!sinks_query || !sinks_query->is_active ||
@@ -754,9 +758,10 @@ void MediaRouterMojoImpl::DoStopObservingMediaSinks(
return;
}
- DVLOG_WITH_INSTANCE(1) << "MRPM.StopObservingMediaSinks: " << source_id;
- media_route_provider_->StopObservingMediaSinks(source_id);
- sinks_queries_.erase(source_id);
+ DVLOG_WITH_INSTANCE(1) << "MRPM.StopObservingMediaSinks: " << source.id();
+ media_route_provider_->StopObservingMediaSinks(source.id(),
+ source.origin());
+ sinks_queries_.erase(source);
}
void MediaRouterMojoImpl::DoStartObservingMediaRoutes(
« no previous file with comments | « chrome/browser/media/router/media_router_mojo_impl.h ('k') | chrome/browser/media/router/media_router_mojo_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698