| 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..924e26a94dfd80d50b5f08d7887e5bc0983e8be5 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_->UpdateMediaRouteStatus(status);
|
| +}
|
| +
|
| +void MediaRouterUI::UIMediaRouteControllerObserver::OnControllerInvalidated() {
|
| + ui_->OnRouteControllerInvalidated();
|
| +}
|
| +
|
| MediaRouterUI::MediaRouterUI(content::WebUI* web_ui)
|
| : ConstrainedWebDialogUI(web_ui),
|
| ui_initialized_(false),
|
| @@ -760,6 +777,39 @@ 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();
|
| +}
|
| +
|
| +void MediaRouterUI::UpdateMediaRouteStatus(const MediaStatus& status) {
|
| + handler_->UpdateMediaRouteStatus(status);
|
| +}
|
| +
|
| std::string MediaRouterUI::GetSerializedInitiatorOrigin() const {
|
| url::Origin origin = initiator_
|
| ? url::Origin(initiator_->GetLastCommittedURL())
|
|
|