summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/DEPS1
-rw-r--r--apps/launcher.cc12
-rw-r--r--chrome/browser/ui/extensions/application_launch.cc12
3 files changed, 13 insertions, 12 deletions
diff --git a/apps/DEPS b/apps/DEPS
index 0100480..7920f1a 100644
--- a/apps/DEPS
+++ b/apps/DEPS
@@ -20,6 +20,7 @@ include_rules = [
"+chrome/browser/lifetime/application_lifetime.h",
"+chrome/browser/profiles",
"+chrome/browser/sessions/session_id.h",
+ "+chrome/browser/ui/extensions/app_metro_infobar_delegate_win.h",
"+chrome/browser/ui/host_desktop.h",
"+chrome/common/chrome_switches.h",
"+chrome/common/extensions",
diff --git a/apps/launcher.cc b/apps/launcher.cc
index d892da6..9ebb46e 100644
--- a/apps/launcher.cc
+++ b/apps/launcher.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/lazy_background_task_queue.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/extensions/app_metro_infobar_delegate_win.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_messages.h"
#include "content/public/browser/browser_thread.h"
@@ -285,6 +286,17 @@ void LaunchPlatformAppWithCommandLine(Profile* profile,
const Extension* extension,
const CommandLine* command_line,
const base::FilePath& current_directory) {
+#if defined(OS_WIN)
+ // On Windows 8's single window Metro mode we can not launch platform apps.
+ // Offer to switch Chrome to desktop mode.
+ if (win8::IsSingleWindowMetroMode()) {
+ AppMetroInfoBarDelegateWin::Create(
+ profile, AppMetroInfoBarDelegateWin::LAUNCH_PACKAGED_APP,
+ extension->id());
+ return;
+ }
+#endif
+
base::FilePath path;
if (!GetAbsolutePathFromCommandLine(command_line, current_directory, &path)) {
LaunchPlatformAppWithNoData(profile, extension);
diff --git a/chrome/browser/ui/extensions/application_launch.cc b/chrome/browser/ui/extensions/application_launch.cc
index 02112d1..cec680a 100644
--- a/chrome/browser/ui/extensions/application_launch.cc
+++ b/chrome/browser/ui/extensions/application_launch.cc
@@ -20,7 +20,6 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/extensions/app_metro_infobar_delegate_win.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/web_applications/web_app.h"
@@ -343,17 +342,6 @@ WebContents* OpenApplication(const AppLaunchParams& params) {
UMA_HISTOGRAM_ENUMERATION("Extensions.AppLaunchContainer", container, 100);
if (extension->is_platform_app()) {
-#if defined(OS_WIN)
- // On Windows 8's single window Metro mode we can not launch platform apps.
- // Offer to switch Chrome to desktop mode.
- if (win8::IsSingleWindowMetroMode()) {
- AppMetroInfoBarDelegateWin::Create(
- profile, AppMetroInfoBarDelegateWin::LAUNCH_PACKAGED_APP,
- extension->id());
- return NULL;
- }
-#endif
-
apps::LaunchPlatformAppWithCommandLine(
profile, extension, params.command_line, params.current_directory);
return NULL;