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.
Files changed (64) hide show
  1. package/README.md +12 -12
  2. package/lib/cjs/bidiMapper/BidiServer.d.ts +1 -1
  3. package/lib/cjs/bidiMapper/CdpConnection.d.ts +1 -1
  4. package/lib/cjs/bidiMapper/CommandProcessor.d.ts +2 -2
  5. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.d.ts +58 -0
  6. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js +92 -0
  7. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js.map +1 -0
  8. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +11 -8
  9. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +61 -62
  10. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  11. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +4 -4
  12. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +48 -18
  13. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  14. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +10 -6
  15. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +28 -19
  16. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
  17. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js +2 -2
  18. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js.map +1 -1
  19. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +17 -4
  20. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +35 -13
  21. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
  22. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +4 -4
  23. package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
  24. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +5 -5
  25. package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +1 -1
  26. package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +2 -2
  27. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +3 -3
  28. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -1
  29. package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +1 -1
  30. package/lib/cjs/bidiMapper/domains/network/networkRequest.js +23 -14
  31. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -1
  32. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +2 -2
  33. package/lib/cjs/bidiMapper/domains/script/realm.js +1 -1
  34. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  35. package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +5 -1
  36. package/lib/cjs/bidiMapper/domains/script/realmStorage.js +5 -1
  37. package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
  38. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +1 -1
  39. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  40. package/lib/cjs/bidiServer/index.js +8 -6
  41. package/lib/cjs/bidiServer/index.js.map +1 -1
  42. package/lib/cjs/bidiServer/mapperServer.js +8 -3
  43. package/lib/cjs/bidiServer/mapperServer.js.map +1 -1
  44. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  45. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  46. package/lib/cjs/cdp/cdpClient.d.ts +1 -1
  47. package/lib/cjs/cdp/cdpConnection.js +8 -3
  48. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  49. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  50. package/lib/cjs/protocol/protocol.d.ts +70 -62
  51. package/lib/cjs/protocol/protocol.js +1 -0
  52. package/lib/cjs/protocol/protocol.js.map +1 -1
  53. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  54. package/lib/cjs/protocol-parser/protocol-parser.d.ts +74 -25
  55. package/lib/cjs/protocol-parser/protocol-parser.js +23 -21
  56. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  57. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  58. package/lib/cjs/utils/idWrapper.js.map +1 -1
  59. package/lib/cjs/utils/log.d.ts +1 -1
  60. package/lib/cjs/utils/transportStub.spec.d.ts +1 -1
  61. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  62. package/lib/iife/mapperTab.js +2 -2
  63. package/lib/iife/mapperTab.js.map +1 -1
  64. 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 `WPT_BROWSER_PATH`
299
+ #### 5. Set `BROWSER_BIN`
300
300
 
301
- Set the `WPT_BROWSER_PATH` environment variable to a Chrome, Edge or Chromium binary to launch.
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 WPT_BROWSER_PATH="/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary"
307
- export WPT_BROWSER_PATH="/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev"
308
- export WPT_BROWSER_PATH="/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta"
309
- export WPT_BROWSER_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
310
- export WPT_BROWSER_PATH="/Applications/Chromium.app/Contents/MacOS/Chromium"
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 WPT_BROWSER_PATH="/Applications/Microsoft Edge Canary.app/Contents/MacOS/Microsoft Edge Canary"
314
- export WPT_BROWSER_PATH="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
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 "$WPT_BROWSER_PATH" \
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 "$WPT_BROWSER_PATH" \
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
- declare type BidiServerEvents = {
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
- declare type CdpEvents = {
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
- declare type CommandProcessorEvents = {
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.SubscribeParameters;
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, Script } 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, contextId: CommonDataTypes.BrowsingContext, parentId: CommonDataTypes.BrowsingContext | null, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn): BrowsingContextImpl;
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 contextId(): CommonDataTypes.BrowsingContext;
34
+ get id(): CommonDataTypes.BrowsingContext;
35
35
  /** Returns the parent context ID. */
36
36
  get parentId(): CommonDataTypes.BrowsingContext | null;
37
- /** Returns all children contexts. */
38
- get children(): BrowsingContextImpl[];
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(child: BrowsingContextImpl): void;
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 the current context. */
27
- #contextId;
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
- * Children contexts.
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, contextId, parentId, eventManager, browsingContextStorage, logger) {
53
+ constructor(cdpTarget, realmStorage, id, parentId, eventManager, browsingContextStorage, logger) {
57
54
  this.#cdpTarget = cdpTarget;
58
55
  this.#realmStorage = realmStorage;
59
- this.#contextId = contextId;
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, contextId, parentId, eventManager, browsingContextStorage, logger) {
67
- const context = new BrowsingContextImpl(cdpTarget, realmStorage, contextId, parentId, eventManager, browsingContextStorage, logger);
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.contextId);
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.#deleteChildren();
82
+ this.#deleteAllChildren();
83
83
  this.#realmStorage.deleteRealms({
84
- browsingContextId: this.contextId,
84
+ browsingContextId: this.id,
85
85
  });
