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

Side by Side Diff: chrome/browser/media/router/mojo/media_router_mojo_impl.cc

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: add url.mojom to media_router.mojoms JsResources Created 3 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 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/media/router/mojo/media_router_mojo_impl.h" 5 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 } 168 }
169 169
170 void MediaRouterMojoImpl::OnIssue(const IssueInfo& issue) { 170 void MediaRouterMojoImpl::OnIssue(const IssueInfo& issue) {
171 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 171 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
172 DVLOG_WITH_INSTANCE(1) << "OnIssue " << issue.title; 172 DVLOG_WITH_INSTANCE(1) << "OnIssue " << issue.title;
173 issue_manager_.AddIssue(issue); 173 issue_manager_.AddIssue(issue);
174 } 174 }
175 175
176 void MediaRouterMojoImpl::OnSinksReceived( 176 void MediaRouterMojoImpl::OnSinksReceived(
177 const std::string& media_source, 177 const std::string& media_source,
178 std::vector<mojom::MediaSinkPtr> sinks, 178 std::vector<std::unique_ptr<MediaSink>> sinks,
179 const std::vector<std::string>& origins) { 179 const std::vector<std::string>& origins) {
180 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 180 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
181 DVLOG_WITH_INSTANCE(1) << "OnSinksReceived"; 181 DVLOG_WITH_INSTANCE(1) << "OnSinksReceived";
182 auto it = sinks_queries_.find(media_source); 182 auto it = sinks_queries_.find(media_source);
183 if (it == sinks_queries_.end()) { 183 if (it == sinks_queries_.end()) {
184 DVLOG_WITH_INSTANCE(1) << "Received sink list without MediaSinksQuery."; 184 DVLOG_WITH_INSTANCE(1) << "Received sink list without MediaSinksQuery.";
185 return; 185 return;
186 } 186 }
187 187
188 std::vector<GURL> origin_list; 188 std::vector<GURL> origin_list;
189 origin_list.reserve(origins.size()); 189 origin_list.reserve(origins.size());
190 for (size_t i = 0; i < origins.size(); ++i) { 190 for (size_t i = 0; i < origins.size(); ++i) {
191 GURL origin(origins[i]); 191 GURL origin(origins[i]);
192 if (!origin.is_valid()) { 192 if (!origin.is_valid()) {
193 LOG(WARNING) << "Received invalid origin: " << origin 193 LOG(WARNING) << "Received invalid origin: " << origin
194 << ". Dropping result."; 194 << ". Dropping result.";
195 return; 195 return;
196 } 196 }
197 origin_list.push_back(origin); 197 origin_list.push_back(origin);
198 } 198 }
199 199
200 std::vector<MediaSink> sink_list; 200 std::vector<MediaSink> sink_list;
201 sink_list.reserve(sinks.size()); 201 sink_list.reserve(sinks.size());
202 for (size_t i = 0; i < sinks.size(); ++i) 202 for (size_t i = 0; i < sinks.size(); ++i)
203 sink_list.push_back(sinks[i].To<MediaSink>()); 203 sink_list.push_back(*sinks[i]);
imcheng 2017/02/08 01:28:09 In here we are performing object slicing on derive
zhaobin 2017/02/09 00:13:53 Acknowledged.
imcheng 2017/02/09 02:19:57 So this is probably fine since we don't need to (o
204 204
205 auto* sinks_query = it->second.get(); 205 auto* sinks_query = it->second.get();
206 sinks_query->has_cached_result = true; 206 sinks_query->has_cached_result = true;
207 sinks_query->origins.swap(origin_list); 207 sinks_query->origins.swap(origin_list);
208 sinks_query->cached_sink_list.swap(sink_list); 208 sinks_query->cached_sink_list.swap(sink_list);
209 209
210 if (!sinks_query->observers.might_have_observers()) { 210 if (!sinks_query->observers.might_have_observers()) {
211 DVLOG_WITH_INSTANCE(1) 211 DVLOG_WITH_INSTANCE(1)
212 << "Received sink list without any active observers: " << media_source; 212 << "Received sink list without any active observers: " << media_source;
213 } else { 213 } else {
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 base::Unretained(this), source_id)); 987 base::Unretained(this), source_id));
988 } 988 }
989 989
990 void MediaRouterMojoImpl::DoUpdateMediaSinks( 990 void MediaRouterMojoImpl::DoUpdateMediaSinks(
991 const MediaSource::Id& source_id) { 991 const MediaSource::Id& source_id) {
992 DVLOG_WITH_INSTANCE(1) << "DoUpdateMediaSinks" << source_id; 992 DVLOG_WITH_INSTANCE(1) << "DoUpdateMediaSinks" << source_id;
993 media_route_provider_->UpdateMediaSinks(source_id); 993 media_route_provider_->UpdateMediaSinks(source_id);
994 } 994 }
995 995
996 } // namespace media_router 996 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698