summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/resources
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-19 18:05:56 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-19 18:05:56 +0000
commit8b8e7c9bce4198a4ee2865d9dfce6e8baa173ad3 (patch)
tree938304b8e1be417c1b9c73d7463dacbc1da79843 /chrome/renderer/resources
parentf2c4ee3627e6039fd42bd7c0c93e902b72653449 (diff)
downloadchromium_src-8b8e7c9bce4198a4ee2865d9dfce6e8baa173ad3.zip
chromium_src-8b8e7c9bce4198a4ee2865d9dfce6e8baa173ad3.tar.gz
chromium_src-8b8e7c9bce4198a4ee2865d9dfce6e8baa173ad3.tar.bz2
Initial version of chrome.experimental.sidebar extension API.
BUG=51084 TEST=Run interactive_ui_tests and browser_tests. New: - sidebar Extension API (design doc: https://docs.google.com/a/google.com/Doc?docid=0AV4Qg3xyZ8RQZGZtbWIydDJfNWc0eHJtbmRm&hl=en); - Sidebar panel in Chrome browser view; Original review=http://codereview.chromium.org/2836040/show Patch by alekseys@google.com git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56716 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/resources')
-rw-r--r--chrome/renderer/resources/extension_process_bindings.js43
-rw-r--r--chrome/renderer/resources/renderer_extension_bindings.js1
2 files changed, 28 insertions, 16 deletions
diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js
index f0986f2..fee9b4c 100644
--- a/chrome/renderer/resources/extension_process_bindings.js
+++ b/chrome/renderer/resources/extension_process_bindings.js
@@ -17,7 +17,7 @@ var chrome = chrome || {};
native function GetRenderViewId();
native function GetPopupParentWindow();
native function GetPopupView();
- native function SetExtensionActionIcon();
+ native function SetIconCommon();
native function IsExtensionProcess();
var chromeHidden = GetChromeHidden();
@@ -535,9 +535,8 @@ var chrome = chrome || {};
};
var canvas;
- function setIconCommon(details, name, parameters, actionType) {
- var EXTENSION_ACTION_ICON_SIZE = 19;
-
+ function setIconCommon(details, name, parameters, actionType, iconSize,
+ nativeFunction) {
if ("iconIndex" in details) {
sendRequest(name, [details], parameters);
} else if ("imageData" in details) {
@@ -554,14 +553,14 @@ var chrome = chrome || {};
"The imageData property must contain an ImageData object.");
}
- if (details.imageData.width > EXTENSION_ACTION_ICON_SIZE ||
- details.imageData.height > EXTENSION_ACTION_ICON_SIZE) {
+ if (details.imageData.width > iconSize ||
+ details.imageData.height > iconSize) {
throw new Error(
"The imageData property must contain an ImageData object that " +
- "is no larger than 19 pixels square.");
+ "is no larger than " + iconSize + " pixels square.");
}
- sendCustomRequest(SetExtensionActionIcon, name, [details], parameters);
+ sendCustomRequest(nativeFunction, name, [details], parameters);
} else if ("path" in details) {
var img = new Image();
img.onerror = function() {
@@ -570,10 +569,8 @@ var chrome = chrome || {};
}
img.onload = function() {
var canvas = document.createElement("canvas");
- canvas.width = img.width > EXTENSION_ACTION_ICON_SIZE ?
- EXTENSION_ACTION_ICON_SIZE : img.width;
- canvas.height = img.height > EXTENSION_ACTION_ICON_SIZE ?
- EXTENSION_ACTION_ICON_SIZE : img.height;
+ canvas.width = img.width > iconSize ? iconSize : img.width;
+ canvas.height = img.height > iconSize ? iconSize : img.height;
var canvas_context = canvas.getContext('2d');
canvas_context.clearRect(0, 0, canvas.width, canvas.height);
@@ -581,8 +578,7 @@ var chrome = chrome || {};
delete details.path;
details.imageData = canvas_context.getImageData(0, 0, canvas.width,
canvas.height);
- sendCustomRequest(SetExtensionActionIcon, name, [details],
- parameters);
+ sendCustomRequest(nativeFunction, name, [details], parameters);
}
img.src = details.path;
} else {
@@ -591,16 +587,31 @@ var chrome = chrome || {};
}
}
+ function setExtensionActionIconCommon(details, name, parameters,
+ actionType) {
+ var EXTENSION_ACTION_ICON_SIZE = 19;
+ setIconCommon(details, name, parameters, actionType,
+ EXTENSION_ACTION_ICON_SIZE, SetIconCommon);
+ }
+
apiFunctions["browserAction.setIcon"].handleRequest = function(details) {
- setIconCommon(
+ setExtensionActionIconCommon(
details, this.name, this.definition.parameters, "browser action");
};
apiFunctions["pageAction.setIcon"].handleRequest = function(details) {
- setIconCommon(
+ setExtensionActionIconCommon(
details, this.name, this.definition.parameters, "page action");
};
+ apiFunctions["experimental.sidebar.setIcon"].handleRequest =
+ function(details) {
+ var SIDEBAR_ICON_SIZE = 16;
+ setIconCommon(
+ details, this.name, this.definition.parameters, "sidebar",
+ SIDEBAR_ICON_SIZE, SetIconCommon);
+ };
+
apiFunctions["contextMenus.create"].handleRequest =
function() {
var args = arguments;
diff --git a/chrome/renderer/resources/renderer_extension_bindings.js b/chrome/renderer/resources/renderer_extension_bindings.js
index 62184c6..22f7f48 100644
--- a/chrome/renderer/resources/renderer_extension_bindings.js
+++ b/chrome/renderer/resources/renderer_extension_bindings.js
@@ -262,6 +262,7 @@ var chrome = chrome || {};
"experimental.tts",
"experimental.proxy",
"experimental.rlz",
+ "experimental.sidebar",
"experimental.webNavigation",
"experimental.webRequest",
"history",