1 // Copyright 2014 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 appview element." + 10 " Be sure to declare the 'appview' permission in your manifest file and use" + 11 " the --enable-app-view command line flag."; 12 13 // Registers <webview> custom element. 14 function registerAppViewElement() { 15 var proto = Object.create(HTMLElement.prototype); 16 17 proto.createdCallback = function() { 18 window.console.error(errorMessage); 19 }; 20 21 window.AppView = 22 DocumentNatives.RegisterElement('appview', {prototype: proto}); 23 24 // Delete the callbacks so developers cannot call them and produce unexpected 25 // behavior. 26 delete proto.createdCallback; 27 delete proto.attachedCallback; 28 delete proto.detachedCallback; 29 delete proto.attributeChangedCallback; 30 } 31 32 var useCapture = true; 33 window.addEventListener('readystatechange', function listener(event) { 34 if (document.readyState == 'loading') 35 return; 36 37 registerAppViewElement(); 38 window.removeEventListener(event.type, listener, useCapture); 39 }, useCapture); 40