<br />

<br />

## Description

Use the `chrome.app.runtime` API to manage the app lifecycle. The app runtime manages app installation, controls the event page, and can shut down the app at anytime.

<br />

<br />

<br />

<br />

<br />

## Types

### EmbedRequest

#### Properties

- data any optional

  Optional developer specified data that the app to be embedded can use when making an embedding decision.
- embedderId string
- allow void

  Allows `embedderId` to embed this app in an \<appview\> element. The `url` specifies the content to embed.


  The `allow` function looks like:

  ```typescript
  (url: string) => {...}
  ```

  <br />

  - url string
- deny void

  Prevents `embedderId` from embedding this app in an \<appview\> element.


  The `deny` function looks like:

  ```typescript
  () => {...}
  ```

  <br />

### LaunchData

#### Properties

- id string optional

  The ID of the file or URL handler that the app is being invoked with. Handler IDs are the top-level keys in the `file_handlers` and/or `url_handlers` dictionaries in the manifest.
- isKioskSession boolean optional

  Whether the app is being launched in a [Chrome OS kiosk session](https://support.google.com/chromebook/answer/3134673).
- isPublicSession boolean optional
  Chrome 47+

  Whether the app is being launched in a [Chrome OS public session](https://support.google.com/chrome/a/answer/3017014).
- items [LaunchItem](https://developer.chrome.com/docs/apps/reference/app/runtime#type-LaunchItem)\[\] optional

  The file entries for the `onLaunched` event triggered by a matching file handler in the `file_handlers` manifest key.
- referrerUrl string optional

  The referrer URL for the `onLaunched` event triggered by a matching URL handler in the `url_handlers` manifest key.
- source [LaunchSource](https://developer.chrome.com/docs/apps/reference/app/runtime#type-LaunchSource) optional

  Where the app is launched from.
- url string optional

  The URL for the `onLaunched` event triggered by a matching URL handler in the `url_handlers` manifest key.

### LaunchItem

#### Properties

- entry Entry

  Entry for the item.
- type string optional

  The MIME type of the file.

### LaunchSource

Enumeration of app launch sources. This should be kept in sync with AppLaunchSource in components/services/app_service/public/mojom/types.mojom, and GetLaunchSourceEnum() in extensions/browser/api/app_runtime/app_runtime_api.cc. Note the enumeration is used in UMA histogram so entries should not be re-ordered or removed.

#### Enum

"untracked"   
"app_launcher"   
"new_tab_page"   
"reload"   
"restart"   
"load_and_launch"   
"command_line"   
"file_handler"   
"url_handler"   
"system_tray"   
"about_page"   
"keyboard"   
"extensions_page"   
"management_api"   
"ephemeral_app"   
"background"   
"kiosk"   
"chrome_internal"   
"test"   
"installed_notification"   
"context_menu"   
"arc"   
"intent_url"   
"app_home_page"   
"focus_mode"   
"sparky"   

<br />

## Events

### onEmbedRequested

```typescript
chrome.app.runtime.onEmbedRequested.addListener(
  callback: function,
)
```

Fired when an embedding app requests to embed this app. This event is only available on dev channel with the flag --enable-app-view.

#### Parameters

- callback function


  The `callback` parameter looks like:

  ```typescript
  (request: EmbedRequest) => void
  ```

  <br />

  - request [EmbedRequest](https://developer.chrome.com/docs/apps/reference/app/runtime#type-EmbedRequest)

### onLaunched

```typescript
chrome.app.runtime.onLaunched.addListener(
  callback: function,
)
```

Fired when an app is launched from the launcher.

#### Parameters

- callback function


  The `callback` parameter looks like:

  ```typescript
  (launchData?: LaunchData) => void
  ```

  <br />

  - launchData [LaunchData](https://developer.chrome.com/docs/apps/reference/app/runtime#type-LaunchData) optional

### onRestarted

```typescript
chrome.app.runtime.onRestarted.addListener(
  callback: function,
)
```

Fired at Chrome startup to apps that were running when Chrome last shut down, or when apps have been requested to restart from their previous state for other reasons (e.g. when the user revokes access to an app's retained files the runtime will restart the app). In these situations if apps do not have an `onRestarted` handler they will be sent an `onLaunched` event instead.

#### Parameters

- callback function


  The `callback` parameter looks like:

  ```typescript
  () => void
  ```

  <br />

<br />