| Index: chrome/common/extensions/extension.cc
|
| diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
|
| index 202a2dcfe305eb0049cf3c1846c591ecf641cd0e..2fae2abecce8b91c1a936bacf78cb22f81bac340 100644
|
| --- a/chrome/common/extensions/extension.cc
|
| +++ b/chrome/common/extensions/extension.cc
|
| @@ -297,99 +297,15 @@ bool Extension::LoadUserScriptHelper(const DictionaryValue* content_script,
|
| return true;
|
| }
|
|
|
| -// Helper method that loads a PageAction or BrowserAction object from a
|
| -// dictionary in the page_actions list or browser_action key of the manifest.
|
| -ExtensionAction* Extension::LoadExtensionActionHelper(
|
| - const DictionaryValue* page_action, std::string* error,
|
| - ExtensionAction::ExtensionActionType action_type) {
|
| - scoped_ptr<ExtensionAction> result(new ExtensionAction());
|
| - result->set_extension_id(id());
|
| - result->set_type(action_type);
|
| -
|
| - // TODO(EXTENSIONS_DEPRECATED): icons list is obsolete.
|
| - ListValue* icons = NULL;
|
| - if (page_action->HasKey(keys::kPageActionIcons) &&
|
| - page_action->GetList(keys::kPageActionIcons, &icons)) {
|
| - for (ListValue::const_iterator iter = icons->begin();
|
| - iter != icons->end(); ++iter) {
|
| - std::string path;
|
| - if (!(*iter)->GetAsString(&path) || path.empty()) {
|
| - *error = errors::kInvalidPageActionIconPath;
|
| - return NULL;
|
| - }
|
| -
|
| - result->AddIconPath(path);
|
| - }
|
| - }
|
| -
|
| - // TODO(EXTENSIONS_DEPRECATED): Read the page action |id| (optional).
|
| - std::string id;
|
| - if (action_type == ExtensionAction::PAGE_ACTION)
|
| - page_action->GetString(keys::kPageActionId, &id);
|
| - result->set_id(id);
|
| -
|
| - std::string default_icon;
|
| - // Read the page action |default_icon| (optional).
|
| - if (page_action->HasKey(keys::kPageActionDefaultIcon)) {
|
| - if (!page_action->GetString(keys::kPageActionDefaultIcon, &default_icon) ||
|
| - default_icon.empty()) {
|
| - *error = errors::kInvalidPageActionIconPath;
|
| - return NULL;
|
| - }
|
| - // TODO(EXTENSIONS_DEPRECATED): one icon.
|
| - result->AddIconPath(default_icon);
|
| - }
|
| -
|
| - // Read the page action |default_title|.
|
| - std::string title;
|
| - if (!page_action->GetString(keys::kName, &title) &&
|
| - !page_action->GetString(keys::kPageActionDefaultTitle, &title)) {
|
| - *error = errors::kInvalidPageActionDefaultTitle;
|
| - return NULL;
|
| - }
|
| - result->set_title(title);
|
| -
|
| - // Read the action's |popup| (optional).
|
| - DictionaryValue* popup = NULL;
|
| - std::string url_str;
|
| - if (page_action->HasKey(keys::kPageActionPopup) &&
|
| - !page_action->GetDictionary(keys::kPageActionPopup, &popup) &&
|
| - !page_action->GetString(keys::kPageActionPopup, &url_str)) {
|
| - *error = errors::kInvalidPageActionPopup;
|
| - return NULL;
|
| - }
|
| - if (popup) {
|
| - // TODO(EXTENSIONS_DEPRECATED): popup is a string only
|
| - if (!popup->GetString(keys::kPageActionPopupPath, &url_str)) {
|
| - *error = ExtensionErrorUtils::FormatErrorMessage(
|
| - errors::kInvalidPageActionPopupPath, "<missing>");
|
| - return NULL;
|
| - }
|
| - GURL url = GetResourceURL(url_str);
|
| - if (!url.is_valid()) {
|
| - *error = ExtensionErrorUtils::FormatErrorMessage(
|
| - errors::kInvalidPageActionPopupPath, url_str);
|
| - return NULL;
|
| - }
|
| - result->set_popup_url(url);
|
| - } else if (!url_str.empty()) {
|
| - GURL url = GetResourceURL(url_str);
|
| - if (!url.is_valid()) {
|
| - *error = ExtensionErrorUtils::FormatErrorMessage(
|
| - errors::kInvalidPageActionPopupPath, url_str);
|
| - return NULL;
|
| - }
|
| - result->set_popup_url(url);
|
| - }
|
| -
|
| - return result.release();
|
| -}
|
| -
|
| ExtensionAction2* Extension::LoadExtensionAction2Helper(
|
| const DictionaryValue* extension_action, std::string* error) {
|
| scoped_ptr<ExtensionAction2> result(new ExtensionAction2());
|
| result->set_extension_id(id());
|
|
|
| + // Page actions are hidden by default, and browser actions ignore
|
| + // visibility.
|
| + result->SetIsVisible(ExtensionAction2::kDefaultTabId, false);
|
| +
|
| // TODO(EXTENSIONS_DEPRECATED): icons list is obsolete.
|
| ListValue* icons = NULL;
|
| if (extension_action->HasKey(keys::kPageActionIcons) &&
|
| @@ -403,7 +319,6 @@ ExtensionAction2* Extension::LoadExtensionAction2Helper(
|
| }
|
|
|
| result->icon_paths()->push_back(path);
|
| - result->SetDefaultIcon(path);
|
| }
|
| }
|
|
|
| @@ -426,7 +341,7 @@ ExtensionAction2* Extension::LoadExtensionAction2Helper(
|
| *error = errors::kInvalidPageActionIconPath;
|
| return NULL;
|
| }
|
| - result->SetDefaultIcon(default_icon);
|
| + result->set_default_icon_path(default_icon);
|
| }
|
|
|
| // Read the page action |default_title|.
|
| @@ -1031,8 +946,7 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_id,
|
| }
|
|
|
| page_action_.reset(
|
| - LoadExtensionActionHelper(page_action_value, error,
|
| - ExtensionAction::PAGE_ACTION));
|
| + LoadExtensionAction2Helper(page_action_value, error));
|
| if (!page_action_.get())
|
| return false; // Failed to parse page action definition.
|
| } else if (source.HasKey(keys::kPageAction)) {
|
| @@ -1043,8 +957,7 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_id,
|
| }
|
|
|
| page_action_.reset(
|
| - LoadExtensionActionHelper(page_action_value, error,
|
| - ExtensionAction::PAGE_ACTION));
|
| + LoadExtensionAction2Helper(page_action_value, error));
|
| if (!page_action_.get())
|
| return false; // Failed to parse page action definition.
|
| }
|
| @@ -1179,9 +1092,9 @@ std::set<FilePath> Extension::GetBrowserImages() {
|
|
|
| // page action icons
|
| if (page_action_.get()) {
|
| - const std::vector<std::string>& icon_paths = page_action_->icon_paths();
|
| - for (std::vector<std::string>::const_iterator iter = icon_paths.begin();
|
| - iter != icon_paths.end(); ++iter) {
|
| + std::vector<std::string>* icon_paths = page_action_->icon_paths();
|
| + for (std::vector<std::string>::iterator iter = icon_paths->begin();
|
| + iter != icon_paths->end(); ++iter) {
|
| image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(*iter)));
|
| }
|
| }
|
|
|