Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1562)

Unified Diff: chrome/browser/extensions/extension_service.cc

Issue 8313006: Allow webstore extensions to use experimental permissions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extension_service.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_service.cc
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 05dcec701adbd639f9d770008eeec2f2e3a65dc9..8c8cc6529d34e22c579f70dee4b0c42b2be55620 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1257,21 +1257,12 @@ void ExtensionService::LoadAllExtensions() {
// thread.
base::ThreadRestrictions::ScopedAllowIO allow_io;
- int flags = Extension::NO_FLAGS;
- if (Extension::ShouldDoStrictErrorChecking(info->extension_location))
- flags |= Extension::STRICT_ERROR_CHECKS;
- if (extension_prefs_->AllowFileAccess(info->extension_id))
- flags |= Extension::ALLOW_FILE_ACCESS;
- if (extension_prefs_->IsFromWebStore(info->extension_id))
- flags |= Extension::FROM_WEBSTORE;
- if (extension_prefs_->IsFromBookmark(info->extension_id))
- flags |= Extension::FROM_BOOKMARK;
std::string error;
scoped_refptr<const Extension> extension(
extension_file_util::LoadExtension(
info->extension_path,
info->extension_location,
- flags,
+ GetExtensionCreateFlagsForInstalledExtension(info),
&error));
if (extension.get()) {
@@ -1428,22 +1419,11 @@ void ExtensionService::LoadInstalledExtension(const ExtensionInfo& info,
if (!extension_prefs_->IsExtensionAllowedByPolicy(info.extension_id)) {
error = errors::kDisabledByPolicy;
} else if (info.extension_manifest.get()) {
- int flags = Extension::NO_FLAGS;
- if (info.extension_location != Extension::LOAD)
- flags |= Extension::REQUIRE_KEY;
- if (Extension::ShouldDoStrictErrorChecking(info.extension_location))
- flags |= Extension::STRICT_ERROR_CHECKS;
- if (extension_prefs_->AllowFileAccess(info.extension_id))
- flags |= Extension::ALLOW_FILE_ACCESS;
- if (extension_prefs_->IsFromWebStore(info.extension_id))
- flags |= Extension::FROM_WEBSTORE;
- if (extension_prefs_->IsFromBookmark(info.extension_id))
- flags |= Extension::FROM_BOOKMARK;
extension = Extension::Create(
info.extension_path,
info.extension_location,
*info.extension_manifest,
- flags,
+ GetExtensionCreateFlagsForInstalledExtension(&info),
&error);
} else {
error = errors::kManifestUnreadable;
@@ -1470,6 +1450,22 @@ void ExtensionService::LoadInstalledExtension(const ExtensionInfo& info,
AddExtension(extension);
}
+int ExtensionService::GetExtensionCreateFlagsForInstalledExtension(
Mihai Parparita -not on Chrome 2011/10/16 22:41:46 Seems like this could be a static/in an unnamed na
+ const ExtensionInfo* info) {
+ int flags = Extension::NO_FLAGS;
+ if (info->extension_location != Extension::LOAD)
Mihai Parparita -not on Chrome 2011/10/16 22:41:46 Body is indented one too many times.
+ flags |= Extension::REQUIRE_KEY;
+ if (Extension::ShouldDoStrictErrorChecking(info->extension_location))
+ flags |= Extension::STRICT_ERROR_CHECKS;
+ if (extension_prefs_->AllowFileAccess(info->extension_id))
+ flags |= Extension::ALLOW_FILE_ACCESS;
+ if (extension_prefs_->IsFromWebStore(info->extension_id))
+ flags |= Extension::FROM_WEBSTORE;
+ if (extension_prefs_->IsFromBookmark(info->extension_id))
+ flags |= Extension::FROM_BOOKMARK;
+ return flags;
+}
+
void ExtensionService::NotifyExtensionLoaded(const Extension* extension) {
// The ChromeURLRequestContexts need to be first to know that the extension
// was loaded, otherwise a race can arise where a renderer that is created
« no previous file with comments | « chrome/browser/extensions/extension_service.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698