| Index: chrome/browser/extensions/extensions_service.cc
|
| diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
|
| index fde71aa6eaa4c5517b9ad2ff0f34c4ab14aef3ab..c9df30fa0d0cb3a13c6154b933898ff31cfe27fe 100644
|
| --- a/chrome/browser/extensions/extensions_service.cc
|
| +++ b/chrome/browser/extensions/extensions_service.cc
|
| @@ -37,6 +37,7 @@
|
| #include "chrome/browser/pref_service.h"
|
| #include "chrome/browser/profile.h"
|
| #include "chrome/browser/search_engines/template_url_model.h"
|
| +#include "chrome/browser/sync/glue/extension_sync_traits.h"
|
| #include "chrome/browser/sync/glue/extension_util.h"
|
| #include "chrome/common/child_process_logging.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -962,8 +963,15 @@ void ExtensionsService::OnExtensionInstalled(Extension* extension,
|
| NewRunnableFunction(&DeleteFileHelper, extension->path(), true));
|
| return;
|
| }
|
| + // TODO(akalin): When we do apps sync, we have to work with its
|
| + // traits, too.
|
| + const browser_sync::ExtensionSyncTraits extension_sync_traits =
|
| + browser_sync::GetExtensionSyncTraits();
|
| + // If an extension is a theme, we bypass the valid/syncable check
|
| + // as themes are harmless.
|
| if (!extension->is_theme() &&
|
| - !browser_sync::IsExtensionSyncable(*extension)) {
|
| + !browser_sync::IsExtensionValidAndSyncable(
|
| + *extension, extension_sync_traits.allowed_extension_types)) {
|
| // We're an extension installed via sync that is unsyncable,
|
| // i.e. we may have been syncable previously. We block these
|
| // installs. We'll have to update the clause above if we decide
|
| @@ -978,7 +986,8 @@ void ExtensionsService::OnExtensionInstalled(Extension* extension,
|
| // TODO(akalin): Remove this check once we've put in UI to
|
| // approve synced extensions.
|
| LOG(WARNING)
|
| - << "Not installing non-syncable extension " << extension->id();
|
| + << "Not installing invalid or unsyncable extension "
|
| + << extension->id();
|
| // Delete the extension directory since we're not going to
|
| // load it.
|
| ChromeThread::PostTask(
|
|
|