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

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

Issue 11446034: SupportsUserData and manifest handlers for Extension; use them for the Omnibox API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 8 years 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 97a125c7eccef4d7f68b43763a5bf16ca9d55735..732dcbdabcdfd2f8d0d5ab42c1e658db3a6f3e04 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -34,6 +34,7 @@
#include "chrome/common/extensions/features/simple_feature_provider.h"
#include "chrome/common/extensions/file_browser_handler.h"
#include "chrome/common/extensions/manifest.h"
+#include "chrome/common/extensions/manifest_handler.h"
#include "chrome/common/extensions/permissions/permission_set.h"
#include "chrome/common/extensions/permissions/permissions_info.h"
#include "chrome/common/extensions/user_script.h"
@@ -2731,7 +2732,8 @@ bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
manifest_->GetBoolean(keys::kConvertedFromUserScript,
&converted_from_user_script_);
- if (!LoadDevToolsPage(error) ||
+ if (!LoadManifestHandlerFeatures(error) ||
+ !LoadDevToolsPage(error) ||
!LoadInputComponents(*api_permissions, error) ||
!LoadContentScripts(error) ||
!LoadPageAction(error) ||
@@ -2740,7 +2742,6 @@ bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
!LoadScriptBadge(error) ||
!LoadFileBrowserHandlers(error) ||
!LoadChromeURLOverrides(error) ||
- !LoadOmnibox(error) ||
!LoadTextToSpeechVoices(error) ||
!LoadIncognitoMode(error) ||
!LoadFileHandlers(error) ||
@@ -2750,6 +2751,18 @@ bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
return true;
}
+bool Extension::LoadManifestHandlerFeatures(string16* error) {
+ std::vector<std::string> keys = ManifestHandler::GetKeys();
+ for (size_t i = 0; i < keys.size(); ++i) {
+ Value* value = NULL;
+ if (!manifest_->Get(keys[i], &value))
+ continue;
+ if (!ManifestHandler::Get(keys[i])->Parse(value, this, error))
+ return false;
+ }
+ return true;
+}
+
bool Extension::LoadDevToolsPage(string16* error) {
if (!manifest_->HasKey(keys::kDevToolsPage))
return true;
@@ -3302,17 +3315,6 @@ bool Extension::LoadChromeURLOverrides(string16* error) {
return true;
}
-bool Extension::LoadOmnibox(string16* error) {
- if (!manifest_->HasKey(keys::kOmnibox))
- return true;
- if (!manifest_->GetString(keys::kOmniboxKeyword, &omnibox_keyword_) ||
- omnibox_keyword_.empty()) {
- *error = ASCIIToUTF16(errors::kInvalidOmniboxKeyword);
- return false;
- }
- return true;
-}
-
bool Extension::LoadTextToSpeechVoices(string16* error) {
if (!manifest_->HasKey(keys::kTtsEngine))
return true;

Powered by Google App Engine
This is Rietveld 408576698