86
86
  // Remove context from the parent.
87
- if (this.parentId !== null) {
88
- const parent = this.#browsingContextStorage.getContext(this.parentId);
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.contextId);
95
- this.#browsingContextStorage.deleteContext(this.contextId);
93
+ }, this.id);
94
+ this.#browsingContextStorage.deleteContextById(this.id);
96
95
  }
97
96
  /** Returns the ID of this context. */
98
- get contextId() {
99
- return this.#contextId;
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 all children contexts. */
106
- get children() {
107
- return Array.from(this.#children.values());
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(child) {
117
- this.#children.set(child.contextId, child);
127
+ addChild(childId) {
128
+ this.#children.add(childId);
118
129
  }
119
- #deleteChildren() {
120
- this.children.map((child) => child.delete());
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.#contextId}`);
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.contextId,
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.contextId,
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.contextId,
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.#contextId,
182
+ context: this.#id,
172
183
  url: this.url,
173
184
  children: maxDepth > 0
174
- ? this.children.map((c) => c.serializeToBidiValue(maxDepth - 1, false))
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.contextId !== params.targetInfo.targetId) {
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.contextId !== params.frame.id) {
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 initiated, all the nested iframes from the
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's children.
194
- this.#deleteChildren();
204
+ // Remove children from context.
205
+ this.#deleteAllChildren();
195
206
  });
196
207
  this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => {
197
- if (this.contextId !== params.frameId) {
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.contextId !== params.frameId) {
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.contextId,
240
+ context: this.id,
230
241
  navigation: this.#loaderId,
231
242
  timestamp,
232
243
  url: this.#url,
233
244
  },
234
- }, this.contextId);
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.contextId,
252
+ context: this.id,
242
253
  navigation: this.#loaderId,
243
254
  timestamp,
244
255
  url: this.#url,
245
256
  },
