| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Shim extension to provide permission request API (and possibly other future | 5 // Shim extension to provide permission request API (and possibly other future |
| 6 // experimental APIs) for <webview> tag. | 6 // experimental APIs) for <webview> tag. |
| 7 // See web_view.js for details. | 7 // See web_view.js for details. |
| 8 // | 8 // |
| 9 // We want to control the permission API feature in <webview> separately from | 9 // We want to control the permission API feature in <webview> separately from |
| 10 // the <webview> feature itself. <webview> is available in stable channel, but | 10 // the <webview> feature itself. <webview> is available in stable channel, but |
| 11 // permission API would only be available for channels CHANNEL_DEV and | 11 // permission API would only be available for channels CHANNEL_DEV and |
| 12 // CHANNEL_CANARY. | 12 // CHANNEL_CANARY. |
| 13 | 13 |
| 14 var WebRequestEvent = require('webRequestInternal').WebRequestEvent; | 14 var WebRequestEvent = require('webRequestInternal').WebRequestEvent; |
| 15 var webRequestSchema = | 15 var webRequestSchema = |
| 16 requireNative('schema_registry').GetSchema('webRequest'); | 16 requireNative('schema_registry').GetSchema('webRequest'); |
| 17 var WebView = require('webView').WebView; | 17 var WebView = require('webView').WebView; |
| 18 | 18 |
| 19 /** | 19 /** |
| 20 * @private | 20 * @private |
| 21 */ | 21 */ |
| 22 WebView.prototype.maybeSetupExperimentalAPI_ = function() { | 22 WebView.prototype.maybeSetupExperimentalAPI_ = function() { |
| 23 this.setupWebRequestEvents_(); | 23 this.setupWebRequestEvents_(); |
| 24 this.setupDialogEvent_(); | 24 this.setupDialogEvent_(); |
| 25 }; | 25 }; |
| 26 | 26 |
| 27 /** | 27 /** |
| 28 * @private | 28 * @private |
| 29 */ | 29 */ |
| 30 WebView.prototype.maybeGetExperimentalPermissionTypes_ = function() { | |
| 31 var PERMISSION_TYPES = ['download']; | |
| 32 return PERMISSION_TYPES; | |
| 33 }; | |
| 34 | |
| 35 /** | |
| 36 * @private | |
| 37 */ | |
| 38 WebView.prototype.setupWebRequestEvents_ = function() { | 30 WebView.prototype.setupWebRequestEvents_ = function() { |
| 39 var self = this; | 31 var self = this; |
| 40 // Populate the WebRequest events from the API definition. | 32 // Populate the WebRequest events from the API definition. |
| 41 for (var i = 0; i < webRequestSchema.events.length; ++i) { | 33 for (var i = 0; i < webRequestSchema.events.length; ++i) { |
| 42 Object.defineProperty(self.webviewNode_, | 34 Object.defineProperty(self.webviewNode_, |
| 43 webRequestSchema.events[i].name, { | 35 webRequestSchema.events[i].name, { |
| 44 get: function(webRequestEvent) { | 36 get: function(webRequestEvent) { |
| 45 return function() { | 37 return function() { |
| 46 if (!self[webRequestEvent.name + '_']) { | 38 if (!self[webRequestEvent.name + '_']) { |
| 47 self[webRequestEvent.name + '_'] = | 39 self[webRequestEvent.name + '_'] = |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 onTrackedObjectGoneWithRequestId); | 135 onTrackedObjectGoneWithRequestId); |
| 144 browserPluginNode['-internal-trackObjectLifetime'](dialog, requestId); | 136 browserPluginNode['-internal-trackObjectLifetime'](dialog, requestId); |
| 145 } else { | 137 } else { |
| 146 actionTaken = true; | 138 actionTaken = true; |
| 147 // The default action is equivalent to canceling the dialog. | 139 // The default action is equivalent to canceling the dialog. |
| 148 browserPluginNode['-internal-setPermission'](requestId, false, ''); | 140 browserPluginNode['-internal-setPermission'](requestId, false, ''); |
| 149 showWarningMessage(detail.messageType); | 141 showWarningMessage(detail.messageType); |
| 150 } | 142 } |
| 151 }); | 143 }); |
| 152 }; | 144 }; |
| OLD | NEW |