diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-19 18:05:56 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-19 18:05:56 +0000 |
commit | 8b8e7c9bce4198a4ee2865d9dfce6e8baa173ad3 (patch) | |
tree | 938304b8e1be417c1b9c73d7463dacbc1da79843 /chrome/renderer/resources | |
parent | f2c4ee3627e6039fd42bd7c0c93e902b72653449 (diff) | |
download | chromium_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.js | 43 | ||||
-rw-r--r-- | chrome/renderer/resources/renderer_extension_bindings.js | 1 |
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", |