blob: c228694d2bcaf89e2186d2b75ae69912793b2367 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
var DocumentNatives = requireNative('document_natives');
// Output error message to console when using the <webview> tag with no
// permission.
var errorMessage = "You do not have permission to use the appview element." +
" Be sure to declare the 'appview' permission in your manifest file and use" +
" the --enable-app-view command line flag.";
// Registers <webview> custom element.
function registerAppViewElement() {
var proto = Object.create(HTMLElement.prototype);
proto.createdCallback = function() {
window.console.error(errorMessage);
};
window.AppView =
DocumentNatives.RegisterElement('appview', {prototype: proto});
// Delete the callbacks so developers cannot call them and produce unexpected
// behavior.
delete proto.createdCallback;
delete proto.attachedCallback;
delete proto.detachedCallback;
delete proto.attributeChangedCallback;
}
var useCapture = true;
window.addEventListener('readystatechange', function listener(event) {
if (document.readyState == 'loading')
return;
registerAppViewElement();
window.removeEventListener(event.type, listener, useCapture);
}, useCapture);