Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(344)

Unified Diff: chrome/renderer/resources/extensions/web_view_internal_custom_bindings.js

Issue 541753004: Split web_view_internal_api and move part of it to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/resources/extensions/web_view_internal_custom_bindings.js
diff --git a/chrome/renderer/resources/extensions/web_view_internal_custom_bindings.js b/chrome/renderer/resources/extensions/web_view_internal_custom_bindings.js
deleted file mode 100644
index 6ab8d0d0794745c0105fe86ee2f5c5c52e9f8786..0000000000000000000000000000000000000000
--- a/chrome/renderer/resources/extensions/web_view_internal_custom_bindings.js
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Custom binding for <webview> contextMenus API.
-// Note that this file mimics custom bindings for chrome.contextMenus API
-// which resides in context_menus_custom_bindings.js. The functions in this file
-// have an extra instanceId parameter in the beginning, which corresponds to the
-// id of the <webview>.
-//
-// TODO(lazyboy): Share common code /w context_menus_custom_bindings.js.
-
-var EventBindings = require('event_bindings');
-var binding = require('binding').Binding.create('webViewInternal');
-var contextMenuNatives = requireNative('context_menus');
-var sendRequest = require('sendRequest').sendRequest;
-
-binding.registerCustomHook(function(bindingsAPI) {
- var apiFunctions = bindingsAPI.apiFunctions;
-
- var webviewContextMenus = {};
- webviewContextMenus.generatedIdHandlers = {};
- webviewContextMenus.stringIdHandlers = {};
-
- // Per item event handler.
- var ename = 'webViewInternal.contextMenus';
- webviewContextMenus.event = new EventBindings.Event(ename);
-
- webviewContextMenus.getIdFromCreateProperties = function(prop) {
- if (typeof(prop.id) !== 'undefined')
- return prop.id;
- return prop.generatedId;
- };
-
- webviewContextMenus.handlersForId = function(instanceId, id) {
- if (typeof(id) === 'number') {
- if (!webviewContextMenus.generatedIdHandlers[instanceId]) {
- webviewContextMenus.generatedIdHandlers[instanceId] = {};
- }
- return webviewContextMenus.generatedIdHandlers[instanceId];
- }
-
- if (!webviewContextMenus.stringIdHandlers[instanceId]) {
- webviewContextMenus.stringIdHandlers[instanceId] = {};
- }
- return webviewContextMenus.stringIdHandlers[instanceId];
- };
-
- webviewContextMenus.ensureListenerSetup = function() {
- if (webviewContextMenus.listening) {
- return;
- }
- webviewContextMenus.listening = true;
- webviewContextMenus.event.addListener(function() {
- // An extension context menu item has been clicked on - fire the onclick
- // if there is one.
- var id = arguments[0].menuItemId;
- var instanceId = arguments[0].webviewInstanceId;
- delete arguments[0].webviewInstanceId;
- var onclick = webviewContextMenus.handlersForId(instanceId, id)[id];
- if (onclick) {
- $Function.apply(onclick, null, arguments);
- }
- });
- };
-
- apiFunctions.setHandleRequest('contextMenusCreate', function() {
- var args = arguments;
- var id = contextMenuNatives.GetNextContextMenuId();
- args[1].generatedId = id;
-
- var optArgs = {
- customCallback: this.customCallback,
- };
-
- sendRequest(this.name, args, this.definition.parameters, optArgs);
- return webviewContextMenus.getIdFromCreateProperties(args[1]);
- });
-
- apiFunctions.setCustomCallback('contextMenusCreate',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
- return;
- }
-
- var instanceId = request.args[0];
- var id = webviewContextMenus.getIdFromCreateProperties(request.args[1]);
- var onclick = request.args.length ? request.args[1].onclick : null;
- if (onclick) {
- webviewContextMenus.ensureListenerSetup();
- webviewContextMenus.handlersForId(instanceId, id)[id] = onclick;
- }
- });
-
- apiFunctions.setCustomCallback('contextMenusUpdate',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
- return;
- }
- var instanceId = request.args[0];
- var id = request.args[1];
- if (request.args[2].onclick) {
- webviewContextMenus.handlersForId(instanceId, id)[id] =
- request.args[2].onclick;
- }
- });
-
- apiFunctions.setCustomCallback('contextMenusRemove',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
- return;
- }
- var instanceId = request.args[0];
- var id = request.args[1];
- delete webviewContextMenus.handlersForId(instanceId, id)[id];
- });
-
- apiFunctions.setCustomCallback('contextMenusRemoveAll',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
- return;
- }
- var instanceId = request.args[0];
- webviewContextMenus.stringIdHandlers[instanceId] = {};
- webviewContextMenus.generatedIdHandlers[instanceId] = {};
- });
-
-});
-
-exports.WebView = binding.generate();

Powered by Google App Engine
This is Rietveld 408576698