/** * Copyright 2022 Google LLC. * Copyright (c) Microsoft Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Protocol } from 'devtools-protocol'; import type { CdpClient } from '../../../cdp/CdpClient.js'; import { Script } from '../../../protocol/protocol.js'; import { type LoggerFn } from '../../../utils/log.js'; import type { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; import type { EventManager } from '../session/EventManager.js'; import type { RealmStorage } from './RealmStorage.js'; export declare abstract class Realm { #private; constructor(cdpClient: CdpClient, eventManager: EventManager, executionContextId: Protocol.Runtime.ExecutionContextId, logger: LoggerFn | undefined, origin: string, realmId: Script.Realm, realmStorage: RealmStorage); cdpToBidiValue(cdpValue: Protocol.Runtime.CallFunctionOnResponse | Protocol.Runtime.EvaluateResponse, resultOwnership: Script.ResultOwnership): Script.RemoteValue; /** * Relies on the CDP to implement proper BiDi serialization, except: * * CDP integer property `backendNodeId` is replaced with `sharedId` of * `{documentId}_element_{backendNodeId}`; * * CDP integer property `weakLocalObjectReference` is replaced with UUID `internalId` * using unique-per serialization `internalIdMap`. * * CDP type `platformobject` is replaced with `object`. * @param deepSerializedValue - CDP value to be converted to BiDi. * @param internalIdMap - Map from CDP integer `weakLocalObjectReference` to BiDi UUID * `internalId`. */ protected serializeForBiDi(deepSerializedValue: Protocol.Runtime.DeepSerializedValue, internalIdMap: Map<number, string>): Script.RemoteValue; get realmId(): Script.Realm; get executionContextId(): Protocol.Runtime.ExecutionContextId; get origin(): string; get source(): Script.Source; get cdpClient(): CdpClient; abstract get associatedBrowsingContexts(): BrowsingContextImpl[]; abstract get realmType(): Script.RealmType; protected get baseInfo(): Script.BaseRealmInfo; abstract get realmInfo(): Script.RealmInfo; evaluate(expression: string, awaitPromise: boolean, resultOwnership?: Script.ResultOwnership, serializationOptions?: Script.SerializationOptions, userActivation?: boolean, includeCommandLineApi?: boolean): Promise<Script.EvaluateResult>; protected initialize(): void; /** * Serializes a given CDP object into BiDi, keeping references in the * target's `globalThis`. */ serializeCdpObject(cdpRemoteObject: Protocol.Runtime.RemoteObject, resultOwnership: Script.ResultOwnership): Promise<Script.RemoteValue>; /** * Gets the string representation of an object. This is equivalent to * calling `toString()` on the object value. */ stringifyObject(cdpRemoteObject: Protocol.Runtime.RemoteObject): Promise<string>; callFunction(functionDeclaration: string, awaitPromise: boolean, thisLocalValue?: Script.LocalValue, argumentsLocalValues?: Script.LocalValue[], resultOwnership?: Script.ResultOwnership, serializationOptions?: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; deserializeForCdp(localValue: Script.LocalValue): Promise<Protocol.Runtime.CallArgument>; disown(handle: Script.Handle): Promise<void>; dispose(): void; }