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

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

Issue 12618009: Move SystemIndicator parsing out of Extension class (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 9 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/common/extensions/manifest_handler_helpers.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/manifest_handler_helpers.cc
diff --git a/chrome/common/extensions/manifest_handler_helpers.cc b/chrome/common/extensions/manifest_handler_helpers.cc
index 5129e516fbc15046efe031e2c0a2db956a51a4b2..ffc3c67762f58cbbc601594e0b6613c7e353c856 100644
--- a/chrome/common/extensions/manifest_handler_helpers.cc
+++ b/chrome/common/extensions/manifest_handler_helpers.cc
@@ -8,14 +8,12 @@
#include "base/strings/string_number_conversions.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
-#include "chrome/common/extensions/api/extension_action/action_info.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_icon_set.h"
#include "chrome/common/extensions/extension_manifest_constants.h"
#include "extensions/common/error_utils.h"
namespace errors = extension_manifest_errors;
-namespace keys = extension_manifest_keys;
namespace extensions {
namespace manifest_handler_helpers {
@@ -59,139 +57,5 @@ bool LoadIconsFromDictionary(const base::DictionaryValue* icons_value,
return true;
}
-scoped_ptr<ActionInfo> LoadActionInfo(
- const Extension* extension,
- const base::DictionaryValue* extension_action,
- string16* error) {
- scoped_ptr<ActionInfo> result(new ActionInfo());
-
- if (extension->manifest_version() == 1) {
- // kPageActionIcons is obsolete, and used by very few extensions. Continue
- // loading it, but only take the first icon as the default_icon path.
- const ListValue* icons = NULL;
- if (extension_action->HasKey(keys::kPageActionIcons) &&
- extension_action->GetList(keys::kPageActionIcons, &icons)) {
- for (ListValue::const_iterator iter = icons->begin();
- iter != icons->end(); ++iter) {
- std::string path;
- if (!(*iter)->GetAsString(&path) ||
- !manifest_handler_helpers::NormalizeAndValidatePath(&path)) {
- *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath);
- return scoped_ptr<ActionInfo>();
- }
-
- result->default_icon.Add(extension_misc::EXTENSION_ICON_ACTION, path);
- break;
- }
- }
-
- std::string id;
- if (extension_action->HasKey(keys::kPageActionId)) {
- if (!extension_action->GetString(keys::kPageActionId, &id)) {
- *error = ASCIIToUTF16(errors::kInvalidPageActionId);
- return scoped_ptr<ActionInfo>();
- }
- result->id = id;
- }
- }
-
- // Read the page action |default_icon| (optional).
- // The |default_icon| value can be either dictionary {icon size -> icon path}
- // or non empty string value.
- if (extension_action->HasKey(keys::kPageActionDefaultIcon)) {
- const DictionaryValue* icons_value = NULL;
- std::string default_icon;
- if (extension_action->GetDictionary(keys::kPageActionDefaultIcon,
- &icons_value)) {
- if (!manifest_handler_helpers::LoadIconsFromDictionary(
- icons_value,
- extension_misc::kExtensionActionIconSizes,
- extension_misc::kNumExtensionActionIconSizes,
- &result->default_icon,
- error)) {
- return scoped_ptr<ActionInfo>();
- }
- } else if (extension_action->GetString(keys::kPageActionDefaultIcon,
- &default_icon) &&
- manifest_handler_helpers::NormalizeAndValidatePath(
- &default_icon)) {
- result->default_icon.Add(extension_misc::EXTENSION_ICON_ACTION,
- default_icon);
- } else {
- *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath);
- return scoped_ptr<ActionInfo>();
- }
- }
-
- // Read the page action title from |default_title| if present, |name| if not
- // (both optional).
- if (extension_action->HasKey(keys::kPageActionDefaultTitle)) {
- if (!extension_action->GetString(keys::kPageActionDefaultTitle,
- &result->default_title)) {
- *error = ASCIIToUTF16(errors::kInvalidPageActionDefaultTitle);
- return scoped_ptr<ActionInfo>();
- }
- } else if (extension->manifest_version() == 1 &&
- extension_action->HasKey(keys::kName)) {
- if (!extension_action->GetString(keys::kName, &result->default_title)) {
- *error = ASCIIToUTF16(errors::kInvalidPageActionName);
- return scoped_ptr<ActionInfo>();
- }
- }
-
- // Read the action's |popup| (optional).
- const char* popup_key = NULL;
- if (extension_action->HasKey(keys::kPageActionDefaultPopup))
- popup_key = keys::kPageActionDefaultPopup;
-
- if (extension->manifest_version() == 1 &&
- extension_action->HasKey(keys::kPageActionPopup)) {
- if (popup_key) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidPageActionOldAndNewKeys,
- keys::kPageActionDefaultPopup,
- keys::kPageActionPopup);
- return scoped_ptr<ActionInfo>();
- }
- popup_key = keys::kPageActionPopup;
- }
-
- if (popup_key) {
- const DictionaryValue* popup = NULL;
- std::string url_str;
-
- if (extension_action->GetString(popup_key, &url_str)) {
- // On success, |url_str| is set. Nothing else to do.
- } else if (extension->manifest_version() == 1 &&
- extension_action->GetDictionary(popup_key, &popup)) {
- if (!popup->GetString(keys::kPageActionPopupPath, &url_str)) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidPageActionPopupPath, "<missing>");
- return scoped_ptr<ActionInfo>();
- }
- } else {
- *error = ASCIIToUTF16(errors::kInvalidPageActionPopup);
- return scoped_ptr<ActionInfo>();
- }
-
- if (!url_str.empty()) {
- // An empty string is treated as having no popup.
- result->default_popup_url = Extension::GetResourceURL(extension->url(),
- url_str);
- if (!result->default_popup_url.is_valid()) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidPageActionPopupPath, url_str);
- return scoped_ptr<ActionInfo>();
- }
- } else {
- DCHECK(result->default_popup_url.is_empty())
- << "Shouldn't be possible for the popup to be set.";
- }
- }
-
- return result.Pass();
-}
-
-
} // namespace extensions
} // namespace manifest_handler_extensions
« no previous file with comments | « chrome/common/extensions/manifest_handler_helpers.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698