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

Unified Diff: chrome/common/extensions/extension.cc

Issue 10782030: Add content pack information to Extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 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
Index: chrome/common/extensions/extension.cc
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index 4f3aaf7c94cda355d97901b7c8153717b59e785c..6dd482eddb8178f0d659c9aaecc691d203fc0f8b 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -504,6 +504,18 @@ bool Extension::is_theme() const {
return manifest()->is_theme();
}
+bool Extension::is_content_pack() const {
+ return manifest()->is_content_pack();
+}
+
+FilePath Extension::GetContentPackSiteList() const {
+ if (content_pack_site_list_.empty())
+ return FilePath();
+
+ // TODO(bauerb): Use ExtensionResource?
+ return path().Append(content_pack_site_list_);
+}
+
GURL Extension::GetBackgroundURL() const {
if (!background_scripts_.empty()) {
return GetResourceURL(
@@ -2886,6 +2898,35 @@ bool Extension::LoadThemeDisplayProperties(const DictionaryValue* theme_value,
return true;
}
+bool Extension::LoadManagedModeFeatures(string16* error) {
+ if (!manifest_->HasKey(keys::kContentPack))
+ return true;
+ DictionaryValue* content_pack_value = NULL;
+ if (!manifest_->GetDictionary(keys::kContentPack, &content_pack_value)) {
+ *error = ASCIIToUTF16(errors::kInvalidContentPack);
+ return false;
+ }
+ if (!LoadManagedModeSites(content_pack_value, error))
+ return false;
+
+ return true;
+}
+
+bool Extension::LoadManagedModeSites(
+ const DictionaryValue* content_pack_value,
+ string16* error) {
+ if (!content_pack_value->HasKey(keys::kContentPackSites))
+ return true;
+
+ if (!content_pack_value->GetString(keys::kContentPackSites,
+ &content_pack_site_list_)) {
+ *error = ASCIIToUTF16(errors::kInvalidContentPackSites);
+ return false;
+ }
+
+ return true;
+}
+
// static
bool Extension::IsTrustedId(const std::string& id) {
// See http://b/4946060 for more details.
@@ -3154,6 +3195,9 @@ bool Extension::InitFromValue(int flags, string16* error) {
if (!LoadThemeFeatures(error))
return false;
+ if (!LoadManagedModeFeatures(error))
+ return false;
+
if (HasMultipleUISurfaces()) {
*error = ASCIIToUTF16(errors::kOneUISurfaceOnly);
return false;

Powered by Google App Engine
This is Rietveld 408576698