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
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 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.
14function 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
32var useCapture = true;
33window.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