Index: chrome/browser/ui/webui/media_router/media_router_dialog_controller_impl.cc |
diff --git a/chrome/browser/ui/webui/media_router/media_router_dialog_controller_impl.cc b/chrome/browser/ui/webui/media_router/media_router_dialog_controller_impl.cc |
index 16a2ba2650a2ba891600a621e272bfc051e14322..138ae3ea1ee451a2070125a0b5542bd92fbd89b7 100644 |
--- a/chrome/browser/ui/webui/media_router/media_router_dialog_controller_impl.cc |
+++ b/chrome/browser/ui/webui/media_router/media_router_dialog_controller_impl.cc |
@@ -197,6 +197,7 @@ void MediaRouterDialogControllerImpl::CloseMediaRouterDialog() { |
void MediaRouterDialogControllerImpl::CreateMediaRouterDialog() { |
DCHECK(!dialog_observer_.get()); |
+ base::Time dialog_creation_time = base::Time::Now(); |
TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("media_router", "UI", initiator()); |
Profile* profile = |
@@ -232,6 +233,15 @@ void MediaRouterDialogControllerImpl::CreateMediaRouterDialog() { |
"WebContents created", |
media_router_dialog); |
+ // |media_router_ui| is created when |constrained_delegate| is created. |
+ // For tests, GetWebUI() returns a nullptr. |
+ if (media_router_dialog->GetWebUI()) { |
+ MediaRouterUI* media_router_ui = static_cast<MediaRouterUI*>( |
+ media_router_dialog->GetWebUI()->GetController()); |
+ DCHECK(media_router_ui); |
+ media_router_ui->SetUIInitializationTimer(dialog_creation_time); |
+ } |
+ |
media_router_dialog_pending_ = true; |
dialog_observer_.reset(new DialogWebContentsObserver( |