chromium-bidi 0.6.4 → 0.7.0
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 +38 -2
- package/lib/THIRD_PARTY_NOTICES +0 -27
- package/lib/cjs/bidiMapper/CommandProcessor.js +2 -2
- package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/cdp/CdpTargetManager.js +6 -2
- package/lib/cjs/bidiMapper/modules/cdp/CdpTargetManager.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.d.ts +2 -7
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js +120 -73
- package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/input/ActionDispatcher.js +9 -2
- package/lib/cjs/bidiMapper/modules/input/ActionDispatcher.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/input/InputProcessor.d.ts +1 -2
- package/lib/cjs/bidiMapper/modules/input/InputProcessor.js +1 -3
- 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/log/LogManager.js +41 -6
- package/lib/cjs/bidiMapper/modules/log/LogManager.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkProcessor.js +2 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkRequest.js +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkRequest.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkStorage.d.ts +1 -1
- package/lib/cjs/bidiMapper/modules/network/NetworkStorage.js +2 -3
- package/lib/cjs/bidiMapper/modules/network/NetworkStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/script/Realm.js +1 -0
- package/lib/cjs/bidiMapper/modules/script/Realm.js.map +1 -1
- package/lib/cjs/bidiMapper/modules/script/ScriptProcessor.d.ts +2 -1
- package/lib/cjs/bidiMapper/modules/script/ScriptProcessor.js +28 -1
- package/lib/cjs/bidiMapper/modules/script/ScriptProcessor.js.map +1 -1
- package/lib/cjs/bidiServer/WebSocketServer.js +8 -4
- package/lib/cjs/bidiServer/WebSocketServer.js.map +1 -1
- package/lib/cjs/bidiServer/index.js.map +1 -1
- package/lib/cjs/protocol-parser/generated/webdriver-bidi.d.ts +150 -150
- package/lib/cjs/utils/UrlPattern-browser.d.ts +24 -0
- package/lib/cjs/utils/UrlPattern-browser.js +26 -0
- package/lib/cjs/utils/UrlPattern-browser.js.map +1 -0
- package/lib/cjs/utils/UrlPattern.js +1 -0
- package/lib/cjs/utils/UrlPattern.js.map +1 -1
- package/lib/iife/mapperTab.js +238 -134
- package/lib/iife/mapperTab.js.map +1 -1
- package/package.json +23 -17
package/.browser
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
chrome@
|
|
1
|
+
chrome@130.0.6693.0
|
package/README.md
CHANGED
|
@@ -452,6 +452,43 @@ new command, add it to `_processCommand`, write and call processor for it.
|
|
|
452
452
|
|
|
453
453
|
### Publish new `npm` release
|
|
454
454
|
|
|
455
|
+
#### Release branches
|
|
456
|
+
|
|
457
|
+
`chromium-bidi` maintains release branches corresponding to Chrome releases. The
|
|
458
|
+
branches are named using the following pattern: `releases/m$MAJOR_VERSION`.
|
|
459
|
+
|
|
460
|
+
The new release branch is created as soon a new major browser version is
|
|
461
|
+
published by the
|
|
462
|
+
[update-browser-version](https://github.com/GoogleChromeLabs/chromium-bidi/blob/main/.github/workflows/update-browser-version.yml)
|
|
463
|
+
job:
|
|
464
|
+
|
|
465
|
+
- the PR created by this job should be marked as a feature and it should cause the
|
|
466
|
+
major package version to be bumped.
|
|
467
|
+
- once the browser version is bumped, the commit preceding the version bump
|
|
468
|
+
should be used to create a release branch for major version pinned before the bump.
|
|
469
|
+
|
|
470
|
+
Changes that need to be cherry-picked into the release branch should be marked
|
|
471
|
+
as patches. Either major or minor version bumps are not allowed on the release
|
|
472
|
+
branch.
|
|
473
|
+
|
|
474
|
+
Example workflow:
|
|
475
|
+
|
|
476
|
+
```mermaid
|
|
477
|
+
gitGraph
|
|
478
|
+
commit id: "feat: featA"
|
|
479
|
+
commit id: "release: v0.5.0"
|
|
480
|
+
branch release/m129
|
|
481
|
+
checkout main
|
|
482
|
+
commit id: "feat: roll Chrome to M130 from 129"
|
|
483
|
+
commit id: "release: v0.6.0"
|
|
484
|
+
commit id: "fix: for m129"
|
|
485
|
+
checkout release/m129
|
|
486
|
+
cherry-pick id: "fix: for m129"
|
|
487
|
+
commit id: "release: v0.5.1 "
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
Currently, the releases from release branches are not automated.
|
|
491
|
+
|
|
455
492
|
#### Automatic release
|
|
456
493
|
|
|
457
494
|
We use [release-please](https://github.com/googleapis/release-please) to automate releases. When a release should be done, check for the release PR in our [pull requests](https://github.com/GoogleChromeLabs/chromium-bidi/pulls) and merge it.
|
|
@@ -485,8 +522,7 @@ Otherwise submit an issue for a project maintainer.
|
|
|
485
522
|
2. Update the mapper version:
|
|
486
523
|
|
|
487
524
|
```shell
|
|
488
|
-
third_party/bidimapper/
|
|
489
|
-
third_party/bidimapper/build.sh
|
|
525
|
+
third_party/bidimapper/roll_bidmapper
|
|
490
526
|
```
|
|
491
527
|
|
|
492
528
|
3. Submit a CL with bug `chromedriver:4226`.
|
package/lib/THIRD_PARTY_NOTICES
CHANGED
|
@@ -26,33 +26,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
26
26
|
SOFTWARE.
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
-------------------- DEPENDENCY DIVIDER --------------------
|
|
30
|
-
|
|
31
|
-
Name: urlpattern-polyfill
|
|
32
|
-
URL: https://github.com/kenchris/urlpattern-polyfill
|
|
33
|
-
Version: 10.0.0
|
|
34
|
-
License: MIT
|
|
35
|
-
|
|
36
|
-
Copyright 2020 Intel Corporation
|
|
37
|
-
|
|
38
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
39
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
40
|
-
in the Software without restriction, including without limitation the rights
|
|
41
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
42
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
43
|
-
furnished to do so, subject to the following conditions:
|
|
44
|
-
|
|
45
|
-
The above copyright notice and this permission notice shall be included in
|
|
46
|
-
all copies or substantial portions of the Software.
|
|
47
|
-
|
|
48
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
49
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
50
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
51
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
52
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
53
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
54
|
-
THE SOFTWARE.
|
|
55
|
-
|
|
56
29
|
-------------------- DEPENDENCY DIVIDER --------------------
|
|
57
30
|
|
|
58
31
|
Name: zod
|
|
@@ -53,10 +53,10 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
|
|
|
53
53
|
this.#browserProcessor = new BrowserProcessor_js_1.BrowserProcessor(browserCdpClient);
|
|
54
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
|
-
this.#inputProcessor = new InputProcessor_js_1.InputProcessor(browsingContextStorage
|
|
56
|
+
this.#inputProcessor = new InputProcessor_js_1.InputProcessor(browsingContextStorage);
|
|
57
57
|
this.#networkProcessor = new NetworkProcessor_js_1.NetworkProcessor(browsingContextStorage, networkStorage);
|
|
58
58
|
this.#permissionsProcessor = new PermissionsProcessor_js_1.PermissionsProcessor(browserCdpClient);
|
|
59
|
-
this.#scriptProcessor = new ScriptProcessor_js_1.ScriptProcessor(browsingContextStorage, realmStorage, preloadScriptStorage, logger);
|
|
59
|
+
this.#scriptProcessor = new ScriptProcessor_js_1.ScriptProcessor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, logger);
|
|
60
60
|
this.#sessionProcessor = new SessionProcessor_js_1.SessionProcessor(eventManager, browserCdpClient, initConnection);
|
|
61
61
|
this.#storageProcessor = new StorageProcessor_js_1.StorageProcessor(browserCdpClient, browsingContextStorage, logger);
|
|
62
62
|
// keep-sorted end
|
|
@@ -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;AAGnD,+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,cAAyD,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,EACtB,YAAY,CACb,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAY,CACnC,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAc,
|
|
1
|
+
{"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,7 @@ class CdpTargetManager {
|
|
|
53
53
|
});
|
|
54
54
|
cdpClient.on('Page.frameAttached', this.#handleFrameAttachedEvent.bind(this));
|
|
55
55
|
cdpClient.on('Page.frameDetached', this.#handleFrameDetachedEvent.bind(this));
|
|
56
|
+
cdpClient.on('Page.frameSubtreeWillBeDetached', this.#handleFrameSubtreeWillBeDetached.bind(this));
|
|
56
57
|
}
|
|
57
58
|
#handleFrameAttachedEvent(params) {
|
|
58
59
|
const parentBrowsingContext = this.#browsingContextStorage.findContext(params.parentFrameId);
|
|
@@ -68,7 +69,10 @@ class CdpTargetManager {
|
|
|
68
69
|
if (params.reason === 'swap') {
|
|
69
70
|
return;
|
|
70
71
|
}
|
|
71
|
-
this.#browsingContextStorage.findContext(params.frameId)?.dispose();
|
|
72
|
+
this.#browsingContextStorage.findContext(params.frameId)?.dispose(true);
|
|
73
|
+
}
|
|
74
|
+
#handleFrameSubtreeWillBeDetached(params) {
|
|
75
|
+
this.#browsingContextStorage.findContext(params.frameId)?.dispose(true);
|
|
72
76
|
}
|
|
73
77
|
#handleAttachedToTargetEvent(params, parentSessionCdpClient) {
|
|
74
78
|
const { sessionId, targetInfo } = params;
|
|
@@ -180,7 +184,7 @@ class CdpTargetManager {
|
|
|
180
184
|
}
|
|
181
185
|
const context = this.#browsingContextStorage.findContextBySession(sessionId);
|
|
182
186
|
if (context) {
|
|
183
|
-
context.dispose();
|
|
187
|
+
context.dispose(true);
|
|
184
188
|
return;
|
|
185
189
|
}
|
|
186
190
|
const worker = this.#workers.get(sessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CdpTargetManager.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/cdp/CdpTargetManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CdpTargetManager.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/cdp/CdpTargetManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,13 +33,8 @@ export declare class BrowsingContextImpl {
|
|
|
33
33
|
* @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable
|
|
34
34
|
*/
|
|
35
35
|
get navigableId(): string | undefined;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* navigations (e.g. same document navigations). Updated after each navigation,
|
|
39
|
-
* including same-document ones.
|
|
40
|
-
*/
|
|
41
|
-
get virtualNavigationId(): string;
|
|
42
|
-
dispose(): void;
|
|
36
|
+
get navigationId(): string;
|
|
37
|
+
dispose(emitContextDestroyed: boolean): void;
|
|
43
38
|
/** Returns the ID of this context. */
|
|
44
39
|
get id(): BrowsingContext.BrowsingContext;
|
|
45
40
|
/** Returns the parent context ID. */
|
|
@@ -57,10 +57,21 @@ class BrowsingContextImpl {
|
|
|
57
57
|
#previousViewport = { width: 0, height: 0 };
|
|
58
58
|
// The URL of the navigation that is currently in progress. A workaround of the CDP
|
|
59
59
|
// lacking URL for the pending navigation events, e.g. `Page.frameStartedLoading`.
|
|
60
|
-
// Set on `Page.navigate`, `Page.reload` commands
|
|
61
|
-
// `Page.frameScheduledNavigation
|
|
60
|
+
// Set on `Page.navigate`, `Page.reload` commands, on `Page.frameRequestedNavigation` or
|
|
61
|
+
// on a deprecated `Page.frameScheduledNavigation` event. The latest is required as the
|
|
62
|
+
// `Page.frameRequestedNavigation` event is not emitted for same-document navigations.
|
|
62
63
|
#pendingNavigationUrl;
|
|
63
|
-
|
|
64
|
+
// Navigation ID is required, as CDP `loaderId` cannot be mapped 1:1 to all the
|
|
65
|
+
// navigations (e.g. same document navigations). Updated after each navigation,
|
|
66
|
+
// including same-document ones.
|
|
67
|
+
#navigationId = (0, uuid_1.uuidv4)();
|
|
68
|
+
// When a new navigation is started via `BrowsingContext.navigate` with `wait` set to
|
|
69
|
+
// `None`, the command result should have `navigation` value, but mapper does not have
|
|
70
|
+
// it yet. This value will be set to `navigationId` after next .
|
|
71
|
+
#pendingNavigationId;
|
|
72
|
+
// Set if there is a pending navigation initiated by `BrowsingContext.navigate` command.
|
|
73
|
+
// The promise is resolved when the navigation is finished or rejected when canceled.
|
|
74
|
+
#pendingCommandNavigation;
|
|
64
75
|
#originalOpener;
|
|
65
76
|
// Set when the user prompt is opened. Required to provide the type in closing event.
|
|
66
77
|
#lastUserPromptType;
|
|
@@ -118,30 +129,28 @@ class BrowsingContextImpl {
|
|
|
118
129
|
get navigableId() {
|
|
119
130
|
return this.#loaderId;
|
|
120
131
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
* navigations (e.g. same document navigations). Updated after each navigation,
|
|
124
|
-
* including same-document ones.
|
|
125
|
-
*/
|
|
126
|
-
get virtualNavigationId() {
|
|
127
|
-
return this.#virtualNavigationId;
|
|
132
|
+
get navigationId() {
|
|
133
|
+
return this.#navigationId;
|
|
128
134
|
}
|
|
129
|
-
dispose() {
|
|
135
|
+
dispose(emitContextDestroyed) {
|
|
136
|
+
this.#pendingCommandNavigation?.reject(new protocol_js_1.UnknownErrorException('navigation canceled by context disposal'));
|
|
130
137
|
this.#deleteAllChildren();
|
|
131
138
|
this.#realmStorage.deleteRealms({
|
|
132
139
|
browsingContextId: this.id,
|
|
133
140
|
});
|
|
134
|
-
//
|
|
141
|
+
// Delete context from the parent.
|
|
135
142
|
if (!this.isTopLevelContext()) {
|
|
136
143
|
this.parent.#children.delete(this.id);
|
|
137
144
|
}
|
|
138
145
|
// Fail all ongoing navigations.
|
|
139
146
|
this.#failLifecycleIfNotFinished();
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
147
|
+
if (emitContextDestroyed) {
|
|
148
|
+
this.#eventManager.registerEvent({
|
|
149
|
+
type: 'event',
|
|
150
|
+
method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.ContextDestroyed,
|
|
151
|
+
params: this.serializeToBidiValue(),
|
|
152
|
+
}, this.id);
|
|
153
|
+
}
|
|
145
154
|
this.#browsingContextStorage.deleteContextById(this.id);
|
|
146
155
|
}
|
|
147
156
|
/** Returns the ID of this context. */
|
|
@@ -201,8 +210,8 @@ class BrowsingContextImpl {
|
|
|
201
210
|
addChild(childId) {
|
|
202
211
|
this.#children.add(childId);
|
|
203
212
|
}
|
|
204
|
-
#deleteAllChildren() {
|
|
205
|
-
this.directChildren.map((child) => child.dispose());
|
|
213
|
+
#deleteAllChildren(emitContextDestroyed = false) {
|
|
214
|
+
this.directChildren.map((child) => child.dispose(emitContextDestroyed));
|
|
206
215
|
}
|
|
207
216
|
get cdpTarget() {
|
|
208
217
|
return this.#cdpTarget;
|
|
@@ -275,7 +284,7 @@ class BrowsingContextImpl {
|
|
|
275
284
|
this.#pendingNavigationUrl = undefined;
|
|
276
285
|
// At the point the page is initialized, all the nested iframes from the
|
|
277
286
|
// previous page are detached and realms are destroyed.
|
|
278
|
-
//
|
|
287
|
+
// Delete children from context.
|
|
279
288
|
this.#deleteAllChildren();
|
|
280
289
|
});
|
|
281
290
|
this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => {
|
|
@@ -291,7 +300,7 @@ class BrowsingContextImpl {
|
|
|
291
300
|
method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.FragmentNavigated,
|
|
292
301
|
params: {
|
|
293
302
|
context: this.id,
|
|
294
|
-
navigation: this.#
|
|
303
|
+
navigation: this.#navigationId,
|
|
295
304
|
timestamp,
|
|
296
305
|
url: this.#url,
|
|
297
306
|
},
|
|
@@ -301,14 +310,16 @@ class BrowsingContextImpl {
|
|
|
301
310
|
if (this.id !== params.frameId) {
|
|
302
311
|
return;
|
|
303
312
|
}
|
|
304
|
-
//
|
|
305
|
-
|
|
313
|
+
// Use `pendingNavigationId` if navigation initiated by BiDi
|
|
314
|
+
// `BrowsingContext.navigate` or generate a new navigation id.
|
|
315
|
+
this.#navigationId = this.#pendingNavigationId ?? (0, uuid_1.uuidv4)();
|
|
316
|
+
this.#pendingNavigationId = undefined;
|
|
306
317
|
this.#eventManager.registerEvent({
|
|
307
318
|
type: 'event',
|
|
308
319
|
method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationStarted,
|
|
309
320
|
params: {
|
|
310
321
|
context: this.id,
|
|
311
|
-
navigation: this.#
|
|
322
|
+
navigation: this.#navigationId,
|
|
312
323
|
timestamp: BrowsingContextImpl.getTimestamp(),
|
|
313
324
|
// The URL of the navigation that is currently in progress. Although the URL
|
|
314
325
|
// is not yet known in case of user-initiated navigations, it is possible to
|
|
@@ -325,6 +336,14 @@ class BrowsingContextImpl {
|
|
|
325
336
|
}
|
|
326
337
|
this.#pendingNavigationUrl = params.url;
|
|
327
338
|
});
|
|
339
|
+
this.#cdpTarget.cdpClient.on('Page.frameRequestedNavigation', (params) => {
|
|
340
|
+
if (this.id !== params.frameId) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
// If there is a pending navigation, reject it.
|
|
344
|
+
this.#pendingCommandNavigation?.reject(new protocol_js_1.UnknownErrorException(`navigation canceled, as new navigation is requested by ${params.reason}`));
|
|
345
|
+
this.#pendingNavigationUrl = params.url;
|
|
346
|
+
});
|
|
328
347
|
this.#cdpTarget.cdpClient.on('Page.lifecycleEvent', (params) => {
|
|
329
348
|
if (this.id !== params.frameId) {
|
|
330
349
|
return;
|
|
@@ -355,7 +374,7 @@ class BrowsingContextImpl {
|
|
|
355
374
|
method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.DomContentLoaded,
|
|
356
375
|
params: {
|
|
357
376
|
context: this.id,
|
|
358
|
-
navigation: this.#
|
|
377
|
+
navigation: this.#navigationId,
|
|
359
378
|
timestamp,
|
|
360
379
|
url: this.#url,
|
|
361
380
|
},
|
|
@@ -368,7 +387,7 @@ class BrowsingContextImpl {
|
|
|
368
387
|
method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.Load,
|
|
369
388
|
params: {
|
|
370
389
|
context: this.id,
|
|
371
|
-
navigation: this.#
|
|
390
|
+
navigation: this.#navigationId,
|
|
372
391
|
timestamp,
|
|
373
392
|
url: this.#url,
|
|
374
393
|
},
|
|
@@ -523,8 +542,8 @@ class BrowsingContextImpl {
|
|
|
523
542
|
}
|
|
524
543
|
}
|
|
525
544
|
#documentChanged(loaderId) {
|
|
526
|
-
// Same document navigation.
|
|
527
545
|
if (loaderId === undefined || this.#loaderId === loaderId) {
|
|
546
|
+
// Same document navigation. Document didn't change.
|
|
528
547
|
if (this.#navigation.withinDocument.isFinished) {
|
|
529
548
|
this.#navigation.withinDocument = new Deferred_js_1.Deferred();
|
|
530
549
|
}
|
|
@@ -533,8 +552,11 @@ class BrowsingContextImpl {
|
|
|
533
552
|
}
|
|
534
553
|
return;
|
|
535
554
|
}
|
|
555
|
+
// Document changed.
|
|
536
556
|
this.#resetLifecycleIfFinished();
|
|
537
557
|
this.#loaderId = loaderId;
|
|
558
|
+
// Delete all child iframes and notify about top level destruction.
|
|
559
|
+
this.#deleteAllChildren(true);
|
|
538
560
|
}
|
|
539
561
|
#resetLifecycleIfFinished() {
|
|
540
562
|
if (this.#lifecycle.DOMContentLoaded.isFinished) {
|
|
@@ -565,61 +587,83 @@ class BrowsingContextImpl {
|
|
|
565
587
|
catch {
|
|
566
588
|
throw new protocol_js_1.InvalidArgumentException(`Invalid URL: ${url}`);
|
|
567
589
|
}
|
|
590
|
+
this.#pendingCommandNavigation?.reject(new protocol_js_1.UnknownErrorException('navigation canceled by concurrent navigation'));
|
|
568
591
|
await this.targetUnblockedOrThrow();
|
|
569
592
|
// Set the pending navigation URL to provide it in `browsingContext.navigationStarted`
|
|
570
593
|
// event.
|
|
571
594
|
// TODO: detect navigation start not from CDP. Check if
|
|
572
595
|
// `Page.frameRequestedNavigation` can be used for this purpose.
|
|
573
596
|
this.#pendingNavigationUrl = url;
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
597
|
+
const navigationId = (0, uuid_1.uuidv4)();
|
|
598
|
+
this.#pendingNavigationId = navigationId;
|
|
599
|
+
this.#pendingCommandNavigation = new Deferred_js_1.Deferred();
|
|
600
|
+
// Navigate and wait for the result. If the navigation fails, the error event is
|
|
601
|
+
// emitted and the promise is rejected.
|
|
602
|
+
const cdpNavigatePromise = (async () => {
|
|
603
|
+
const cdpNavigateResult = await this.#cdpTarget.cdpClient.sendCommand('Page.navigate', {
|
|
604
|
+
url,
|
|
605
|
+
frameId: this.id,
|
|
606
|
+
});
|
|
607
|
+
if (cdpNavigateResult.errorText) {
|
|
608
|
+
// If navigation failed, no pending navigation is left.
|
|
609
|
+
this.#pendingNavigationUrl = undefined;
|
|
610
|
+
this.#eventManager.registerEvent({
|
|
611
|
+
type: 'event',
|
|
612
|
+
method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationFailed,
|
|
613
|
+
params: {
|
|
614
|
+
context: this.id,
|
|
615
|
+
navigation: navigationId,
|
|
616
|
+
timestamp: BrowsingContextImpl.getTimestamp(),
|
|
617
|
+
url,
|
|
618
|
+
},
|
|
619
|
+
}, this.id);
|
|
620
|
+
throw new protocol_js_1.UnknownErrorException(cdpNavigateResult.errorText);
|
|
621
|
+
}
|
|
622
|
+
this.#documentChanged(cdpNavigateResult.loaderId);
|
|
623
|
+
return cdpNavigateResult;
|
|
624
|
+
})();
|
|
625
|
+
if (wait === "none" /* BrowsingContext.ReadinessState.None */) {
|
|
626
|
+
// Do not wait for the result of the navigation promise.
|
|
627
|
+
this.#pendingCommandNavigation.resolve();
|
|
628
|
+
this.#pendingCommandNavigation = undefined;
|
|
629
|
+
return {
|
|
630
|
+
navigation: navigationId,
|
|
631
|
+
url,
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
const cdpNavigateResult = await cdpNavigatePromise;
|
|
635
|
+
// Wait for either the navigation is finished or canceled by another navigation.
|
|
636
|
+
await Promise.race([
|
|
637
|
+
// No `loaderId` means same-document navigation.
|
|
638
|
+
this.#waitNavigation(wait, cdpNavigateResult.loaderId === undefined),
|
|
639
|
+
// Throw an error if the navigation is canceled.
|
|
640
|
+
this.#pendingCommandNavigation,
|
|
641
|
+
]);
|
|
642
|
+
this.#pendingCommandNavigation.resolve();
|
|
643
|
+
this.#pendingCommandNavigation = undefined;
|
|
644
|
+
return {
|
|
645
|
+
navigation: navigationId,
|
|
646
|
+
// Url can change due to redirect get the latest one.
|
|
647
|
+
url: this.#url,
|
|
648
|
+
};
|
|
649
|
+
}
|
|
650
|
+
async #waitNavigation(wait, withinDocument) {
|
|
651
|
+
if (withinDocument) {
|
|
652
|
+
await this.#navigation.withinDocument;
|
|
653
|
+
return;
|
|
593
654
|
}
|
|
594
|
-
this.#documentChanged(cdpNavigateResult.loaderId);
|
|
595
655
|
switch (wait) {
|
|
596
656
|
case "none" /* BrowsingContext.ReadinessState.None */:
|
|
597
|
-
|
|
657
|
+
return;
|
|
598
658
|
case "interactive" /* BrowsingContext.ReadinessState.Interactive */:
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
await this.#navigation.withinDocument;
|
|
602
|
-
}
|
|
603
|
-
else {
|
|
604
|
-
await this.#lifecycle.DOMContentLoaded;
|
|
605
|
-
}
|
|
606
|
-
break;
|
|
659
|
+
await this.#lifecycle.DOMContentLoaded;
|
|
660
|
+
return;
|
|
607
661
|
case "complete" /* BrowsingContext.ReadinessState.Complete */:
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
await this.#navigation.withinDocument;
|
|
611
|
-
}
|
|
612
|
-
else {
|
|
613
|
-
await this.#lifecycle.load;
|
|
614
|
-
}
|
|
615
|
-
break;
|
|
662
|
+
await this.#lifecycle.load;
|
|
663
|
+
return;
|
|
616
664
|
}
|
|
617
|
-
return {
|
|
618
|
-
navigation: this.#virtualNavigationId,
|
|
619
|
-
// Url can change due to redirect get the latest one.
|
|
620
|
-
url: wait === "none" /* BrowsingContext.ReadinessState.None */ ? url : this.#url,
|
|
621
|
-
};
|
|
622
665
|
}
|
|
666
|
+
// TODO: support concurrent navigations analogous to `navigate`.
|
|
623
667
|
async reload(ignoreCache, wait) {
|
|
624
668
|
await this.targetUnblockedOrThrow();
|
|
625
669
|
this.#resetLifecycleIfFinished();
|
|
@@ -637,7 +681,7 @@ class BrowsingContextImpl {
|
|
|
637
681
|
break;
|
|
638
682
|
}
|
|
639
683
|
return {
|
|
640
|
-
navigation: this.#
|
|
684
|
+
navigation: this.#navigationId,
|
|
641
685
|
url: this.url,
|
|
642
686
|
};
|
|
643
687
|
}
|
|
@@ -910,7 +954,7 @@ class BrowsingContextImpl {
|
|
|
910
954
|
}
|
|
911
955
|
return [...element.querySelectorAll(cssSelector)];
|
|
912
956
|
};
|
|
913
|
-
startNodes = startNodes.length > 0 ? startNodes : [document
|
|
957
|
+
startNodes = startNodes.length > 0 ? startNodes : [document];
|
|
914
958
|
const returnedNodes = startNodes
|
|
915
959
|
.map((startNode) =>
|
|
916
960
|
// TODO: stop search early if `maxNodeCount` is reached.
|
|
@@ -943,7 +987,7 @@ class BrowsingContextImpl {
|
|
|
943
987
|
}
|
|
944
988
|
return returnedNodes;
|
|
945
989
|
};
|
|
946
|
-
startNodes = startNodes.length > 0 ? startNodes : [document
|
|
990
|
+
startNodes = startNodes.length > 0 ? startNodes : [document];
|
|
947
991
|
const returnedNodes = startNodes
|
|
948
992
|
.map((startNode) =>
|
|
949
993
|
// TODO: stop search early if `maxNodeCount` is reached.
|
|
@@ -1121,7 +1165,10 @@ class BrowsingContextImpl {
|
|
|
1121
1165
|
collect(childNodes, selector);
|
|
1122
1166
|
}
|
|
1123
1167
|
}
|
|
1124
|
-
startNodes =
|
|
1168
|
+
startNodes =
|
|
1169
|
+
startNodes.length > 0
|
|
1170
|
+
? startNodes
|
|
1171
|
+
: Array.from(document.documentElement.children).filter((c) => c instanceof HTMLElement);
|
|
1125
1172
|
collect(startNodes, {
|
|
1126
1173
|
role,
|
|
1127
1174
|
name,
|