Chromium Code Reviews| Index: chrome/browser/ui/webui/media_router/media_router_ui.cc |
| diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.cc b/chrome/browser/ui/webui/media_router/media_router_ui.cc |
| index 96ff4e614d12e2bb54a17105f1d5e349c70bcb2c..d994f3c54699aa5791fea7a6a2f1c01dfcb66c68 100644 |
| --- a/chrome/browser/ui/webui/media_router/media_router_ui.cc |
| +++ b/chrome/browser/ui/webui/media_router/media_router_ui.cc |
| @@ -31,6 +31,7 @@ |
| #include "chrome/browser/ui/webui/media_router/media_router_localized_strings_provider.h" |
| #include "chrome/browser/ui/webui/media_router/media_router_resources_provider.h" |
| #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handler.h" |
| +#include "chrome/common/chrome_features.h" |
| #include "chrome/common/media_router/issue.h" |
| #include "chrome/common/media_router/media_route.h" |
| #include "chrome/common/media_router/media_sink.h" |
| @@ -153,6 +154,22 @@ void MediaRouterUI::UIMediaRoutesObserver::OnRoutesUpdated( |
| callback_.Run(routes, joinable_route_ids); |
| } |
| +MediaRouterUI::UIMediaRouteControllerObserver::UIMediaRouteControllerObserver( |
| + MediaRouterUI* ui, |
| + scoped_refptr<MediaRouteController> controller) |
| + : MediaRouteController::Observer(std::move(controller)), ui_(ui) {} |
| +MediaRouterUI::UIMediaRouteControllerObserver:: |
| + ~UIMediaRouteControllerObserver() {} |
| + |
| +void MediaRouterUI::UIMediaRouteControllerObserver::OnMediaStatusUpdated( |
| + const MediaStatus& status) { |
| + ui_->handler_->UpdateMediaRouteStatus(status); |
|
mark a. foltz
2017/05/01 21:28:42
Can you make this a method on MediaRouterUI as is
takumif
2017/05/02 21:37:37
Done.
|
| +} |
| + |
| +void MediaRouterUI::UIMediaRouteControllerObserver::OnControllerInvalidated() { |
| + ui_->OnRouteControllerInvalidated(); |
| +} |
| + |
| MediaRouterUI::MediaRouterUI(content::WebUI* web_ui) |
| : ConstrainedWebDialogUI(web_ui), |
| ui_initialized_(false), |
| @@ -760,6 +777,35 @@ void MediaRouterUI::UpdateMaxDialogHeight(int height) { |
| handler_->UpdateMaxDialogHeight(height); |
| } |
| +const MediaRouteController* MediaRouterUI::GetMediaRouteController() const { |
| + return route_controller_observer_ |
| + ? route_controller_observer_->controller().get() |
| + : nullptr; |
| +} |
| + |
| +void MediaRouterUI::OnMediaControllerUIAvailable( |
| + const MediaRoute::Id& route_id) { |
| + scoped_refptr<MediaRouteController> controller = |
| + router_->GetRouteController(route_id); |
| + if (!controller) { |
| + DVLOG(1) << "Requested a route controller with an invalid route ID."; |
| + return; |
| + } |
| + DVLOG_IF(1, route_controller_observer_) |
| + << "Route controller observer unexpectedly exists."; |
| + route_controller_observer_ = |
| + base::MakeUnique<UIMediaRouteControllerObserver>(this, controller); |
| +} |
| + |
| +void MediaRouterUI::OnMediaControllerUIClosed() { |
| + route_controller_observer_.reset(); |
| +} |
| + |
| +void MediaRouterUI::OnRouteControllerInvalidated() { |
| + route_controller_observer_.reset(); |
| + handler_->OnRouteControllerInvalidated(); |
| +} |
| + |
| std::string MediaRouterUI::GetSerializedInitiatorOrigin() const { |
| url::Origin origin = initiator_ |
| ? url::Origin(initiator_->GetLastCommittedURL()) |