chromium-bidi 0.4.6 → 0.4.8

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