diff options
author | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 15:55:36 +0000 |
---|---|---|
committer | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 15:55:36 +0000 |
commit | f0ebb6d3b38f85df2df955b69790b54053e172f9 (patch) | |
tree | e5215a9508cb5455b4be15e2b9e1a071c5688e88 | |
parent | efe622aa888db84b6d6cb5497b001c33e28b435c (diff) | |
download | chromium_src-f0ebb6d3b38f85df2df955b69790b54053e172f9.zip chromium_src-f0ebb6d3b38f85df2df955b69790b54053e172f9.tar.gz chromium_src-f0ebb6d3b38f85df2df955b69790b54053e172f9.tar.bz2 |
Return accessible icon URLs for disabled extensions in the management API.
BUG=60437
TEST=ExtensionManagementApiTest.Basics
Review URL: http://codereview.chromium.org/6596112
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76920 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/extensions/extension_management_api.cc b/chrome/browser/extensions/extension_management_api.cc index 2d64756..7ef9537 100644 --- a/chrome/browser/extensions/extension_management_api.cc +++ b/chrome/browser/extensions/extension_management_api.cc @@ -18,6 +18,7 @@ #include "chrome/browser/extensions/extension_updater.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/webui/extension_icon_source.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/extension_error_utils.h" #include "chrome/common/extensions/extension.h" @@ -76,9 +77,11 @@ static DictionaryValue* CreateExtensionInfo(const Extension& extension, std::map<int, std::string>::const_iterator icon_iter; for (icon_iter = icons.begin(); icon_iter != icons.end(); ++icon_iter) { DictionaryValue* icon_info = new DictionaryValue(); - GURL url = extension.GetResourceURL(icon_iter->second); + Extension::Icons size = static_cast<Extension::Icons>(icon_iter->first); + GURL url = ExtensionIconSource::GetIconURL( + &extension, size, ExtensionIconSet::MATCH_EXACTLY, false); icon_info->SetInteger(kSizeKey, icon_iter->first); - icon_info->SetString(kUrlKey, url.possibly_invalid_spec()); + icon_info->SetString(kUrlKey, url.spec()); icon_list->Append(icon_info); } info->Set("icons", icon_list); diff --git a/chrome/common/extensions/api/extension_api.json b/chrome/common/extensions/api/extension_api.json index 3805c82..d23f1ae 100644 --- a/chrome/common/extensions/api/extension_api.json +++ b/chrome/common/extensions/api/extension_api.json @@ -4192,7 +4192,7 @@ "type": "object", "properties": { "size": { "type": "integer", "description": "A number representing the width and height of the icon. Likely values include (but are not limited to) 128, 48, 24, and 16." }, - "url": { "type": "string", "description": "The url for this icon image." } + "url": { "type": "string", "description": "The URL for this icon image. To display a grayscale version of the icon (to indicate that an extension is disabled, for example), append <code>?grayscale=true</code> to the URL." } } }, { diff --git a/chrome/common/extensions/docs/management.html b/chrome/common/extensions/docs/management.html index 256e53b..5312d8c 100644 --- a/chrome/common/extensions/docs/management.html +++ b/chrome/common/extensions/docs/management.html @@ -2059,7 +2059,7 @@ For example:</p> <dd class="todo" style="display: none; "> Undocumented. </dd> - <dd>The url for this icon image.</dd> + <dd>The URL for this icon image. To display a grayscale version of the icon (to indicate that an extension is disabled, for example), append <code>?grayscale=true</code> to the URL.</dd> <dd style="display: none; "> This parameter was added in version <b><span></span></b>. diff --git a/chrome/test/data/extensions/api_test/management/test/basics.js b/chrome/test/data/extensions/api_test/management/test/basics.js index d3a7e38..b921ee0 100644 --- a/chrome/test/data/extensions/api_test/management/test/basics.js +++ b/chrome/test/data/extensions/api_test/management/test/basics.js @@ -7,7 +7,8 @@ function checkIcon(item, size, path) { for (var i = 0; i < icons.length; i++) { var icon = icons[i]; if (icon.size == size) { - var expected_url = "chrome-extension://" + item.id + "/" + path; + var expected_url = + "chrome://extension-icon/" + item.id + "/" + size + "/0"; assertEq(expected_url, icon.url); return; } |