| Index: extensions/renderer/resources/context_menus_handlers.js
|
| diff --git a/extensions/renderer/resources/context_menus_handlers.js b/extensions/renderer/resources/context_menus_handlers.js
|
| index e2175ac2694900c399d1a00ac60d6aaa9e9e9372..eed54796238c433c735d86581f8cf7cf019df891 100644
|
| --- a/extensions/renderer/resources/context_menus_handlers.js
|
| +++ b/extensions/renderer/resources/context_menus_handlers.js
|
| @@ -7,9 +7,23 @@
|
| // <webview> tag (see chrome_web_view_experimental.js).
|
|
|
| var contextMenuNatives = requireNative('context_menus');
|
| -var sendRequest = require('sendRequest').sendRequest;
|
| -var Event = require('event_bindings').Event;
|
| -var lastError = require('lastError');
|
| +var sendRequest = bindingUtil ?
|
| + $Function.bind(bindingUtil.sendRequest, bindingUtil) :
|
| + require('sendRequest').sendRequest;
|
| +var hasLastError = bindingUtil ?
|
| + $Function.bind(bindingUtil.hasLastError, bindingUtil) :
|
| + require('lastError').hasError;
|
| +
|
| +var jsEvent;
|
| +function createNewEvent(name) {
|
| + if (bindingUtil) {
|
| + // Native custom events ignore schema.
|
| + return bindingUtil.createCustomEvent(name, undefined, undefined);
|
| + }
|
| + if (!jsEvent)
|
| + jsEvent = require('event_bindings').Event;
|
| + return new jsEvent(name);
|
| +}
|
|
|
| // Add the bindings to the contextMenus API.
|
| function createContextMenusHandlers(isWebview) {
|
| @@ -25,7 +39,7 @@ function createContextMenusHandlers(isWebview) {
|
| function getCallback(handleCallback) {
|
| return function() {
|
| var extensionCallback = arguments[arguments.length - 1];
|
| - if (lastError.hasError(chrome)) {
|
| + if (hasLastError(bindingUtil ? undefined : chrome)) {
|
| if (extensionCallback)
|
| extensionCallback();
|
| return;
|
| @@ -39,7 +53,7 @@ function createContextMenusHandlers(isWebview) {
|
|
|
| var contextMenus = { __proto__: null };
|
| contextMenus.handlers = { __proto__: null };
|
| - contextMenus.event = new Event(eventName);
|
| + contextMenus.event = createNewEvent(eventName);
|
|
|
| contextMenus.getIdFromCreateProperties = function(createProperties) {
|
| if (typeof createProperties.id !== 'undefined')
|
| @@ -102,8 +116,11 @@ function createContextMenusHandlers(isWebview) {
|
| customCallback: getCallback($Function.bind(createCallback, null,
|
| instanceId, id, onclick)),
|
| };
|
| - sendRequest(this.name, $Array.from(arguments),
|
| - this.definition.parameters, optArgs);
|
| + var name = isWebview ?
|
| + 'chromeWebViewInternal.contextMenusCreate' : 'contextMenus.create';
|
| + sendRequest(name, $Array.from(arguments),
|
| + bindingUtil ? undefined : this.definition.parameters,
|
| + optArgs);
|
| return id;
|
| };
|
|
|
| @@ -119,8 +136,11 @@ function createContextMenusHandlers(isWebview) {
|
| customCallback: getCallback($Function.bind(removeCallback, null,
|
| instanceId, id)),
|
| };
|
| - sendRequest(this.name, $Array.from(arguments),
|
| - this.definition.parameters, optArgs);
|
| + var name = isWebview ?
|
| + 'chromeWebViewInternal.contextMenusRemove' : 'contextMenus.remove';
|
| + sendRequest(name, $Array.from(arguments),
|
| + bindingUtil ? undefined : this.definition.parameters,
|
| + optArgs);
|
| };
|
|
|
| function updateCallback(instanceId, id, onclick) {
|
| @@ -144,8 +164,11 @@ function createContextMenusHandlers(isWebview) {
|
| instanceId, id, onclick)),
|
| };
|
|
|
| - sendRequest(this.name, $Array.from(arguments),
|
| - this.definition.parameters, optArgs);
|
| + var name = isWebview ?
|
| + 'chromeWebViewInternal.contextMenusUpdate' :
|
| + 'contextMenus.update';
|
| + sendRequest(name, $Array.from(arguments),
|
| + bindingUtil ? undefined : this.definition.parameters, optArgs);
|
| };
|
|
|
| function removeAllCallback(instanceId) {
|
| @@ -160,7 +183,10 @@ function createContextMenusHandlers(isWebview) {
|
| instanceId)),
|
| };
|
|
|
| - sendRequest(this.name, $Array.from(arguments),
|
| + var name = isWebview ?
|
| + 'chromeWebViewInternal.contextMenusRemoveAll' :
|
| + 'contextMenus.removeAll';
|
| + sendRequest(name, $Array.from(arguments),
|
| this.definition.parameters, optArgs);
|
| };
|
|
|
|
|