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

Side by Side Diff: chrome/browser/ui/webui/media_router/query_result_manager.cc

Issue 1784533004: [Media Router] Add origins to sink query results. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test 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 unified diff | Download patch
OLDNEW
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 "chrome/browser/ui/webui/media_router/query_result_manager.h" 5 #include "chrome/browser/ui/webui/media_router/query_result_manager.h"
6 6
7 #include "base/containers/hash_tables.h" 7 #include "base/containers/hash_tables.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "chrome/browser/media/router/media_router.h" 9 #include "chrome/browser/media/router/media_router.h"
10 #include "chrome/browser/media/router/media_sinks_observer.h" 10 #include "chrome/browser/media/router/media_sinks_observer.h"
11 11
12 namespace media_router { 12 namespace media_router {
13 13
14 // MediaSinkObserver that propagates results back to |result_manager|. 14 // MediaSinkObserver that propagates results back to |result_manager|.
15 // An instance of this class is associated with each registered MediaCastMode. 15 // An instance of this class is associated with each registered MediaCastMode.
16 class QueryResultManager::CastModeMediaSinksObserver 16 class QueryResultManager::CastModeMediaSinksObserver
17 : public MediaSinksObserver { 17 : public MediaSinksObserver {
18 public: 18 public:
19 CastModeMediaSinksObserver(MediaCastMode cast_mode, 19 CastModeMediaSinksObserver(MediaCastMode cast_mode,
20 const MediaSource& source, 20 const MediaSource& source,
21 const GURL& origin,
21 MediaRouter* router, 22 MediaRouter* router,
22 QueryResultManager* result_manager) 23 QueryResultManager* result_manager)
23 : MediaSinksObserver(router, source), 24 : MediaSinksObserver(router, source, origin),
24 cast_mode_(cast_mode), 25 cast_mode_(cast_mode),
25 result_manager_(result_manager) { 26 result_manager_(result_manager) {
26 DCHECK(result_manager); 27 DCHECK(result_manager);
27 } 28 }
28 29
29 ~CastModeMediaSinksObserver() override {} 30 ~CastModeMediaSinksObserver() override {}
30 31
31 // MediaSinksObserver 32 // MediaSinksObserver
32 void OnSinksReceived(const std::vector<MediaSink>& result) override { 33 void OnSinksReceived(const std::vector<MediaSink>& result) override {
33 latest_sink_ids_.clear(); 34 latest_sink_ids_.clear();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 observers_.AddObserver(observer); 67 observers_.AddObserver(observer);
67 } 68 }
68 69
69 void QueryResultManager::RemoveObserver(Observer* observer) { 70 void QueryResultManager::RemoveObserver(Observer* observer) {
70 DCHECK(thread_checker_.CalledOnValidThread()); 71 DCHECK(thread_checker_.CalledOnValidThread());
71 DCHECK(observer); 72 DCHECK(observer);
72 observers_.RemoveObserver(observer); 73 observers_.RemoveObserver(observer);
73 } 74 }
74 75
75 void QueryResultManager::StartSinksQuery(MediaCastMode cast_mode, 76 void QueryResultManager::StartSinksQuery(MediaCastMode cast_mode,
76 const MediaSource& source) { 77 const MediaSource& source,
78 const GURL& origin) {
77 DCHECK(thread_checker_.CalledOnValidThread()); 79 DCHECK(thread_checker_.CalledOnValidThread());
78 if (source.Empty()) { 80 if (source.Empty()) {
79 LOG(WARNING) << "StartSinksQuery called with empty source for " 81 LOG(WARNING) << "StartSinksQuery called with empty source for "
80 << cast_mode; 82 << cast_mode;
81 return; 83 return;
82 } 84 }
83 85
84 SetSourceForCastMode(cast_mode, source); 86 SetSourceForCastMode(cast_mode, source);
85 RemoveObserverForCastMode(cast_mode); 87 RemoveObserverForCastMode(cast_mode);
86 UpdateWithSinksQueryResult(cast_mode, std::vector<MediaSink>()); 88 UpdateWithSinksQueryResult(cast_mode, std::vector<MediaSink>());
87 89
88 scoped_ptr<CastModeMediaSinksObserver> observer( 90 scoped_ptr<CastModeMediaSinksObserver> observer(
89 new CastModeMediaSinksObserver(cast_mode, source, router_, this)); 91 new CastModeMediaSinksObserver(cast_mode, source, origin, router_, this));
90 observer->Init(); 92 observer->Init();
91 auto result = 93 auto result =
92 sinks_observers_.insert(std::make_pair(cast_mode, std::move(observer))); 94 sinks_observers_.insert(std::make_pair(cast_mode, std::move(observer)));
93 DCHECK(result.second); 95 DCHECK(result.second);
94 NotifyOnResultsUpdated(); 96 NotifyOnResultsUpdated();
95 } 97 }
96 98
97 void QueryResultManager::StopSinksQuery(MediaCastMode cast_mode) { 99 void QueryResultManager::StopSinksQuery(MediaCastMode cast_mode) {
98 DCHECK(thread_checker_.CalledOnValidThread()); 100 DCHECK(thread_checker_.CalledOnValidThread());
99 RemoveObserverForCastMode(cast_mode); 101 RemoveObserverForCastMode(cast_mode);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 void QueryResultManager::NotifyOnResultsUpdated() { 170 void QueryResultManager::NotifyOnResultsUpdated() {
169 std::vector<MediaSinkWithCastModes> sinks; 171 std::vector<MediaSinkWithCastModes> sinks;
170 for (const auto& sink_pair : all_sinks_) { 172 for (const auto& sink_pair : all_sinks_) {
171 sinks.push_back(sink_pair.second); 173 sinks.push_back(sink_pair.second);
172 } 174 }
173 FOR_EACH_OBSERVER(QueryResultManager::Observer, observers_, 175 FOR_EACH_OBSERVER(QueryResultManager::Observer, observers_,
174 OnResultsUpdated(sinks)); 176 OnResultsUpdated(sinks));
175 } 177 }
176 178
177 } // namespace media_router 179 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698