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

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

Issue 183693015: <webview>: Move Dialog API to stable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed C++ check Created 6 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: chrome/renderer/resources/extensions/web_view_experimental.js
diff --git a/chrome/renderer/resources/extensions/web_view_experimental.js b/chrome/renderer/resources/extensions/web_view_experimental.js
index fc4e87bf523d8b4a8ad2ceaf45ec76a365a21a95..025f7dd8c5cf41a1bfc5a549ec7eda4364c5e580 100644
--- a/chrome/renderer/resources/extensions/web_view_experimental.js
+++ b/chrome/renderer/resources/extensions/web_view_experimental.js
@@ -33,14 +33,6 @@ var utils = require('utils');
// is prevented, then its dispatch function will return false in its event
// handler. The event must have a custom handler for this to be meaningful.
var WEB_VIEW_EXPERIMENTAL_EVENTS = {
- 'dialog': {
- cancelable: true,
- customHandler: function(webViewInternal, event, webViewEvent) {
- webViewInternal.handleDialogEvent(event, webViewEvent);
- },
- evt: CreateEvent('webview.onDialog'),
- fields: ['defaultPromptText', 'messageText', 'messageType', 'url']
- },
'findupdate': {
evt: CreateEvent('webview.onFindReply'),
fields: [
@@ -152,84 +144,6 @@ WebViewInternal.prototype.setZoom = function(zoomFactor) {
WebView.setZoom(this.instanceId, zoomFactor);
};
-/**
- * @private
- */
-WebViewInternal.prototype.handleDialogEvent =
- function(event, webViewEvent) {
- var showWarningMessage = function(dialogType) {
- var VOWELS = ['a', 'e', 'i', 'o', 'u'];
- var WARNING_MSG_DIALOG_BLOCKED = '<webview>: %1 %2 dialog was blocked.';
- var article = (VOWELS.indexOf(dialogType.charAt(0)) >= 0) ? 'An' : 'A';
- var output = WARNING_MSG_DIALOG_BLOCKED.replace('%1', article);
- output = output.replace('%2', dialogType);
- window.console.warn(output);
- };
-
- var self = this;
- var browserPluginNode = this.browserPluginNode;
- var webviewNode = this.webviewNode;
-
- var requestId = event.requestId;
- var actionTaken = false;
-
- var validateCall = function() {
- var ERROR_MSG_DIALOG_ACTION_ALREADY_TAKEN = '<webview>: ' +
- 'An action has already been taken for this "dialog" event.';
-
- if (actionTaken) {
- throw new Error(ERROR_MSG_DIALOG_ACTION_ALREADY_TAKEN);
- }
- actionTaken = true;
- };
-
- var dialog = {
- ok: function(user_input) {
- validateCall();
- user_input = user_input || '';
- WebView.setPermission(self.instanceId, requestId, 'allow', user_input);
- },
- cancel: function() {
- validateCall();
- WebView.setPermission(self.instanceId, requestId, 'deny');
- }
- };
- webViewEvent.dialog = dialog;
-
- var defaultPrevented = !webviewNode.dispatchEvent(webViewEvent);
- if (actionTaken) {
- return;
- }
-
- if (defaultPrevented) {
- // Tell the JavaScript garbage collector to track lifetime of |dialog| and
- // call back when the dialog object has been collected.
- MessagingNatives.BindToGC(dialog, function() {
- // Avoid showing a warning message if the decision has already been made.
- if (actionTaken) {
- return;
- }
- WebView.setPermission(
- self.instanceId, requestId, 'default', '', function(allowed) {
- if (allowed) {
- return;
- }
- showWarningMessage(event.messageType);
- });
- });
- } else {
- actionTaken = true;
- // The default action is equivalent to canceling the dialog.
- WebView.setPermission(
- self.instanceId, requestId, 'default', '', function(allowed) {
- if (allowed) {
- return;
- }
- showWarningMessage(event.messageType);
- });
- }
-};
-
WebViewInternal.prototype.maybeGetExperimentalEvents = function() {
return WEB_VIEW_EXPERIMENTAL_EVENTS;
};

Powered by Google App Engine
This is Rietveld 408576698