chromium-bidi 0.4.6 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/lib/cjs/bidiMapper/BidiServer.d.ts +1 -1
- package/lib/cjs/bidiMapper/BidiServer.js +2 -2
- package/lib/cjs/bidiMapper/BidiServer.js.map +1 -1
- package/lib/cjs/bidiMapper/BidiTransport.d.ts +2 -2
- package/lib/cjs/bidiMapper/CdpConnection.d.ts +1 -1
- package/lib/cjs/bidiMapper/CommandProcessor.d.ts +4 -2
- package/lib/cjs/bidiMapper/CommandProcessor.js +12 -2
- package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/OutgoingBidiMessage.js +1 -2
- package/lib/cjs/bidiMapper/OutgoingBidiMessage.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.d.ts +58 -0
- package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js +92 -0
- package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js.map +1 -0
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +25 -10
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +124 -90
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +6 -4
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +97 -47
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +19 -4
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +44 -14
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.d.ts +17 -0
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js +36 -0
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js.map +1 -0
- package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +17 -4
- package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +35 -13
- package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +5 -5
- package/lib/cjs/bidiMapper/domains/events/EventManager.js +9 -12
- package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +5 -5
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +7 -19
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.js +11 -4
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/log/logHelper.js +5 -5
- package/lib/cjs/bidiMapper/domains/log/logHelper.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +1 -1
- package/lib/cjs/bidiMapper/domains/log/logManager.js +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +2 -2
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +9 -6
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +2 -1
- package/lib/cjs/bidiMapper/domains/network/networkRequest.js +69 -69
- package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/realm.d.ts +6 -6
- package/lib/cjs/bidiMapper/domains/script/realm.js +12 -6
- package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +8 -3
- package/lib/cjs/bidiMapper/domains/script/realmStorage.js +6 -1
- package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js +11 -18
- package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +1 -1
- package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/bidiServer/bidiServerRunner.d.ts +1 -1
- package/lib/cjs/bidiServer/bidiServerRunner.js +5 -5
- package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
- package/lib/cjs/bidiServer/index.js +8 -6
- package/lib/cjs/bidiServer/index.js.map +1 -1
- package/lib/cjs/bidiServer/mapperServer.js +8 -7
- package/lib/cjs/bidiServer/mapperServer.js.map +1 -1
- package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/bidiTab/bidiTab.js +12 -5
- package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
- package/lib/cjs/bidiTab/mapperTabPage.js +3 -3
- package/lib/cjs/bidiTab/mapperTabPage.js.map +1 -1
- package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/cdp/cdpClient.d.ts +1 -1
- package/lib/cjs/cdp/cdpClient.spec.js +5 -3
- package/lib/cjs/cdp/cdpClient.spec.js.map +1 -1
- package/lib/cjs/cdp/cdpConnection.js +9 -4
- package/lib/cjs/cdp/cdpConnection.js.map +1 -1
- package/lib/cjs/cdp/cdpConnection.spec.js +1 -1
- package/lib/cjs/cdp/cdpConnection.spec.js.map +1 -1
- package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/protocol/protocol.d.ts +142 -76
- package/lib/cjs/protocol/protocol.js +72 -19
- package/lib/cjs/protocol/protocol.js.map +1 -1
- package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/protocol-parser/protocol-parser.d.ts +80 -8
- package/lib/cjs/protocol-parser/protocol-parser.js +30 -11
- package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
- package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/utils/DefaultMap.d.ts +26 -0
- package/lib/cjs/utils/DefaultMap.js +40 -0
- package/lib/cjs/utils/DefaultMap.js.map +1 -0
- package/lib/cjs/utils/DefaultMap.spec.d.ts +17 -0
- package/lib/cjs/utils/DefaultMap.spec.js +62 -0
- package/lib/cjs/utils/DefaultMap.spec.js.map +1 -0
- package/lib/cjs/utils/deferred.js +3 -0
- package/lib/cjs/utils/deferred.js.map +1 -1
- package/lib/cjs/utils/deferred.spec.js +12 -3
- package/lib/cjs/utils/deferred.spec.js.map +1 -1
- package/lib/cjs/utils/idWrapper.js.map +1 -1
- package/lib/cjs/utils/log.d.ts +1 -1
- package/lib/cjs/utils/processingQueue.js +2 -3
- package/lib/cjs/utils/processingQueue.js.map +1 -1
- package/lib/cjs/utils/transport.d.ts +2 -2
- package/lib/cjs/utils/transportStub.spec.d.ts +1 -1
- package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/utils/websocketTransport.d.ts +1 -1
- package/lib/cjs/utils/websocketTransport.js +1 -1
- package/lib/cjs/utils/websocketTransport.js.map +1 -1
- package/lib/iife/mapperTab.js +2 -2
- package/lib/iife/mapperTab.js.map +1 -1
- package/package.json +139 -41
package/README.md
CHANGED
|
@@ -296,22 +296,22 @@ python wpt make-hosts-file | Out-File $env:SystemRoot\System32\drivers\etc\hosts
|
|
|
296
296
|
If you are behind a proxy, you also need to make sure the domains above are excluded
|
|
297
297
|
from your proxy lookups.
|
|
298
298
|
|
|
299
|
-
#### 5. Set `
|
|
299
|
+
#### 5. Set `BROWSER_BIN`
|
|
300
300
|
|
|
301
|
-
Set the `
|
|
301
|
+
Set the `BROWSER_BIN` environment variable to a Chrome, Edge or Chromium binary to launch.
|
|
302
302
|
For example, on macOS:
|
|
303
303
|
|
|
304
304
|
```sh
|
|
305
305
|
# Chrome
|
|
306
|
-
export
|
|
307
|
-
export
|
|
308
|
-
export
|
|
309
|
-
export
|
|
310
|
-
export
|
|
306
|
+
export BROWSER_BIN="/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary"
|
|
307
|
+
export BROWSER_BIN="/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev"
|
|
308
|
+
export BROWSER_BIN="/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta"
|
|
309
|
+
export BROWSER_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
|
|
310
|
+
export BROWSER_BIN="/Applications/Chromium.app/Contents/MacOS/Chromium"
|
|
311
311
|
|
|
312
312
|
# Edge
|
|
313
|
-
export
|
|
314
|
-
export
|
|
313
|
+
export BROWSER_BIN="/Applications/Microsoft Edge Canary.app/Contents/MacOS/Microsoft Edge Canary"
|
|
314
|
+
export BROWSER_BIN="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
|
|
315
315
|
```
|
|
316
316
|
|
|
317
317
|
### Run WPT tests
|
|
@@ -331,7 +331,7 @@ npm run build
|
|
|
331
331
|
Continuously:
|
|
332
332
|
|
|
333
333
|
```sh
|
|
334
|
-
npm run watch
|
|
334
|
+
npm run build --watch
|
|
335
335
|
```
|
|
336
336
|
|
|
337
337
|
#### 3. Run
|
|
@@ -339,7 +339,7 @@ npm run watch
|
|
|
339
339
|
```sh
|
|
340
340
|
./wpt/wpt run \
|
|
341
341
|
--webdriver-binary runBiDiServer.sh \
|
|
342
|
-
--binary "$
|
|
342
|
+
--binary "$BROWSER_BIN" \
|
|
343
343
|
--manifest wpt/MANIFEST.json \
|
|
344
344
|
--metadata wpt-metadata/mapper/headless \
|
|
345
345
|
chromium \
|
|
@@ -353,7 +353,7 @@ npm run watch
|
|
|
353
353
|
```sh
|
|
354
354
|
./wpt/wpt run \
|
|
355
355
|
--webdriver-binary runBiDiServer.sh \
|
|
356
|
-
--binary "$
|
|
356
|
+
--binary "$BROWSER_BIN" \
|
|
357
357
|
--manifest wpt/MANIFEST.json \
|
|
358
358
|
--metadata wpt-metadata/mapper/headless \
|
|
359
359
|
--log-wptreport wptreport.json \
|
|
@@ -22,7 +22,7 @@ import { BidiTransport } from './BidiTransport.js';
|
|
|
22
22
|
import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
|
|
23
23
|
import { CdpConnection } from './CdpConnection.js';
|
|
24
24
|
import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
|
|
25
|
-
|
|
25
|
+
type BidiServerEvents = {
|
|
26
26
|
message: Message.RawCommandRequest;
|
|
27
27
|
};
|
|
28
28
|
export declare class BidiServer extends EventEmitter<BidiServerEvents> {
|
|
@@ -30,7 +30,7 @@ class BidiServer extends EventEmitter_js_1.EventEmitter {
|
|
|
30
30
|
#browsingContextStorage;
|
|
31
31
|
#realmStorage;
|
|
32
32
|
#logger;
|
|
33
|
-
#handleIncomingMessage =
|
|
33
|
+
#handleIncomingMessage = (message) => {
|
|
34
34
|
this.#commandProcessor.processCommand(message);
|
|
35
35
|
};
|
|
36
36
|
#processOutgoingMessage = async (messageEntry) => {
|
|
@@ -45,7 +45,7 @@ class BidiServer extends EventEmitter_js_1.EventEmitter {
|
|
|
45
45
|
this.#logger = logger;
|
|
46
46
|
this.#browsingContextStorage = new browsingContextStorage_js_1.BrowsingContextStorage();
|
|
47
47
|
this.#realmStorage = new realmStorage_js_1.RealmStorage();
|
|
48
|
-
this.#messageQueue = new processingQueue_js_1.ProcessingQueue(this.#processOutgoingMessage,
|
|
48
|
+
this.#messageQueue = new processingQueue_js_1.ProcessingQueue(this.#processOutgoingMessage, () => Promise.resolve(), this.#logger);
|
|
49
49
|
this.#transport = bidiTransport;
|
|
50
50
|
this.#transport.setOnMessage(this.#handleIncomingMessage);
|
|
51
51
|
this.#commandProcessor = new CommandProcessor_js_1.CommandProcessor(this.#realmStorage, cdpConnection, new EventManager_js_1.EventManager(this), selfTargetId, parser, this.#browsingContextStorage, this.#logger);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BidiServer.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiServer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,8DAAsD;AAGtD,oEAA4D;AAE5D,+DAAmE;AAEnE,2FAAmF;AAEnF,sEAA8D;AAE9D,sEAA8D;AAM9D,MAAa,UAAW,SAAQ,8BAA8B;IAC5D,aAAa,CAAuC;IACpD,UAAU,CAAgB;IAC1B,iBAAiB,CAAmB;IACpC,uBAAuB,CAAyB;IAChD,aAAa,CAAe;IAC5B,OAAO,CAAY;IAEnB,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"BidiServer.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { Message } from '../protocol/protocol.js';
|
|
18
18
|
export interface BidiTransport {
|
|
19
|
-
setOnMessage: (handler: (message: Message.RawCommandRequest) => Promise<void>) => void;
|
|
20
|
-
sendMessage: (message: Message.OutgoingMessage) => Promise<void
|
|
19
|
+
setOnMessage: (handler: (message: Message.RawCommandRequest) => Promise<void> | void) => void;
|
|
20
|
+
sendMessage: (message: Message.OutgoingMessage) => Promise<void> | void;
|
|
21
21
|
close(): void;
|
|
22
22
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js';
|
|
21
21
|
import { EventEmitter } from '../utils/EventEmitter.js';
|
|
22
|
-
|
|
22
|
+
type CdpEvents = {
|
|
23
23
|
[Property in keyof ProtocolMapping.Events]: ProtocolMapping.Events[Property][0];
|
|
24
24
|
};
|
|
25
25
|
export interface CdpConnection {
|
|
@@ -22,17 +22,19 @@ import { CdpConnection } from './CdpConnection.js';
|
|
|
22
22
|
import { IEventManager } from './domains/events/EventManager.js';
|
|
23
23
|
import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
|
|
24
24
|
import { RealmStorage } from './domains/script/realmStorage.js';
|
|
25
|
-
|
|
25
|
+
type CommandProcessorEvents = {
|
|
26
26
|
response: Promise<OutgoingBidiMessage>;
|
|
27
27
|
};
|
|
28
28
|
export interface BidiParser {
|
|
29
|
+
parseAddPreloadScriptParams(params: object): Script.AddPreloadScriptParameters;
|
|
30
|
+
parseRemovePreloadScriptParams(params: object): Script.RemovePreloadScriptParameters;
|
|
29
31
|
parseGetRealmsParams(params: object): Script.GetRealmsParameters;
|
|
30
32
|
parseCallFunctionParams(params: object): Script.CallFunctionParameters;
|
|
31
33
|
parseEvaluateParams(params: object): Script.EvaluateParameters;
|
|
32
34
|
parseDisownParams(params: object): Script.DisownParameters;
|
|
33
35
|
parseSendCommandParams(params: object): CDP.SendCommandParams;
|
|
34
36
|
parseGetSessionParams(params: object): CDP.GetSessionParams;
|
|
35
|
-
parseSubscribeParams(params: object): Session.
|
|
37
|
+
parseSubscribeParams(params: object): Session.SubscriptionRequest;
|
|
36
38
|
parseNavigateParams(params: object): BrowsingContext.NavigateParameters;
|
|
37
39
|
parseGetTreeParams(params: object): BrowsingContext.GetTreeParameters;
|
|
38
40
|
parseCreateParams(params: object): BrowsingContext.CreateParameters;
|
|
@@ -23,6 +23,12 @@ const EventEmitter_js_1 = require("../utils/EventEmitter.js");
|
|
|
23
23
|
const browsingContextProcessor_js_1 = require("./domains/context/browsingContextProcessor.js");
|
|
24
24
|
const OutgoingBidiMessage_js_1 = require("./OutgoingBidiMessage.js");
|
|
25
25
|
class BidiNoOpParser {
|
|
26
|
+
parseAddPreloadScriptParams(params) {
|
|
27
|
+
return params;
|
|
28
|
+
}
|
|
29
|
+
parseRemovePreloadScriptParams(params) {
|
|
30
|
+
return params;
|
|
31
|
+
}
|
|
26
32
|
parseGetRealmsParams(params) {
|
|
27
33
|
return params;
|
|
28
34
|
}
|
|
@@ -106,6 +112,10 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
|
|
|
106
112
|
return this.#contextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(commandData.params));
|
|
107
113
|
case 'browsingContext.print':
|
|
108
114
|
return this.#contextProcessor.process_browsingContext_print(this.#parser.parsePrintParams(commandData.params));
|
|
115
|
+
case 'script.addPreloadScript':
|
|
116
|
+
return this.#contextProcessor.process_script_addPreloadScript(this.#parser.parseAddPreloadScriptParams(commandData.params));
|
|
117
|
+
case 'script.removePreloadScript':
|
|
118
|
+
return this.#contextProcessor.process_script_removePreloadScript(this.#parser.parseRemovePreloadScriptParams(commandData.params));
|
|
109
119
|
case 'script.getRealms':
|
|
110
120
|
return this.#contextProcessor.process_script_getRealms(this.#parser.parseGetRealmsParams(commandData.params));
|
|
111
121
|
case 'script.callFunction':
|
|
@@ -132,14 +142,14 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
|
|
|
132
142
|
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(response, command.channel ?? null));
|
|
133
143
|
}
|
|
134
144
|
catch (e) {
|
|
135
|
-
if (e instanceof protocol_js_1.Message.
|
|
145
|
+
if (e instanceof protocol_js_1.Message.ErrorResponse) {
|
|
136
146
|
const errorResponse = e;
|
|
137
147
|
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(errorResponse.toErrorResponse(command.id), command.channel ?? null));
|
|
138
148
|
}
|
|
139
149
|
else {
|
|
140
150
|
const error = e;
|
|
141
151
|
this.#logger?.(log_js_1.LogType.bidi, error);
|
|
142
|
-
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.Message.
|
|
152
|
+
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.Message.ErrorResponse(protocol_js_1.Message.ErrorCode.UnknownError, error.message).toErrorResponse(command.id), command.channel ?? null));
|
|
143
153
|
}
|
|
144
154
|
}
|
|
145
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,yDAMiC;AACjC,4CAAkD;AAClD,8DAAsD;AAEtD,+FAAuF;AAIvF,qEAA6D;
|
|
1
|
+
{"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,8 +25,7 @@ class OutgoingBidiMessage {
|
|
|
25
25
|
this.#channel = channel;
|
|
26
26
|
}
|
|
27
27
|
static async createFromPromise(messagePromise, channel) {
|
|
28
|
-
|
|
29
|
-
return new OutgoingBidiMessage(message, channel);
|
|
28
|
+
return messagePromise.then((message) => new OutgoingBidiMessage(message, channel));
|
|
30
29
|
}
|
|
31
30
|
static createResolved(message, channel) {
|
|
32
31
|
return Promise.resolve(new OutgoingBidiMessage(message, channel));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutgoingBidiMessage.js","sourceRoot":"","sources":["../../../src/bidiMapper/OutgoingBidiMessage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,MAAa,mBAAmB;IACrB,QAAQ,CAA0B;IAClC,QAAQ,CAAgB;IAEjC,YACE,OAAgC,EAChC,OAAsB;QAEtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,cAAgD,EAChD,OAAsB;QAEtB,
|
|
1
|
+
{"version":3,"file":"OutgoingBidiMessage.js","sourceRoot":"","sources":["../../../src/bidiMapper/OutgoingBidiMessage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,MAAa,mBAAmB;IACrB,QAAQ,CAA0B;IAClC,QAAQ,CAAgB;IAEjC,YACE,OAAgC,EAChC,OAAsB;QAEtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,cAAgD,EAChD,OAAsB;QAEtB,OAAO,cAAc,CAAC,IAAI,CACxB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,OAAgC,EAChC,OAAsB;QAEtB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAnCD,kDAmCC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { CommonDataTypes, Script } from '../../../protocol/protocol.js';
|
|
2
|
+
import { CdpTarget } from './cdpTarget.js';
|
|
3
|
+
export type BidiPreloadScript = {
|
|
4
|
+
/** BiDi ID, an automatically generated UUID. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** CDP preload scripts. */
|
|
7
|
+
cdpPreloadScripts: CdpPreloadScript[];
|
|
8
|
+
/** The script itself, in a format expected by the spec i.e. a function. */
|
|
9
|
+
functionDeclaration: string;
|
|
10
|
+
/** The script sandbox / world name. */
|
|
11
|
+
sandbox?: string;
|
|
12
|
+
/** Browsing context ID. */
|
|
13
|
+
contextId: CommonDataTypes.BrowsingContext | null;
|
|
14
|
+
};
|
|
15
|
+
/** BidiPreloadScripts can be filtered by either context ID or BiDi ID. */
|
|
16
|
+
export type BidiPreloadScriptFilter = Partial<Pick<BidiPreloadScript, 'contextId'> & Pick<BidiPreloadScript, 'id'>>;
|
|
17
|
+
export type CdpPreloadScript = {
|
|
18
|
+
/** CDP target. */
|
|
19
|
+
target: CdpTarget;
|
|
20
|
+
/** CDP preload script ID. */
|
|
21
|
+
preloadScriptId: Script.PreloadScript;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Container class for preload scripts.
|
|
25
|
+
*
|
|
26
|
+
* BiDi IDs are generated by the server and are unique within the context.
|
|
27
|
+
*
|
|
28
|
+
* CDP preload script IDs are generated by the client and are unique
|
|
29
|
+
* within the session.
|
|
30
|
+
*
|
|
31
|
+
* The mapping between BiDi and CDP preload script IDs is 1:many.
|
|
32
|
+
* BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs
|
|
33
|
+
* in the client.
|
|
34
|
+
*
|
|
35
|
+
* This class does not concern itself with the validity of the IDs.
|
|
36
|
+
*/
|
|
37
|
+
export declare class PreloadScriptStorage {
|
|
38
|
+
#private;
|
|
39
|
+
/** Finds all entries that match the given filter. */
|
|
40
|
+
findPreloadScripts(filter?: BidiPreloadScriptFilter): BidiPreloadScript[];
|
|
41
|
+
/**
|
|
42
|
+
* Keeps track of the given CDP preload scripts associated with the given
|
|
43
|
+
* browsing context ID.
|
|
44
|
+
*
|
|
45
|
+
* @param contextId Browsing context ID, or null for global context.
|
|
46
|
+
* @param cdpPreloadScripts CDP preload scripts.
|
|
47
|
+
* @param functionDeclaration The script itself, in a format expected by the spec
|
|
48
|
+
* i.e. a function.
|
|
49
|
+
*/
|
|
50
|
+
addPreloadScripts(contextId: CommonDataTypes.BrowsingContext | null, cdpPreloadScripts: CdpPreloadScript[], functionDeclaration: string, sandbox?: string): BidiPreloadScript;
|
|
51
|
+
/**
|
|
52
|
+
* Keeps track of the given CDP preload script in the given BiDi preload
|
|
53
|
+
* script.
|
|
54
|
+
*/
|
|
55
|
+
appendPreloadScript(script: BidiPreloadScript, cdpPreloadScript: CdpPreloadScript): void;
|
|
56
|
+
/** Deletes all entries that match the given filter. */
|
|
57
|
+
removePreloadScripts(filter?: BidiPreloadScriptFilter): void;
|
|
58
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PreloadScriptStorage = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright 2023 Google LLC.
|
|
6
|
+
* Copyright (c) Microsoft Corporation.
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*/
|
|
20
|
+
const uuid_1 = require("uuid");
|
|
21
|
+
/**
|
|
22
|
+
* Container class for preload scripts.
|
|
23
|
+
*
|
|
24
|
+
* BiDi IDs are generated by the server and are unique within the context.
|
|
25
|
+
*
|
|
26
|
+
* CDP preload script IDs are generated by the client and are unique
|
|
27
|
+
* within the session.
|
|
28
|
+
*
|
|
29
|
+
* The mapping between BiDi and CDP preload script IDs is 1:many.
|
|
30
|
+
* BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs
|
|
31
|
+
* in the client.
|
|
32
|
+
*
|
|
33
|
+
* This class does not concern itself with the validity of the IDs.
|
|
34
|
+
*/
|
|
35
|
+
// TODO: add unit tests.
|
|
36
|
+
class PreloadScriptStorage {
|
|
37
|
+
/** Tracks all BiDi preload scripts. */
|
|
38
|
+
#scripts = new Set();
|
|
39
|
+
/** Finds all entries that match the given filter. */
|
|
40
|
+
findPreloadScripts(filter) {
|
|
41
|
+
if (!filter) {
|
|
42
|
+
return [...this.#scripts];
|
|
43
|
+
}
|
|
44
|
+
return [...this.#scripts].filter((script) => {
|
|
45
|
+
if (filter?.id !== undefined && filter?.id !== script.id) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
if (filter?.contextId !== undefined &&
|
|
49
|
+
filter?.contextId !== script.contextId) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Keeps track of the given CDP preload scripts associated with the given
|
|
57
|
+
* browsing context ID.
|
|
58
|
+
*
|
|
59
|
+
* @param contextId Browsing context ID, or null for global context.
|
|
60
|
+
* @param cdpPreloadScripts CDP preload scripts.
|
|
61
|
+
* @param functionDeclaration The script itself, in a format expected by the spec
|
|
62
|
+
* i.e. a function.
|
|
63
|
+
*/
|
|
64
|
+
addPreloadScripts(contextId, cdpPreloadScripts, functionDeclaration, sandbox) {
|
|
65
|
+
// Generate a random ID.
|
|
66
|
+
const bidiId = (0, uuid_1.v4)();
|
|
67
|
+
const preloadScript = {
|
|
68
|
+
id: bidiId,
|
|
69
|
+
contextId,
|
|
70
|
+
cdpPreloadScripts,
|
|
71
|
+
functionDeclaration,
|
|
72
|
+
sandbox,
|
|
73
|
+
};
|
|
74
|
+
this.#scripts.add(preloadScript);
|
|
75
|
+
return preloadScript;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Keeps track of the given CDP preload script in the given BiDi preload
|
|
79
|
+
* script.
|
|
80
|
+
*/
|
|
81
|
+
appendPreloadScript(script, cdpPreloadScript) {
|
|
82
|
+
script.cdpPreloadScripts.push(cdpPreloadScript);
|
|
83
|
+
}
|
|
84
|
+
/** Deletes all entries that match the given filter. */
|
|
85
|
+
removePreloadScripts(filter) {
|
|
86
|
+
for (const preloadScript of this.findPreloadScripts(filter)) {
|
|
87
|
+
this.#scripts.delete(preloadScript);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.PreloadScriptStorage = PreloadScriptStorage;
|
|
92
|
+
//# sourceMappingURL=PreloadScriptStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreloadScriptStorage.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/PreloadScriptStorage.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,+BAAkC;AA+BlC;;;;;;;;;;;;;GAaG;AACH,wBAAwB;AACxB,MAAa,oBAAoB;IAC/B,wCAAwC;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEjD,qDAAqD;IACrD,kBAAkB,CAAC,MAAgC;QACjD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,IAAI,MAAM,EAAE,EAAE,KAAK,SAAS,IAAI,MAAM,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;gBACxD,OAAO,KAAK,CAAC;aACd;YACD,IACE,MAAM,EAAE,SAAS,KAAK,SAAS;gBAC/B,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,SAAS,EACtC;gBACA,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CACf,SAAiD,EACjD,iBAAqC,EACrC,mBAA2B,EAC3B,OAAgB;QAEhB,wBAAwB;QACxB,MAAM,MAAM,GAAW,IAAA,SAAM,GAAE,CAAC;QAEhC,MAAM,aAAa,GAAG;YACpB,EAAE,EAAE,MAAM;YACV,SAAS;YACT,iBAAiB;YACjB,mBAAmB;YACnB,OAAO;SACR,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEjC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,MAAyB,EACzB,gBAAkC;QAElC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,uDAAuD;IACvD,oBAAoB,CAAC,MAAgC;QACnD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC3D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACrC;IACH,CAAC;CACF;AAxED,oDAwEC"}
|
|
@@ -14,31 +14,46 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { BrowsingContext } from '../../../protocol/protocol.js';
|
|
17
|
+
import { BrowsingContext, CommonDataTypes } from '../../../protocol/protocol.js';
|
|
18
18
|
import { LoggerFn } from '../../../utils/log.js';
|
|
19
19
|
import { IEventManager } from '../events/EventManager.js';
|
|
20
20
|
import { Realm } from '../script/realm.js';
|
|
21
21
|
import { RealmStorage } from '../script/realmStorage.js';
|
|
22
22
|
import { BrowsingContextStorage } from './browsingContextStorage.js';
|
|
23
|
-
import { CdpTarget } from './cdpTarget';
|
|
23
|
+
import { CdpTarget } from './cdpTarget.js';
|
|
24
24
|
export declare class BrowsingContextImpl {
|
|
25
25
|
#private;
|
|
26
26
|
private constructor();
|
|
27
|
-
static create(cdpTarget: CdpTarget, realmStorage: RealmStorage,
|
|
27
|
+
static create(cdpTarget: CdpTarget, realmStorage: RealmStorage, id: CommonDataTypes.BrowsingContext, parentId: CommonDataTypes.BrowsingContext | null, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn): BrowsingContextImpl;
|
|
28
|
+
/**
|
|
29
|
+
* @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable
|
|
30
|
+
*/
|
|
28
31
|
get navigableId(): string | null;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
get
|
|
32
|
-
|
|
32
|
+
delete(): void;
|
|
33
|
+
/** Returns the ID of this context. */
|
|
34
|
+
get id(): CommonDataTypes.BrowsingContext;
|
|
35
|
+
/** Returns the parent context ID. */
|
|
36
|
+
get parentId(): CommonDataTypes.BrowsingContext | null;
|
|
37
|
+
/** Returns the parent context. */
|
|
38
|
+
get parent(): BrowsingContextImpl | null;
|
|
39
|
+
/** Returns all direct children contexts. */
|
|
40
|
+
get directChildren(): BrowsingContextImpl[];
|
|
41
|
+
/** Returns all children contexts, flattened. */
|
|
42
|
+
get allChildren(): BrowsingContextImpl[];
|
|
43
|
+
/**
|
|
44
|
+
* Returns true if this is a top-level context.
|
|
45
|
+
* This is the case whenever the parent context ID is null.
|
|
46
|
+
*/
|
|
47
|
+
isTopLevelContext(): boolean;
|
|
48
|
+
addChild(childId: CommonDataTypes.BrowsingContext): void;
|
|
33
49
|
get cdpTarget(): CdpTarget;
|
|
34
|
-
|
|
50
|
+
updateCdpTarget(cdpTarget: CdpTarget): void;
|
|
35
51
|
get url(): string;
|
|
36
|
-
addChild(child: BrowsingContextImpl): void;
|
|
37
52
|
awaitLoaded(): Promise<void>;
|
|
38
53
|
awaitUnblocked(): Promise<void>;
|
|
54
|
+
getOrCreateSandbox(sandbox: string | undefined): Promise<Realm>;
|
|
39
55
|
serializeToBidiValue(maxDepth?: number, addParentFiled?: boolean): BrowsingContext.Info;
|
|
40
56
|
navigate(url: string, wait: BrowsingContext.ReadinessState): Promise<BrowsingContext.NavigateResult>;
|
|
41
|
-
getOrCreateSandbox(sandbox: string | undefined): Promise<Realm>;
|
|
42
57
|
captureScreenshot(): Promise<BrowsingContext.CaptureScreenshotResult>;
|
|
43
58
|
print(params: BrowsingContext.PrintParameters): Promise<BrowsingContext.PrintResult>;
|
|
44
59
|
}
|