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 5var DocumentNatives = requireNative('document_natives'); 6 7// Output error message to console when using the <webview> tag with no 8// permission. 9var 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. 13function 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 31var useCapture = true; 32window.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