# TabDescriptorFront

[**@openpolyfill/firefox-rdp**](/docs/api/reference)

***

[@openpolyfill/firefox-rdp](/docs/api/reference/globals) / TabDescriptorFront

# Class: TabDescriptorFront

Defined in: [src/client.ts:311](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L311)

A generic actor client: use call() or the methods proxy to invoke actor methods.

## Extends

- [`ActorFront`](/docs/api/reference/classes/ActorFront)

## Constructors

### Constructor

> **new TabDescriptorFront**(`client`, `info`, `selected`): `TabDescriptorFront`

Defined in: [src/client.ts:312](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L312)

#### Parameters

##### client

[`FirefoxRDP`](/docs/api/reference/classes/FirefoxRDP)

##### info

[`TabInfo`](/docs/api/reference/interfaces/TabInfo)

##### selected

`boolean`

#### Returns

`TabDescriptorFront`

#### Overrides

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`constructor`](/docs/api/reference/classes/ActorFront#constructor)

## Properties

### actorId

> `readonly` **actorId**: `string`

Defined in: [src/client.ts:60](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L60)

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`actorId`](/docs/api/reference/classes/ActorFront#actorid)

***

### api

> `readonly` **api**: `Record`\<`string`, (...`args`) => `Promise`\<`unknown`\>\>

Defined in: [src/client.ts:52](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L52)

Firefox-spec positional method calls; arguments are marshalled by Arg/Option templates.

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`api`](/docs/api/reference/classes/ActorFront#api)

***

### client

> `readonly` **client**: [`FirefoxRDP`](/docs/api/reference/classes/FirefoxRDP)

Defined in: [src/client.ts:59](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L59)

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`client`](/docs/api/reference/classes/ActorFront#client)

***

### form

> **form**: [`Params`](/docs/api/reference/type-aliases/Params) \| `undefined`

Defined in: [src/client.ts:49](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L49)

Most recent actor form, when supplied by the remote actor.

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`form`](/docs/api/reference/classes/ActorFront#form)

***

### info

> **info**: [`TabInfo`](/docs/api/reference/interfaces/TabInfo)

Defined in: [src/client.ts:314](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L314)

***

### methods

> `readonly` **methods**: `Record`\<`string`, (`params?`) => `Promise`\<[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)\>\>

Defined in: [src/client.ts:50](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L50)

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`methods`](/docs/api/reference/classes/ActorFront#methods)

***

### selected

> **selected**: `boolean`

Defined in: [src/client.ts:315](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L315)

***

### spec?

> `protected` `optional` **spec?**: [`ActorSpec`](/docs/api/reference/interfaces/ActorSpec)

Defined in: [src/client.ts:53](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L53)

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`spec`](/docs/api/reference/classes/ActorFront#spec)

## Accessors

### specTypeName

#### Get Signature

> **get** **specTypeName**(): `string` \| `undefined`

Defined in: [src/client.ts:54](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L54)

##### Returns

`string` \| `undefined`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`specTypeName`](/docs/api/reference/classes/ActorFront#spectypename)

***

### title

#### Get Signature

> **get** **title**(): `string` \| `undefined`

Defined in: [src/client.ts:327](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L327)

##### Returns

`string` \| `undefined`

***

### url

#### Get Signature

> **get** **url**(): `string` \| `undefined`

Defined in: [src/client.ts:330](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L330)

##### Returns

`string` \| `undefined`

## Methods

### adoptFrom()

> **adoptFrom**(`other`): `this`

Defined in: [src/client.ts:190](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L190)

Preserve listeners when a generic actor is upgraded to a specialized front.

#### Parameters

##### other

[`ActorFront`](/docs/api/reference/classes/ActorFront)

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`adoptFrom`](/docs/api/reference/classes/ActorFront#adoptfrom)

***

### call()

> **call**(`method`, `params?`): `Promise`\<[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)\>

Defined in: [src/client.ts:109](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L109)

#### Parameters

##### method

`string`

##### params?

[`Params`](/docs/api/reference/type-aliases/Params) = `{String.fromCharCode(123)}{String.fromCharCode(125)}`

#### Returns

`Promise`\<[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)\>

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`call`](/docs/api/reference/classes/ActorFront#call)

***

### dispatch()

> **dispatch**(`packet`): `void`

Defined in: [src/client.ts:208](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L208)

#### Parameters

##### packet

[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)

#### Returns

`void`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`dispatch`](/docs/api/reference/classes/ActorFront#dispatch)

***

### getTarget()

> **getTarget**(): `Promise`\<[`TargetFront`](/docs/api/reference/classes/TargetFront)\>

Defined in: [src/client.ts:362](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L362)

#### Returns

`Promise`\<[`TargetFront`](/docs/api/reference/classes/TargetFront)\>

***

### getWatcher()

> **getWatcher**(`options?`): `Promise`\<[`WatcherFront`](/docs/api/reference/classes/WatcherFront)\>

Defined in: [src/client.ts:334](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L334)

#### Parameters

##### options?

###### isPopupDebuggingEnabled?

`boolean`

###### isServerTargetSwitchingEnabled?

`boolean`

#### Returns

`Promise`\<[`WatcherFront`](/docs/api/reference/classes/WatcherFront)\>

***

### goBack()

> **goBack**(): `Promise`\<`void`\>

Defined in: [src/client.ts:355](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L355)

#### Returns

`Promise`\<`void`\>

***

### goForward()

> **goForward**(): `Promise`\<`void`\>

Defined in: [src/client.ts:358](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L358)

#### Returns

`Promise`\<`void`\>

***

### invoke()

> **invoke**(`method`, ...`args`): `Promise`\<`unknown`\>

Defined in: [src/client.ts:92](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L92)

Call the named Firefox actor method with its original positional JS signature.

#### Parameters

##### method

`string`

##### args

...`unknown`[]

#### Returns

`Promise`\<`unknown`\>

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`invoke`](/docs/api/reference/classes/ActorFront#invoke)

***

### isEvent()

> **isEvent**(`packet`): `boolean`

Defined in: [src/client.ts:202](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L202)

#### Parameters

##### packet

[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)

#### Returns

`boolean`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`isEvent`](/docs/api/reference/classes/ActorFront#isevent)

***

### listen()

> **listen**(`type`, `listener`): `this`

Defined in: [src/client.ts:114](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L114)

Subscribe with Firefox's native positional Front event signature.

#### Parameters

##### type

`string`

##### listener

(...`args`) => `void`

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`listen`](/docs/api/reference/classes/ActorFront#listen)

***

### navigateTo()

> **navigateTo**(`url`, `waitForLoad?`): `Promise`\<`void`\>

Defined in: [src/client.ts:349](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L349)

#### Parameters

##### url

`string`

##### waitForLoad?

`boolean` = `true`

#### Returns

`Promise`\<`void`\>

***

### off()

> **off**(`type`, `listener`): `this`

Defined in: [src/client.ts:176](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L176)

#### Parameters

##### type

`string`

##### listener

[`PacketListener`](/docs/api/reference/type-aliases/PacketListener)

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`off`](/docs/api/reference/classes/ActorFront#off)

***

### on()

> **on**(`type`, `listener`): `this`

Defined in: [src/client.ts:168](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L168)

#### Parameters

##### type

`string`

##### listener

[`PacketListener`](/docs/api/reference/type-aliases/PacketListener)

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`on`](/docs/api/reference/classes/ActorFront#on)

***

### once()

> **once**(`type`, `listener`): `this`

Defined in: [src/client.ts:181](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L181)

#### Parameters

##### type

`string`

##### listener

[`PacketListener`](/docs/api/reference/type-aliases/PacketListener)

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`once`](/docs/api/reference/classes/ActorFront#once)

***

### registerEvents()

> **registerEvents**(...`types`): `this`

Defined in: [src/client.ts:163](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L163)

Mark event packet types explicitly, even if no listener is currently attached.

#### Parameters

##### types

...`string`[]

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`registerEvents`](/docs/api/reference/classes/ActorFront#registerevents)

***

### reload()

> **reload**(`bypassCache?`): `Promise`\<`void`\>

Defined in: [src/client.ts:352](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L352)

#### Parameters

##### bypassCache?

`boolean` = `false`

#### Returns

`Promise`\<`void`\>

***

### unlisten()

> **unlisten**(`type`, `listener`): `this`

Defined in: [src/client.ts:122](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L122)

#### Parameters

##### type

`string`

##### listener

(...`args`) => `void`

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`unlisten`](/docs/api/reference/classes/ActorFront#unlisten)

***

### update()

> **update**(`info`, `selected`): `void`

Defined in: [src/client.ts:322](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L322)

#### Parameters

##### info

[`TabInfo`](/docs/api/reference/interfaces/TabInfo)

##### selected

`boolean`

#### Returns

`void`

***

### useSpec()

> **useSpec**(`spec`): `this`

Defined in: [src/client.ts:85](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L85)

Attach an actor spec to enable schema-based calls and automatic event routing.

#### Parameters

##### spec

[`ActorSpec`](/docs/api/reference/interfaces/ActorSpec)

#### Returns

`this`

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`useSpec`](/docs/api/reference/classes/ActorFront#usespec)

***

### waitFor()

> **waitFor**(`type`, `options?`): `Promise`\<[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)\>

Defined in: [src/client.ts:128](https://github.com/OpenPolyfill/FirefoxRDP/blob/50728dfa35fc2a06b6d8a70fbaf9c0ef0a5bd3a4/src/client.ts#L128)

Await one event, optionally with cancellation and timeout.

#### Parameters

##### type

`string`

##### options?

###### signal?

`AbortSignal`

###### timeoutMs?

`number`

#### Returns

`Promise`\<[`RDPResponse`](/docs/api/reference/type-aliases/RDPResponse)\>

#### Inherited from

[`ActorFront`](/docs/api/reference/classes/ActorFront).[`waitFor`](/docs/api/reference/classes/ActorFront#waitfor)
