Home | History | Annotate | Download | only in extensions
      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