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 // This module implements Webview (<webview>) as a custom element that wraps a | 5 // This module implements Webview (<webview>) as a custom element that wraps a |
6 // BrowserPlugin object element. The object element is hidden within | 6 // BrowserPlugin object element. The object element is hidden within |
7 // the shadow DOM of the Webview element. | 7 // the shadow DOM of the Webview element. |
8 | 8 |
9 var DocumentNatives = requireNative('document_natives'); | 9 var DocumentNatives = requireNative('document_natives'); |
10 var GuestViewInternal = | 10 var GuestViewInternal = |
11 require('binding').Binding.create('guestViewInternal').generate(); | 11 require('binding').Binding.create('guestViewInternal').generate(); |
12 var IdGenerator = requireNative('id_generator'); | 12 var IdGenerator = requireNative('id_generator'); |
13 var ChromeWebView = require('chromeWebViewInternal').ChromeWebView | |
14 // TODO(lazyboy): Rename this to WebViewInternal and call WebViewInternal | 13 // TODO(lazyboy): Rename this to WebViewInternal and call WebViewInternal |
15 // something else. | 14 // something else. |
16 var WebView = require('webViewInternal').WebView; | 15 var WebView = require('webViewInternal').WebView; |
17 var WebViewEvents = require('webViewEvents').WebViewEvents; | 16 var WebViewEvents = require('webViewEvents').WebViewEvents; |
18 var guestViewInternalNatives = requireNative('guest_view_internal'); | 17 var guestViewInternalNatives = requireNative('guest_view_internal'); |
19 | 18 |
20 var WEB_VIEW_ATTRIBUTE_AUTOSIZE = 'autosize'; | 19 var WEB_VIEW_ATTRIBUTE_AUTOSIZE = 'autosize'; |
21 var WEB_VIEW_ATTRIBUTE_MAXHEIGHT = 'maxheight'; | 20 var WEB_VIEW_ATTRIBUTE_MAXHEIGHT = 'maxheight'; |
22 var WEB_VIEW_ATTRIBUTE_MAXWIDTH = 'maxwidth'; | 21 var WEB_VIEW_ATTRIBUTE_MAXWIDTH = 'maxwidth'; |
23 var WEB_VIEW_ATTRIBUTE_MINHEIGHT = 'minheight'; | 22 var WEB_VIEW_ATTRIBUTE_MINHEIGHT = 'minheight'; |
(...skipping 981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 window.addEventListener('readystatechange', function listener(event) { | 1004 window.addEventListener('readystatechange', function listener(event) { |
1006 if (document.readyState == 'loading') | 1005 if (document.readyState == 'loading') |
1007 return; | 1006 return; |
1008 | 1007 |
1009 registerBrowserPluginElement(); | 1008 registerBrowserPluginElement(); |
1010 registerWebViewElement(); | 1009 registerWebViewElement(); |
1011 window.removeEventListener(event.type, listener, useCapture); | 1010 window.removeEventListener(event.type, listener, useCapture); |
1012 }, useCapture); | 1011 }, useCapture); |
1013 | 1012 |
1014 /** | 1013 /** |
| 1014 * Implemented when the ChromeWebView API is available. |
| 1015 * @private |
| 1016 */ |
| 1017 WebViewInternal.prototype.maybeGetChromeWebViewEvents = function() {}; |
| 1018 |
| 1019 /** |
1015 * Implemented when the experimental API is available. | 1020 * Implemented when the experimental API is available. |
1016 * @private | 1021 * @private |
1017 */ | 1022 */ |
1018 WebViewInternal.prototype.maybeGetExperimentalEvents = function() {}; | 1023 WebViewInternal.prototype.maybeGetExperimentalEvents = function() {}; |
1019 | 1024 |
1020 /** | 1025 /** |
1021 * Implemented when the experimental API is available. | 1026 * Implemented when the experimental API is available. |
1022 * @private | 1027 * @private |
1023 */ | 1028 */ |
1024 WebViewInternal.prototype.maybeGetExperimentalPermissions = function() { | 1029 WebViewInternal.prototype.maybeGetExperimentalPermissions = function() { |
1025 return []; | 1030 return []; |
1026 }; | 1031 }; |
1027 | 1032 |
1028 /** | 1033 /** |
1029 * Calls to show contextmenu right away instead of dispatching a 'contextmenu' | |
1030 * event. | |
1031 * This will be overridden in web_view_experimental.js to implement contextmenu | |
1032 * API. | |
1033 */ | |
1034 WebViewInternal.prototype.maybeHandleContextMenu = function(e, webViewEvent) { | |
1035 var requestId = e.requestId; | |
1036 // Setting |params| = undefined will show the context menu unmodified, hence | |
1037 // the 'contextmenu' API is disabled for stable channel. | |
1038 var params = undefined; | |
1039 ChromeWebView.showContextMenu(this.guestInstanceId, requestId, params); | |
1040 }; | |
1041 | |
1042 /** | |
1043 * Implemented when the experimental API is available. | 1034 * Implemented when the experimental API is available. |
1044 * @private | 1035 * @private |
1045 */ | 1036 */ |
1046 WebViewInternal.prototype.setupExperimentalContextMenus = function() {}; | 1037 WebViewInternal.prototype.setupExperimentalContextMenus = function() { |
| 1038 }; |
1047 | 1039 |
1048 exports.WebView = WebView; | 1040 exports.WebView = WebView; |
1049 exports.WebViewInternal = WebViewInternal; | 1041 exports.WebViewInternal = WebViewInternal; |
OLD | NEW |