chromium-bidi 0.4.7 → 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/CdpConnection.d.ts +1 -1
- package/lib/cjs/bidiMapper/CommandProcessor.d.ts +2 -2
- 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 +11 -8
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +61 -62
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +4 -4
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +48 -18
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +10 -6
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +28 -19
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js +2 -2
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js.map +1 -1
- 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 +4 -4
- 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/log/logManager.d.ts +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +2 -2
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +3 -3
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkRequest.js +23 -14
- package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/realm.d.ts +2 -2
- package/lib/cjs/bidiMapper/domains/script/realm.js +1 -1
- package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +5 -1
- package/lib/cjs/bidiMapper/domains/script/realmStorage.js +5 -1
- package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +1 -1
- package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +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 -3
- package/lib/cjs/bidiServer/mapperServer.js.map +1 -1
- package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/cdp/cdpClient.d.ts +1 -1
- package/lib/cjs/cdp/cdpConnection.js +8 -3
- package/lib/cjs/cdp/cdpConnection.js.map +1 -1
- package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/protocol/protocol.d.ts +70 -62
- package/lib/cjs/protocol/protocol.js +1 -0
- 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 +74 -25
- package/lib/cjs/protocol-parser/protocol-parser.js +23 -21
- package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
- package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/utils/idWrapper.js.map +1 -1
- package/lib/cjs/utils/log.d.ts +1 -1
- package/lib/cjs/utils/transportStub.spec.d.ts +1 -1
- package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
- package/lib/iife/mapperTab.js +2 -2
- package/lib/iife/mapperTab.js.map +1 -1
- package/package.json +132 -36
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> {
|
|
@@ -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,7 +22,7 @@ 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 {
|
|
@@ -34,7 +34,7 @@ export interface BidiParser {
|
|
|
34
34
|
parseDisownParams(params: object): Script.DisownParameters;
|
|
35
35
|
parseSendCommandParams(params: object): CDP.SendCommandParams;
|
|
36
36
|
parseGetSessionParams(params: object): CDP.GetSessionParams;
|
|
37
|
-
parseSubscribeParams(params: object): Session.
|
|
37
|
+
parseSubscribeParams(params: object): Session.SubscriptionRequest;
|
|
38
38
|
parseNavigateParams(params: object): BrowsingContext.NavigateParameters;
|
|
39
39
|
parseGetTreeParams(params: object): BrowsingContext.GetTreeParameters;
|
|
40
40
|
parseCreateParams(params: object): BrowsingContext.CreateParameters;
|
|
@@ -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,34 +14,38 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { BrowsingContext, CommonDataTypes
|
|
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
28
|
/**
|
|
29
29
|
* @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable
|
|
30
30
|
*/
|
|
31
31
|
get navigableId(): string | null;
|
|
32
32
|
delete(): void;
|
|
33
33
|
/** Returns the ID of this context. */
|
|
34
|
-
get
|
|
34
|
+
get id(): CommonDataTypes.BrowsingContext;
|
|
35
35
|
/** Returns the parent context ID. */
|
|
36
36
|
get parentId(): CommonDataTypes.BrowsingContext | null;
|
|
37
|
-
/** Returns
|
|
38
|
-
get
|
|
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[];
|
|
39
43
|
/**
|
|
40
44
|
* Returns true if this is a top-level context.
|
|
41
45
|
* This is the case whenever the parent context ID is null.
|
|
42
46
|
*/
|
|
43
47
|
isTopLevelContext(): boolean;
|
|
44
|
-
addChild(
|
|
48
|
+
addChild(childId: CommonDataTypes.BrowsingContext): void;
|
|
45
49
|
get cdpTarget(): CdpTarget;
|
|
46
50
|
updateCdpTarget(cdpTarget: CdpTarget): void;
|
|
47
51
|
get url(): string;
|
|
@@ -52,5 +56,4 @@ export declare class BrowsingContextImpl {
|
|
|
52
56
|
navigate(url: string, wait: BrowsingContext.ReadinessState): Promise<BrowsingContext.NavigateResult>;
|
|
53
57
|
captureScreenshot(): Promise<BrowsingContext.CaptureScreenshotResult>;
|
|
54
58
|
print(params: BrowsingContext.PrintParameters): Promise<BrowsingContext.PrintResult>;
|
|
55
|
-
addPreloadScript(params: Script.AddPreloadScriptParameters): Promise<Script.AddPreloadScriptResult>;
|
|
56
59
|
}
|
|
@@ -23,18 +23,15 @@ const log_js_1 = require("../../../utils/log.js");
|
|
|
23
23
|
const deferred_js_1 = require("../../../utils/deferred.js");
|
|
24
24
|
const realm_js_1 = require("../script/realm.js");
|
|
25
25
|
class BrowsingContextImpl {
|
|
26
|
-
/** The ID of
|
|
27
|
-
#
|
|
26
|
+
/** The ID of this browsing context. */
|
|
27
|
+
#id;
|
|
28
28
|
/**
|
|
29
|
-
* The ID of the parent context.
|
|
29
|
+
* The ID of the parent browsing context.
|
|
30
30
|
* If null, this is a top-level context.
|
|
31
31
|
*/
|
|
32
32
|
#parentId;
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
* Map from children context ID to context implementation.
|
|
36
|
-
*/
|
|
37
|
-
#children = new Map();
|
|
33
|
+
/** Direct children browsing contexts. */
|
|
34
|
+
#children = new Set();
|
|
38
35
|
#browsingContextStorage;
|
|
39
36
|
#defers = {
|
|
40
37
|
documentInitialized: new deferred_js_1.Deferred(),
|
|
@@ -53,23 +50,26 @@ class BrowsingContextImpl {
|
|
|
53
50
|
#cdpTarget;
|
|
54
51
|
#maybeDefaultRealm;
|
|
55
52
|
#logger;
|
|
56
|
-
constructor(cdpTarget, realmStorage,
|
|
53
|
+
constructor(cdpTarget, realmStorage, id, parentId, eventManager, browsingContextStorage, logger) {
|
|
57
54
|
this.#cdpTarget = cdpTarget;
|
|
58
55
|
this.#realmStorage = realmStorage;
|
|
59
|
-
this.#
|
|
56
|
+
this.#id = id;
|
|
60
57
|
this.#parentId = parentId;
|
|
61
58
|
this.#eventManager = eventManager;
|
|
62
59
|
this.#browsingContextStorage = browsingContextStorage;
|
|
63
60
|
this.#logger = logger;
|
|
64
|
-
this.#initListeners();
|
|
65
61
|
}
|
|
66
|
-
static create(cdpTarget, realmStorage,
|
|
67
|
-
const context = new BrowsingContextImpl(cdpTarget, realmStorage,
|
|
62
|
+
static create(cdpTarget, realmStorage, id, parentId, eventManager, browsingContextStorage, logger) {
|
|
63
|
+
const context = new BrowsingContextImpl(cdpTarget, realmStorage, id, parentId, eventManager, browsingContextStorage, logger);
|
|
64
|
+
context.#initListeners();
|
|
68
65
|
browsingContextStorage.addContext(context);
|
|
66
|
+
if (!context.isTopLevelContext()) {
|
|
67
|
+
context.parent.addChild(context.id);
|
|
68
|
+
}
|
|
69
69
|
eventManager.registerEvent({
|
|
70
70
|
method: protocol_js_1.BrowsingContext.EventNames.ContextCreatedEvent,
|
|
71
71
|
params: context.serializeToBidiValue(),
|
|
72
|
-
}, context.
|
|
72
|
+
}, context.id);
|
|
73
73
|
return context;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
@@ -79,32 +79,43 @@ class BrowsingContextImpl {
|
|
|
79
79
|
return this.#loaderId;
|
|
80
80
|
}
|
|
81
81
|
delete() {
|
|
82
|
-
this.#
|
|
82
|
+
this.#deleteAllChildren();
|
|
83
83
|
this.#realmStorage.deleteRealms({
|
|
84
|
-
browsingContextId: this.
|
|
84
|
+
browsingContextId: this.id,
|
|
85
85
|
});
|
|
86
86
|
// Remove context from the parent.
|
|
87
|
-
if (this.
|
|
88
|
-
|
|
89
|
-
parent.#children.delete(this.contextId);
|
|
87
|
+
if (!this.isTopLevelContext()) {
|
|
88
|
+
this.parent.#children.delete(this.id);
|
|
90
89
|
}
|
|
91
90
|
this.#eventManager.registerEvent({
|
|
92
91
|
method: protocol_js_1.BrowsingContext.EventNames.ContextDestroyedEvent,
|
|
93
92
|
params: this.serializeToBidiValue(),
|
|
94
|
-
}, this.
|
|
95
|
-
this.#browsingContextStorage.
|
|
93
|
+
}, this.id);
|
|
94
|
+
this.#browsingContextStorage.deleteContextById(this.id);
|
|
96
95
|
}
|
|
97
96
|
/** Returns the ID of this context. */
|
|
98
|
-
get
|
|
99
|
-
return this.#
|
|
97
|
+
get id() {
|
|
98
|
+
return this.#id;
|
|
100
99
|
}
|
|
101
100
|
/** Returns the parent context ID. */
|
|
102
101
|
get parentId() {
|
|
103
102
|
return this.#parentId;
|
|
104
103
|
}
|
|
105
|
-
/** Returns
|
|
106
|
-
get
|
|
107
|
-
|
|
104
|
+
/** Returns the parent context. */
|
|
105
|
+
get parent() {
|
|
106
|
+
if (this.parentId === null) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
return this.#browsingContextStorage.getContext(this.parentId);
|
|
110
|
+
}
|
|
111
|
+
/** Returns all direct children contexts. */
|
|
112
|
+
get directChildren() {
|
|
113
|
+
return [...this.#children].map((id) => this.#browsingContextStorage.getContext(id));
|
|
114
|
+
}
|
|
115
|
+
/** Returns all children contexts, flattened. */
|
|
116
|
+
get allChildren() {
|
|
117
|
+
const children = this.directChildren;
|
|
118
|
+
return children.concat(...children.map((child) => child.allChildren));
|
|
108
119
|
}
|
|
109
120
|
/**
|
|
110
121
|
* Returns true if this is a top-level context.
|
|
@@ -113,15 +124,15 @@ class BrowsingContextImpl {
|
|
|
113
124
|
isTopLevelContext() {
|
|
114
125
|
return this.#parentId === null;
|
|
115
126
|
}
|
|
116
|
-
addChild(
|
|
117
|
-
this.#children.
|
|
127
|
+
addChild(childId) {
|
|
128
|
+
this.#children.add(childId);
|
|
118
129
|
}
|
|
119
|
-
#
|
|
120
|
-
this.
|
|
130
|
+
#deleteAllChildren() {
|
|
131
|
+
this.directChildren.map((child) => child.delete());
|
|
121
132
|
}
|
|
122
133
|
get #defaultRealm() {
|
|
123
134
|
if (this.#maybeDefaultRealm === undefined) {
|
|
124
|
-
throw new Error(`No default realm for browsing context ${this.#
|
|
135
|
+
throw new Error(`No default realm for browsing context ${this.#id}`);
|
|
125
136
|
}
|
|
126
137
|
return this.#maybeDefaultRealm;
|
|
127
138
|
}
|
|
@@ -146,18 +157,18 @@ class BrowsingContextImpl {
|
|
|
146
157
|
return this.#defaultRealm;
|
|
147
158
|
}
|
|
148
159
|
let maybeSandboxes = this.#realmStorage.findRealms({
|
|
149
|
-
browsingContextId: this.
|
|
160
|
+
browsingContextId: this.id,
|
|
150
161
|
sandbox,
|
|
151
162
|
});
|
|
152
163
|
if (maybeSandboxes.length === 0) {
|
|
153
164
|
await this.#cdpTarget.cdpClient.sendCommand('Page.createIsolatedWorld', {
|
|
154
|
-
frameId: this.
|
|
165
|
+
frameId: this.id,
|
|
155
166
|
worldName: sandbox,
|
|
156
167
|
});
|
|
157
168
|
// `Runtime.executionContextCreated` should be emitted by the time the
|
|
158
169
|
// previous command is done.
|
|
159
170
|
maybeSandboxes = this.#realmStorage.findRealms({
|
|
160
|
-
browsingContextId: this.
|
|
171
|
+
browsingContextId: this.id,
|
|
161
172
|
sandbox,
|
|
162
173
|
});
|
|
163
174
|
}
|
|
@@ -168,40 +179,40 @@ class BrowsingContextImpl {
|
|
|
168
179
|
}
|
|
169
180
|
serializeToBidiValue(maxDepth = 0, addParentFiled = true) {
|
|
170
181
|
return {
|
|
171
|
-
context: this.#
|
|
182
|
+
context: this.#id,
|
|
172
183
|
url: this.url,
|
|
173
184
|
children: maxDepth > 0
|
|
174
|
-
? this.
|
|
185
|
+
? this.directChildren.map((c) => c.serializeToBidiValue(maxDepth - 1, false))
|
|
175
186
|
: null,
|
|
176
187
|
...(addParentFiled ? { parent: this.#parentId } : {}),
|
|
177
188
|
};
|
|
178
189
|
}
|
|
179
190
|
#initListeners() {
|
|
180
191
|
this.#cdpTarget.cdpClient.on('Target.targetInfoChanged', (params) => {
|
|
181
|
-
if (this.
|
|
192
|
+
if (this.id !== params.targetInfo.targetId) {
|
|
182
193
|
return;
|
|
183
194
|
}
|
|
184
195
|
this.#url = params.targetInfo.url;
|
|
185
196
|
});
|
|
186
197
|
this.#cdpTarget.cdpClient.on('Page.frameNavigated', (params) => {
|
|
187
|
-
if (this.
|
|
198
|
+
if (this.id !== params.frame.id) {
|
|
188
199
|
return;
|
|
189
200
|
}
|
|
190
201
|
this.#url = params.frame.url + (params.frame.urlFragment ?? '');
|
|
191
|
-
// At the point the page is
|
|
202
|
+
// At the point the page is initialized, all the nested iframes from the
|
|
192
203
|
// previous page are detached and realms are destroyed.
|
|
193
|
-
// Remove context
|
|
194
|
-
this.#
|
|
204
|
+
// Remove children from context.
|
|
205
|
+
this.#deleteAllChildren();
|
|
195
206
|
});
|
|
196
207
|
this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => {
|
|
197
|
-
if (this.
|
|
208
|
+
if (this.id !== params.frameId) {
|
|
198
209
|
return;
|
|
199
210
|
}
|
|
200
211
|
this.#url = params.url;
|
|
201
212
|
this.#defers.Page.navigatedWithinDocument.resolve(params);
|
|
202
213
|
});
|
|
203
214
|
this.#cdpTarget.cdpClient.on('Page.lifecycleEvent', (params) => {
|
|
204
|
-
if (this.
|
|
215
|
+
if (this.id !== params.frameId) {
|
|
205
216
|
return;
|
|
206
217
|
}
|
|
207
218
|
// `timestamp` from the event is MonotonicTime, not real time, so
|
|
@@ -226,36 +237,36 @@ class BrowsingContextImpl {
|
|
|
226
237
|
this.#eventManager.registerEvent({
|
|
227
238
|
method: protocol_js_1.BrowsingContext.EventNames.DomContentLoadedEvent,
|
|
228
239
|
params: {
|
|
229
|
-
context: this.
|
|
240
|
+
context: this.id,
|
|
230
241
|
navigation: this.#loaderId,
|
|
231
242
|
timestamp,
|
|
232
243
|
url: this.#url,
|
|
233
244
|
},
|
|
234
|
-
}, this.
|
|
245
|
+
}, this.id);
|
|
235
246
|
break;
|
|
236
247
|
case 'load':
|
|
237
248
|
this.#defers.Page.lifecycleEvent.load.resolve(params);
|
|
238
249
|
this.#eventManager.registerEvent({
|
|
239
250
|
method: protocol_js_1.BrowsingContext.EventNames.LoadEvent,
|
|
240
251
|
params: {
|
|
241
|
-
context: this.
|
|
252
|
+
context: this.id,
|
|
242
253
|
navigation: this.#loaderId,
|
|
243
254
|
timestamp,
|
|
244
255
|
url: this.#url,
|
|
245
256
|
},
|
|
246
|
-
}, this.
|
|
257
|
+
}, this.id);
|
|
247
258
|
break;
|
|
248
259
|
}
|
|
249
260
|
});
|
|
250
261
|
this.#cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => {
|
|
251
|
-
if (params.context.auxData.frameId !== this.
|
|
262
|
+
if (params.context.auxData.frameId !== this.id) {
|
|
252
263
|
return;
|
|
253
264
|
}
|
|
254
265
|
// Only this execution contexts are supported for now.
|
|
255
266
|
if (!['default', 'isolated'].includes(params.context.auxData.type)) {
|
|
256
267
|
return;
|
|
257
268
|
}
|
|
258
|
-
const realm = new realm_js_1.Realm(this.#realmStorage, this.#browsingContextStorage, params.context.uniqueId, this.
|
|
269
|
+
const realm = new realm_js_1.Realm(this.#realmStorage, this.#browsingContextStorage, params.context.uniqueId, this.id, params.context.id, this.#getOrigin(params),
|
|
259
270
|
// TODO: differentiate types.
|
|
260
271
|
'window',
|
|
261
272
|
// Sandbox name for isolated world.
|
|
@@ -325,7 +336,7 @@ class BrowsingContextImpl {
|
|
|
325
336
|
// TODO: handle loading errors.
|
|
326
337
|
const cdpNavigateResult = await this.#cdpTarget.cdpClient.sendCommand('Page.navigate', {
|
|
327
338
|
url,
|
|
328
|
-
frameId: this.
|
|
339
|
+
frameId: this.id,
|
|
329
340
|
});
|
|
330
341
|
if (cdpNavigateResult.errorText) {
|
|
331
342
|
throw new protocol_js_1.Message.UnknownErrorException(cdpNavigateResult.errorText);
|
|
@@ -408,18 +419,6 @@ class BrowsingContextImpl {
|
|
|
408
419
|
},
|
|
409
420
|
};
|
|
410
421
|
}
|
|
411
|
-
async addPreloadScript(params) {
|
|
412
|
-
const result = await this.#cdpTarget.cdpClient.sendCommand('Page.addScriptToEvaluateOnNewDocument', {
|
|
413
|
-
// The spec provides a function, and CDP expects an evaluation.
|
|
414
|
-
source: `(${params.expression})();`,
|
|
415
|
-
worldName: params.sandbox,
|
|
416
|
-
});
|
|
417
|
-
return {
|
|
418
|
-
result: {
|
|
419
|
-
script: result.identifier,
|
|
420
|
-
},
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
422
|
}
|
|
424
423
|
exports.BrowsingContextImpl = BrowsingContextImpl;
|
|
425
424
|
//# sourceMappingURL=browsingContextImpl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browsingContextImpl.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/browsingContextImpl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browsingContextImpl.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/browsingContextImpl.ts"],"names":[],"mappings":"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"}
|