| Index: chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc | 
| diff --git a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc | 
| index 6fe551cc3eb3bdf03ab5155bee361996b704caef..89fb3ee7f77baf7ba954fc11c35f1bad306ee71f 100644 | 
| --- a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc | 
| +++ b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc | 
| @@ -19,6 +19,7 @@ | 
| #include "chrome/browser/profiles/profile.h" | 
| #include "chrome/browser/signin/signin_manager_factory.h" | 
| #include "chrome/browser/sync/profile_sync_service_factory.h" | 
| +#include "chrome/browser/ui/webui/media_router/media_cast_mode.h" | 
| #include "chrome/browser/ui/webui/media_router/media_router_ui.h" | 
| #include "chrome/common/pref_names.h" | 
| #include "chrome/grit/generated_resources.h" | 
| @@ -419,6 +420,14 @@ void MediaRouterWebUIMessageHandler::OnRequestInitialData( | 
| cast_modes, media_router_ui_->GetPresentationRequestSourceName())); | 
| initial_data.Set("castModes", cast_modes_list.release()); | 
|  | 
| +  // If the cast mode last chosen for the current origin is tab mirroring, | 
| +  // that should be the cast mode initially selected in the dialog. Otherwise | 
| +  // the initial cast mode should be chosen automatically by the dialog. | 
| +  bool use_tab_mirroring = | 
| +      base::ContainsKey(cast_modes, MediaCastMode::TAB_MIRROR) && | 
| +      media_router_ui_->UserSelectedTabMirroringForCurrentOrigin(); | 
| +  initial_data.SetBoolean("useTabMirroring", use_tab_mirroring); | 
| + | 
| web_ui()->CallJavascriptFunctionUnsafe(kSetInitialData, initial_data); | 
| media_router_ui_->UIInitialized(); | 
| } | 
| @@ -696,8 +705,11 @@ void MediaRouterWebUIMessageHandler::OnReportSelectedCastMode( | 
| DVLOG(1) << "Unable to extract args."; | 
| return; | 
| } | 
| +  DCHECK(IsValidCastModeNum(cast_mode_type)); | 
| UMA_HISTOGRAM_SPARSE_SLOWLY("MediaRouter.Ui.Navigate.SourceSelection", | 
| cast_mode_type); | 
| +  media_router_ui_->RecordCastModeSelection( | 
| +      static_cast<MediaCastMode>(cast_mode_type)); | 
| } | 
|  | 
| void MediaRouterWebUIMessageHandler::OnReportSinkCount( | 
|  |