chromium-bidi
Advanced tools
Comparing version 0.5.14 to 0.5.15
@@ -64,3 +64,3 @@ "use strict"; | ||
this.#scriptProcessor = new ScriptProcessor_js_1.ScriptProcessor(browsingContextStorage, realmStorage, preloadScriptStorage, logger); | ||
this.#sessionProcessor = new SessionProcessor_js_1.SessionProcessor(eventManager); | ||
this.#sessionProcessor = new SessionProcessor_js_1.SessionProcessor(eventManager, browserCdpClient); | ||
this.#storageProcessor = new StorageProcessor_js_1.StorageProcessor(browserCdpClient, browsingContextStorage, logger); | ||
@@ -72,3 +72,2 @@ // keep-sorted end | ||
case 'session.end': | ||
case 'session.new': | ||
// TODO: Implement. | ||
@@ -171,2 +170,4 @@ break; | ||
// keep-sorted start block=yes | ||
case 'session.new': | ||
return await this.#sessionProcessor.create(command.params); | ||
case 'session.status': | ||
@@ -173,0 +174,0 @@ return this.#sessionProcessor.status(); |
@@ -557,3 +557,3 @@ "use strict"; | ||
const realm = await this.getOrCreateSandbox(undefined); | ||
const originResult = await realm.callFunction(script, { type: 'undefined' }, [], false, "none" /* Script.ResultOwnership.None */, {}, false); | ||
const originResult = await realm.callFunction(script, false); | ||
(0, assert_js_1.assert)(originResult.type === 'success'); | ||
@@ -668,3 +668,3 @@ const origin = deserializeDOMRect(originResult.result); | ||
return element instanceof Element; | ||
}), { type: 'undefined' }, [clip.element], false, "none" /* Script.ResultOwnership.None */, {}); | ||
}), false, { type: 'undefined' }, [clip.element]); | ||
if (result.type === 'exception') { | ||
@@ -686,3 +686,3 @@ throw new protocol_js_1.NoSuchElementException(`Element '${clip.element.sharedId}' was not found`); | ||
}; | ||
}), { type: 'undefined' }, [clip.element], false, "none" /* Script.ResultOwnership.None */, {}); | ||
}), false, { type: 'undefined' }, [clip.element]); | ||
(0, assert_js_1.assert)(result.type === 'success'); | ||
@@ -877,3 +877,3 @@ const rect = deserializeDOMRect(result.result); | ||
}; | ||
const locatorResult = await realm.callFunction(locatorDelegate.functionDeclaration, { type: 'undefined' }, locatorDelegate.argumentsLocalValues, false, "none" /* Script.ResultOwnership.None */, serializationOptions, false); | ||
const locatorResult = await realm.callFunction(locatorDelegate.functionDeclaration, false, { type: 'undefined' }, locatorDelegate.argumentsLocalValues, "none" /* Script.ResultOwnership.None */, serializationOptions); | ||
if (locatorResult.type !== 'success') { | ||
@@ -880,0 +880,0 @@ this.#logger?.(BrowsingContextImpl.LOGGER_PREFIX, 'Failed locateNodesByLocator', locatorResult); |
@@ -150,3 +150,13 @@ "use strict"; | ||
const context = this.#browsingContextStorage.getContext(params.context); | ||
await context.handleUserPrompt(params); | ||
try { | ||
await context.handleUserPrompt(params); | ||
} | ||
catch (error) { | ||
// Heuristically determine the error | ||
// https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/page_handler.cc;l=1085?q=%22No%20dialog%20is%20showing%22&ss=chromium | ||
if (error.message?.includes('No dialog is showing')) { | ||
throw new protocol_js_1.NoSuchAlertException('No dialog is showing'); | ||
} | ||
throw error; | ||
} | ||
return {}; | ||
@@ -153,0 +163,0 @@ } |
@@ -41,3 +41,3 @@ /** | ||
getContext(id: BrowsingContext.BrowsingContext): BrowsingContextImpl; | ||
verifyContextsList(contexts: BrowsingContext.BrowsingContext[] | undefined): Set<BrowsingContextImpl>; | ||
verifyTopLevelContextsList(contexts: BrowsingContext.BrowsingContext[] | undefined): Set<BrowsingContextImpl>; | ||
} |
@@ -81,3 +81,3 @@ "use strict"; | ||
} | ||
verifyContextsList(contexts) { | ||
verifyTopLevelContextsList(contexts) { | ||
const foundContexts = new Set(); | ||
@@ -84,0 +84,0 @@ if (!contexts) { |
@@ -35,3 +35,3 @@ "use strict"; | ||
const sandbox = await context.getOrCreateSandbox(undefined); | ||
const result = await sandbox.callFunction(CALCULATE_IN_VIEW_CENTER_PT_DECL, { type: 'undefined' }, [element], false, "none" /* Script.ResultOwnership.None */, {}); | ||
const result = await sandbox.callFunction(CALCULATE_IN_VIEW_CENTER_PT_DECL, false, { type: 'undefined' }, [element]); | ||
if (result.type === 'exception') { | ||
@@ -48,3 +48,3 @@ throw new protocol_js_1.NoSuchElementException(`Origin element ${element.sharedId} was not found`); | ||
static isMacOS = async (context) => { | ||
const result = await (await context.getOrCreateSandbox(undefined)).callFunction(IS_MAC_DECL, { type: 'undefined' }, [], false, "none" /* Script.ResultOwnership.None */, {}); | ||
const result = await (await context.getOrCreateSandbox(undefined)).callFunction(IS_MAC_DECL, false); | ||
(0, assert_js_1.assert)(result.type !== 'exception'); | ||
@@ -51,0 +51,0 @@ (0, assert_js_1.assert)(result.result.type === 'boolean'); |
@@ -68,3 +68,3 @@ "use strict"; | ||
return; | ||
}), params.element, [{ type: 'number', value: params.files.length }], false, "none" /* Script.ResultOwnership.None */, {}, false); | ||
}), false, params.element, [{ type: 'number', value: params.files.length }]); | ||
} | ||
@@ -110,3 +110,3 @@ catch { | ||
this.dispatchEvent(new Event('change', { bubbles: true })); | ||
}), params.element, [], false, "none" /* Script.ResultOwnership.None */, {}, false); | ||
}), false, params.element); | ||
return {}; | ||
@@ -120,3 +120,3 @@ } | ||
return this.files?.item(index); | ||
}), params.element, [{ type: 'number', value: 0 }], false, "root" /* Script.ResultOwnership.Root */, {}, false); | ||
}), false, params.element, [{ type: 'number', value: 0 }], "root" /* Script.ResultOwnership.Root */); | ||
(0, assert_js_1.assert)(result.type === 'success'); | ||
@@ -156,3 +156,3 @@ if (result.result.type !== 'object') { | ||
})); | ||
}), params.element, [], false, "none" /* Script.ResultOwnership.None */, {}, false); | ||
}), false, params.element); | ||
} | ||
@@ -159,0 +159,0 @@ return {}; |
@@ -54,9 +54,9 @@ /** | ||
count: number; | ||
"__#89144@#x": number; | ||
"__#89144@#y": number; | ||
"__#89144@#time": number; | ||
"__#89130@#x": number; | ||
"__#89130@#y": number; | ||
"__#89130@#time": number; | ||
compare(context: any): boolean; | ||
}; | ||
"__#89144@#DOUBLE_CLICK_TIME_MS": number; | ||
"__#89144@#MAX_DOUBLE_CLICK_RADIUS": number; | ||
"__#89130@#DOUBLE_CLICK_TIME_MS": number; | ||
"__#89130@#MAX_DOUBLE_CLICK_RADIUS": number; | ||
}; | ||
@@ -63,0 +63,0 @@ setClickCount(button: number, context: InstanceType<typeof PointerSource.ClickContext>): number; |
@@ -5,3 +5,2 @@ "use strict"; | ||
const protocol_js_1 = require("../../../protocol/protocol.js"); | ||
const assert_js_1 = require("../../../utils/assert.js"); | ||
const NetworkUtils_js_1 = require("./NetworkUtils.js"); | ||
@@ -17,3 +16,3 @@ /** Dispatches Network domain commands. */ | ||
async addIntercept(params) { | ||
this.#browsingContextStorage.verifyContextsList(params.contexts); | ||
this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); | ||
const urlPatterns = params.urlPatterns ?? []; | ||
@@ -36,3 +35,3 @@ const parsedUrlPatterns = NetworkProcessor.parseUrlPatterns(urlPatterns); | ||
async continueRequest(params) { | ||
const networkId = params.request; | ||
const { url, method, headers, request: networkId } = params; | ||
if (params.url !== undefined) { | ||
@@ -44,7 +43,6 @@ NetworkProcessor.parseUrlString(params.url); | ||
]); | ||
const { url, method, headers } = params; | ||
const requestHeaders = (0, NetworkUtils_js_1.cdpFetchHeadersFromBidiNetworkHeaders)(headers); | ||
// TODO: Set / expand. | ||
// ; Step 9. cookies | ||
// ; Step 10. body | ||
const requestHeaders = (0, NetworkUtils_js_1.cdpFetchHeadersFromBidiNetworkHeaders)(headers); | ||
await request.continueRequest(url, method, requestHeaders); | ||
@@ -102,5 +100,2 @@ return {}; | ||
password = credentials.password; | ||
// TODO: This should be invalid argument exception. | ||
// Spec may need to be updated. | ||
(0, assert_js_1.assert)(credentials.type === 'password', `Credentials type ${credentials.type} must be 'password'`); | ||
} | ||
@@ -127,3 +122,3 @@ const response = (0, NetworkUtils_js_1.cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction)(params.action); | ||
async provideResponse(params) { | ||
const { statusCode, reasonPhrase, headers, body, request: networkId, } = params; | ||
const { statusCode, reasonPhrase: responsePhrase, headers, body, request: networkId, } = params; | ||
// TODO: Step 6 | ||
@@ -140,7 +135,31 @@ // https://w3c.github.io/webdriver-bidi/#command-network-continueResponse | ||
]); | ||
// We need to pass through if the request is already in | ||
// AuthRequired phase | ||
if (request.interceptPhase === "authRequired" /* Network.InterceptPhase.AuthRequired */) { | ||
// We need to use `ProvideCredentials` | ||
// As `Default` may cancel the request | ||
await request.continueWithAuth({ | ||
response: 'ProvideCredentials', | ||
}); | ||
return {}; | ||
} | ||
// If we con't modify the response | ||
// Just continue the request | ||
if (!body && !headers) { | ||
await request.continueRequest(); | ||
return {}; | ||
} | ||
const responseCode = statusCode ?? request.statusCode ?? 200; | ||
let parsedBody; | ||
if (body?.type === 'string') { | ||
parsedBody = btoa(body.value); | ||
} | ||
else if (body?.type === 'base64') { | ||
parsedBody = body.value; | ||
} | ||
await request.provideResponse({ | ||
responseCode: statusCode ?? request.statusCode, | ||
responsePhrase: reasonPhrase, | ||
responseCode, | ||
responsePhrase, | ||
responseHeaders, | ||
body: body?.value, // TODO: Differ base64 / string | ||
body: parsedBody, | ||
}); | ||
@@ -147,0 +166,0 @@ return {}; |
@@ -50,3 +50,3 @@ /** | ||
/** Returns the HTTP status code associated with this request if any. */ | ||
get statusCode(): number; | ||
get statusCode(): number | undefined; | ||
} |
@@ -203,3 +203,2 @@ "use strict"; | ||
(0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.'); | ||
this.#interceptPhase = undefined; | ||
await this.cdpClient.sendCommand('Fetch.failRequest', { | ||
@@ -209,2 +208,3 @@ requestId: this.#fetchId, | ||
}); | ||
this.#interceptPhase = undefined; | ||
} | ||
@@ -266,3 +266,2 @@ onRequestPaused(event) { | ||
(0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.'); | ||
this.#interceptPhase = undefined; | ||
await this.cdpClient.sendCommand('Fetch.continueRequest', { | ||
@@ -277,2 +276,3 @@ requestId: this.#fetchId, | ||
}); | ||
this.#interceptPhase = undefined; | ||
} | ||
@@ -282,3 +282,2 @@ /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueResponse */ | ||
(0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.'); | ||
this.#interceptPhase = undefined; | ||
await this.cdpClient.sendCommand('Fetch.continueResponse', { | ||
@@ -290,2 +289,3 @@ requestId: this.#fetchId, | ||
}); | ||
this.#interceptPhase = undefined; | ||
} | ||
@@ -297,3 +297,2 @@ /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueWithAuth */ | ||
(0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.'); | ||
this.#interceptPhase = undefined; | ||
await this.cdpClient.sendCommand('Fetch.continueWithAuth', { | ||
@@ -303,2 +302,3 @@ requestId: this.#fetchId, | ||
}); | ||
this.#interceptPhase = undefined; | ||
} | ||
@@ -308,3 +308,2 @@ /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-provideResponse */ | ||
(0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.'); | ||
this.#interceptPhase = undefined; | ||
await this.cdpClient.sendCommand('Fetch.fulfillRequest', { | ||
@@ -315,4 +314,5 @@ requestId: this.#fetchId, | ||
responseHeaders, | ||
...(body ? { body: btoa(body) } : {}), // TODO: Double-check if btoa usage is correct. | ||
body, | ||
}); | ||
this.#interceptPhase = undefined; | ||
} | ||
@@ -330,5 +330,3 @@ get #context() { | ||
this.#response.extraInfo?.statusCode ?? | ||
this.#response.info?.status ?? | ||
-1 // TODO: Throw an exception or use some other status code? | ||
); | ||
this.#response.info?.status); | ||
} | ||
@@ -391,3 +389,3 @@ #emitEvent(getEvent) { | ||
protocol: this.#response.info?.protocol ?? '', | ||
status: this.statusCode, | ||
status: this.statusCode ?? -1, // TODO: Throw an exception or use some other status code? | ||
statusText: this.#response.info?.statusText || | ||
@@ -394,0 +392,0 @@ this.#response.paused?.responseStatusText || |
@@ -49,3 +49,3 @@ /** | ||
abstract get realmInfo(): Script.RealmInfo; | ||
evaluate(expression: string, awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; | ||
evaluate(expression: string, awaitPromise: boolean, resultOwnership?: Script.ResultOwnership, serializationOptions?: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; | ||
protected initialize(): void; | ||
@@ -62,3 +62,3 @@ /** | ||
stringifyObject(cdpRemoteObject: Protocol.Runtime.RemoteObject): Promise<string>; | ||
callFunction(functionDeclaration: string, thisLocalValue: Script.LocalValue, argumentsLocalValues: Script.LocalValue[], awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; | ||
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>; | ||
@@ -65,0 +65,0 @@ disown(handle: Script.Handle): Promise<void>; |
@@ -42,13 +42,2 @@ "use strict"; | ||
} | ||
if (cdpValue.result.type === 'object') { | ||
switch (cdpValue.result.subtype) { | ||
case 'generator': | ||
case 'iterator': | ||
bidiValue.type = cdpValue.result.subtype; | ||
delete bidiValue['value']; | ||
break; | ||
default: | ||
// Intentionally left blank. | ||
} | ||
} | ||
return bidiValue; | ||
@@ -124,3 +113,3 @@ } | ||
} | ||
async evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation = false) { | ||
async evaluate(expression, awaitPromise, resultOwnership = "none" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false) { | ||
const cdpEvaluateResult = await this.cdpClient.sendCommand('Runtime.evaluate', { | ||
@@ -239,3 +228,5 @@ contextId: this.executionContextId, | ||
} | ||
async callFunction(functionDeclaration, thisLocalValue, argumentsLocalValues, awaitPromise, resultOwnership, serializationOptions, userActivation = false) { | ||
async callFunction(functionDeclaration, awaitPromise, thisLocalValue = { | ||
type: 'undefined', | ||
}, argumentsLocalValues = [], resultOwnership = "none" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false) { | ||
const callFunctionAndSerializeScript = `(...args) => { | ||
@@ -242,0 +233,0 @@ function callFunction(f, args) { |
@@ -17,3 +17,3 @@ /** | ||
*/ | ||
import { type EmptyResult, Script } from '../../../protocol/protocol'; | ||
import { type EmptyResult, type Script } from '../../../protocol/protocol'; | ||
import type { LoggerFn } from '../../../utils/log'; | ||
@@ -20,0 +20,0 @@ import type { BrowsingContextStorage } from '../context/BrowsingContextStorage'; |
@@ -34,3 +34,3 @@ "use strict"; | ||
async addPreloadScript(params) { | ||
const contexts = this.#browsingContextStorage.verifyContextsList(params.contexts); | ||
const contexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); | ||
const preloadScript = new PreloadScript_1.PreloadScript(params, this.#logger); | ||
@@ -49,13 +49,9 @@ this.#preloadScriptStorage.add(preloadScript); | ||
async removePreloadScript(params) { | ||
const bidiId = params.script; | ||
const scripts = this.#preloadScriptStorage.find({ | ||
id: bidiId, | ||
}); | ||
const { script: id } = params; | ||
const scripts = this.#preloadScriptStorage.find({ id }); | ||
if (scripts.length === 0) { | ||
throw new protocol_1.NoSuchScriptException(`No preload script with BiDi ID '${bidiId}'`); | ||
throw new protocol_1.NoSuchScriptException(`No preload script with id '${id}'`); | ||
} | ||
await Promise.all(scripts.map((script) => script.remove())); | ||
this.#preloadScriptStorage.remove({ | ||
id: bidiId, | ||
}); | ||
this.#preloadScriptStorage.remove({ id }); | ||
return {}; | ||
@@ -65,11 +61,7 @@ } | ||
const realm = await this.#getRealm(params.target); | ||
return await realm.callFunction(params.functionDeclaration, params.this ?? { | ||
type: 'undefined', | ||
}, // `this` is `undefined` by default. | ||
params.arguments ?? [], // `arguments` is `[]` by default. | ||
params.awaitPromise, params.resultOwnership ?? "none" /* Script.ResultOwnership.None */, params.serializationOptions ?? {}, params.userActivation ?? false); | ||
return await realm.callFunction(params.functionDeclaration, params.awaitPromise, params.this, params.arguments, params.resultOwnership, params.serializationOptions, params.userActivation); | ||
} | ||
async evaluate(params) { | ||
const realm = await this.#getRealm(params.target); | ||
return await realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership ?? "none" /* Script.ResultOwnership.None */, params.serializationOptions ?? {}, params.userActivation ?? false); | ||
return await realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership, params.serializationOptions, params.userActivation); | ||
} | ||
@@ -76,0 +68,0 @@ async disown(params) { |
@@ -38,3 +38,3 @@ /** | ||
evaluate(expression: string, awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; | ||
callFunction(functionDeclaration: string, thisLocalValue: Script.LocalValue, argumentsLocalValues: Script.LocalValue[], awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; | ||
callFunction(functionDeclaration: string, awaitPromise: boolean, thisLocalValue: Script.LocalValue, argumentsLocalValues: Script.LocalValue[], resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>; | ||
} |
@@ -132,7 +132,7 @@ "use strict"; | ||
} | ||
async callFunction(functionDeclaration, thisLocalValue, argumentsLocalValues, awaitPromise, resultOwnership, serializationOptions, userActivation) { | ||
async callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation) { | ||
await this.#browsingContextStorage | ||
.getContext(this.#browsingContextId) | ||
.targetUnblockedOrThrow(); | ||
return await super.callFunction(functionDeclaration, thisLocalValue, argumentsLocalValues, awaitPromise, resultOwnership, serializationOptions, userActivation); | ||
return await super.callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation); | ||
} | ||
@@ -139,0 +139,0 @@ } |
@@ -17,2 +17,3 @@ /** | ||
*/ | ||
import type { CdpClient } from '../../../cdp/CdpClient.js'; | ||
import type { BidiPlusChannel } from '../../../protocol/chromium-bidi.js'; | ||
@@ -23,6 +24,7 @@ import type { EmptyResult, Session } from '../../../protocol/protocol.js'; | ||
#private; | ||
constructor(eventManager: EventManager); | ||
constructor(eventManager: EventManager, browserCdpClient: CdpClient); | ||
status(): Session.StatusResult; | ||
create(_params: Session.NewParameters): Promise<Session.NewResult>; | ||
subscribe(params: Session.SubscriptionRequest, channel?: BidiPlusChannel): Promise<EmptyResult>; | ||
unsubscribe(params: Session.SubscriptionRequest, channel?: BidiPlusChannel): Promise<EmptyResult>; | ||
} |
@@ -22,4 +22,6 @@ "use strict"; | ||
#eventManager; | ||
constructor(eventManager) { | ||
#browserCdpClient; | ||
constructor(eventManager, browserCdpClient) { | ||
this.#eventManager = eventManager; | ||
this.#browserCdpClient = browserCdpClient; | ||
} | ||
@@ -29,2 +31,21 @@ status() { | ||
} | ||
async create(_params) { | ||
// Since mapper exists, there is a session already. | ||
// Still the mapper can handle capabilities for us. | ||
// Currently, only Puppeteer calls here but, eventually, every client | ||
// should delegrate capability processing here. | ||
const version = await this.#browserCdpClient.sendCommand('Browser.getVersion'); | ||
return { | ||
sessionId: 'unknown', | ||
capabilities: { | ||
acceptInsecureCerts: false, | ||
browserName: version.product, | ||
browserVersion: version.revision, | ||
platformName: '', | ||
setWindowRect: false, | ||
webSocketUrl: '', | ||
userAgent: version.userAgent, | ||
}, | ||
}; | ||
} | ||
async subscribe(params, channel = null) { | ||
@@ -31,0 +52,0 @@ await this.#eventManager.subscribe(params.events, params.contexts ?? [null], channel); |
@@ -1263,3 +1263,3 @@ /** | ||
export declare namespace Script { | ||
type RemoteValue = Script.PrimitiveProtocolValue | Script.SymbolRemoteValue | Script.ArrayRemoteValue | Script.ObjectRemoteValue | Script.FunctionRemoteValue | Script.RegExpRemoteValue | Script.DateRemoteValue | Script.MapRemoteValue | Script.SetRemoteValue | Script.WeakMapRemoteValue | Script.WeakSetRemoteValue | Script.IteratorRemoteValue | Script.GeneratorRemoteValue | Script.ErrorRemoteValue | Script.ProxyRemoteValue | Script.PromiseRemoteValue | Script.TypedArrayRemoteValue | Script.ArrayBufferRemoteValue | Script.NodeListRemoteValue | Script.HtmlCollectionRemoteValue | Script.NodeRemoteValue | Script.WindowProxyRemoteValue; | ||
type RemoteValue = Script.PrimitiveProtocolValue | Script.SymbolRemoteValue | Script.ArrayRemoteValue | Script.ObjectRemoteValue | Script.FunctionRemoteValue | Script.RegExpRemoteValue | Script.DateRemoteValue | Script.MapRemoteValue | Script.SetRemoteValue | Script.WeakMapRemoteValue | Script.WeakSetRemoteValue | Script.GeneratorRemoteValue | Script.ErrorRemoteValue | Script.ProxyRemoteValue | Script.PromiseRemoteValue | Script.TypedArrayRemoteValue | Script.ArrayBufferRemoteValue | Script.NodeListRemoteValue | Script.HtmlCollectionRemoteValue | Script.NodeRemoteValue | Script.WindowProxyRemoteValue; | ||
} | ||
@@ -1354,9 +1354,2 @@ export declare namespace Script { | ||
export declare namespace Script { | ||
type IteratorRemoteValue = { | ||
type: 'iterator'; | ||
handle?: Script.Handle; | ||
internalId?: Script.InternalId; | ||
}; | ||
} | ||
export declare namespace Script { | ||
type GeneratorRemoteValue = { | ||
@@ -1363,0 +1356,0 @@ type: 'generator'; |
{ | ||
"name": "chromium-bidi", | ||
"version": "0.5.14", | ||
"version": "0.5.15", | ||
"description": "An implementation of the WebDriver BiDi protocol for Chromium implemented as a JavaScript layer translating between BiDi and CDP, running inside a Chrome tab.", | ||
@@ -168,3 +168,3 @@ "scripts": { | ||
"debug": "4.3.4", | ||
"devtools-protocol": "0.0.1273771", | ||
"devtools-protocol": "0.0.1275388", | ||
"eslint": "8.57.0", | ||
@@ -171,0 +171,0 @@ "eslint-config-prettier": "9.1.0", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
7992258
109576