246
- }, this.contextId);
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.contextId) {
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.contextId, params.context.id, this.#getOrigin(params),
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.contextId,
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":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,0EAA+D;AAC/D,+DAKuC;AACvC,kDAAwD;AACxD,4DAAoD;AAEpD,iDAAyC;AAMzC,MAAa,mBAAmB;IAC9B,qCAAqC;IAC5B,UAAU,CAAkC;IAErD;;;OAGG;IACM,SAAS,CAAyC;IAE3D;;;OAGG;IACM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEnD,uBAAuB,CAAyB;IAEhD,OAAO,GAAG;QACjB,mBAAmB,EAAE,IAAI,sBAAQ,EAAQ;QACzC,IAAI,EAAE;YACJ,uBAAuB,EACrB,IAAI,sBAAQ,EAA8C;YAC5D,cAAc,EAAE;gBACd,gBAAgB,EAAE,IAAI,sBAAQ,EAAqC;gBACnE,IAAI,EAAE,IAAI,sBAAQ,EAAqC;aACxD;SACF;KACF,CAAC;IAEF,IAAI,GAAG,aAAa,CAAC;IACZ,aAAa,CAAgB;IAC7B,aAAa,CAAe;IACrC,SAAS,GAAkB,IAAI,CAAC;IAChC,UAAU,CAAY;IACtB,kBAAkB,CAAoB;IAC7B,OAAO,CAAY;IAE5B,YACE,SAAoB,EACpB,YAA0B,EAC1B,SAA0C,EAC1C,QAAgD,EAChD,YAA2B,EAC3B,sBAA8C,EAC9C,MAAiB;QAEjB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,MAAM,CACX,SAAoB,EACpB,YAA0B,EAC1B,SAA0C,EAC1C,QAAgD,EAChD,YAA2B,EAC3B,sBAA8C,EAC9C,MAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CACrC,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,MAAM,CACP,CAAC;QAEF,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE3C,YAAY,CAAC,aAAa,CACxB;YACE,MAAM,EAAE,6BAAe,CAAC,UAAU,CAAC,mBAAmB;YACtD,MAAM,EAAE,OAAO,CAAC,oBAAoB,EAAE;SACvC,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;YAC9B,iBAAiB,EAAE,IAAI,CAAC,SAAS;SAClC,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9B;YACE,MAAM,EAAE,6BAAe,CAAC,UAAU,CAAC,qBAAqB;YACxD,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE;SACpC,EACD,IAAI,CAAC,SAAS,CACf,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,sCAAsC;IACtC,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,KAA0B;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,aAAa;QACf,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YACzC,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,UAAU,EAAE,CAC3D,CAAC;SACH;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAA2B;QAClD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE;YAC3C,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YACjD,iBAAiB,EAAE,IAAI,CAAC,SAAS;YACjC,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,0BAA0B,EAAE;gBACtE,OAAO,EAAE,IAAI,CAAC,SAAS;gBACvB,SAAS,EAAE,OAAO;aACnB,CAAC,CAAC;YACH,sEAAsE;YACtE,4BAA4B;YAC5B,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC7C,iBAAiB,EAAE,IAAI,CAAC,SAAS;gBACjC,OAAO;aACR,CAAC,CAAC;SACJ;QACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,MAAM,KAAK,CAAC,WAAW,OAAO,kBAAkB,CAAC,CAAC;SACnD;QACD,OAAO,cAAc,CAAC,CAAC,CAAE,CAAC;IAC5B,CAAC;IAED,oBAAoB,CAClB,QAAQ,GAAG,CAAC,EACZ,cAAc,GAAG,IAAI;QAErB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EACN,QAAQ,GAAG,CAAC;gBACV,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,CAC5C;gBACH,CAAC,CAAC,IAAI;YACV,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAC1B,0BAA0B,EAC1B,CAAC,MAA8C,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;gBACjD,OAAO;aACR;YACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAC1B,qBAAqB,EACrB,CAAC,MAAyC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBACtC,OAAO;aACR;YACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAEhE,sEAAsE;YACtE,uDAAuD;YACvD,6BAA6B;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAC1B,8BAA8B,EAC9B,CAAC,MAAkD,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,OAAO,EAAE;gBACrC,OAAO;aACR;YAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAC1B,qBAAqB,EACrB,CAAC,MAAyC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,OAAO,EAAE;gBACrC,OAAO;aACR;YAED,iEAAiE;YACjE,mEAAmE;YACnE,wBAAwB;YACxB,qFAAqF;YACrF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAEvC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aAC5C;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,OAAO;aACR;YAED,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;gBACtC,OAAO;aACR;YAED,QAAQ,MAAM,CAAC,IAAI,EAAE;gBACnB,KAAK,kBAAkB;oBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClE,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9B;wBACE,MAAM,EAAE,6BAAe,CAAC,UAAU,CAAC,qBAAqB;wBACxD,MAAM,EAAE;4BACN,OAAO,EAAE,IAAI,CAAC,SAAS;4BACvB,UAAU,EAAE,IAAI,CAAC,SAAS;4BAC1B,SAAS;4BACT,GAAG,EAAE,IAAI,CAAC,IAAI;yBACf;qBACF,EACD,IAAI,CAAC,SAAS,CACf,CAAC;oBACF,MAAM;gBAER,KAAK,MAAM;oBACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACtD,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9B;wBACE,MAAM,EAAE,6BAAe,CAAC,UAAU,CAAC,SAAS;wBAC5C,MAAM,EAAE;4BACN,OAAO,EAAE,IAAI,CAAC,SAAS;4BACvB,UAAU,EAAE,IAAI,CAAC,SAAS;4BAC1B,SAAS;4BACT,GAAG,EAAE,IAAI,CAAC,IAAI;yBACf;qBACF,EACD,IAAI,CAAC,SAAS,CACf,CAAC;oBACF,MAAM;aACT;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAC1B,iCAAiC,EACjC,CAAC,MAAqD,EAAE,EAAE;YACxD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrD,OAAO;aACR;YACD,sDAAsD;YACtD,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAClE,OAAO;aACR;YACD,MAAM,KAAK,GAAG,IAAI,gBAAK,CACrB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,uBAAuB,EAC5B,MAAM,CAAC,OAAO,CAAC,QAAQ,EACvB,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,OAAO,CAAC,EAAE,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvB,6BAA6B;YAC7B,QAAQ;YACR,mCAAmC;YACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;gBACxC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;gBACrB,CAAC,CAAC,SAAS,EACb,IAAI,CAAC,UAAU,CAAC,YAAY,EAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,EACzB,IAAI,CAAC,aAAa,CACnB,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;gBACpC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAC1B,mCAAmC,EACnC,CAAC,MAAuD,EAAE,EAAE;YAC1D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBAC9B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;gBAC1C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;aAC9C,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACpE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBAC9B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;aAC3C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,MAAqD;QAC9D,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;YAC9C,wEAAwE;YACxE,uBAAuB;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SAClC;QACD,sFAAsF;QACtF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,gBAAgB,CAAC,QAAiB;QAChC,4BAA4B;QAC5B,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YACzD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE;gBACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB;oBACvC,IAAI,sBAAQ,EAA8C,CAAC;aAC9D;YACD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,IAAI,sBAAQ,EAAQ,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,OAAO,EAAE,CAAC,gBAAO,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB;gBAC/C,IAAI,sBAAQ,EAAqC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,OAAO,EAAE,CAAC,gBAAO,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE;YACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;gBACnC,IAAI,sBAAQ,EAAqC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,OAAO,EAAE,CAAC,gBAAO,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,GAAW,EACX,IAAoC;QAEpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,+BAA+B;QAC/B,MAAM,iBAAiB,GACrB,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;YAC3D,GAAG;YACH,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,CAAC,CAAC;QAEL,IAAI,iBAAiB,CAAC,SAAS,EAAE;YAC/B,MAAM,IAAI,qBAAO,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAElD,6BAA6B;QAC7B,QAAQ,IAAI,EAAE;YACZ,KAAK,MAAM;gBACT,MAAM;YAER,KAAK,aAAa;gBAChB,gDAAgD;gBAChD,IAAI,iBAAiB,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAC5C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC;iBACjD;qBAAM;oBACL,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;iBACzD;gBACD,MAAM;YAER,KAAK,UAAU;gBACb,gDAAgD;gBAChD,IAAI,iBAAiB,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAC5C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC;iBACjD;qBAAM;oBACL,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;iBAC7C;gBACD,MAAM;SACT;QAED,OAAO;YACL,MAAM,EAAE;gBACN,UAAU,EAAE,iBAAiB,CAAC,QAAQ,IAAI,IAAI;gBAC9C,GAAG;aACJ;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnC,mEAAmE;YACnE,oDAAoD;YACpD,qEAAqE;YACrE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,EAAE,CAAC;SACpE,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAuC;QAEvC,MAAM,mBAAmB,GAAoC;YAC3D,eAAe,EAAE,MAAM,CAAC,UAAU;YAClC,SAAS,EAAE,MAAM,CAAC,WAAW,KAAK,WAAW;YAC7C,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAC9C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,iBAAiB,EAAE,CAAC,MAAM,CAAC,WAAW;SACvC,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;YACzB,mBAAmB,CAAC,YAAY,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACvE;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;YACvB,mBAAmB,CAAC,UAAU,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACnE;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;YACxB,mBAAmB,CAAC,WAAW,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACrE;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,mBAAmB,CAAC,SAAS,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACjE;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;YACvB,mBAAmB,CAAC,WAAW,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpE;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;YACtB,mBAAmB,CAAC,UAAU,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClE;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CACxD,iBAAiB,EACjB,mBAAmB,CACpB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAyC;QAEzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CACxD,uCAAuC,EACvC;YACE,+DAA+D;YAC/D,MAAM,EAAE,IAAI,MAAM,CAAC,UAAU,MAAM;YACnC,SAAS,EAAE,MAAM,CAAC,OAAO;SAC1B,CACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,UAAU;aAC1B;SACF,CAAC;IACJ,CAAC;CACF;AAriBD,kDAqiBC"}
1
+ {"version":3,"file":"browsingContextImpl.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/browsingContextImpl.ts"],"names":[],"mappings":"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"}