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