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

Unified Diff: extensions/renderer/resources/guest_view/web_view_action_requests.js

Issue 988853002: Moved the javascript files for each respective guest_view type into subdirectories of guest_view/ . (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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: extensions/renderer/resources/guest_view/web_view_action_requests.js
diff --git a/extensions/renderer/resources/guest_view/web_view_action_requests.js b/extensions/renderer/resources/guest_view/web_view_action_requests.js
deleted file mode 100644
index 21cc7b1723244282ef42c9d6650985fe9ba4a4b2..0000000000000000000000000000000000000000
--- a/extensions/renderer/resources/guest_view/web_view_action_requests.js
+++ /dev/null
@@ -1,260 +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.
-
-// This module implements helper objects for the dialog, newwindow, and
-// permissionrequest <webview> events.
-
-var MessagingNatives = requireNative('messaging_natives');
-var WebViewConstants = require('webViewConstants').WebViewConstants;
-var WebViewInternal = require('webViewInternal').WebViewInternal;
-
-var PERMISSION_TYPES = ['media',
- 'geolocation',
- 'pointerLock',
- 'download',
- 'loadplugin',
- 'filesystem'];
-
-// -----------------------------------------------------------------------------
-// WebViewActionRequest object.
-
-// Default partial implementation of a webview action request.
-function WebViewActionRequest(webViewImpl, event, webViewEvent, interfaceName) {
- this.webViewImpl = webViewImpl;
- this.event = event;
- this.webViewEvent = webViewEvent;
- this.interfaceName = interfaceName;
- this.guestInstanceId = this.webViewImpl.guest.getId();
- this.requestId = event.requestId;
- this.actionTaken = false;
-}
-
-// Performs the default action for the request.
-WebViewActionRequest.prototype.defaultAction = function() {
- // Do nothing if the action has already been taken or the requester is
- // already gone (in which case its guestInstanceId will be stale).
- if (this.actionTaken ||
- this.guestInstanceId != this.webViewImpl.guest.getId()) {
- return;
- }
-
- this.actionTaken = true;
- WebViewInternal.setPermission(this.guestInstanceId, this.requestId,
- 'default', '', function(allowed) {
- if (allowed) {
- return;
- }
- this.showWarningMessage();
- }.bind(this));
-};
-
-// Called to handle the action request's event.
-WebViewActionRequest.prototype.handleActionRequestEvent = function() {
- // Construct the interface object and attach it to |webViewEvent|.
- var request = this.getInterfaceObject();
- this.webViewEvent[this.interfaceName] = request;
-
- var defaultPrevented = !this.webViewImpl.dispatchEvent(this.webViewEvent);
- // Set |webViewEvent| to null to break the circular reference to |request| so
- // that the garbage collector can eventually collect it.
- this.webViewEvent = null;
- if (this.actionTaken) {
- return;
- }
-
- if (defaultPrevented) {
- // Track the lifetime of |request| with the garbage collector.
- MessagingNatives.BindToGC(request, this.defaultAction.bind(this));
- } else {
- this.defaultAction();
- }
-};
-
-// Displays a warning message when an action request is blocked by default.
-WebViewActionRequest.prototype.showWarningMessage = function() {
- window.console.warn(this.WARNING_MSG_REQUEST_BLOCKED);
-};
-
-// This function ensures that each action is taken at most once.
-WebViewActionRequest.prototype.validateCall = function() {
- if (this.actionTaken) {
- throw new Error(this.ERROR_MSG_ACTION_ALREADY_TAKEN);
- }
- this.actionTaken = true;
-};
-
-// The following are implemented by the specific action request.
-
-// Returns the interface object for this action request.
-WebViewActionRequest.prototype.getInterfaceObject = undefined;
-
-// Error/warning messages.
-WebViewActionRequest.prototype.ERROR_MSG_ACTION_ALREADY_TAKEN = undefined;
-WebViewActionRequest.prototype.WARNING_MSG_REQUEST_BLOCKED = undefined;
-
-// -----------------------------------------------------------------------------
-// Dialog object.
-
-// Represents a dialog box request (e.g. alert()).
-function Dialog(webViewImpl, event, webViewEvent) {
- WebViewActionRequest.call(this, webViewImpl, event, webViewEvent, 'dialog');
-
- this.handleActionRequestEvent();
-}
-
-Dialog.prototype.__proto__ = WebViewActionRequest.prototype;
-
-Dialog.prototype.getInterfaceObject = function() {
- return {
- ok: function(user_input) {
- this.validateCall();
- user_input = user_input || '';
- WebViewInternal.setPermission(
- this.guestInstanceId, this.requestId, 'allow', user_input);
- }.bind(this),
- cancel: function() {
- this.validateCall();
- WebViewInternal.setPermission(
- this.guestInstanceId, this.requestId, 'deny');
- }.bind(this)
- };
-};
-
-Dialog.prototype.showWarningMessage = function() {
- var VOWELS = ['a', 'e', 'i', 'o', 'u'];
- var dialogType = this.event.messageType;
- var article = (VOWELS.indexOf(dialogType.charAt(0)) >= 0) ? 'An' : 'A';
- this.WARNING_MSG_REQUEST_BLOCKED = this.WARNING_MSG_REQUEST_BLOCKED.
- replace('%1', article).replace('%2', dialogType);
- window.console.warn(this.WARNING_MSG_REQUEST_BLOCKED);
-};
-
-Dialog.prototype.ERROR_MSG_ACTION_ALREADY_TAKEN =
- WebViewConstants.ERROR_MSG_DIALOG_ACTION_ALREADY_TAKEN;
-Dialog.prototype.WARNING_MSG_REQUEST_BLOCKED =
- WebViewConstants.WARNING_MSG_DIALOG_REQUEST_BLOCKED;
-
-// -----------------------------------------------------------------------------
-// NewWindow object.
-
-// Represents a new window request.
-function NewWindow(webViewImpl, event, webViewEvent) {
- WebViewActionRequest.call(this, webViewImpl, event, webViewEvent, 'window');
-
- this.handleActionRequestEvent();
-}
-
-NewWindow.prototype.__proto__ = WebViewActionRequest.prototype;
-
-NewWindow.prototype.getInterfaceObject = function() {
- return {
- attach: function(webview) {
- this.validateCall();
- if (!webview || !webview.tagName || webview.tagName != 'WEBVIEW') {
- throw new Error(ERROR_MSG_WEBVIEW_EXPECTED);
- }
-
- var webViewImpl = privates(webview).internal;
- // Update the partition.
- if (this.event.partition) {
- webViewImpl.onAttach(this.event.partition);
- }
-
- var attached = webViewImpl.attachWindow(this.event.windowId);
- if (!attached) {
- window.console.error(ERROR_MSG_NEWWINDOW_UNABLE_TO_ATTACH);
- }
-
- if (this.guestInstanceId != this.webViewImpl.guest.getId()) {
- // If the opener is already gone, then its guestInstanceId will be
- // stale.
- return;
- }
-
- // If the object being passed into attach is not a valid <webview>
- // then we will fail and it will be treated as if the new window
- // was rejected. The permission API plumbing is used here to clean
- // up the state created for the new window if attaching fails.
- WebViewInternal.setPermission(this.guestInstanceId, this.requestId,
- attached ? 'allow' : 'deny');
- }.bind(this),
- discard: function() {
- this.validateCall();
- if (!this.guestInstanceId) {
- // If the opener is already gone, then we won't have its
- // guestInstanceId.
- return;
- }
- WebViewInternal.setPermission(
- this.guestInstanceId, this.requestId, 'deny');
- }.bind(this)
- };
-};
-
-NewWindow.prototype.ERROR_MSG_ACTION_ALREADY_TAKEN =
- WebViewConstants.ERROR_MSG_NEWWINDOW_ACTION_ALREADY_TAKEN;
-NewWindow.prototype.WARNING_MSG_REQUEST_BLOCKED =
- WebViewConstants.WARNING_MSG_NEWWINDOW_REQUEST_BLOCKED;
-
-// -----------------------------------------------------------------------------
-// PermissionRequest object.
-
-// Represents a permission request (e.g. to access the filesystem).
-function PermissionRequest(webViewImpl, event, webViewEvent) {
- WebViewActionRequest.call(this, webViewImpl, event, webViewEvent, 'request');
-
- if (!this.validPermissionCheck()) {
- return;
- }
-
- this.handleActionRequestEvent();
-}
-
-PermissionRequest.prototype.__proto__ = WebViewActionRequest.prototype;
-
-PermissionRequest.prototype.getInterfaceObject = function() {
- return {
- allow: function() {
- this.validateCall();
- WebViewInternal.setPermission(
- this.guestInstanceId, this.requestId, 'allow');
- }.bind(this),
- deny: function() {
- this.validateCall();
- WebViewInternal.setPermission(
- this.guestInstanceId, this.requestId, 'deny');
- }.bind(this)
- };
-};
-
-PermissionRequest.prototype.showWarningMessage = function() {
- window.console.warn(
- this.WARNING_MSG_REQUEST_BLOCKED.replace('%1', this.event.permission));
-};
-
-// Checks that the requested permission is valid. Returns true if valid.
-PermissionRequest.prototype.validPermissionCheck = function() {
- if (PERMISSION_TYPES.indexOf(this.event.permission) < 0) {
- // The permission type is not allowed. Trigger the default response.
- this.defaultAction();
- return false;
- }
- return true;
-};
-
-PermissionRequest.prototype.ERROR_MSG_ACTION_ALREADY_TAKEN =
- WebViewConstants.ERROR_MSG_PERMISSION_ACTION_ALREADY_TAKEN;
-PermissionRequest.prototype.WARNING_MSG_REQUEST_BLOCKED =
- WebViewConstants.WARNING_MSG_PERMISSION_REQUEST_BLOCKED;
-
-// -----------------------------------------------------------------------------
-
-var WebViewActionRequests = {
- WebViewActionRequest: WebViewActionRequest,
- Dialog: Dialog,
- NewWindow: NewWindow,
- PermissionRequest: PermissionRequest
-};
-
-exports.WebViewActionRequests = WebViewActionRequests;

Powered by Google App Engine
This is Rietveld 408576698