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.
5 var DocumentNatives = requireNative('document_natives');
7 // Output error message to console when using the <webview> tag with no
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.";
12 // Registers <webview> custom element.
13 function registerWebViewElement() {
14 var proto = Object.create(HTMLElement.prototype);
16 proto.createdCallback = function() {
17 window.console.error(errorMessage);
21 DocumentNatives.RegisterElement('webview', {prototype: proto});
23 // Delete the callbacks so developers cannot call them and produce unexpected
25 delete proto.createdCallback;
26 delete proto.attachedCallback;
27 delete proto.detachedCallback;
28 delete proto.attributeChangedCallback;
31 var useCapture = true;
32 window.addEventListener('readystatechange', function listener(event) {
33 if (document.readyState == 'loading')
36 registerWebViewElement();
37 window.removeEventListener(event.type, listener, useCapture);