Commit 277c414a authored by wittman@chromium.org's avatar wittman@chromium.org

Always enable enhanced bookmarks external component extensions for incognito mode

BUG=384656

Review URL: https://codereview.chromium.org/331743004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278469 0039d316-1c4b-4281-b951-d872f2087c98
parent f336da83
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "extensions/browser/extension_util.h" #include "extensions/browser/extension_util.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
#include "extensions/common/extension_icon_set.h" #include "extensions/common/extension_icon_set.h"
#include "extensions/common/features/simple_feature.h"
#include "extensions/common/manifest.h" #include "extensions/common/manifest.h"
#include "extensions/common/manifest_handlers/incognito_info.h" #include "extensions/common/manifest_handlers/incognito_info.h"
#include "grit/theme_resources.h" #include "grit/theme_resources.h"
...@@ -34,7 +35,23 @@ namespace { ...@@ -34,7 +35,23 @@ namespace {
// all urls without explicit permission. // all urls without explicit permission.
const char kExtensionAllowedOnAllUrlsPrefName[] = const char kExtensionAllowedOnAllUrlsPrefName[] =
"extension_can_script_all_urls"; "extension_can_script_all_urls";
// Returns true if |extension_id| for an external component extension should
// always be enabled in incognito windows.
bool IsWhitelistedForIncognito(const std::string& extension_id) {
static const char* kExtensionWhitelist[] = {
"D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
"D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
"3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
};
return extensions::SimpleFeature::IsIdInList(
extension_id,
std::set<std::string>(
kExtensionWhitelist,
kExtensionWhitelist + arraysize(kExtensionWhitelist)));
} }
} // namespace
bool IsIncognitoEnabled(const std::string& extension_id, bool IsIncognitoEnabled(const std::string& extension_id,
content::BrowserContext* context) { content::BrowserContext* context) {
...@@ -47,6 +64,10 @@ bool IsIncognitoEnabled(const std::string& extension_id, ...@@ -47,6 +64,10 @@ bool IsIncognitoEnabled(const std::string& extension_id,
// work in incognito mode. // work in incognito mode.
if (extension->location() == Manifest::COMPONENT) if (extension->location() == Manifest::COMPONENT)
return true; return true;
if (extension->location() == Manifest::EXTERNAL_COMPONENT &&
IsWhitelistedForIncognito(extension_id)) {
return true;
}
} }
return ExtensionPrefs::Get(context)->IsIncognitoEnabled(extension_id); return ExtensionPrefs::Get(context)->IsIncognitoEnabled(extension_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment