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 var DocumentNatives = requireNative('document_natives'); | 5 var DocumentNatives = requireNative('document_natives'); |
6 | 6 |
7 // Output error message to console when using the <webview> tag with no | 7 // Output error message to console when using the <webview> tag with no |
8 // permission. | 8 // permission. |
9 var errorMessage = "You do not have permission to use the webview element." + | 9 var errorMessage = "You do not have permission to use the webview element." + |
10 " Be sure to declare the 'webview' permission in your manifest file."; | 10 " Be sure to declare the 'webview' permission in your manifest file."; |
11 | 11 |
12 // Registers <webview> custom element. | 12 // Registers <webview> custom element. |
13 function registerWebViewElement() { | 13 function registerWebViewElement() { |
14 var proto = Object.create(HTMLElement.prototype); | 14 var proto = Object.create(HTMLElement.prototype); |
15 | 15 |
16 proto.createdCallback = function() { | 16 proto.createdCallback = function() { |
17 console.error(errorMessage); | 17 window.console.error(errorMessage); |
18 }; | 18 }; |
19 | 19 |
20 window.WebView = | 20 window.WebView = |
21 DocumentNatives.RegisterElement('webview', {prototype: proto}); | 21 DocumentNatives.RegisterElement('webview', {prototype: proto}); |
22 | 22 |
23 // Delete the callbacks so developers cannot call them and produce unexpected | 23 // Delete the callbacks so developers cannot call them and produce unexpected |
24 // behavior. | 24 // behavior. |
25 delete proto.createdCallback; | 25 delete proto.createdCallback; |
26 delete proto.enteredDocumentCallback; | 26 delete proto.attachedCallback; |
27 delete proto.leftDocumentCallback; | 27 delete proto.detachedCallback; |
28 delete proto.attributeChangedCallback; | 28 delete proto.attributeChangedCallback; |
29 } | 29 } |
30 | 30 |
31 var useCapture = true; | 31 var useCapture = true; |
32 window.addEventListener('readystatechange', function listener(event) { | 32 window.addEventListener('readystatechange', function listener(event) { |
33 if (document.readyState == 'loading') | 33 if (document.readyState == 'loading') |
34 return; | 34 return; |
35 | 35 |
36 registerWebViewElement(); | 36 registerWebViewElement(); |
37 window.removeEventListener(event.type, listener, useCapture); | 37 window.removeEventListener(event.type, listener, useCapture); |
38 }, useCapture); | 38 }, useCapture); |
OLD | NEW |