chromium-bidi 0.5.19 → 0.5.21
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/.browser +1 -1
- package/README.md +3 -3
- package/lib/THIRD_PARTY_NOTICES +1 -1
- package/lib/cjs/bidiMapper/CommandProcessor.js +1 -1
- package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/cdp/CdpTarget.d.ts +1 -1
- package/lib/cjs/bidiMapper/modules/cdp/CdpTarget.js +32 -3
- package/lib/cjs/bidiMapper/modules/cdp/CdpTarget.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/cdp/CdpTargetManager.js +14 -2
- package/lib/cjs/bidiMapper/modules/cdp/CdpTargetManager.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.d.ts +1 -1
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js +65 -27
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextProcessor.d.ts +2 -1
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextProcessor.js +20 -1
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/input/ActionDispatcher.js +26 -9
- package/lib/cjs/bidiMapper/modules/input/ActionDispatcher.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/input/InputProcessor.js +16 -10
- package/lib/cjs/bidiMapper/modules/input/InputProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/input/InputSource.d.ts +5 -5
- package/lib/cjs/bidiMapper/modules/input/keyUtils.d.ts +12 -0
- package/lib/cjs/bidiMapper/modules/input/keyUtils.js +23 -1
- package/lib/cjs/bidiMapper/modules/input/keyUtils.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/log/LogManager.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkProcessor.d.ts +6 -0
- package/lib/cjs/bidiMapper/modules/network/NetworkProcessor.js +78 -20
- package/lib/cjs/bidiMapper/modules/network/NetworkProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkRequest.d.ts +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkRequest.js +34 -9
- package/lib/cjs/bidiMapper/modules/network/NetworkRequest.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkUtils.d.ts +3 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkUtils.js +21 -4
- package/lib/cjs/bidiMapper/modules/network/NetworkUtils.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/session/EventManager.d.ts +8 -0
- package/lib/cjs/bidiMapper/modules/session/EventManager.js +21 -1
- package/lib/cjs/bidiMapper/modules/session/EventManager.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/session/SubscriptionManager.d.ts +13 -2
- package/lib/cjs/bidiMapper/modules/session/SubscriptionManager.js +35 -12
- package/lib/cjs/bidiMapper/modules/session/SubscriptionManager.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/storage/StorageProcessor.js +2 -2
- package/lib/cjs/bidiMapper/modules/storage/StorageProcessor.js.map +1 -1
- package/lib/cjs/bidiServer/MapperCdpConnection.js +13 -3
- package/lib/cjs/bidiServer/MapperCdpConnection.js.map +1 -1
- package/lib/cjs/bidiTab/bidiTab.d.ts +1 -0
- package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
- package/lib/cjs/bidiTab/mapperTabPage.js +2 -0
- package/lib/cjs/bidiTab/mapperTabPage.js.map +1 -1
- package/lib/cjs/protocol-parser/generated/webdriver-bidi.d.ts +10996 -32218
- package/lib/cjs/protocol-parser/protocol-parser.d.ts +9 -9
- package/lib/cjs/utils/Deferred.d.ts +1 -0
- package/lib/cjs/utils/Deferred.js +8 -0
- package/lib/cjs/utils/Deferred.js.map +1 -1
- package/lib/cjs/utils/DistinctValues.d.ts +14 -0
- package/lib/cjs/utils/DistinctValues.js +59 -0
- package/lib/cjs/utils/DistinctValues.js.map +1 -0
- package/lib/cjs/utils/GraphemeTools.d.ts +9 -0
- package/lib/cjs/utils/GraphemeTools.js +39 -0
- package/lib/cjs/utils/GraphemeTools.js.map +1 -0
- package/lib/iife/mapperTab.js +787 -194
- package/lib/iife/mapperTab.js.map +1 -1
- package/package.json +23 -23
package/.browser
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
chrome@
|
|
1
|
+
chrome@127.0.6524.0
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ at [WPT WebDriver BiDi status](https://wpt.fyi/results/webdriver/tests/bidi).
|
|
|
28
28
|
```cddl
|
|
29
29
|
CdpSendCommandCommand = {
|
|
30
30
|
method: "cdp.sendCommand",
|
|
31
|
-
params:
|
|
31
|
+
params: CdpSendCommandParameters,
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
CdpSendCommandParameters = {
|
|
@@ -52,7 +52,7 @@ and returns the result.
|
|
|
52
52
|
```cddl
|
|
53
53
|
CdpGetSessionCommand = {
|
|
54
54
|
method: "cdp.getSession",
|
|
55
|
-
params:
|
|
55
|
+
params: CdpGetSessionParameters,
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
CdpGetSessionParameters = {
|
|
@@ -71,7 +71,7 @@ The command returns the default CDP session for the selected browsing context.
|
|
|
71
71
|
```cddl
|
|
72
72
|
CdpResolveRealmCommand = {
|
|
73
73
|
method: "cdp.resolveRealm",
|
|
74
|
-
params:
|
|
74
|
+
params: CdpResolveRealmParameters,
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
CdpResolveRealmParameters = {
|
package/lib/THIRD_PARTY_NOTICES
CHANGED
|
@@ -51,7 +51,7 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
|
|
|
51
51
|
this.#logger = logger;
|
|
52
52
|
// keep-sorted start block=yes
|
|
53
53
|
this.#browserProcessor = new BrowserProcessor_js_1.BrowserProcessor(browserCdpClient);
|
|
54
|
-
this.#browsingContextProcessor = new BrowsingContextProcessor_js_1.BrowsingContextProcessor(browserCdpClient, browsingContextStorage);
|
|
54
|
+
this.#browsingContextProcessor = new BrowsingContextProcessor_js_1.BrowsingContextProcessor(browserCdpClient, browsingContextStorage, eventManager);
|
|
55
55
|
this.#cdpProcessor = new CdpProcessor_js_1.CdpProcessor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient);
|
|
56
56
|
this.#inputProcessor = new InputProcessor_js_1.InputProcessor(browsingContextStorage, realmStorage);
|
|
57
57
|
this.#networkProcessor = new NetworkProcessor_js_1.NetworkProcessor(browsingContextStorage, networkStorage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,yDAMiC;AACjC,8DAAsD;AACtD,4CAAuD;AAGvD,2DAAmD;AAEnD,+EAAuE;AACvE,mEAA2D;AAC3D,+FAAuF;AAEvF,yEAAiE;AACjE,+EAAuE;AAEvE,2FAAmF;AAGnF,4EAAoE;AAEpE,+EAAuE;AACvE,+EAAuE;AACvE,6DAAqD;AAarD,MAAa,gBAAiB,SAAQ,8BAAuC;IAC3E,oBAAoB;IACpB,iBAAiB,CAAmB;IACpC,yBAAyB,CAA2B;IACpD,aAAa,CAAe;IAC5B,eAAe,CAAiB;IAChC,iBAAiB,CAAmB;IACpC,qBAAqB,CAAuB;IAC5C,gBAAgB,CAAkB;IAClC,iBAAiB,CAAmB;IACpC,iBAAiB,CAAmB;IACpC,kBAAkB;IAElB,OAAO,CAA6B;IACpC,OAAO,CAAY;IAEnB,YACE,aAA4B,EAC5B,gBAA2B,EAC3B,YAA0B,EAC1B,sBAA8C,EAC9C,YAA0B,EAC1B,oBAA0C,EAC1C,cAA8B,EAC9B,SAAqC,IAAI,kCAAc,EAAE,EACzD,MAAiB;QAEjB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,sCAAgB,CAAC,gBAAgB,CAAC,CAAC;QAChE,IAAI,CAAC,yBAAyB,GAAG,IAAI,sDAAwB,CAC3D,gBAAgB,EAChB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import type { EventManager } from '../session/EventManager.js';
|
|
|
13
13
|
export declare class CdpTarget {
|
|
14
14
|
#private;
|
|
15
15
|
static create(targetId: Protocol.Target.TargetID, cdpClient: CdpClient, browserCdpClient: CdpClient, realmStorage: RealmStorage, eventManager: EventManager, preloadScriptStorage: PreloadScriptStorage, browsingContextStorage: BrowsingContextStorage, networkStorage: NetworkStorage, acceptInsecureCerts: boolean, logger?: LoggerFn): CdpTarget;
|
|
16
|
-
constructor(targetId: Protocol.Target.TargetID, cdpClient: CdpClient, browserCdpClient: CdpClient, eventManager: EventManager, preloadScriptStorage: PreloadScriptStorage, browsingContextStorage: BrowsingContextStorage, networkStorage: NetworkStorage, acceptInsecureCerts: boolean);
|
|
16
|
+
constructor(targetId: Protocol.Target.TargetID, cdpClient: CdpClient, browserCdpClient: CdpClient, eventManager: EventManager, realmStorage: RealmStorage, preloadScriptStorage: PreloadScriptStorage, browsingContextStorage: BrowsingContextStorage, networkStorage: NetworkStorage, acceptInsecureCerts: boolean, logger?: LoggerFn);
|
|
17
17
|
/** Returns a deferred that resolves when the target is unblocked. */
|
|
18
18
|
get unblocked(): Deferred<Result<void>>;
|
|
19
19
|
get id(): Protocol.Target.TargetID;
|
|
@@ -3,17 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CdpTarget = void 0;
|
|
4
4
|
const chromium_bidi_js_1 = require("../../../protocol/chromium-bidi.js");
|
|
5
5
|
const Deferred_js_1 = require("../../../utils/Deferred.js");
|
|
6
|
+
const log_js_1 = require("../../../utils/log.js");
|
|
7
|
+
const BrowsingContextImpl_js_1 = require("../context/BrowsingContextImpl.js");
|
|
6
8
|
const LogManager_js_1 = require("../log/LogManager.js");
|
|
7
9
|
class CdpTarget {
|
|
8
10
|
#id;
|
|
9
11
|
#cdpClient;
|
|
10
12
|
#browserCdpClient;
|
|
13
|
+
#realmStorage;
|
|
11
14
|
#eventManager;
|
|
12
15
|
#preloadScriptStorage;
|
|
13
16
|
#browsingContextStorage;
|
|
14
17
|
#networkStorage;
|
|
15
18
|
#unblocked = new Deferred_js_1.Deferred();
|
|
16
19
|
#acceptInsecureCerts;
|
|
20
|
+
#logger;
|
|
17
21
|
#networkDomainEnabled = false;
|
|
18
22
|
#fetchDomainStages = {
|
|
19
23
|
request: false,
|
|
@@ -21,7 +25,7 @@ class CdpTarget {
|
|
|
21
25
|
auth: false,
|
|
22
26
|
};
|
|
23
27
|
static create(targetId, cdpClient, browserCdpClient, realmStorage, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, acceptInsecureCerts, logger) {
|
|
24
|
-
const cdpTarget = new CdpTarget(targetId, cdpClient, browserCdpClient, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, acceptInsecureCerts);
|
|
28
|
+
const cdpTarget = new CdpTarget(targetId, cdpClient, browserCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, networkStorage, acceptInsecureCerts, logger);
|
|
25
29
|
LogManager_js_1.LogManager.create(cdpTarget, realmStorage, eventManager, logger);
|
|
26
30
|
cdpTarget.#setEventListeners();
|
|
27
31
|
// No need to await.
|
|
@@ -29,15 +33,17 @@ class CdpTarget {
|
|
|
29
33
|
void cdpTarget.#unblock();
|
|
30
34
|
return cdpTarget;
|
|
31
35
|
}
|
|
32
|
-
constructor(targetId, cdpClient, browserCdpClient, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, acceptInsecureCerts) {
|
|
36
|
+
constructor(targetId, cdpClient, browserCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, networkStorage, acceptInsecureCerts, logger) {
|
|
33
37
|
this.#id = targetId;
|
|
34
38
|
this.#cdpClient = cdpClient;
|
|
35
39
|
this.#browserCdpClient = browserCdpClient;
|
|
36
40
|
this.#eventManager = eventManager;
|
|
41
|
+
this.#realmStorage = realmStorage;
|
|
37
42
|
this.#preloadScriptStorage = preloadScriptStorage;
|
|
38
43
|
this.#networkStorage = networkStorage;
|
|
39
44
|
this.#browsingContextStorage = browsingContextStorage;
|
|
40
45
|
this.#acceptInsecureCerts = acceptInsecureCerts;
|
|
46
|
+
this.#logger = logger;
|
|
41
47
|
}
|
|
42
48
|
/** Returns a deferred that resolves when the target is unblocked. */
|
|
43
49
|
get unblocked() {
|
|
@@ -63,8 +69,19 @@ class CdpTarget {
|
|
|
63
69
|
async #unblock() {
|
|
64
70
|
try {
|
|
65
71
|
await Promise.all([
|
|
66
|
-
this.#cdpClient.sendCommand('Runtime.enable'),
|
|
67
72
|
this.#cdpClient.sendCommand('Page.enable'),
|
|
73
|
+
// There can be some existing frames in the target, if reconnecting to an
|
|
74
|
+
// existing browser instance, e.g. via Puppeteer. Need to restore the browsing
|
|
75
|
+
// contexts for the frames to correctly handle further events, like
|
|
76
|
+
// `Runtime.executionContextCreated`.
|
|
77
|
+
// It's important to schedule this task together with enabling domains commands to
|
|
78
|
+
// prepare the tree before the events (e.g. Runtime.executionContextCreated) start
|
|
79
|
+
// coming.
|
|
80
|
+
// https://github.com/GoogleChromeLabs/chromium-bidi/issues/2282
|
|
81
|
+
this.#cdpClient
|
|
82
|
+
.sendCommand('Page.getFrameTree')
|
|
83
|
+
.then((frameTree) => this.#restoreFrameTreeState(frameTree.frameTree)),
|
|
84
|
+
this.#cdpClient.sendCommand('Runtime.enable'),
|
|
68
85
|
this.#cdpClient.sendCommand('Page.setLifecycleEventsEnabled', {
|
|
69
86
|
enabled: true,
|
|
70
87
|
}),
|
|
@@ -83,6 +100,7 @@ class CdpTarget {
|
|
|
83
100
|
]);
|
|
84
101
|
}
|
|
85
102
|
catch (error) {
|
|
103
|
+
this.#logger?.(log_js_1.LogType.debugError, 'Failed to unblock target', error);
|
|
86
104
|
// The target might have been closed before the initialization finished.
|
|
87
105
|
if (!this.#cdpClient.isCloseError(error)) {
|
|
88
106
|
this.#unblocked.resolve({
|
|
@@ -97,6 +115,17 @@ class CdpTarget {
|
|
|
97
115
|
value: undefined,
|
|
98
116
|
});
|
|
99
117
|
}
|
|
118
|
+
#restoreFrameTreeState(frameTree) {
|
|
119
|
+
const frame = frameTree.frame;
|
|
120
|
+
if (this.#browsingContextStorage.findContext(frame.id) === undefined &&
|
|
121
|
+
frame.parentId !== undefined) {
|
|
122
|
+
// Can restore only not yet known nested frames. The top-level frame is created
|
|
123
|
+
// when the target is attached.
|
|
124
|
+
const parentBrowsingContext = this.#browsingContextStorage.getContext(frame.parentId);
|
|
125
|
+
BrowsingContextImpl_js_1.BrowsingContextImpl.create(frame.id, frame.parentId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, frame.url, this.#logger);
|
|
126
|
+
}
|
|
127
|
+
frameTree.childFrames?.map((frameTree) => this.#restoreFrameTreeState(frameTree));
|
|
128
|
+
}
|
|
100
129
|
async toggleFetchIfNeeded() {
|
|
101
130
|
const stages = this.#networkStorage.getInterceptionStages(this.topLevelId);
|
|
102
131
|
if (
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CdpTarget.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/cdp/CdpTarget.ts"],"names":[],"mappings":";;;AAoBA,yEAA8D;AAE9D,4DAAoD;
|
|
1
|
+
{"version":3,"file":"CdpTarget.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/cdp/CdpTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,10 @@ class CdpTargetManager {
|
|
|
55
55
|
#handleFrameAttachedEvent(params) {
|
|
56
56
|
const parentBrowsingContext = this.#browsingContextStorage.findContext(params.parentFrameId);
|
|
57
57
|
if (parentBrowsingContext !== undefined) {
|
|
58
|
-
BrowsingContextImpl_js_1.BrowsingContextImpl.create(params.frameId, params.parentFrameId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage,
|
|
58
|
+
BrowsingContextImpl_js_1.BrowsingContextImpl.create(params.frameId, params.parentFrameId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage,
|
|
59
|
+
// At this point, we don't know the URL of the frame yet, so it will be updated
|
|
60
|
+
// later.
|
|
61
|
+
'about:blank', this.#logger);
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
#handleFrameDetachedEvent(params) {
|
|
@@ -86,7 +89,16 @@ class CdpTargetManager {
|
|
|
86
89
|
? targetInfo.browserContextId
|
|
87
90
|
: 'default';
|
|
88
91
|
// New context.
|
|
89
|
-
BrowsingContextImpl_js_1.BrowsingContextImpl.create(targetInfo.targetId, null, userContext, cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage,
|
|
92
|
+
BrowsingContextImpl_js_1.BrowsingContextImpl.create(targetInfo.targetId, null, userContext, cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage,
|
|
93
|
+
// Hack: when a new target created, CDP emits targetInfoChanged with an empty
|
|
94
|
+
// url, and navigates it to about:blank later. When the event is emitted for
|
|
95
|
+
// an existing target (reconnect), the url is already known, and navigation
|
|
96
|
+
// events will not be emitted anymore. Replacing empty url with `about:blank`
|
|
97
|
+
// allows to handle both cases in the same way.
|
|
98
|
+
// "7.3.2.1 Creating browsing contexts".
|
|
99
|
+
// https://html.spec.whatwg.org/multipage/document-sequences.html#creating-browsing-contexts
|
|
100
|
+
// TODO: check who to deal with non-null creator and its `creatorOrigin`.
|
|
101
|
+
targetInfo.url === '' ? 'about:blank' : targetInfo.url, this.#logger);
|
|
90
102
|
}
|
|
91
103
|
return;
|
|
92
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CdpTargetManager.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/cdp/CdpTargetManager.ts"],"names":[],"mappings":";;;AAqBA,kDAA6D;AAC7D,8EAG2C;AAM3C,6DAA2E;AAG3E,iDAAyC;AAEzC,MAAM,oBAAoB,GAAG;IAC3B,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,kBAAkB;CAClB,CAAC;AAEX,MAAa,gBAAgB;IAClB,iBAAiB,CAAY;IAC7B,cAAc,CAAgB;IAC9B,aAAa,CAAS;IACtB,aAAa,CAAe;IAE5B,uBAAuB,CAAyB;IAChD,eAAe,CAAiB;IAChC,oBAAoB,CAAU;IAC9B,qBAAqB,CAAuB;IAC5C,aAAa,CAAe;IAE5B,qBAAqB,CAAsB;IAC3C,OAAO,CAAY;IAE5B,YACE,aAA4B,EAC5B,gBAA2B,EAC3B,YAAoB,EACpB,YAA0B,EAC1B,sBAA8C,EAC9C,YAA0B,EAC1B,cAA8B,EAC9B,oBAA0C,EAC1C,mBAA4B,EAC5B,oBAAyC,EACzC,MAAiB;QAEjB,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,SAAoB;QACrC,SAAS,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,EAAE;YACjD,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,CACV,2BAA2B,EAC3B,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;QACF,SAAS,CAAC,EAAE,CACV,0BAA0B,EAC1B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QACF,SAAS,CAAC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CACV,oBAAoB,EACpB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;QACF,SAAS,CAAC,EAAE,CACV,oBAAoB,EACpB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,MAAwC;QAChE,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CACpE,MAAM,CAAC,aAAa,CACrB,CAAC;QACF,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,4CAAmB,CAAC,MAAM,CACxB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,aAAa,EACpB,qBAAqB,CAAC,WAAW,EACjC,qBAAqB,CAAC,SAAS,EAC/B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"CdpTargetManager.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/cdp/CdpTargetManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export declare class BrowsingContextImpl {
|
|
|
27
27
|
static readonly LOGGER_PREFIX: "debug:browsingContext";
|
|
28
28
|
readonly userContext: string;
|
|
29
29
|
private constructor();
|
|
30
|
-
static create(id: BrowsingContext.BrowsingContext, parentId: BrowsingContext.BrowsingContext | null, userContext: string, cdpTarget: CdpTarget, eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, logger?: LoggerFn): BrowsingContextImpl;
|
|
30
|
+
static create(id: BrowsingContext.BrowsingContext, parentId: BrowsingContext.BrowsingContext | null, userContext: string, cdpTarget: CdpTarget, eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, url: string, logger?: LoggerFn): BrowsingContextImpl;
|
|
31
31
|
static getTimestamp(): number;
|
|
32
32
|
/**
|
|
33
33
|
* @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable
|
|
@@ -43,16 +43,17 @@ class BrowsingContextImpl {
|
|
|
43
43
|
#navigation = {
|
|
44
44
|
withinDocument: new Deferred_js_1.Deferred(),
|
|
45
45
|
};
|
|
46
|
-
#url
|
|
46
|
+
#url;
|
|
47
47
|
#eventManager;
|
|
48
48
|
#realmStorage;
|
|
49
49
|
#loaderId;
|
|
50
50
|
#cdpTarget;
|
|
51
|
-
|
|
51
|
+
// The deferred will be resolved when the default realm is created.
|
|
52
|
+
#defaultRealmDeferred = new Deferred_js_1.Deferred();
|
|
52
53
|
#logger;
|
|
53
54
|
// Keeps track of the previously set viewport.
|
|
54
55
|
#previousViewport = { width: 0, height: 0 };
|
|
55
|
-
constructor(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, logger) {
|
|
56
|
+
constructor(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, url, logger) {
|
|
56
57
|
this.#cdpTarget = cdpTarget;
|
|
57
58
|
this.#id = id;
|
|
58
59
|
this.#parentId = parentId;
|
|
@@ -61,9 +62,10 @@ class BrowsingContextImpl {
|
|
|
61
62
|
this.#browsingContextStorage = browsingContextStorage;
|
|
62
63
|
this.#realmStorage = realmStorage;
|
|
63
64
|
this.#logger = logger;
|
|
65
|
+
this.#url = url;
|
|
64
66
|
}
|
|
65
|
-
static create(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, logger) {
|
|
66
|
-
const context = new BrowsingContextImpl(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, logger);
|
|
67
|
+
static create(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, url, logger) {
|
|
68
|
+
const context = new BrowsingContextImpl(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, url, logger);
|
|
67
69
|
context.#initListeners();
|
|
68
70
|
browsingContextStorage.addContext(context);
|
|
69
71
|
if (!context.isTopLevelContext()) {
|
|
@@ -154,10 +156,6 @@ class BrowsingContextImpl {
|
|
|
154
156
|
#deleteAllChildren() {
|
|
155
157
|
this.directChildren.map((child) => child.dispose());
|
|
156
158
|
}
|
|
157
|
-
get #defaultRealm() {
|
|
158
|
-
(0, assert_js_1.assert)(this.#maybeDefaultRealm, `No default realm for browsing context ${this.#id}`);
|
|
159
|
-
return this.#maybeDefaultRealm;
|
|
160
|
-
}
|
|
161
159
|
get cdpTarget() {
|
|
162
160
|
return this.#cdpTarget;
|
|
163
161
|
}
|
|
@@ -179,7 +177,8 @@ class BrowsingContextImpl {
|
|
|
179
177
|
}
|
|
180
178
|
async getOrCreateSandbox(sandbox) {
|
|
181
179
|
if (sandbox === undefined || sandbox === '') {
|
|
182
|
-
return
|
|
180
|
+
// Default realm is not guaranteed to be created at this point, so return a deferred.
|
|
181
|
+
return await this.#defaultRealmDeferred;
|
|
183
182
|
}
|
|
184
183
|
let maybeSandboxes = this.#realmStorage.findRealms({
|
|
185
184
|
browsingContextId: this.id,
|
|
@@ -327,7 +326,13 @@ class BrowsingContextImpl {
|
|
|
327
326
|
sandbox = name;
|
|
328
327
|
// Sandbox should have the same origin as the context itself, but in CDP
|
|
329
328
|
// it has an empty one.
|
|
330
|
-
|
|
329
|
+
if (!this.#defaultRealmDeferred.isFinished) {
|
|
330
|
+
this.#logger?.(log_js_1.LogType.debugError, 'Unexpectedly, isolated realm created before the default one');
|
|
331
|
+
}
|
|
332
|
+
origin = this.#defaultRealmDeferred.isFinished
|
|
333
|
+
? this.#defaultRealmDeferred.result.origin
|
|
334
|
+
: // This fallback is not expected to be ever reached.
|
|
335
|
+
'';
|
|
331
336
|
break;
|
|
332
337
|
case 'default':
|
|
333
338
|
origin = serializeOrigin(params.context.origin);
|
|
@@ -337,7 +342,7 @@ class BrowsingContextImpl {
|
|
|
337
342
|
}
|
|
338
343
|
const realm = new WindowRealm_js_1.WindowRealm(this.id, this.#browsingContextStorage, this.#cdpTarget.cdpClient, this.#eventManager, id, this.#logger, origin, uniqueId, this.#realmStorage, sandbox);
|
|
339
344
|
if (auxData.isDefault) {
|
|
340
|
-
this.#
|
|
345
|
+
this.#defaultRealmDeferred.resolve(realm);
|
|
341
346
|
// Initialize ChannelProxy listeners for all the channels of all the
|
|
342
347
|
// preload scripts related to this BrowsingContext.
|
|
343
348
|
// TODO: extend for not default realms by the sandbox name.
|
|
@@ -347,12 +352,21 @@ class BrowsingContextImpl {
|
|
|
347
352
|
}
|
|
348
353
|
});
|
|
349
354
|
this.#cdpTarget.cdpClient.on('Runtime.executionContextDestroyed', (params) => {
|
|
355
|
+
if (this.#defaultRealmDeferred.isFinished &&
|
|
356
|
+
this.#defaultRealmDeferred.result.executionContextId ===
|
|
357
|
+
params.executionContextId) {
|
|
358
|
+
this.#defaultRealmDeferred = new Deferred_js_1.Deferred();
|
|
359
|
+
}
|
|
350
360
|
this.#realmStorage.deleteRealms({
|
|
351
361
|
cdpSessionId: this.#cdpTarget.cdpSessionId,
|
|
352
362
|
executionContextId: params.executionContextId,
|
|
353
363
|
});
|
|
354
364
|
});
|
|
355
365
|
this.#cdpTarget.cdpClient.on('Runtime.executionContextsCleared', () => {
|
|
366
|
+
if (!this.#defaultRealmDeferred.isFinished) {
|
|
367
|
+
this.#defaultRealmDeferred.reject(new protocol_js_1.UnknownErrorException('execution contexts cleared'));
|
|
368
|
+
}
|
|
369
|
+
this.#defaultRealmDeferred = new Deferred_js_1.Deferred();
|
|
356
370
|
this.#realmStorage.deleteRealms({
|
|
357
371
|
cdpSessionId: this.#cdpTarget.cdpSessionId,
|
|
358
372
|
});
|
|
@@ -377,8 +391,9 @@ class BrowsingContextImpl {
|
|
|
377
391
|
context: this.id,
|
|
378
392
|
type: params.type,
|
|
379
393
|
message: params.message,
|
|
380
|
-
|
|
381
|
-
|
|
394
|
+
...(params.type === 'prompt'
|
|
395
|
+
? { defaultValue: params.defaultPrompt }
|
|
396
|
+
: {}),
|
|
382
397
|
},
|
|
383
398
|
}, this.id);
|
|
384
399
|
});
|
|
@@ -587,9 +602,18 @@ class BrowsingContextImpl {
|
|
|
587
602
|
(0, assert_js_1.assert)(originResult.type === 'success');
|
|
588
603
|
const origin = deserializeDOMRect(originResult.result);
|
|
589
604
|
(0, assert_js_1.assert)(origin);
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
605
|
+
let rect = origin;
|
|
606
|
+
if (params.clip) {
|
|
607
|
+
const clip = params.clip;
|
|
608
|
+
if (params.origin === 'viewport' && clip.type === 'box') {
|
|
609
|
+
// For viewport origin, the clip is relative to the viewport, while the CDP
|
|
610
|
+
// screenshot is relative to the document. So correction for the viewport position
|
|
611
|
+
// is required.
|
|
612
|
+
clip.x += origin.x;
|
|
613
|
+
clip.y += origin.y;
|
|
614
|
+
}
|
|
615
|
+
rect = getIntersectionRect(await this.#parseRect(clip), origin);
|
|
616
|
+
}
|
|
593
617
|
if (rect.width === 0 || rect.height === 0) {
|
|
594
618
|
throw new protocol_js_1.UnableToCaptureScreenException(`Unable to capture screenshot with zero dimensions: width=${rect.width}, height=${rect.height}`);
|
|
595
619
|
}
|
|
@@ -742,7 +766,7 @@ class BrowsingContextImpl {
|
|
|
742
766
|
}
|
|
743
767
|
async locateNodes(params) {
|
|
744
768
|
// TODO: create a dedicated sandbox instead of `#defaultRealm`.
|
|
745
|
-
return await this.#locateNodesByLocator(this.#
|
|
769
|
+
return await this.#locateNodesByLocator(await this.#defaultRealmDeferred, params.locator, params.startNodes ?? [], params.maxNodeCount, params.serializationOptions);
|
|
746
770
|
}
|
|
747
771
|
async #getLocatorDelegate(realm, locator, maxNodeCount, startNodes) {
|
|
748
772
|
switch (locator.type) {
|
|
@@ -750,8 +774,10 @@ class BrowsingContextImpl {
|
|
|
750
774
|
return {
|
|
751
775
|
functionDeclaration: String((cssSelector, maxNodeCount, ...startNodes) => {
|
|
752
776
|
const locateNodesUsingCss = (element) => {
|
|
753
|
-
if (!(element instanceof HTMLElement
|
|
754
|
-
|
|
777
|
+
if (!(element instanceof HTMLElement ||
|
|
778
|
+
element instanceof Document ||
|
|
779
|
+
element instanceof DocumentFragment)) {
|
|
780
|
+
throw new Error('startNodes in css selector should be HTMLElement, Document or DocumentFragment');
|
|
755
781
|
}
|
|
756
782
|
return [...element.querySelectorAll(cssSelector)];
|
|
757
783
|
};
|
|
@@ -817,8 +843,21 @@ class BrowsingContextImpl {
|
|
|
817
843
|
const searchText = ignoreCase
|
|
818
844
|
? innerTextSelector.toUpperCase()
|
|
819
845
|
: innerTextSelector;
|
|
820
|
-
const locateNodesUsingInnerText = (
|
|
846
|
+
const locateNodesUsingInnerText = (node, currentMaxDepth) => {
|
|
821
847
|
const returnedNodes = [];
|
|
848
|
+
if (node instanceof DocumentFragment ||
|
|
849
|
+
node instanceof Document) {
|
|
850
|
+
const children = [...node.children];
|
|
851
|
+
children.forEach((child) =>
|
|
852
|
+
// `currentMaxDepth` is not decremented intentionally according to
|
|
853
|
+
// https://github.com/w3c/webdriver-bidi/pull/713.
|
|
854
|
+
returnedNodes.push(...locateNodesUsingInnerText(child, currentMaxDepth)));
|
|
855
|
+
return returnedNodes;
|
|
856
|
+
}
|
|
857
|
+
if (!(node instanceof HTMLElement)) {
|
|
858
|
+
return [];
|
|
859
|
+
}
|
|
860
|
+
const element = node;
|
|
822
861
|
const nodeInnerText = ignoreCase
|
|
823
862
|
? element.innerText?.toUpperCase()
|
|
824
863
|
: element.innerText;
|
|
@@ -845,7 +884,7 @@ class BrowsingContextImpl {
|
|
|
845
884
|
else {
|
|
846
885
|
const childNodeMatches =
|
|
847
886
|
// Don't search deeper if `maxDepth` is reached.
|
|
848
|
-
currentMaxDepth
|
|
887
|
+
currentMaxDepth <= 0
|
|
849
888
|
? []
|
|
850
889
|
: childNodes
|
|
851
890
|
.map((child) => locateNodesUsingInnerText(child, currentMaxDepth - 1))
|
|
@@ -863,9 +902,8 @@ class BrowsingContextImpl {
|
|
|
863
902
|
// TODO: stop search early if `maxNodeCount` is reached.
|
|
864
903
|
return returnedNodes;
|
|
865
904
|
};
|
|
866
|
-
// TODO: add maxDepth.
|
|
867
905
|
// TODO: stop search early if `maxNodeCount` is reached.
|
|
868
|
-
startNodes = startNodes.length > 0 ? startNodes : [document
|
|
906
|
+
startNodes = startNodes.length > 0 ? startNodes : [document];
|
|
869
907
|
const returnedNodes = startNodes
|
|
870
908
|
.map((startNode) =>
|
|
871
909
|
// TODO: stop search early if `maxNodeCount` is reached.
|
|
@@ -897,7 +935,7 @@ class BrowsingContextImpl {
|
|
|
897
935
|
}
|
|
898
936
|
// The next two commands cause a11y caches for the target to be
|
|
899
937
|
// preserved. We probably do not need to disable them if the
|
|
900
|
-
// client is using a11y features but we could by calling
|
|
938
|
+
// client is using a11y features, but we could by calling
|
|
901
939
|
// Accessibility.disable.
|
|
902
940
|
await Promise.all([
|
|
903
941
|
this.#cdpTarget.cdpClient.sendCommand('Accessibility.enable'),
|
|
@@ -997,8 +1035,8 @@ class BrowsingContextImpl {
|
|
|
997
1035
|
}
|
|
998
1036
|
// Heuristic to detect if the `startNode` is not an `HTMLElement` in css selector.
|
|
999
1037
|
if (locatorResult.exceptionDetails.text ===
|
|
1000
|
-
'Error: startNodes in css selector should be HTMLElement') {
|
|
1001
|
-
throw new protocol_js_1.InvalidArgumentException(
|
|
1038
|
+
'Error: startNodes in css selector should be HTMLElement, Document or DocumentFragment') {
|
|
1039
|
+
throw new protocol_js_1.InvalidArgumentException('startNodes in css selector should be HTMLElement, Document or DocumentFragment');
|
|
1002
1040
|
}
|
|
1003
1041
|
throw new protocol_js_1.UnknownErrorException(`Unexpected error in selector script: ${locatorResult.exceptionDetails.text}`);
|
|
1004
1042
|
}
|