summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-04 15:55:36 +0000
committerjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-04 15:55:36 +0000
commitf0ebb6d3b38f85df2df955b69790b54053e172f9 (patch)
treee5215a9508cb5455b4be15e2b9e1a071c5688e88
parentefe622aa888db84b6d6cb5497b001c33e28b435c (diff)
downloadchromium_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
-rw-r--r--chrome/browser/extensions/extension_management_api.cc7
-rw-r--r--chrome/common/extensions/api/extension_api.json2
-rw-r--r--chrome/common/extensions/docs/management.html2
-rw-r--r--chrome/test/data/extensions/api_test/management/test/basics.js3
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;
}