| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 that simulates a <webview> tag via Mutation Observers. | 5 // Shim that simulates a <webview> tag via Mutation Observers. |
| 6 // | 6 // |
| 7 // The actual tag is implemented via the browser plugin. The internals of this | 7 // The actual tag is implemented via the browser plugin. The internals of this |
| 8 // are hidden via Shadow DOM. | 8 // are hidden via Shadow DOM. |
| 9 | 9 |
| 10 var chrome = requireNative('chrome').GetChrome(); | 10 var chrome = requireNative('chrome').GetChrome(); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 get: function() { | 122 get: function() { |
| 123 return objectNode[attributeName]; | 123 return objectNode[attributeName]; |
| 124 }, | 124 }, |
| 125 set: function(value) { | 125 set: function(value) { |
| 126 objectNode[attributeName] = value; | 126 objectNode[attributeName] = value; |
| 127 }, | 127 }, |
| 128 enumerable: true | 128 enumerable: true |
| 129 }); | 129 }); |
| 130 }, this); | 130 }, this); |
| 131 | 131 |
| 132 |
| 132 // We cannot use {writable: true} property descriptor because we want dynamic | 133 // We cannot use {writable: true} property descriptor because we want dynamic |
| 133 // getter value. | 134 // getter value. |
| 134 Object.defineProperty(this.node_, 'contentWindow', { | 135 Object.defineProperty(this.node_, 'contentWindow', { |
| 135 get: function() { | 136 get: function() { |
| 136 // TODO(fsamuel): This is a workaround to enable | 137 // TODO(fsamuel): This is a workaround to enable |
| 137 // contentWindow.postMessage until http://crbug.com/152006 is fixed. | 138 // contentWindow.postMessage until http://crbug.com/152006 is fixed. |
| 138 if (objectNode.contentWindow) | 139 if (objectNode.contentWindow) |
| 139 return objectNode.contentWindow.self; | 140 return objectNode.contentWindow.self; |
| 140 console.error('contentWindow is not available at this time. ' + | 141 console.error('contentWindow is not available at this time. ' + |
| 141 'It will become available when the page has finished loading.'); | 142 'It will become available when the page has finished loading.'); |
| 142 }, | 143 }, |
| 143 // No setter. | 144 // No setter. |
| 144 enumerable: true | 145 enumerable: true |
| 145 }); | 146 }); |
| 146 | 147 |
| 147 for (var eventName in WEB_VIEW_EVENTS) { | 148 for (var eventName in WEB_VIEW_EVENTS) { |
| 148 this.setupEvent_(eventName, WEB_VIEW_EVENTS[eventName]); | 149 this.setupEvent_(eventName, WEB_VIEW_EVENTS[eventName]); |
| 149 } | 150 } |
| 150 this.maybeSetupNewWindowEvent_(); | 151 this.maybeSetupNewWindowEvent_(); |
| 151 this.maybeSetupPermissionEvent_(); | 152 this.maybeSetupPermissionEvent_(); |
| 152 this.maybeSetupExecuteCodeAPI_(); | 153 this.maybeSetupExecuteCodeAPI_(); |
| 154 this.maybeSetupWebRequestEvents_(); |
| 153 } | 155 } |
| 154 | 156 |
| 155 /** | 157 /** |
| 156 * @private | 158 * @private |
| 157 */ | 159 */ |
| 158 WebView.prototype.handleMutation_ = function(mutation) { | 160 WebView.prototype.handleMutation_ = function(mutation) { |
| 159 // This observer monitors mutations to attributes of the <webview> and | 161 // This observer monitors mutations to attributes of the <webview> and |
| 160 // updates the BrowserPlugin properties accordingly. In turn, updating | 162 // updates the BrowserPlugin properties accordingly. In turn, updating |
| 161 // a BrowserPlugin property will update the corresponding BrowserPlugin | 163 // a BrowserPlugin property will update the corresponding BrowserPlugin |
| 162 // attribute, if necessary. See BrowserPlugin::UpdateDOMAttribute for more | 164 // attribute, if necessary. See BrowserPlugin::UpdateDOMAttribute for more |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 * @private | 219 * @private |
| 218 */ | 220 */ |
| 219 WebView.prototype.maybeSetupPermissionEvent_ = function() {}; | 221 WebView.prototype.maybeSetupPermissionEvent_ = function() {}; |
| 220 | 222 |
| 221 /** | 223 /** |
| 222 * Implemented when experimental permission is available. | 224 * Implemented when experimental permission is available. |
| 223 * @private | 225 * @private |
| 224 */ | 226 */ |
| 225 WebView.prototype.maybeSetupExecuteScript_ = function() {}; | 227 WebView.prototype.maybeSetupExecuteScript_ = function() {}; |
| 226 | 228 |
| 229 /** |
| 230 * Implemented when experimental permission is available. |
| 231 * @private |
| 232 */ |
| 233 WebView.prototype.maybeSetupWebRequestEvents_ = function() {}; |
| 234 |
| 227 exports.WebView = WebView; | 235 exports.WebView = WebView; |
| OLD | NEW |