Skip to content

ui/shell/app-shell

Defined in: app/src/ui/shell/app-shell.ts:13

The browser shell: tab strip, navigation buttons and the address bar. It renders the state that the browser process sends and reports the space it needs, so web content fills the rest of the window.

  • LitElement

new AppShell(): AppShell

Defined in: app/src/ui/shell/app-shell.ts:397

AppShell

LitElement.constructor

connectedCallback(): void

Defined in: app/src/ui/shell/app-shell.ts:411

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

LitElement.connectedCallback

disconnectedCallback(): void

Defined in: app/src/ui/shell/app-shell.ts:440

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

LitElement.disconnectedCallback

bridge: ShellBridge | undefined

Defined in: app/src/ui/shell/app-shell.ts:383

editing: string | undefined

Defined in: app/src/ui/shell/app-shell.ts:382

i18n: Translator | undefined

Defined in: app/src/ui/shell/app-shell.ts:384

state: object

Defined in: app/src/ui/shell/app-shell.ts:381

activeTabId: string | null

bookmarksBar: object[] | null

downloads: { active: number; progress: number | null; } | null

find: { active: number; matches: number; query: string; } | null

private: boolean

tabs: object[]

tabStrip: "left" | "top" | "bottom" | "right"

static styles: CSSResult

Defined in: app/src/ui/shell/app-shell.ts:20

Styles of the shell, scoped to its shadow root.

LitElement.styles

static properties: object

Defined in: app/src/ui/shell/app-shell.ts:14

User-supplied object that maps property names to PropertyDeclaration objects containing options for configuring reactive properties. When a reactive property is set the element will update and render.

By default properties are public fields, and as such, they should be considered as primarily settable by element users, either via attribute or the property itself.

Generally, properties that are changed by the element should be private or protected fields and should use the state: true option. Properties marked as state do not reflect from the corresponding attribute

However, sometimes element code does need to set a public property. This should typically only be done in response to user interaction, and an event should be fired informing the user; for example, a checkbox sets its checked property when clicked and fires a changed event. Mutating public properties should typically not be done for non-primitive (object or array) properties. In other cases when an element needs to manage state, a private property set with the state: true option should be used. When needed, state properties can be initialized via public properties to facilitate complex interactions.

editing: object

state: boolean = true

state: object

state: boolean = true

LitElement.properties