Chromium Code Reviews| Index: chrome/browser/extensions/launch_util.cc |
| diff --git a/chrome/browser/extensions/launch_util.cc b/chrome/browser/extensions/launch_util.cc |
| index 14423aec6f3a0682b86f874d8af828d2a4a60b01..f6bb5cccefa56b90dfdeae7bbdd7da3fedb40238 100644 |
| --- a/chrome/browser/extensions/launch_util.cc |
| +++ b/chrome/browser/extensions/launch_util.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/command_line.h" |
| #include "base/values.h" |
| #include "chrome/browser/extensions/extension_prefs.h" |
| +#include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/ui/host_desktop.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| @@ -32,7 +33,7 @@ const char kPrefLaunchType[] = "launchType"; |
| LaunchType GetLaunchType(const ExtensionPrefs* prefs, |
| const Extension* extension) { |
| - int value = -1; |
| + int value = LAUNCH_TYPE_INVALID; |
| LaunchType result = LAUNCH_TYPE_DEFAULT; |
| // Launch hosted apps as windows by default for streamlined hosted apps. |
| @@ -66,11 +67,27 @@ LaunchType GetLaunchType(const ExtensionPrefs* prefs, |
| return result; |
| } |
| -void SetLaunchType(ExtensionPrefs* prefs, |
| +void SetLaunchType(ExtensionService* service, |
| const std::string& extension_id, |
| LaunchType launch_type) { |
| - prefs->UpdateExtensionPref(extension_id, kPrefLaunchType, |
| + DCHECK(launch_type >= LAUNCH_TYPE_FIRST && launch_type < NUM_LAUNCH_TYPES); |
| + |
| + service->extension_prefs()->UpdateExtensionPref(extension_id, kPrefLaunchType, |
| new base::FundamentalValue(static_cast<int>(launch_type))); |
| + |
| + // Sync the launch type. |
| + const Extension* extension = service->GetInstalledExtension(extension_id); |
| + if (extension) { |
| + ExtensionSyncService::Get(service->profile())-> |
| + SyncExtensionChangeIfNeeded(*extension); |
| + } |
| +} |
| + |
| +bool HasPreferredLaunchType(const ExtensionPrefs* prefs, |
| + const Extension* extension) { |
| + int value = LAUNCH_TYPE_INVALID; |
| + return extension && |
| + prefs->ReadPrefAsInteger(extension->id(), kPrefLaunchType, &value); |
|
Nicolas Zea
2013/12/18 21:14:04
Just to double check, this will return false if th
calamity
2013/12/19 06:27:52
Yep.
|
| } |
| LaunchContainer GetLaunchContainer(const ExtensionPrefs* prefs, |