Index: chrome/browser/extensions/extension_sync_service.cc |
diff --git a/chrome/browser/extensions/extension_sync_service.cc b/chrome/browser/extensions/extension_sync_service.cc |
index 7dbe61398620e9c4f501402ea160bd4ed24f164f..ef12f1d73ffa6e0e487e52118f6878f9a9a9a1fe 100644 |
--- a/chrome/browser/extensions/extension_sync_service.cc |
+++ b/chrome/browser/extensions/extension_sync_service.cc |
@@ -27,6 +27,7 @@ |
#include "extensions/browser/app_sorting.h" |
#include "extensions/browser/extension_prefs.h" |
#include "extensions/browser/extension_registry.h" |
+#include "extensions/browser/extension_util.h" |
#include "extensions/common/extension.h" |
#include "extensions/common/extension_icon_set.h" |
#include "extensions/common/feature_switch.h" |
@@ -57,6 +58,11 @@ void OnWebApplicationInfoLoaded( |
CreateOrUpdateBookmarkApp(extension_service.get(), synced_info); |
} |
+bool CanSyncApp(const Extension* extension, Profile* profile) { |
+ return extensions::sync_helper::IsSyncableApp(extension) && |
+ !extensions::util::IsEphemeralApp(extension->id(), profile); |
+} |
+ |
} // namespace |
ExtensionSyncService::ExtensionSyncService(Profile* profile, |
@@ -97,7 +103,7 @@ syncer::SyncChange ExtensionSyncService::PrepareToSyncUninstallExtension( |
// "back from the dead" style bugs, because sync will add-back the extension |
// that was uninstalled here when MergeDataAndStartSyncing is called. |
// See crbug.com/256795. |
- if (extensions::sync_helper::IsSyncableApp(extension)) { |
+ if (CanSyncApp(extension, profile_)) { |
if (app_sync_bundle_.IsSyncing()) |
return app_sync_bundle_.CreateSyncChangeToDelete(extension); |
else if (extensions_ready && !flare_.is_null()) |
@@ -128,7 +134,7 @@ void ExtensionSyncService::SyncEnableExtension( |
const extensions::Extension& extension) { |
// Syncing may not have started yet, so handle pending enables. |
- if (extensions::sync_helper::IsSyncableApp(&extension)) |
+ if (CanSyncApp(&extension, profile_)) |
pending_app_enables_.OnExtensionEnabled(extension.id()); |
if (extensions::sync_helper::IsSyncableExtension(&extension)) |
@@ -141,7 +147,7 @@ void ExtensionSyncService::SyncDisableExtension( |
const extensions::Extension& extension) { |
// Syncing may not have started yet, so handle pending enables. |
- if (extensions::sync_helper::IsSyncableApp(&extension)) |
+ if (CanSyncApp(&extension, profile_)) |
pending_app_enables_.OnExtensionDisabled(extension.id()); |
if (extensions::sync_helper::IsSyncableExtension(&extension)) |
@@ -517,7 +523,7 @@ bool ExtensionSyncService::ProcessExtensionSyncDataHelper( |
void ExtensionSyncService::SyncExtensionChangeIfNeeded( |
const Extension& extension) { |
- if (extensions::sync_helper::IsSyncableApp(&extension)) { |
+ if (CanSyncApp(&extension, profile_)) { |
if (app_sync_bundle_.IsSyncing()) |
app_sync_bundle_.SyncChangeIfNeeded(extension); |
else if (extension_service_->is_ready() && !flare_.is_null()) |