Index: chrome/browser/ui/startup/startup_browser_creator_impl.cc |
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc |
index d6b0d4101fbb7925452af2bea314f89d960f7953..daec2d31c313cbcffc27b22a36458ecc8ddc63c4 100644 |
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc |
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc |
@@ -97,6 +97,8 @@ |
#if defined(USE_ASH) |
#include "ash/launcher/launcher_types.h" |
+#include "ash/shell.h" |
+#include "ui/aura/window.h" |
#endif |
#if defined(OS_MACOSX) |
@@ -806,6 +808,20 @@ Browser* StartupBrowserCreatorImpl::OpenTabsInBrowser(Browser* browser, |
#endif |
} |
+#if defined(USE_ASH) |
+ if (ash::Shell::HasInstance()) { |
+ // Set the browser's root window to be an active root window now so |
+ // that that web contents can determine correct scale factor for the |
+ // renderer. This is a short term fix for crbug.com/155201. Without |
+ // this, the renderer may use wrong scale factor first, then |
+ // switched to the correct scale factor, which can cause race |
+ // condition and lead to the results rendered at wrong scale factor. |
+ // Long term fix is tracked in crbug.com/15543. |
+ ash::Shell::GetInstance()->set_active_root_window( |
+ browser->window()->GetNativeWindow()->GetRootWindow()); |
+ } |
+#endif |
+ |
// In kiosk mode, we want to always be fullscreen, so switch to that now. |
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) |
chrome::ToggleFullscreenMode(browser); |