Home | History | Annotate | Download | only in api
      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 // Use the <code>chrome.app.runtime</code> API to manage the app lifecycle.
      6 // The app runtime manages app installation, controls the event page, and can
      7 // shut down the app at anytime.
      8 namespace app.runtime {
      9 
     10   [inline_doc] dictionary LaunchItem {
     11     // FileEntry for the file.
     12     [instanceOf=FileEntry] object entry;
     13 
     14     // The MIME type of the file.
     15     DOMString type;
     16   };
     17 
     18   // Optional data for the launch. Either <code>items</code>, or
     19   // the pair (<code>url, referrerUrl</code>) can be present for any given
     20   // launch.
     21   [inline_doc] dictionary LaunchData {
     22     // The ID of the file or URL handler that the app is being invoked with.
     23     // Handler IDs are the top-level keys in the <code>file_handlers</code>
     24     // and/or <code>url_handlers</code> dictionaries in the manifest.
     25     DOMString? id;
     26 
     27     // The file entries for the <code>onLaunched</code> event triggered by a
     28     // matching file handler in the <code>file_handlers</code> manifest key.
     29     LaunchItem[]? items;
     30 
     31     // The URL for the <code>onLaunched</code> event triggered by a matching
     32     // URL handler in the <code>url_handlers</code> manifest key.
     33     DOMString? url;
     34 
     35     // The referrer URL for the <code>onLaunched</code> event triggered by a
     36     // matching URL handler in the <code>url_handlers</code> manifest key.
     37     DOMString? referrerUrl;
     38 
     39     // Whether the app is being launched in a <a
     40     // href="https://support.google.com/chromebook/answer/3134673">Chrome OS
     41     // kiosk session</a>.
     42     boolean? isKioskSession;
     43   };
     44 
     45   // This object specifies details and operations to perform on the embedding
     46   // request. The app to be embedded can make a decision on whether or not to
     47   // allow the embedding and what to embed based on the embedder making the
     48   // request.
     49   dictionary EmbedRequest {
     50     DOMString embedderId;
     51 
     52     // Optional developer specified data that the app to be embedded can use
     53     // when making an embedding decision.
     54     any? data;
     55 
     56     // Allows <code>embedderId</code> to embed this app in an &lt;appview&gt;
     57     // element. The <code>url</code> specifies the content to embed.
     58     [nocompile] static void allow(DOMString url);
     59 
     60     // Prevents <code> embedderId</code> from embedding this app in an
     61     // &lt;appview&gt; element.
     62     [nocompile] static void deny();
     63   };
     64 
     65   interface Events {
     66     // Fired when an embedding app requests to embed this app. This event is
     67     // only available on dev channel with the flag --enable-app-view.
     68     static void onEmbedRequested(EmbedRequest request);
     69 
     70     // Fired when an app is launched from the launcher.
     71     static void onLaunched(optional LaunchData launchData);
     72 
     73     // Fired at Chrome startup to apps that were running when Chrome last shut
     74     // down.
     75     static void onRestarted();
     76   };
     77 };
     78