| Index: extensions/renderer/resources/guest_view/web_view_events.js
|
| diff --git a/extensions/renderer/resources/guest_view/web_view_events.js b/extensions/renderer/resources/guest_view/web_view_events.js
|
| deleted file mode 100644
|
| index cb782cab5acf866963d461ac8171f2e07adfcd13..0000000000000000000000000000000000000000
|
| --- a/extensions/renderer/resources/guest_view/web_view_events.js
|
| +++ /dev/null
|
| @@ -1,280 +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.
|
| -
|
| -// Event management for WebView.
|
| -
|
| -var CreateEvent = require('guestViewEvents').CreateEvent;
|
| -var DeclarativeWebRequestSchema =
|
| - requireNative('schema_registry').GetSchema('declarativeWebRequest');
|
| -var EventBindings = require('event_bindings');
|
| -var GuestViewEvents = require('guestViewEvents').GuestViewEvents;
|
| -var IdGenerator = requireNative('id_generator');
|
| -var WebRequestEvent = require('webRequestInternal').WebRequestEvent;
|
| -var WebRequestSchema =
|
| - requireNative('schema_registry').GetSchema('webRequest');
|
| -var WebViewActionRequests =
|
| - require('webViewActionRequests').WebViewActionRequests;
|
| -
|
| -var WebRequestMessageEvent = CreateEvent('webViewInternal.onMessage');
|
| -
|
| -function WebViewEvents(webViewImpl) {
|
| - GuestViewEvents.call(this, webViewImpl);
|
| -
|
| - this.setupWebRequestEvents();
|
| - this.view.setupExperimentalContextMenus();
|
| -}
|
| -
|
| -WebViewEvents.prototype.__proto__ = GuestViewEvents.prototype;
|
| -
|
| -// A dictionary of <webview> extension events to be listened for. This
|
| -// dictionary augments |GuestViewEvents.EVENTS| in guest_view_events.js. See the
|
| -// documentation there for details.
|
| -WebViewEvents.EVENTS = {
|
| - 'close': {
|
| - evt: CreateEvent('webViewInternal.onClose')
|
| - },
|
| - 'consolemessage': {
|
| - evt: CreateEvent('webViewInternal.onConsoleMessage'),
|
| - fields: ['level', 'message', 'line', 'sourceId']
|
| - },
|
| - 'contentload': {
|
| - evt: CreateEvent('webViewInternal.onContentLoad')
|
| - },
|
| - 'dialog': {
|
| - cancelable: true,
|
| - evt: CreateEvent('webViewInternal.onDialog'),
|
| - fields: ['defaultPromptText', 'messageText', 'messageType', 'url'],
|
| - handler: 'handleDialogEvent'
|
| - },
|
| - 'droplink': {
|
| - evt: CreateEvent('webViewInternal.onDropLink'),
|
| - fields: ['url']
|
| - },
|
| - 'exit': {
|
| - evt: CreateEvent('webViewInternal.onExit'),
|
| - fields: ['processId', 'reason']
|
| - },
|
| - 'findupdate': {
|
| - evt: CreateEvent('webViewInternal.onFindReply'),
|
| - fields: [
|
| - 'searchText',
|
| - 'numberOfMatches',
|
| - 'activeMatchOrdinal',
|
| - 'selectionRect',
|
| - 'canceled',
|
| - 'finalUpdate'
|
| - ]
|
| - },
|
| - 'framenamechanged': {
|
| - evt: CreateEvent('webViewInternal.onFrameNameChanged'),
|
| - handler: 'handleFrameNameChangedEvent'
|
| - },
|
| - 'loadabort': {
|
| - cancelable: true,
|
| - evt: CreateEvent('webViewInternal.onLoadAbort'),
|
| - fields: ['url', 'isTopLevel', 'reason'],
|
| - handler: 'handleLoadAbortEvent'
|
| - },
|
| - 'loadcommit': {
|
| - evt: CreateEvent('webViewInternal.onLoadCommit'),
|
| - fields: ['url', 'isTopLevel'],
|
| - handler: 'handleLoadCommitEvent'
|
| - },
|
| - 'loadprogress': {
|
| - evt: CreateEvent('webViewInternal.onLoadProgress'),
|
| - fields: ['url', 'progress']
|
| - },
|
| - 'loadredirect': {
|
| - evt: CreateEvent('webViewInternal.onLoadRedirect'),
|
| - fields: ['isTopLevel', 'oldUrl', 'newUrl']
|
| - },
|
| - 'loadstart': {
|
| - evt: CreateEvent('webViewInternal.onLoadStart'),
|
| - fields: ['url', 'isTopLevel']
|
| - },
|
| - 'loadstop': {
|
| - evt: CreateEvent('webViewInternal.onLoadStop')
|
| - },
|
| - 'newwindow': {
|
| - cancelable: true,
|
| - evt: CreateEvent('webViewInternal.onNewWindow'),
|
| - fields: [
|
| - 'initialHeight',
|
| - 'initialWidth',
|
| - 'targetUrl',
|
| - 'windowOpenDisposition',
|
| - 'name'
|
| - ],
|
| - handler: 'handleNewWindowEvent'
|
| - },
|
| - 'permissionrequest': {
|
| - cancelable: true,
|
| - evt: CreateEvent('webViewInternal.onPermissionRequest'),
|
| - fields: [
|
| - 'identifier',
|
| - 'lastUnlockedBySelf',
|
| - 'name',
|
| - 'permission',
|
| - 'requestMethod',
|
| - 'url',
|
| - 'userGesture'
|
| - ],
|
| - handler: 'handlePermissionEvent'
|
| - },
|
| - 'responsive': {
|
| - evt: CreateEvent('webViewInternal.onResponsive'),
|
| - fields: ['processId']
|
| - },
|
| - 'sizechanged': {
|
| - evt: CreateEvent('webViewInternal.onSizeChanged'),
|
| - fields: ['oldHeight', 'oldWidth', 'newHeight', 'newWidth'],
|
| - handler: 'handleSizeChangedEvent'
|
| - },
|
| - 'unresponsive': {
|
| - evt: CreateEvent('webViewInternal.onUnresponsive'),
|
| - fields: ['processId']
|
| - },
|
| - 'zoomchange': {
|
| - evt: CreateEvent('webViewInternal.onZoomChange'),
|
| - fields: ['oldZoomFactor', 'newZoomFactor']
|
| - }
|
| -};
|
| -
|
| -WebViewEvents.prototype.setupWebRequestEvents = function() {
|
| - var request = {};
|
| - var createWebRequestEvent = function(webRequestEvent) {
|
| - return function() {
|
| - if (!this[webRequestEvent.name]) {
|
| - this[webRequestEvent.name] =
|
| - new WebRequestEvent(
|
| - 'webViewInternal.' + webRequestEvent.name,
|
| - webRequestEvent.parameters,
|
| - webRequestEvent.extraParameters, webRequestEvent.options,
|
| - this.view.viewInstanceId);
|
| - }
|
| - return this[webRequestEvent.name];
|
| - }.bind(this);
|
| - }.bind(this);
|
| -
|
| - var createDeclarativeWebRequestEvent = function(webRequestEvent) {
|
| - return function() {
|
| - if (!this[webRequestEvent.name]) {
|
| - // The onMessage event gets a special event type because we want
|
| - // the listener to fire only for messages targeted for this particular
|
| - // <webview>.
|
| - var EventClass = webRequestEvent.name === 'onMessage' ?
|
| - DeclarativeWebRequestEvent : EventBindings.Event;
|
| - this[webRequestEvent.name] =
|
| - new EventClass(
|
| - 'webViewInternal.declarativeWebRequest.' + webRequestEvent.name,
|
| - webRequestEvent.parameters,
|
| - webRequestEvent.options,
|
| - this.view.viewInstanceId);
|
| - }
|
| - return this[webRequestEvent.name];
|
| - }.bind(this);
|
| - }.bind(this);
|
| -
|
| - for (var i = 0; i < DeclarativeWebRequestSchema.events.length; ++i) {
|
| - var eventSchema = DeclarativeWebRequestSchema.events[i];
|
| - var webRequestEvent = createDeclarativeWebRequestEvent(eventSchema);
|
| - Object.defineProperty(
|
| - request,
|
| - eventSchema.name,
|
| - {
|
| - get: webRequestEvent,
|
| - enumerable: true
|
| - }
|
| - );
|
| - }
|
| -
|
| - // Populate the WebRequest events from the API definition.
|
| - for (var i = 0; i < WebRequestSchema.events.length; ++i) {
|
| - var webRequestEvent = createWebRequestEvent(WebRequestSchema.events[i]);
|
| - Object.defineProperty(
|
| - request,
|
| - WebRequestSchema.events[i].name,
|
| - {
|
| - get: webRequestEvent,
|
| - enumerable: true
|
| - }
|
| - );
|
| - }
|
| -
|
| - this.view.setRequestPropertyOnWebViewElement(request);
|
| -};
|
| -
|
| -WebViewEvents.prototype.getEvents = function() {
|
| - return WebViewEvents.EVENTS;
|
| -};
|
| -
|
| -WebViewEvents.prototype.handleDialogEvent = function(event, eventName) {
|
| - var webViewEvent = this.makeDomEvent(event, eventName);
|
| - new WebViewActionRequests.Dialog(this.view, event, webViewEvent);
|
| -};
|
| -
|
| -WebViewEvents.prototype.handleFrameNameChangedEvent = function(event) {
|
| - this.view.onFrameNameChanged(event.name);
|
| -};
|
| -
|
| -WebViewEvents.prototype.handleLoadAbortEvent = function(event, eventName) {
|
| - var showWarningMessage = function(reason) {
|
| - var WARNING_MSG_LOAD_ABORTED = '<webview>: ' +
|
| - 'The load has aborted with reason "%1".';
|
| - window.console.warn(WARNING_MSG_LOAD_ABORTED.replace('%1', reason));
|
| - };
|
| - var webViewEvent = this.makeDomEvent(event, eventName);
|
| - if (this.view.dispatchEvent(webViewEvent)) {
|
| - showWarningMessage(event.reason);
|
| - }
|
| -};
|
| -
|
| -WebViewEvents.prototype.handleLoadCommitEvent = function(event, eventName) {
|
| - this.view.onLoadCommit(event.baseUrlForDataUrl,
|
| - event.currentEntryIndex,
|
| - event.entryCount,
|
| - event.processId,
|
| - event.url,
|
| - event.isTopLevel);
|
| - var webViewEvent = this.makeDomEvent(event, eventName);
|
| - this.view.dispatchEvent(webViewEvent);
|
| -};
|
| -
|
| -WebViewEvents.prototype.handleNewWindowEvent = function(event, eventName) {
|
| - var webViewEvent = this.makeDomEvent(event, eventName);
|
| - new WebViewActionRequests.NewWindow(this.view, event, webViewEvent);
|
| -};
|
| -
|
| -WebViewEvents.prototype.handlePermissionEvent = function(event, eventName) {
|
| - var webViewEvent = this.makeDomEvent(event, eventName);
|
| - new WebViewActionRequests.PermissionRequest(this.view, event, webViewEvent);
|
| -};
|
| -
|
| -WebViewEvents.prototype.handleSizeChangedEvent = function(event, eventName) {
|
| - var webViewEvent = this.makeDomEvent(event, eventName);
|
| - this.view.onSizeChanged(webViewEvent);
|
| -};
|
| -
|
| -function DeclarativeWebRequestEvent(opt_eventName,
|
| - opt_argSchemas,
|
| - opt_eventOptions,
|
| - opt_webViewInstanceId) {
|
| - var subEventName = opt_eventName + '/' + IdGenerator.GetNextId();
|
| - EventBindings.Event.call(this,
|
| - subEventName,
|
| - opt_argSchemas,
|
| - opt_eventOptions,
|
| - opt_webViewInstanceId);
|
| -
|
| - // TODO(lazyboy): When do we dispose this listener?
|
| - WebRequestMessageEvent.addListener(function() {
|
| - // Re-dispatch to subEvent's listeners.
|
| - $Function.apply(this.dispatch, this, $Array.slice(arguments));
|
| - }.bind(this), {instanceId: opt_webViewInstanceId || 0});
|
| -}
|
| -
|
| -DeclarativeWebRequestEvent.prototype.__proto__ = EventBindings.Event.prototype;
|
| -
|
| -// Exports.
|
| -exports.WebViewEvents = WebViewEvents;
|
|
|