Index: chrome/browser/ui/browser_win.cc |
diff --git a/chrome/browser/ui/browser_win.cc b/chrome/browser/ui/browser_win.cc |
index f123e247adb0b34a3d8741abab11e4f5503c3fc2..d966bd272553149946042b55064d74387861a060 100644 |
--- a/chrome/browser/ui/browser_win.cc |
+++ b/chrome/browser/ui/browser_win.cc |
@@ -13,32 +13,37 @@ |
#include "chrome/browser/ui/browser_tabstrip.h" |
#include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
#include "chrome/browser/ui/tab_contents/tab_contents.h" |
+#include "win8/util/win8_util.h" |
namespace { |
-void NewMetroWindow(Browser* source_browser, Profile* profile) { |
- typedef void (*FlipFrameWindows)(); |
- |
- static FlipFrameWindows flip_window_fn = reinterpret_cast<FlipFrameWindows>( |
- ::GetProcAddress(base::win::GetMetroModule(), "FlipFrameWindows")); |
- DCHECK(flip_window_fn); |
- |
+void NewWindowMaybeMetro(Browser* source_browser, Profile* profile) { |
chrome::HostDesktopType host_desktop_type = |
source_browser->host_desktop_type(); |
- Browser* browser = |
- browser::FindTabbedBrowser(profile, false, host_desktop_type); |
+ if (win8::IsSingleWindowMetroMode()) { |
+ typedef void (*FlipFrameWindows)(); |
- if (!browser) { |
- chrome::OpenEmptyWindow(profile); |
- return; |
- } |
+ static FlipFrameWindows flip_window_fn = reinterpret_cast<FlipFrameWindows>( |
+ ::GetProcAddress(base::win::GetMetroModule(), "FlipFrameWindows")); |
+ DCHECK(flip_window_fn); |
+ |
+ Browser* browser = |
+ browser::FindTabbedBrowser(profile, false, host_desktop_type); |
- chrome::NewTab(browser); |
+ if (!browser) { |
+ chrome::OpenEmptyWindow(profile); |
+ return; |
+ } |
- if (browser != source_browser) { |
- // Tell the metro_driver to flip our window. This causes the current |
- // browser window to be hidden and the next window to be shown. |
- flip_window_fn(); |
+ chrome::NewTab(browser); |
+ |
+ if (browser != source_browser) { |
+ // Tell the metro_driver to flip our window. This causes the current |
+ // browser window to be hidden and the next window to be shown. |
+ flip_window_fn(); |
+ } |
+ } else { |
+ NewEmptyWindow(profile, host_desktop_type); |
} |
} |
@@ -47,25 +52,11 @@ void NewMetroWindow(Browser* source_browser, Profile* profile) { |
namespace chrome { |
void NewWindow(Browser* browser) { |
-#if !defined(USE_AURA) |
- if (base::win::IsMetroProcess()) { |
- NewMetroWindow(browser, browser->profile()->GetOriginalProfile()); |
- return; |
- } |
-#endif |
- NewEmptyWindow(browser->profile()->GetOriginalProfile(), |
- browser->host_desktop_type()); |
+ NewWindowMaybeMetro(browser, browser->profile()->GetOriginalProfile()); |
} |
void NewIncognitoWindow(Browser* browser) { |
-#if !defined(USE_AURA) |
- if (base::win::IsMetroProcess()) { |
- NewMetroWindow(browser, browser->profile()->GetOffTheRecordProfile()); |
- return; |
- } |
-#endif |
- NewEmptyWindow(browser->profile()->GetOffTheRecordProfile(), |
- browser->host_desktop_type()); |
+ NewWindowMaybeMetro(browser, browser->profile()->GetOffTheRecordProfile()); |
} |
} // namespace chrome |