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 <appview> 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 // <appview> 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