summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--athena/extensions/chrome/extensions_delegate_impl.cc8
-rw-r--r--chrome/browser/apps/app_browsertest.cc37
-rw-r--r--chrome/browser/apps/app_browsertest_util.cc7
-rw-r--r--chrome/browser/apps/app_window_browsertest.cc8
-rw-r--r--chrome/browser/apps/ephemeral_app_launcher.cc5
-rw-r--r--chrome/browser/background/background_mode_manager.cc5
-rw-r--r--chrome/browser/chromeos/app_mode/startup_app_launcher.cc4
-rw-r--r--chrome/browser/chromeos/extensions/wallpaper_manager_util.cc8
-rw-r--r--chrome/browser/chromeos/first_run/first_run.cc6
-rw-r--r--chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc7
-rw-r--r--chrome/browser/chromeos/policy/device_local_account_browsertest.cc7
-rw-r--r--chrome/browser/extensions/api/management/chrome_management_api_delegate.cc6
-rw-r--r--chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc10
-rw-r--r--chrome/browser/extensions/extension_apitest.cc9
-rw-r--r--chrome/browser/extensions/extension_storage_monitor_browsertest.cc6
-rw-r--r--chrome/browser/policy/policy_browsertest.cc9
-rw-r--r--chrome/browser/search/hotword_service.cc7
-rw-r--r--chrome/browser/signin/easy_unlock_service_regular.cc7
-rw-r--r--chrome/browser/ui/app_list/app_list_controller_delegate_impl.cc5
-rw-r--r--chrome/browser/ui/ash/chrome_new_window_delegate_chromeos.cc12
-rw-r--r--chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc13
-rw-r--r--chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc14
-rw-r--r--chrome/browser/ui/browser_browsertest.cc16
-rw-r--r--chrome/browser/ui/chrome_pages.cc15
-rw-r--r--chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm8
-rw-r--r--chrome/browser/ui/extensions/app_launch_params.cc27
-rw-r--r--chrome/browser/ui/extensions/app_launch_params.h11
-rw-r--r--chrome/browser/ui/extensions/application_launch.cc10
-rw-r--r--chrome/browser/ui/startup/startup_browser_creator_impl.cc13
-rw-r--r--chrome/browser/ui/views/frame/browser_window_property_manager_browsertest_win.cc9
-rw-r--r--chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc8
-rw-r--r--chrome/browser/ui/webui/extensions/extension_settings_handler.cc4
-rw-r--r--chrome/browser/ui/webui/ntp/app_launcher_handler.cc14
-rw-r--r--chrome/test/ppapi/ppapi_browsertest.cc8
-rw-r--r--chrome/test/remoting/remote_desktop_browsertest.cc13
-rw-r--r--extensions/browser/api/app_runtime/app_runtime_api.cc13
-rw-r--r--extensions/common/api/app_runtime.idl9
-rw-r--r--extensions/common/constants.h9
-rw-r--r--tools/metrics/histograms/histograms.xml6
39 files changed, 242 insertions, 151 deletions
diff --git a/athena/extensions/chrome/extensions_delegate_impl.cc b/athena/extensions/chrome/extensions_delegate_impl.cc
index feedc8e..2678f35 100644
--- a/athena/extensions/chrome/extensions_delegate_impl.cc
+++ b/athena/extensions/chrome/extensions_delegate_impl.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "extensions/browser/extension_registry.h"
@@ -59,10 +60,9 @@ class ChromeExtensionsDelegate : public ExtensionsDelegate {
return false;
int event_flags = 0;
- AppLaunchParams params(Profile::FromBrowserContext(context),
- extension,
- event_flags,
- chrome::HOST_DESKTOP_TYPE_ASH);
+ AppLaunchParams params(Profile::FromBrowserContext(context), extension,
+ event_flags, chrome::HOST_DESKTOP_TYPE_ASH,
+ extensions::SOURCE_APP_LAUNCHER);
// TODO(oshima): rename HOST_DESTOP_TYPE_ASH to non native desktop.
if (app_id == extensions::kWebStoreAppId) {
diff --git a/chrome/browser/apps/app_browsertest.cc b/chrome/browser/apps/app_browsertest.cc
index 9db785e..7d604b4 100644
--- a/chrome/browser/apps/app_browsertest.cc
+++ b/chrome/browser/apps/app_browsertest.cc
@@ -20,6 +20,7 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
@@ -42,9 +43,11 @@
#include "extensions/browser/notification_types.h"
#include "extensions/browser/pref_names.h"
#include "extensions/common/api/app_runtime.h"
+#include "extensions/common/constants.h"
#include "extensions/test/extension_test_message_listener.h"
#include "extensions/test/result_catcher.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "ui/base/window_open_disposition.h"
#include "url/gurl.h"
#if defined(OS_CHROMEOS)
@@ -508,8 +511,8 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, LaunchWithRelativeFile) {
ASSERT_TRUE(extension);
// Run the test
- AppLaunchParams params(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW);
+ AppLaunchParams params(browser()->profile(), extension, LAUNCH_CONTAINER_NONE,
+ NEW_WINDOW, extensions::SOURCE_UNTRACKED);
params.command_line = *CommandLine::ForCurrentProcess();
params.current_directory = test_data_dir_;
OpenApplication(params);
@@ -838,8 +841,9 @@ void PlatformAppDevToolsBrowserTest::RunTestWithDevTools(
content::WindowedNotificationObserver app_loaded_observer(
content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
content::NotificationService::AllSources());
- OpenApplication(AppLaunchParams(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
app_loaded_observer.Wait();
window = GetFirstAppWindow();
ASSERT_TRUE(window);
@@ -983,8 +987,9 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest,
ASSERT_TRUE(should_install.seen());
ExtensionTestMessageListener launched_listener("Launched", false);
- OpenApplication(AppLaunchParams(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(launched_listener.WaitUntilSatisfied());
}
@@ -1006,8 +1011,9 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest,
ASSERT_TRUE(extension);
ExtensionTestMessageListener launched_listener("Launched", false);
- OpenApplication(AppLaunchParams(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(launched_listener.WaitUntilSatisfied());
ASSERT_FALSE(should_not_install.seen());
@@ -1043,8 +1049,9 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, ComponentAppBackgroundPage) {
ASSERT_TRUE(should_install.seen());
ExtensionTestMessageListener launched_listener("Launched", false);
- OpenApplication(AppLaunchParams(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(launched_listener.WaitUntilSatisfied());
}
@@ -1066,8 +1073,9 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest,
{
ExtensionTestMessageListener launched_listener("Launched", false);
- OpenApplication(AppLaunchParams(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(launched_listener.WaitUntilSatisfied());
}
@@ -1217,8 +1225,9 @@ IN_PROC_BROWSER_TEST_F(PlatformAppIncognitoBrowserTest, IncognitoComponentApp) {
ASSERT_TRUE(registry != NULL);
registry->AddObserver(this);
- OpenApplication(AppLaunchParams(
- incognito_profile, file_manager, 0, chrome::HOST_DESKTOP_TYPE_NATIVE));
+ OpenApplication(AppLaunchParams(incognito_profile, file_manager, CURRENT_TAB,
+ chrome::HOST_DESKTOP_TYPE_NATIVE,
+ extensions::SOURCE_UNTRACKED));
while (!ContainsKey(opener_app_ids_, file_manager->id())) {
content::RunAllPendingInMessageLoop();
diff --git a/chrome/browser/apps/app_browsertest_util.cc b/chrome/browser/apps/app_browsertest_util.cc
index f8d804ea..169883f 100644
--- a/chrome/browser/apps/app_browsertest_util.cc
+++ b/chrome/browser/apps/app_browsertest_util.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/extensions/extension_function_test_utils.h"
#include "chrome/browser/ui/apps/chrome_app_delegate.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/browser_test_utils.h"
@@ -19,6 +20,7 @@
#include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/app_window/native_app_window.h"
#include "extensions/browser/process_manager.h"
+#include "extensions/common/constants.h"
#include "extensions/common/switches.h"
#include "extensions/test/extension_test_message_listener.h"
@@ -112,8 +114,9 @@ const Extension* PlatformAppBrowserTest::InstallAndLaunchPlatformApp(
}
void PlatformAppBrowserTest::LaunchPlatformApp(const Extension* extension) {
- OpenApplication(AppLaunchParams(
- browser()->profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
}
WebContents* PlatformAppBrowserTest::GetFirstAppWindowWebContents() {
diff --git a/chrome/browser/apps/app_window_browsertest.cc b/chrome/browser/apps/app_window_browsertest.cc
index 12bcbab..4674257 100644
--- a/chrome/browser/apps/app_window_browsertest.cc
+++ b/chrome/browser/apps/app_window_browsertest.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/apps/app_browsertest_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/test_utils.h"
@@ -216,10 +217,9 @@ IN_PROC_BROWSER_TEST_F(AppWindowAPITest,
test_data_dir_.AppendASCII("platform_apps").AppendASCII("window_api"));
EXPECT_TRUE(extension);
- OpenApplication(AppLaunchParams(browser()->profile(),
- extension,
- extensions::LAUNCH_CONTAINER_NONE,
- NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
ExtensionTestMessageListener geometry_listener("ListenGeometryChange", true);
diff --git a/chrome/browser/apps/ephemeral_app_launcher.cc b/chrome/browser/apps/ephemeral_app_launcher.cc
index a1f516b..643f633 100644
--- a/chrome/browser/apps/ephemeral_app_launcher.cc
+++ b/chrome/browser/apps/ephemeral_app_launcher.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_navigator.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/extensions/extension_enable_flow.h"
#include "chrome/browser/ui/native_window_tracker.h"
@@ -22,6 +23,7 @@
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/management_policy.h"
+#include "extensions/common/constants.h"
#include "extensions/common/permissions/permissions_data.h"
using content::WebContents;
@@ -279,7 +281,8 @@ void EphemeralAppLauncher::LaunchApp(const Extension* extension) const {
ExtensionRegistry::Get(profile())
->GetExtensionById(extension->id(), ExtensionRegistry::ENABLED));
- AppLaunchParams params(profile(), extension, NEW_FOREGROUND_TAB);
+ AppLaunchParams params(profile(), extension, NEW_FOREGROUND_TAB,
+ extensions::SOURCE_EPHEMERAL_APP);
params.desktop_type =
chrome::GetHostDesktopTypeForNativeWindow(parent_window_);
OpenApplication(params);
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
index a6bb71b..b95f598 100644
--- a/chrome/browser/background/background_mode_manager.cc
+++ b/chrome/browser/background/background_mode_manager.cc
@@ -32,6 +32,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/chrome_pages.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/user_manager.h"
@@ -44,6 +45,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/user_metrics.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/options_page_info.h"
#include "extensions/common/permissions/permission_set.h"
@@ -318,7 +320,8 @@ void BackgroundModeManager::RegisterProfile(Profile* profile) {
void BackgroundModeManager::LaunchBackgroundApplication(
Profile* profile,
const Extension* extension) {
- OpenApplication(AppLaunchParams(profile, extension, NEW_FOREGROUND_TAB));
+ OpenApplication(AppLaunchParams(profile, extension, NEW_FOREGROUND_TAB,
+ extensions::SOURCE_BACKGROUND));
}
bool BackgroundModeManager::IsBackgroundModeActive() {
diff --git a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc
index 6a2451e..4bdd7dd 100644
--- a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc
+++ b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc
@@ -22,6 +22,7 @@
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
#include "chrome/browser/signin/signin_manager_factory.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
@@ -33,6 +34,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/kiosk_mode_info.h"
#include "extensions/common/manifest_handlers/offline_enabled_info.h"
@@ -331,7 +333,7 @@ void StartupAppLauncher::LaunchApp() {
// Always open the app in a window.
OpenApplication(AppLaunchParams(profile_, extension,
extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_WINDOW));
+ NEW_WINDOW, extensions::SOURCE_KIOSK));
InitAppSession(profile_, app_id_);
user_manager::UserManager::Get()->SessionStarted();
diff --git a/chrome/browser/chromeos/extensions/wallpaper_manager_util.cc b/chrome/browser/chromeos/extensions/wallpaper_manager_util.cc
index da40b7a..46ed021 100644
--- a/chrome/browser/chromeos/extensions/wallpaper_manager_util.cc
+++ b/chrome/browser/chromeos/extensions/wallpaper_manager_util.cc
@@ -8,9 +8,11 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/extensions/extension_constants.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "ui/base/window_open_disposition.h"
@@ -30,9 +32,9 @@ void OpenWallpaperManager() {
if (!extension)
return;
- OpenApplication(AppLaunchParams(profile, extension,
- extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_WINDOW));
+ OpenApplication(
+ AppLaunchParams(profile, extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL));
}
} // namespace wallpaper_manager_util
diff --git a/chrome/browser/chromeos/first_run/first_run.cc b/chrome/browser/chromeos/first_run/first_run.cc
index b9c7947..b4af283 100644
--- a/chrome/browser/chromeos/first_run/first_run.cc
+++ b/chrome/browser/chromeos/first_run/first_run.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension_constants.h"
@@ -40,8 +41,9 @@ void LaunchDialogForProfile(Profile* profile) {
if (!extension)
return;
- OpenApplication(AppLaunchParams(
- profile, extension, extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW));
+ OpenApplication(
+ AppLaunchParams(profile, extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL));
profile->GetPrefs()->SetBoolean(prefs::kFirstRunTutorialShown, true);
}
diff --git a/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc b/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc
index 466638f..6be11b8 100644
--- a/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc
+++ b/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension_constants.h"
@@ -22,6 +23,7 @@
#include "chromeos/network/network_state_handler.h"
#include "components/user_manager/user_manager.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "ui/base/window_open_disposition.h"
@@ -92,8 +94,9 @@ void DemoAppLauncher::OnProfileLoaded(Profile* profile) {
false,
chromeos::network_handler::ErrorCallback());
- OpenApplication(AppLaunchParams(
- profile, extension, extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW));
+ OpenApplication(
+ AppLaunchParams(profile, extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL));
InitAppSession(profile, extension_id);
user_manager::UserManager::Get()->SessionStarted();
diff --git a/chrome/browser/chromeos/policy/device_local_account_browsertest.cc b/chrome/browser/chromeos/policy/device_local_account_browsertest.cc
index 427ee0f..f751f72 100644
--- a/chrome/browser/chromeos/policy/device_local_account_browsertest.cc
+++ b/chrome/browser/chromeos/policy/device_local_account_browsertest.cc
@@ -74,6 +74,7 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -119,6 +120,7 @@
#include "extensions/browser/extension_system.h"
#include "extensions/browser/management_policy.h"
#include "extensions/browser/notification_types.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "net/base/url_util.h"
#include "net/http/http_status_code.h"
@@ -1325,8 +1327,9 @@ IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, LastWindowClosedLogoutReminder) {
// Start the platform app, causing it to open a window.
run_loop_.reset(new base::RunLoop);
- OpenApplication(AppLaunchParams(
- profile, app, extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(profile, app,
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
run_loop_->Run();
EXPECT_EQ(1U, app_window_registry->app_windows().size());
diff --git a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
index a375d5f..8817775 100644
--- a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
+++ b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
@@ -242,9 +242,9 @@ bool ChromeManagementAPIDelegate::LaunchAppFunctionDelegate(
// returned.
extensions::LaunchContainer launch_container =
GetLaunchContainer(extensions::ExtensionPrefs::Get(context), extension);
- OpenApplication(AppLaunchParams(Profile::FromBrowserContext(context),
- extension, launch_container,
- NEW_FOREGROUND_TAB));
+ OpenApplication(AppLaunchParams(
+ Profile::FromBrowserContext(context), extension, launch_container,
+ NEW_FOREGROUND_TAB, extensions::SOURCE_MANAGEMENT_API));
extensions::RecordAppLaunchType(extension_misc::APP_LAUNCH_EXTENSION_API,
extension->GetType());
diff --git a/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc b/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
index e338991..b531f2b 100644
--- a/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
+++ b/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
@@ -21,12 +21,15 @@
#include "chrome/browser/media_galleries/media_galleries_scan_result_controller.h"
#include "chrome/browser/media_galleries/media_galleries_test_util.h"
#include "chrome/browser/media_galleries/media_scan_manager.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
+#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_paths.h"
#include "components/storage_monitor/storage_info.h"
#include "components/storage_monitor/storage_monitor.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/test_utils.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/test/result_catcher.h"
#include "media/base/test_data_util.h"
@@ -470,10 +473,9 @@ IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppPpapiTest, SendFilesystem) {
ASSERT_TRUE(extension);
extensions::ResultCatcher catcher;
- AppLaunchParams params(browser()->profile(),
- extension,
- extensions::LAUNCH_CONTAINER_NONE,
- NEW_WINDOW);
+ AppLaunchParams params(browser()->profile(), extension,
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED);
params.command_line = *CommandLine::ForCurrentProcess();
OpenApplication(params);
diff --git a/chrome/browser/extensions/extension_apitest.cc b/chrome/browser/extensions/extension_apitest.cc
index ecf88fd..d8c696f 100644
--- a/chrome/browser/extensions/extension_apitest.cc
+++ b/chrome/browser/extensions/extension_apitest.cc
@@ -11,11 +11,13 @@
#include "chrome/browser/extensions/unpacked_installer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/test/base/ui_test_utils.h"
#include "extensions/browser/api/test/test_api.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
#include "extensions/test/result_catcher.h"
@@ -308,10 +310,9 @@ bool ExtensionApiTest::RunExtensionTestImpl(const std::string& extension_name,
else
ui_test_utils::NavigateToURL(browser(), url);
} else if (launch_platform_app) {
- AppLaunchParams params(browser()->profile(),
- extension,
- extensions::LAUNCH_CONTAINER_NONE,
- NEW_WINDOW);
+ AppLaunchParams params(browser()->profile(), extension,
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED);
params.command_line = *CommandLine::ForCurrentProcess();
OpenApplication(params);
}
diff --git a/chrome/browser/extensions/extension_storage_monitor_browsertest.cc b/chrome/browser/extensions/extension_storage_monitor_browsertest.cc
index d2a3966..b96930a 100644
--- a/chrome/browser/extensions/extension_storage_monitor_browsertest.cc
+++ b/chrome/browser/extensions/extension_storage_monitor_browsertest.cc
@@ -9,12 +9,14 @@
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_storage_monitor.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "content/public/test/test_utils.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/test_extension_registry_observer.h"
+#include "extensions/common/constants.h"
#include "extensions/test/extension_test_message_listener.h"
#include "ui/message_center/message_center.h"
#include "ui/message_center/message_center_observer.h"
@@ -179,8 +181,8 @@ class ExtensionStorageMonitorTest : public ExtensionBrowserTest {
NotificationObserver notification_observer(
GetNotificationId(extension->id()));
- OpenApplication(AppLaunchParams(
- profile(), extension, LAUNCH_CONTAINER_NONE, NEW_WINDOW));
+ OpenApplication(AppLaunchParams(profile(), extension, LAUNCH_CONTAINER_NONE,
+ NEW_WINDOW, extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(launched_listener.WaitUntilSatisfied());
// Instruct the app to write |num_bytes| of data.
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
index 939d360..f450b7c 100644
--- a/chrome/browser/policy/policy_browsertest.cc
+++ b/chrome/browser/policy/policy_browsertest.cc
@@ -69,6 +69,8 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
+#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/location_bar/location_bar.h"
#include "chrome/browser/ui/omnibox/omnibox_edit_model.h"
@@ -2435,10 +2437,9 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, FullscreenAllowedApp) {
// Launch an app that tries to open a fullscreen window.
TestAddAppWindowObserver add_window_observer(
extensions::AppWindowRegistry::Get(browser()->profile()));
- OpenApplication(AppLaunchParams(browser()->profile(),
- extension,
- extensions::LAUNCH_CONTAINER_NONE,
- NEW_WINDOW));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension,
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED));
extensions::AppWindow* window = add_window_observer.WaitForAppWindow();
ASSERT_TRUE(window);
diff --git a/chrome/browser/search/hotword_service.cc b/chrome/browser/search/hotword_service.cc
index 64e7430..76b15165d 100644
--- a/chrome/browser/search/hotword_service.cc
+++ b/chrome/browser/search/hotword_service.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/hotword_audio_history_handler.h"
#include "chrome/browser/search/hotword_service_factory.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
@@ -33,6 +34,7 @@
#include "content/public/common/webplugininfo.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/uninstall_reason.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/one_shot_event.h"
#include "ui/base/l10n/l10n_util.h"
@@ -487,8 +489,9 @@ void HotwordService::LaunchHotwordAudioVerificationApp(
if (!extension)
return;
- OpenApplication(AppLaunchParams(
- profile_, extension, extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW));
+ OpenApplication(
+ AppLaunchParams(profile_, extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL));
}
HotwordService::LaunchMode
diff --git a/chrome/browser/signin/easy_unlock_service_regular.cc b/chrome/browser/signin/easy_unlock_service_regular.cc
index 7da3557..6b91471 100644
--- a/chrome/browser/signin/easy_unlock_service_regular.cc
+++ b/chrome/browser/signin/easy_unlock_service_regular.cc
@@ -14,12 +14,14 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/easy_unlock_toggle_flow.h"
#include "chrome/browser/signin/screenlock_bridge.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/pref_names.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#if defined(OS_CHROMEOS)
#include "apps/app_lifetime_monitor_factory.h"
@@ -113,8 +115,9 @@ void EasyUnlockServiceRegular::OpenSetupApp() {
const extensions::Extension* extension =
service->GetExtensionById(extension_misc::kEasyUnlockAppId, false);
- OpenApplication(AppLaunchParams(
- profile(), extension, extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW));
+ OpenApplication(
+ AppLaunchParams(profile(), extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL));
}
const base::DictionaryValue* EasyUnlockServiceRegular::GetPermitAccess() const {
diff --git a/chrome/browser/ui/app_list/app_list_controller_delegate_impl.cc b/chrome/browser/ui/app_list/app_list_controller_delegate_impl.cc
index 98116d2..61b4542 100644
--- a/chrome/browser/ui/app_list/app_list_controller_delegate_impl.cc
+++ b/chrome/browser/ui/app_list/app_list_controller_delegate_impl.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/browser_navigator.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "extensions/browser/extension_system.h"
@@ -111,7 +112,8 @@ void AppListControllerDelegateImpl::LaunchApp(
int event_flags) {
AppListServiceImpl::RecordAppListAppLaunch();
- AppLaunchParams params(profile, extension, NEW_FOREGROUND_TAB);
+ AppLaunchParams params(profile, extension, NEW_FOREGROUND_TAB,
+ extensions::SOURCE_APP_LAUNCHER);
if (source != LAUNCH_FROM_UNKNOWN &&
extension->id() == extensions::kWebStoreAppId) {
@@ -122,7 +124,6 @@ void AppListControllerDelegateImpl::LaunchApp(
extension_urls::kWebstoreSourceField,
AppListSourceToString(source));
}
- params.source = extensions::SOURCE_APP_LAUNCHER;
FillLaunchParams(&params);
OpenApplication(params);
diff --git a/chrome/browser/ui/ash/chrome_new_window_delegate_chromeos.cc b/chrome/browser/ui/ash/chrome_new_window_delegate_chromeos.cc
index f616847..56d7d24 100644
--- a/chrome/browser/ui/ash/chrome_new_window_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/chrome_new_window_delegate_chromeos.cc
@@ -12,12 +12,15 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
#include "chrome/browser/ui/webui/chrome_web_contents_handler.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
+#include "ui/base/window_open_disposition.h"
ChromeNewWindowDelegateChromeos::ChromeNewWindowDelegateChromeos() {}
ChromeNewWindowDelegateChromeos::~ChromeNewWindowDelegateChromeos() {}
@@ -35,12 +38,9 @@ void ChromeNewWindowDelegateChromeos::OpenFileManager() {
const extensions::Extension* const extension =
service->GetInstalledExtension(kFileManagerAppId);
- // event_flags = 0 means this invokes the same behavior as the launcher
- // item is clicked without any keyboard modifiers.
- OpenApplication(AppLaunchParams(profile,
- extension,
- 0 /* event_flags */,
- chrome::HOST_DESKTOP_TYPE_ASH));
+ OpenApplication(AppLaunchParams(profile, extension, CURRENT_TAB,
+ chrome::HOST_DESKTOP_TYPE_ASH,
+ extensions::SOURCE_CHROME_INTERNAL));
}
void ChromeNewWindowDelegateChromeos::OpenCrosh() {
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
index 0d81c8f..04a1109 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
@@ -56,6 +56,7 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/extensions/extension_enable_flow.h"
#include "chrome/browser/ui/host_desktop.h"
@@ -85,6 +86,7 @@
#include "ui/aura/window.h"
#include "ui/aura/window_event_dispatcher.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/window_open_disposition.h"
#include "ui/keyboard/keyboard_util.h"
#include "ui/resources/grit/ui_resources.h"
#include "ui/wm/core/window_animations.h"
@@ -734,10 +736,9 @@ void ChromeLauncherController::LaunchApp(const std::string& app_id,
#endif
// The app will be created for the currently active profile.
- AppLaunchParams params(profile_,
- extension,
- event_flags,
- chrome::HOST_DESKTOP_TYPE_ASH);
+ AppLaunchParams params(
+ profile_, extension, ui::DispositionFromEventFlags(event_flags),
+ chrome::HOST_DESKTOP_TYPE_ASH, extensions::SOURCE_APP_LAUNCHER);
if (source != ash::LAUNCH_FROM_UNKNOWN &&
app_id == extensions::kWebStoreAppId) {
// Get the corresponding source string.
@@ -749,10 +750,6 @@ void ChromeLauncherController::LaunchApp(const std::string& app_id,
extension_url, extension_urls::kWebstoreSourceField, source_value);
}
- params.source = (source == ash::LAUNCH_FROM_UNKNOWN)
- ? extensions::SOURCE_UNTRACKED
- : extensions::SOURCE_APP_LAUNCHER;
-
OpenApplication(params);
}
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
index cd53877..fa4e167 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
@@ -38,6 +38,7 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/chrome_pages.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/settings_window_manager.h"
@@ -60,6 +61,7 @@
#include "ui/app_list/views/apps_grid_view.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/window.h"
+#include "ui/base/window_open_disposition.h"
#include "ui/events/event.h"
#include "ui/events/test/event_generator.h"
@@ -220,10 +222,8 @@ class ShelfAppBrowserTest : public ExtensionBrowserTest {
service->GetExtensionById(last_loaded_extension_id(), false);
EXPECT_TRUE(extension);
- OpenApplication(AppLaunchParams(profile(),
- extension,
- container,
- disposition));
+ OpenApplication(AppLaunchParams(profile(), extension, container,
+ disposition, extensions::SOURCE_UNTRACKED));
return extension;
}
@@ -2078,10 +2078,8 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, V1AppNavigation) {
// Create a windowed application.
AppLaunchParams params(
- profile(),
- controller_->GetExtensionForAppID(extensions::kWebStoreAppId),
- 0,
- chrome::HOST_DESKTOP_TYPE_ASH);
+ profile(), controller_->GetExtensionForAppID(extensions::kWebStoreAppId),
+ CURRENT_TAB, chrome::HOST_DESKTOP_TYPE_ASH, extensions::SOURCE_UNTRACKED);
params.container = extensions::LAUNCH_CONTAINER_WINDOW;
OpenApplication(params);
EXPECT_EQ(ash::STATUS_ACTIVE, model_->ItemByID(id)->status);
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index c7e91e18..cb1a8da 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -40,6 +40,7 @@
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_ui_prefs.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/startup/startup_browser_creator.h"
@@ -84,6 +85,7 @@
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/uninstall_reason.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
#include "net/dns/mock_host_resolver.h"
@@ -1342,11 +1344,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, ShouldShowLocationBar) {
const Extension* extension_app = GetExtension();
// Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would.
- WebContents* app_window =
- OpenApplication(AppLaunchParams(browser()->profile(),
- extension_app,
- extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_WINDOW));
+ WebContents* app_window = OpenApplication(AppLaunchParams(
+ browser()->profile(), extension_app, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(app_window);
DevToolsWindow* devtools_window =
@@ -1536,9 +1536,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, OpenAppWindowLikeNtp) {
const Extension* extension_app = GetExtension();
// Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would.
- WebContents* app_window = OpenApplication(
- AppLaunchParams(browser()->profile(), extension_app,
- extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW));
+ WebContents* app_window = OpenApplication(AppLaunchParams(
+ browser()->profile(), extension_app, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_UNTRACKED));
ASSERT_TRUE(app_window);
// Apps launched in a window from the NTP have an extensions tab helper but
diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc
index f0b002e..ccfbac4 100644
--- a/chrome/browser/ui/chrome_pages.cc
+++ b/chrome/browser/ui/chrome_pages.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_navigator.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
#include "chrome/browser/ui/settings_window_manager.h"
@@ -25,8 +26,10 @@
#include "chrome/common/url_constants.h"
#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents.h"
+#include "extensions/common/constants.h"
#include "google_apis/gaia/gaia_urls.h"
#include "net/base/url_util.h"
+#include "ui/base/window_open_disposition.h"
#if defined(OS_WIN)
#include "chrome/browser/enumerate_modules_model_win.h"
@@ -82,18 +85,22 @@ void ShowHelpImpl(Browser* browser,
extensions::ExtensionRegistry::Get(profile)->GetExtensionById(
genius_app::kGeniusAppId,
extensions::ExtensionRegistry::EVERYTHING);
- AppLaunchParams params(profile, extension, 0, host_desktop_type);
+ extensions::AppLaunchSource app_launch_source(extensions::SOURCE_UNTRACKED);
switch (source) {
case HELP_SOURCE_KEYBOARD:
- params.source = extensions::SOURCE_KEYBOARD;
+ app_launch_source = extensions::SOURCE_KEYBOARD;
break;
case HELP_SOURCE_MENU:
- params.source = extensions::SOURCE_SYSTEM_TRAY;
+ app_launch_source = extensions::SOURCE_SYSTEM_TRAY;
break;
case HELP_SOURCE_WEBUI:
- params.source = extensions::SOURCE_ABOUT_PAGE;
+ app_launch_source = extensions::SOURCE_ABOUT_PAGE;
break;
+ default:
+ NOTREACHED() << "Unhandled help source" << source;
}
+ AppLaunchParams params(profile, extension, CURRENT_TAB, host_desktop_type,
+ app_launch_source);
OpenApplication(params);
#else
GURL url;
diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm
index cc88c56..6d6be23 100644
--- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm
+++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm
@@ -10,10 +10,12 @@
#include "base/mac/sdk_forward_declarations.h"
#include "chrome/browser/apps/app_browsertest_util.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/test_utils.h"
#include "extensions/browser/app_window/app_window_registry.h"
+#include "extensions/common/constants.h"
using extensions::PlatformAppBrowserTest;
@@ -33,10 +35,8 @@ class NativeAppWindowCocoaBrowserTest : public PlatformAppBrowserTest {
content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
content::NotificationService::AllSources());
OpenApplication(
- AppLaunchParams(profile(),
- app_,
- extensions::LAUNCH_CONTAINER_NONE,
- NEW_WINDOW));
+ AppLaunchParams(profile(), app_, extensions::LAUNCH_CONTAINER_NONE,
+ NEW_WINDOW, extensions::SOURCE_UNTRACKED));
app_loaded_observer.Wait();
}
}
diff --git a/chrome/browser/ui/extensions/app_launch_params.cc b/chrome/browser/ui/extensions/app_launch_params.cc
index fdb6a9f..883ce47 100644
--- a/chrome/browser/ui/extensions/app_launch_params.cc
+++ b/chrome/browser/ui/extensions/app_launch_params.cc
@@ -7,14 +7,17 @@
#include "chrome/browser/extensions/launch_util.h"
#include "chrome/browser/profiles/profile.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
+#include "ui/base/window_open_disposition.h"
using extensions::ExtensionPrefs;
AppLaunchParams::AppLaunchParams(Profile* profile,
const extensions::Extension* extension,
extensions::LaunchContainer container,
- WindowOpenDisposition disposition)
+ WindowOpenDisposition disposition,
+ extensions::AppLaunchSource source)
: profile(profile),
extension_id(extension ? extension->id() : std::string()),
container(container),
@@ -23,12 +26,13 @@ AppLaunchParams::AppLaunchParams(Profile* profile,
override_url(),
override_bounds(),
command_line(CommandLine::NO_PROGRAM),
- source(extensions::SOURCE_UNTRACKED) {
+ source(source) {
}
AppLaunchParams::AppLaunchParams(Profile* profile,
const extensions::Extension* extension,
- WindowOpenDisposition disposition)
+ WindowOpenDisposition disposition,
+ extensions::AppLaunchSource source)
: profile(profile),
extension_id(extension ? extension->id() : std::string()),
container(extensions::LAUNCH_CONTAINER_NONE),
@@ -37,7 +41,7 @@ AppLaunchParams::AppLaunchParams(Profile* profile,
override_url(),
override_bounds(),
command_line(CommandLine::NO_PROGRAM),
- source(extensions::SOURCE_UNTRACKED) {
+ source(source) {
// Look up the app preference to find out the right launch container. Default
// is to launch as a regular tab.
container =
@@ -46,21 +50,24 @@ AppLaunchParams::AppLaunchParams(Profile* profile,
AppLaunchParams::AppLaunchParams(Profile* profile,
const extensions::Extension* extension,
- int event_flags,
- chrome::HostDesktopType desktop_type)
+ WindowOpenDisposition raw_disposition,
+ chrome::HostDesktopType desktop_type,
+ extensions::AppLaunchSource source)
: profile(profile),
extension_id(extension ? extension->id() : std::string()),
container(extensions::LAUNCH_CONTAINER_NONE),
- disposition(ui::DispositionFromEventFlags(event_flags)),
desktop_type(desktop_type),
override_url(),
override_bounds(),
command_line(CommandLine::NO_PROGRAM),
- source(extensions::SOURCE_UNTRACKED) {
- if (disposition == NEW_FOREGROUND_TAB || disposition == NEW_BACKGROUND_TAB) {
+ source(source) {
+ if (raw_disposition == NEW_FOREGROUND_TAB ||
+ raw_disposition == NEW_BACKGROUND_TAB) {
container = extensions::LAUNCH_CONTAINER_TAB;
- } else if (disposition == NEW_WINDOW) {
+ disposition = raw_disposition;
+ } else if (raw_disposition == NEW_WINDOW) {
container = extensions::LAUNCH_CONTAINER_WINDOW;
+ disposition = raw_disposition;
} else {
// Look at preference to find the right launch container. If no preference
// is set, launch as a regular tab.
diff --git a/chrome/browser/ui/extensions/app_launch_params.h b/chrome/browser/ui/extensions/app_launch_params.h
index a65ed75..5b66cec 100644
--- a/chrome/browser/ui/extensions/app_launch_params.h
+++ b/chrome/browser/ui/extensions/app_launch_params.h
@@ -26,13 +26,15 @@ struct AppLaunchParams {
AppLaunchParams(Profile* profile,
const extensions::Extension* extension,
extensions::LaunchContainer container,
- WindowOpenDisposition disposition);
+ WindowOpenDisposition disposition,
+ extensions::AppLaunchSource source);
// Helper to create AppLaunchParams using extensions::GetLaunchContainer with
// LAUNCH_TYPE_REGULAR to check for a user-configured container.
AppLaunchParams(Profile* profile,
const extensions::Extension* extension,
- WindowOpenDisposition disposition);
+ WindowOpenDisposition disposition,
+ extensions::AppLaunchSource source);
// Helper to create AppLaunchParams using event flags that allows user to
// override the user-configured container using modifier keys, falling back to
@@ -40,8 +42,9 @@ struct AppLaunchParams {
// indicates the desktop upon which to launch (Ash or Native).
AppLaunchParams(Profile* profile,
const extensions::Extension* extension,
- int event_flags,
- chrome::HostDesktopType desktop_type);
+ WindowOpenDisposition disposition,
+ chrome::HostDesktopType desktop_type,
+ extensions::AppLaunchSource source);
~AppLaunchParams();
diff --git a/chrome/browser/ui/extensions/application_launch.cc b/chrome/browser/ui/extensions/application_launch.cc
index af6d038..fb6799d 100644
--- a/chrome/browser/ui/extensions/application_launch.cc
+++ b/chrome/browser/ui/extensions/application_launch.cc
@@ -24,6 +24,7 @@
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/features/feature.h"
#include "extensions/common/features/feature_provider.h"
@@ -220,11 +221,10 @@ void OpenApplicationWithReenablePrompt(const AppLaunchParams& params) {
WebContents* OpenAppShortcutWindow(Profile* profile,
const GURL& url) {
- AppLaunchParams launch_params(
- profile,
- NULL, // this is a URL app. No extension.
- extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_WINDOW);
+ AppLaunchParams launch_params(profile,
+ NULL, // this is a URL app. No extension.
+ extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW,
+ extensions::SOURCE_COMMAND_LINE);
launch_params.override_url = url;
WebContents* tab = OpenWebAppWindow(launch_params, url);
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
index 6abbea5..266e6a7 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -57,6 +57,7 @@
#include "chrome/browser/ui/browser_tabrestore.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/startup/autolaunch_prompt.h"
@@ -336,7 +337,8 @@ bool StartupBrowserCreatorImpl::Launch(Profile* profile,
if (extension) {
RecordCmdLineAppHistogram(extensions::Manifest::TYPE_PLATFORM_APP);
AppLaunchParams params(profile, extension,
- extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW);
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_COMMAND_LINE);
params.command_line = command_line_;
params.current_directory = cur_dir_;
// If we are being launched from the command line, default to native
@@ -424,9 +426,9 @@ bool StartupBrowserCreatorImpl::OpenApplicationTab(Profile* profile) {
RecordCmdLineAppHistogram(extension->GetType());
- WebContents* app_tab = OpenApplication(AppLaunchParams(
- profile, extension, extensions::LAUNCH_CONTAINER_TAB,
- NEW_FOREGROUND_TAB));
+ WebContents* app_tab = OpenApplication(
+ AppLaunchParams(profile, extension, extensions::LAUNCH_CONTAINER_TAB,
+ NEW_FOREGROUND_TAB, extensions::SOURCE_COMMAND_LINE));
return (app_tab != NULL);
}
@@ -460,7 +462,8 @@ bool StartupBrowserCreatorImpl::OpenApplicationWindow(
RecordCmdLineAppHistogram(extension->GetType());
- AppLaunchParams params(profile, extension, launch_container, NEW_WINDOW);
+ AppLaunchParams params(profile, extension, launch_container, NEW_WINDOW,
+ extensions::SOURCE_COMMAND_LINE);
params.command_line = command_line_;
params.current_directory = cur_dir_;
WebContents* tab_in_app_window = OpenApplication(params);
diff --git a/chrome/browser/ui/views/frame/browser_window_property_manager_browsertest_win.cc b/chrome/browser/ui/views/frame/browser_window_property_manager_browsertest_win.cc
index 4e23d74..942d8b1 100644
--- a/chrome/browser/ui/views/frame/browser_window_property_manager_browsertest_win.cc
+++ b/chrome/browser/ui/views/frame/browser_window_property_manager_browsertest_win.cc
@@ -25,6 +25,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_iterator.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/web_applications/web_app.h"
#include "chrome/browser/web_applications/web_app_win.h"
@@ -34,6 +35,7 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/test_switches.h"
#include "content/public/test/test_utils.h"
+#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "ui/views/win/hwnd_util.h"
@@ -242,10 +244,9 @@ IN_PROC_BROWSER_TEST_F(BrowserWindowPropertyManagerTest, DISABLED_HostedApp) {
LoadExtension(test_data_dir_.AppendASCII("app/"));
EXPECT_TRUE(extension);
- OpenApplication(AppLaunchParams(browser()->profile(),
- extension,
- extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_FOREGROUND_TAB));
+ OpenApplication(AppLaunchParams(
+ browser()->profile(), extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_FOREGROUND_TAB, extensions::SOURCE_UNTRACKED));
// Check that the new browser has an app name.
// The launch should have created a new browser.
diff --git a/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
index b25aa16..add8c88 100644
--- a/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/webui/chromeos/login/native_window_delegate.h"
#include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h"
@@ -28,6 +29,7 @@
#include "chromeos/network/portal_detector/network_portal_detector_strategy.h"
#include "components/user_manager/user_manager.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/common/constants.h"
#include "grit/browser_resources.h"
#include "ui/strings/grit/ui_strings.h"
@@ -218,9 +220,9 @@ void ErrorScreenHandler::HandleDiagnoseButtonClicked() {
const extensions::Extension* extension = extension_service->
GetExtensionById(extension_id, true);
- OpenApplication(AppLaunchParams(profile, extension,
- extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_WINDOW));
+ OpenApplication(
+ AppLaunchParams(profile, extension, extensions::LAUNCH_CONTAINER_WINDOW,
+ NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL));
InitAppSession(profile, extension_id);
user_manager::UserManager::Get()->SessionStarted();
diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
index 1d4b6f7..0c3d3db 100644
--- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
+++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
@@ -49,6 +49,7 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/webui/extensions/extension_basic_info.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
@@ -1029,7 +1030,8 @@ void ExtensionSettingsHandler::HandleLaunchMessage(
extension_service_->GetExtensionById(extension_id, false);
OpenApplication(AppLaunchParams(extension_service_->profile(), extension,
extensions::LAUNCH_CONTAINER_WINDOW,
- NEW_WINDOW));
+ NEW_WINDOW,
+ extensions::SOURCE_EXTENSIONS_PAGE));
}
void ExtensionSettingsHandler::HandleReloadMessage(
diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
index 8389d98..c9c973b 100644
--- a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
+++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
@@ -30,6 +30,7 @@
#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_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/extensions/extension_enable_flow.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -520,12 +521,11 @@ void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) {
disposition == NEW_WINDOW) {
// TODO(jamescook): Proper support for background tabs.
AppLaunchParams params(profile, extension,
- disposition == NEW_WINDOW ?
- extensions::LAUNCH_CONTAINER_WINDOW :
- extensions::LAUNCH_CONTAINER_TAB,
- disposition);
+ disposition == NEW_WINDOW
+ ? extensions::LAUNCH_CONTAINER_WINDOW
+ : extensions::LAUNCH_CONTAINER_TAB,
+ disposition, extensions::SOURCE_NEW_TAB_PAGE);
params.override_url = GURL(url);
- params.source = extensions::SOURCE_NEW_TAB_PAGE;
OpenApplication(params);
} else {
// To give a more "launchy" experience when using the NTP launcher, we close
@@ -537,9 +537,9 @@ void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) {
old_contents = browser->tab_strip_model()->GetActiveWebContents();
AppLaunchParams params(profile, extension,
- old_contents ? CURRENT_TAB : NEW_FOREGROUND_TAB);
+ old_contents ? CURRENT_TAB : NEW_FOREGROUND_TAB,
+ extensions::SOURCE_NEW_TAB_PAGE);
params.override_url = GURL(url);
- params.source = extensions::SOURCE_NEW_TAB_PAGE;
WebContents* new_contents = OpenApplication(params);
// This will also destroy the handler, so do not perform any actions after.
diff --git a/chrome/test/ppapi/ppapi_browsertest.cc b/chrome/test/ppapi/ppapi_browsertest.cc
index c1b4df2..281c2c4 100644
--- a/chrome/test/ppapi/ppapi_browsertest.cc
+++ b/chrome/test/ppapi/ppapi_browsertest.cc
@@ -22,6 +22,7 @@
#include "content/public/common/url_constants.h"
#include "content/public/test/javascript_test_observer.h"
#include "content/public/test/test_renderer_host.h"
+#include "extensions/common/constants.h"
#include "extensions/test/extension_test_message_listener.h"
#include "ppapi/shared_impl/test_harness_utils.h"
@@ -1454,10 +1455,9 @@ class PackagedAppTest : public ExtensionBrowserTest {
const extensions::Extension* extension = LoadExtension(app_dir);
ASSERT_TRUE(extension);
- AppLaunchParams params(browser()->profile(),
- extension,
- extensions::LAUNCH_CONTAINER_NONE,
- NEW_WINDOW);
+ AppLaunchParams params(browser()->profile(), extension,
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW,
+ extensions::SOURCE_UNTRACKED);
params.command_line = *CommandLine::ForCurrentProcess();
OpenApplication(params);
}
diff --git a/chrome/test/remoting/remote_desktop_browsertest.cc b/chrome/test/remoting/remote_desktop_browsertest.cc
index 868f52d..80160d5 100644
--- a/chrome/test/remoting/remote_desktop_browsertest.cc
+++ b/chrome/test/remoting/remote_desktop_browsertest.cc
@@ -10,6 +10,7 @@
#include "base/path_service.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/unpacked_installer.h"
+#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/test/remoting/key_code_conv.h"
@@ -174,12 +175,12 @@ void RemoteDesktopBrowserTest::LaunchChromotingApp() {
// till the chromoting main page is loaded.
PageLoadNotificationObserver observer(chromoting_main);
- OpenApplication(AppLaunchParams(
- browser()->profile(),
- extension_,
- is_platform_app() ? extensions::LAUNCH_CONTAINER_NONE :
- extensions::LAUNCH_CONTAINER_TAB,
- is_platform_app() ? NEW_WINDOW : CURRENT_TAB));
+ OpenApplication(AppLaunchParams(browser()->profile(), extension_,
+ is_platform_app()
+ ? extensions::LAUNCH_CONTAINER_NONE
+ : extensions::LAUNCH_CONTAINER_TAB,
+ is_platform_app() ? NEW_WINDOW : CURRENT_TAB,
+ extensions::SOURCE_UNTRACKED));
observer.Wait();
diff --git a/extensions/browser/api/app_runtime/app_runtime_api.cc b/extensions/browser/api/app_runtime/app_runtime_api.cc
index 13ac1be..6cb7c71 100644
--- a/extensions/browser/api/app_runtime/app_runtime_api.cc
+++ b/extensions/browser/api/app_runtime/app_runtime_api.cc
@@ -83,13 +83,24 @@ app_runtime::LaunchSource getLaunchSourceEnum(
return app_runtime::LAUNCH_SOURCE_FILE_HANDLER;
case extensions::SOURCE_URL_HANDLER:
return app_runtime::LAUNCH_SOURCE_URL_HANDLER;
-
case extensions::SOURCE_SYSTEM_TRAY:
return app_runtime::LAUNCH_SOURCE_SYSTEM_TRAY;
case extensions::SOURCE_ABOUT_PAGE:
return app_runtime::LAUNCH_SOURCE_ABOUT_PAGE;
case extensions::SOURCE_KEYBOARD:
return app_runtime::LAUNCH_SOURCE_KEYBOARD;
+ case extensions::SOURCE_EXTENSIONS_PAGE:
+ return app_runtime::LAUNCH_SOURCE_EXTENSIONS_PAGE;
+ case extensions::SOURCE_MANAGEMENT_API:
+ return app_runtime::LAUNCH_SOURCE_MANAGEMENT_API;
+ case extensions::SOURCE_EPHEMERAL_APP:
+ return app_runtime::LAUNCH_SOURCE_EPHEMERAL_APP;
+ case extensions::SOURCE_BACKGROUND:
+ return app_runtime::LAUNCH_SOURCE_BACKGROUND;
+ case extensions::SOURCE_KIOSK:
+ return app_runtime::LAUNCH_SOURCE_KIOSK;
+ case extensions::SOURCE_CHROME_INTERNAL:
+ return app_runtime::LAUNCH_SOURCE_CHROME_INTERNAL;
default:
return app_runtime::LAUNCH_SOURCE_NONE;
diff --git a/extensions/common/api/app_runtime.idl b/extensions/common/api/app_runtime.idl
index 163db41..f729347 100644
--- a/extensions/common/api/app_runtime.idl
+++ b/extensions/common/api/app_runtime.idl
@@ -25,10 +25,15 @@ namespace app.runtime {
command_line,
file_handler,
url_handler,
-
system_tray,
about_page,
- keyboard
+ keyboard,
+ extensions_page,
+ management_api,
+ ephemeral_app,
+ background,
+ kiosk,
+ chrome_internal
};
// Optional data for the launch. Either <code>items</code>, or
diff --git a/extensions/common/constants.h b/extensions/common/constants.h
index 25d0be2..34f52c1 100644
--- a/extensions/common/constants.h
+++ b/extensions/common/constants.h
@@ -112,7 +112,7 @@ extern const char kWebStoreAppId[];
// Note the enumeration is used in UMA histogram so entries
// should not be re-ordered or removed.
enum AppLaunchSource {
- SOURCE_UNTRACKED = 0,
+ SOURCE_UNTRACKED = 0, // Should be used in test.
SOURCE_APP_LAUNCHER,
SOURCE_NEW_TAB_PAGE,
SOURCE_RELOAD,
@@ -121,10 +121,15 @@ enum AppLaunchSource {
SOURCE_COMMAND_LINE,
SOURCE_FILE_HANDLER,
SOURCE_URL_HANDLER,
-
SOURCE_SYSTEM_TRAY,
SOURCE_ABOUT_PAGE,
SOURCE_KEYBOARD,
+ SOURCE_EXTENSIONS_PAGE,
+ SOURCE_MANAGEMENT_API,
+ SOURCE_EPHEMERAL_APP,
+ SOURCE_BACKGROUND,
+ SOURCE_KIOSK,
+ SOURCE_CHROME_INTERNAL,
NUM_APP_LAUNCH_SOURCES
};
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 1ba519a..d67a666 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -41089,6 +41089,12 @@ Therefore, the affected-histogram name has to have at least one dot in it.
<int value="9" label="SOURCE_SYSTEM_TRAY"/>
<int value="10" label="SOURCE_ABOUT_PAGE"/>
<int value="11" label="SOURCE_KEYBOARD"/>
+ <int value="12" label="SOURCE_EXTENSIONS_PAGE"/>
+ <int value="13" label="SOURCE_MANAGEMENT_API"/>
+ <int value="14" label="SOURCE_EPHEMERAL_APP"/>
+ <int value="15" label="SOURCE_BACKGROUND"/>
+ <int value="16" label="SOURCE_KIOSK"/>
+ <int value="17" label="SOURCE_CHROME_INTERNAL"/>
</enum>
<enum name="AppListEnableSource" type="int">