| OLD | NEW |
| 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/media_router_mojo_impl.h" | 5 #include "chrome/browser/media/router/media_router_mojo_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/guid.h" | 8 #include "base/guid.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
| 11 #include "base/observer_list.h" | 11 #include "base/observer_list.h" |
| 12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 13 #include "chrome/browser/media/router/issues_observer.h" |
| 13 #include "chrome/browser/media/router/media_router_factory.h" | 14 #include "chrome/browser/media/router/media_router_factory.h" |
| 14 #include "chrome/browser/media/router/media_router_type_converters.h" | 15 #include "chrome/browser/media/router/media_router_type_converters.h" |
| 15 #include "chrome/browser/media/router/media_routes_observer.h" | 16 #include "chrome/browser/media/router/media_routes_observer.h" |
| 16 #include "chrome/browser/media/router/media_sinks_observer.h" | 17 #include "chrome/browser/media/router/media_sinks_observer.h" |
| 17 #include "extensions/browser/process_manager.h" | 18 #include "extensions/browser/process_manager.h" |
| 18 | 19 |
| 19 #define DVLOG_WITH_INSTANCE(level) \ | 20 #define DVLOG_WITH_INSTANCE(level) \ |
| 20 DVLOG(level) << "MR #" << instance_id_ << ": " | 21 DVLOG(level) << "MR #" << instance_id_ << ": " |
| 21 | 22 |
| 22 #define DLOG_WITH_INSTANCE(level) DLOG(level) << "MR #" << instance_id_ << ": " | 23 #define DLOG_WITH_INSTANCE(level) DLOG(level) << "MR #" << instance_id_ << ": " |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 DCHECK(thread_checker_.CalledOnValidThread()); | 137 DCHECK(thread_checker_.CalledOnValidThread()); |
| 137 | 138 |
| 138 media_route_provider_ = media_route_provider_ptr.Pass(); | 139 media_route_provider_ = media_route_provider_ptr.Pass(); |
| 139 media_route_provider_.set_connection_error_handler(base::Bind( | 140 media_route_provider_.set_connection_error_handler(base::Bind( |
| 140 &MediaRouterMojoImpl::OnConnectionError, base::Unretained(this))); | 141 &MediaRouterMojoImpl::OnConnectionError, base::Unretained(this))); |
| 141 callback.Run(instance_id_); | 142 callback.Run(instance_id_); |
| 142 ExecutePendingRequests(); | 143 ExecutePendingRequests(); |
| 143 } | 144 } |
| 144 | 145 |
| 145 void MediaRouterMojoImpl::OnIssue(const interfaces::IssuePtr issue) { | 146 void MediaRouterMojoImpl::OnIssue(const interfaces::IssuePtr issue) { |
| 146 // TODO(imcheng): Implement. (crbug.com/461815) | |
| 147 DCHECK(thread_checker_.CalledOnValidThread()); | 147 DCHECK(thread_checker_.CalledOnValidThread()); |
| 148 NOTIMPLEMENTED(); | 148 DVLOG_WITH_INSTANCE(1) << "OnIssue " << issue->title; |
| 149 const Issue& issue_converted = issue.To<Issue>(); |
| 150 issue_manager_.AddIssue(issue_converted); |
| 149 } | 151 } |
| 150 | 152 |
| 151 void MediaRouterMojoImpl::OnSinksReceived( | 153 void MediaRouterMojoImpl::OnSinksReceived( |
| 152 const mojo::String& media_source, | 154 const mojo::String& media_source, |
| 153 mojo::Array<interfaces::MediaSinkPtr> sinks) { | 155 mojo::Array<interfaces::MediaSinkPtr> sinks) { |
| 154 DCHECK(thread_checker_.CalledOnValidThread()); | 156 DCHECK(thread_checker_.CalledOnValidThread()); |
| 155 | 157 |
| 156 DVLOG_WITH_INSTANCE(1) << "OnSinksReceived"; | 158 DVLOG_WITH_INSTANCE(1) << "OnSinksReceived"; |
| 157 std::vector<MediaSink> sinks_converted; | 159 std::vector<MediaSink> sinks_converted; |
| 158 sinks_converted.reserve(sinks.size()); | 160 sinks_converted.reserve(sinks.size()); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 void MediaRouterMojoImpl::ListenForRouteMessages( | 249 void MediaRouterMojoImpl::ListenForRouteMessages( |
| 248 const std::vector<MediaRoute::Id>& route_ids, | 250 const std::vector<MediaRoute::Id>& route_ids, |
| 249 const PresentationSessionMessageCallback& message_cb) { | 251 const PresentationSessionMessageCallback& message_cb) { |
| 250 DCHECK(thread_checker_.CalledOnValidThread()); | 252 DCHECK(thread_checker_.CalledOnValidThread()); |
| 251 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoListenForRouteMessages, | 253 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoListenForRouteMessages, |
| 252 base::Unretained(this), route_ids, message_cb)); | 254 base::Unretained(this), route_ids, message_cb)); |
| 253 } | 255 } |
| 254 | 256 |
| 255 void MediaRouterMojoImpl::ClearIssue(const Issue::Id& issue_id) { | 257 void MediaRouterMojoImpl::ClearIssue(const Issue::Id& issue_id) { |
| 256 DCHECK(thread_checker_.CalledOnValidThread()); | 258 DCHECK(thread_checker_.CalledOnValidThread()); |
| 257 | 259 issue_manager_.ClearIssue(issue_id); |
| 258 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoClearIssue, | 260 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoClearIssue, |
| 259 base::Unretained(this), issue_id)); | 261 base::Unretained(this), issue_id)); |
| 260 } | 262 } |
| 261 | 263 |
| 262 void MediaRouterMojoImpl::RegisterMediaSinksObserver( | 264 void MediaRouterMojoImpl::RegisterMediaSinksObserver( |
| 263 MediaSinksObserver* observer) { | 265 MediaSinksObserver* observer) { |
| 264 DCHECK(thread_checker_.CalledOnValidThread()); | 266 DCHECK(thread_checker_.CalledOnValidThread()); |
| 265 | 267 |
| 266 // Create an observer list for the media source and add |observer| | 268 // Create an observer list for the media source and add |observer| |
| 267 // to it. Fail if |observer| is already registered. | 269 // to it. Fail if |observer| is already registered. |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 return; | 323 return; |
| 322 | 324 |
| 323 routes_observers_.RemoveObserver(observer); | 325 routes_observers_.RemoveObserver(observer); |
| 324 if (!routes_observers_.might_have_observers()) { | 326 if (!routes_observers_.might_have_observers()) { |
| 325 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoStopObservingMediaRoutes, | 327 RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoStopObservingMediaRoutes, |
| 326 base::Unretained(this))); | 328 base::Unretained(this))); |
| 327 } | 329 } |
| 328 } | 330 } |
| 329 | 331 |
| 330 void MediaRouterMojoImpl::RegisterIssuesObserver(IssuesObserver* observer) { | 332 void MediaRouterMojoImpl::RegisterIssuesObserver(IssuesObserver* observer) { |
| 331 // TODO(imcheng): Implement. (crbug.com/461815) | 333 DCHECK(thread_checker_.CalledOnValidThread()); |
| 332 NOTIMPLEMENTED(); | 334 issue_manager_.RegisterObserver(observer); |
| 333 } | 335 } |
| 334 | 336 |
| 335 void MediaRouterMojoImpl::UnregisterIssuesObserver(IssuesObserver* observer) { | 337 void MediaRouterMojoImpl::UnregisterIssuesObserver(IssuesObserver* observer) { |
| 336 // TODO(imcheng): Implement. (crbug.com/461815) | 338 DCHECK(thread_checker_.CalledOnValidThread()); |
| 337 NOTIMPLEMENTED(); | 339 issue_manager_.UnregisterObserver(observer); |
| 338 } | 340 } |
| 339 | 341 |
| 340 void MediaRouterMojoImpl::DoCreateRoute( | 342 void MediaRouterMojoImpl::DoCreateRoute( |
| 341 const MediaSource::Id& source_id, | 343 const MediaSource::Id& source_id, |
| 342 const MediaSink::Id& sink_id, | 344 const MediaSink::Id& sink_id, |
| 343 const std::string& origin, | 345 const std::string& origin, |
| 344 int tab_id, | 346 int tab_id, |
| 345 const std::vector<MediaRouteResponseCallback>& callbacks) { | 347 const std::vector<MediaRouteResponseCallback>& callbacks) { |
| 346 std::string presentation_id("mr_"); | 348 std::string presentation_id("mr_"); |
| 347 presentation_id += base::GenerateGUID(); | 349 presentation_id += base::GenerateGUID(); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 return; | 473 return; |
| 472 } | 474 } |
| 473 | 475 |
| 474 for (const auto& next_request : pending_requests_) | 476 for (const auto& next_request : pending_requests_) |
| 475 next_request.Run(); | 477 next_request.Run(); |
| 476 | 478 |
| 477 pending_requests_.clear(); | 479 pending_requests_.clear(); |
| 478 } | 480 } |
| 479 | 481 |
| 480 } // namespace media_router | 482 } // namespace media_router |
| OLD | NEW |