chromium-bidi 0.9.1 → 0.10.1

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 (71) hide show
  1. package/.browser +1 -1
  2. package/README.md +81 -3
  3. package/lib/cjs/bidiMapper/BidiNoOpParser.d.ts +3 -0
  4. package/lib/cjs/bidiMapper/BidiNoOpParser.js +9 -0
  5. package/lib/cjs/bidiMapper/BidiNoOpParser.js.map +1 -1
  6. package/lib/cjs/bidiMapper/BidiParser.d.ts +3 -0
  7. package/lib/cjs/bidiMapper/CommandProcessor.js +5 -5
  8. package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
  9. package/lib/cjs/bidiMapper/modules/bluetooth/BluetoothProcessor.js +4 -0
  10. package/lib/cjs/bidiMapper/modules/bluetooth/BluetoothProcessor.js.map +1 -1
  11. package/lib/cjs/bidiMapper/modules/browser/BrowserProcessor.d.ts +3 -1
  12. package/lib/cjs/bidiMapper/modules/browser/BrowserProcessor.js +32 -1
  13. package/lib/cjs/bidiMapper/modules/browser/BrowserProcessor.js.map +1 -1
  14. package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js +84 -40
  15. package/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js.map +1 -1
  16. package/lib/cjs/bidiMapper/modules/input/InputSource.d.ts +6 -6
  17. package/lib/cjs/bidiMapper/modules/network/NetworkStorage.d.ts +1 -1
  18. package/lib/cjs/bidiTab/BidiParser.d.ts +3 -0
  19. package/lib/cjs/bidiTab/BidiParser.js +26 -7
  20. package/lib/cjs/bidiTab/BidiParser.js.map +1 -1
  21. package/lib/cjs/protocol/generated/webdriver-bidi.d.ts +5 -3
  22. package/lib/cjs/protocol/protocol.js +17 -7
  23. package/lib/cjs/protocol/protocol.js.map +1 -1
  24. package/lib/cjs/protocol-parser/generated/webdriver-bidi-bluetooth.d.ts +26 -26
  25. package/lib/cjs/protocol-parser/generated/webdriver-bidi.d.ts +540 -124
  26. package/lib/cjs/protocol-parser/generated/webdriver-bidi.js +5 -3
  27. package/lib/cjs/protocol-parser/generated/webdriver-bidi.js.map +1 -1
  28. package/lib/cjs/protocol-parser/protocol-parser.d.ts +3 -0
  29. package/lib/cjs/protocol-parser/protocol-parser.js +30 -7
  30. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  31. package/lib/cjs/utils/Deferred.d.ts +1 -1
  32. package/lib/cjs/utils/Deferred.js.map +1 -1
  33. package/lib/cjs/utils/UrlHelpers.d.ts +8 -0
  34. package/lib/cjs/utils/UrlHelpers.js +52 -0
  35. package/lib/cjs/utils/UrlHelpers.js.map +1 -0
  36. package/lib/esm/bidiMapper/BidiNoOpParser.d.ts +3 -0
  37. package/lib/esm/bidiMapper/BidiNoOpParser.js +9 -0
  38. package/lib/esm/bidiMapper/BidiNoOpParser.js.map +1 -1
  39. package/lib/esm/bidiMapper/BidiParser.d.ts +3 -0
  40. package/lib/esm/bidiMapper/CommandProcessor.js +5 -5
  41. package/lib/esm/bidiMapper/CommandProcessor.js.map +1 -1
  42. package/lib/esm/bidiMapper/modules/bluetooth/BluetoothProcessor.js +4 -0
  43. package/lib/esm/bidiMapper/modules/bluetooth/BluetoothProcessor.js.map +1 -1
  44. package/lib/esm/bidiMapper/modules/browser/BrowserProcessor.d.ts +3 -1
  45. package/lib/esm/bidiMapper/modules/browser/BrowserProcessor.js +32 -1
  46. package/lib/esm/bidiMapper/modules/browser/BrowserProcessor.js.map +1 -1
  47. package/lib/esm/bidiMapper/modules/context/BrowsingContextImpl.js +84 -40
  48. package/lib/esm/bidiMapper/modules/context/BrowsingContextImpl.js.map +1 -1
  49. package/lib/esm/bidiMapper/modules/input/InputSource.d.ts +6 -6
  50. package/lib/esm/bidiMapper/modules/network/NetworkStorage.d.ts +1 -1
  51. package/lib/esm/bidiServer/BrowserInstance.js +2 -1
  52. package/lib/esm/bidiServer/BrowserInstance.js.map +1 -1
  53. package/lib/esm/bidiTab/BidiParser.d.ts +3 -0
  54. package/lib/esm/bidiTab/BidiParser.js +9 -0
  55. package/lib/esm/bidiTab/BidiParser.js.map +1 -1
  56. package/lib/esm/protocol/generated/webdriver-bidi.d.ts +5 -3
  57. package/lib/esm/protocol-parser/generated/webdriver-bidi-bluetooth.d.ts +26 -26
  58. package/lib/esm/protocol-parser/generated/webdriver-bidi.d.ts +540 -124
  59. package/lib/esm/protocol-parser/generated/webdriver-bidi.js +5 -3
  60. package/lib/esm/protocol-parser/generated/webdriver-bidi.js.map +1 -1
  61. package/lib/esm/protocol-parser/protocol-parser.d.ts +3 -0
  62. package/lib/esm/protocol-parser/protocol-parser.js +13 -0
  63. package/lib/esm/protocol-parser/protocol-parser.js.map +1 -1
  64. package/lib/esm/utils/Deferred.d.ts +1 -1
  65. package/lib/esm/utils/Deferred.js.map +1 -1
  66. package/lib/esm/utils/UrlHelpers.d.ts +8 -0
  67. package/lib/esm/utils/UrlHelpers.js +49 -0
  68. package/lib/esm/utils/UrlHelpers.js.map +1 -0
  69. package/lib/iife/mapperTab.js +209 -49
  70. package/lib/iife/mapperTab.js.map +1 -1
  71. package/package.json +15 -15
package/.browser CHANGED
@@ -1 +1 @@
1
- chrome@132.0.6791.0
1
+ chrome@133.0.6857.0
package/README.md CHANGED
@@ -252,8 +252,13 @@ npm run unit
252
252
 
253
253
  ### E2E tests
254
254
 
255
- The E2E tests are written using Python, in order to learn how to eventually do
256
- this in web-platform-tests.
255
+ The e2e tests serve the following purposes:
256
+
257
+ 1. Brief checks of the scenarios (the detailed check is done in WPT)
258
+ 2. Test Chromium-specific behavior nuances
259
+ 3. Add a simple setup for engaging the specific command
260
+
261
+ The E2E tests are written using Python, in order to more-or-less align with the web-platform-tests.
257
262
 
258
263
  #### Installation
259
264
 
@@ -525,7 +530,7 @@ Otherwise submit an issue for a project maintainer.
525
530
  third_party/bidimapper/roll_bidmapper
526
531
  ```
527
532
 
528
- 3. Submit a CL with bug `chromedriver:4226`.
533
+ 3. Submit a CL with bug `42323268` ([link](https://crbug.com/42323268)).
529
534
 
530
535
  4. [Regenerate WPT expectations or baselines](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/run_web_platform_tests.md#test-expectations-and-baselines):
531
536
 
@@ -540,3 +545,76 @@ third_party/bidimapper/roll_bidmapper
540
545
  Commit the changes (if any), and upload the new patch to the CL.
541
546
 
542
547
  5. Add appropriate reviewers or comment the CL link on the PR.
548
+
549
+ ## Adding new command
550
+
551
+ Want to add a shiny new command to WebDriver BiDi for Chromium? Here's the playbook:
552
+
553
+ ### Prerequisites
554
+
555
+ #### Specification
556
+
557
+ The WebDriver BiDi [module](https://w3c.github.io/webdriver-bidi/#protocol-modules), [command](https://w3c.github.io/webdriver-bidi/#commands), or [event](https://w3c.github.io/webdriver-bidi/#events) must be specified either in the [WebDriver BiDi specification](https://w3c.github.io/webdriver-bidi) or as an extension in a separate specification (e.g., the [Permissions specification](https://www.w3.org/TR/permissions/#automation-webdriver-bidi)). The specification should include the command's type definitions in valid [CDDL](https://datatracker.ietf.org/doc/html/rfc8610) format.
558
+
559
+ #### WPT wdspec tests
560
+
561
+ You'll need tests to prove your command works as expected. These tests should be written using [WPT wdspec](https://web-platform-tests.org/writing-tests/wdspec.html) and submitted along with the spec itself. Don't forget to roll the WPT repo into the Mapper ([dependabot](https://github.com/GoogleChromeLabs/chromium-bidi/network/updates/10663151/jobs) can help, and you will likely need to tweak some expectations afterward).
562
+
563
+ #### CDP implementation
564
+
565
+ Make sure Chromium already has the CDP methods your command will rely on.
566
+
567
+ ### Update CDDL types
568
+
569
+ 1. If your command lives in a separate spec, add a link to that spec in the ["Build WebDriverBiDi types"](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/.github/workflows/update-bidi-types.yml#L27) GitHub action (check out the ["bluetooth" pull request](https://github.com/GoogleChromeLabs/chromium-bidi/pull/2585) for an example).
570
+ 2. Run the ["Update WebdriverBiDi types"](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/update-bidi-types.yml) GitHub action. This will create a pull request with your new types. If you added a command, this PR will have a failing check complaining about a non-exhaustive switch statement:
571
+ > error: Switch is not exhaustive. Cases not matched: "{NEW_COMMAND_NAME}" @typescript-eslint/switch-exhaustiveness-check
572
+ 3. Update the created pull request. Add your new command to [`CommandProcessor.#processCommand`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/CommandProcessor.ts#L140). For now, just have it throw an UnknownErrorException (see the [example](https://github.com/GoogleChromeLabs/chromium-bidi/pull/2647/files#diff-7f06ce28b8514fd75b759d217bff9f5a471b657bcf78bd893cc291c7945c1cacR169) for how to do this).
573
+
574
+ ```typescript
575
+ case '{NEW_COMMAND_NAME}':
576
+ throw new UnknownErrorException(
577
+ `Method ${command.method} is not implemented.`,
578
+ );
579
+ ```
580
+
581
+ 4. Merge it! Standard PR process: create, review, merge.
582
+
583
+ ### Implement the new command
584
+
585
+ [`CommandProcessor.#processCommand`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/CommandProcessor.ts#L140) handles parsing parameters and running your command.
586
+
587
+ #### (only if the new command has non-empty parameters) parse command parameters
588
+
589
+ If your command has parameters, update the [`BidiCommandParameterParser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/BidiParser.ts#L31) and implement the parsing logic in [`BidiNoOpParser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/BidiNoOpParser.ts#L209), [`BidiParser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiTab/BidiParser.ts#L182) and [`protocol-parser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/protocol-parser/protocol-parser.ts#L386). Look at the [example](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/BidiParser.ts#L97) for guidance.
590
+
591
+ #### Implement the new command
592
+
593
+ Write the core logic for your command in the appropriate domain processor. Again, [example](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/modules/permissions/PermissionsProcessor.ts#L32) is your friend.
594
+
595
+ #### Call the domain processor's method
596
+
597
+ Call your new domain processor method from `CommandProcessor.#processCommand`, passing in the parsed parameters. [Example](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/CommandProcessor.ts#L313).
598
+
599
+ #### Add e2e tests
600
+
601
+ Write end-to-end tests for your command, including the happy path and any edge cases that might trip things up. Focus on testing the code in the mapper.
602
+
603
+ #### Update WPT expectations
604
+
605
+ Your WPT tests will probably fail now.
606
+
607
+ > Tests with unexpected results: PASS [expected FAIL] ...
608
+
609
+ Update the expectations in a draft PR with the "update-expectations" label. This will trigger an automated PR "test: update the expectations for PR" that you'll need to merge to your branch.
610
+
611
+ #### Merge it!
612
+
613
+ Mark your PR as ready, get it reviewed, and merge it in.
614
+
615
+ ### Roll in ChromeDriver
616
+
617
+ This bit usually involves the core devs:
618
+
619
+ 1. [Release](#automatic-release) your changes.
620
+ 2. [Roll the changes into ChromeDriver](#roll-into-chromium).
@@ -18,6 +18,9 @@ import type { Browser, BrowsingContext, Cdp, Input, Network, Script, Session, St
18
18
  import type { BidiCommandParameterParser } from './BidiParser.js';
19
19
  export declare class BidiNoOpParser implements BidiCommandParameterParser {
20
20
  parseHandleRequestDevicePromptParams(params: unknown): Bluetooth.HandleRequestDevicePromptParameters;
21
+ parseSimulateAdapterParameters(params: unknown): Bluetooth.SimulateAdapterParameters;
22
+ parseSimulateAdvertisementParameters(params: unknown): Bluetooth.SimulateAdvertisementParameters;
23
+ parseSimulatePreconnectedPeripheralParameters(params: unknown): Bluetooth.SimulatePreconnectedPeripheralParameters;
21
24
  parseRemoveUserContextParams(params: unknown): Browser.RemoveUserContextParameters;
22
25
  parseActivateParams(params: unknown): BrowsingContext.ActivateParameters;
23
26
  parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters;
@@ -23,6 +23,15 @@ class BidiNoOpParser {
23
23
  parseHandleRequestDevicePromptParams(params) {
24
24
  return params;
25
25
  }
26
+ parseSimulateAdapterParameters(params) {
27
+ return params;
28
+ }
29
+ parseSimulateAdvertisementParameters(params) {
30
+ return params;
31
+ }
32
+ parseSimulatePreconnectedPeripheralParameters(params) {
33
+ return params;
34
+ }
26
35
  // keep-sorted end
27
36
  // Browser domain
28
37
  // keep-sorted start block=yes
@@ -1 +1 @@
1
- {"version":3,"file":"BidiNoOpParser.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiNoOpParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BidiNoOpParser.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiNoOpParser.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@
17
17
  import type { Bluetooth, Browser, BrowsingContext, Cdp, Input, Network, Permissions, Script, Session, Storage } from '../protocol/protocol.js';
18
18
  export interface BidiCommandParameterParser {
19
19
  parseHandleRequestDevicePromptParams(params: unknown): Bluetooth.HandleRequestDevicePromptParameters;
20
+ parseSimulateAdapterParameters(params: unknown): Bluetooth.SimulateAdapterParameters;
21
+ parseSimulateAdvertisementParameters(params: unknown): Bluetooth.SimulateAdvertisementParameters;
22
+ parseSimulatePreconnectedPeripheralParameters(params: unknown): Bluetooth.SimulatePreconnectedPeripheralParameters;
20
23
  parseRemoveUserContextParams(params: unknown): Browser.RemoveUserContextParameters;
21
24
  parseActivateParams(params: unknown): BrowsingContext.ActivateParameters;
22
25
  parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters;
@@ -52,7 +52,7 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
52
52
  this.#logger = logger;
53
53
  this.#bluetoothProcessor = bluetoothProcessor;
54
54
  // keep-sorted start block=yes
55
- this.#browserProcessor = new BrowserProcessor_js_1.BrowserProcessor(browserCdpClient);
55
+ this.#browserProcessor = new BrowserProcessor_js_1.BrowserProcessor(browserCdpClient, browsingContextStorage);
56
56
  this.#browsingContextProcessor = new BrowsingContextProcessor_js_1.BrowsingContextProcessor(browserCdpClient, browsingContextStorage, eventManager);
57
57
  this.#cdpProcessor = new CdpProcessor_js_1.CdpProcessor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient);
58
58
  this.#inputProcessor = new InputProcessor_js_1.InputProcessor(browsingContextStorage);
@@ -73,11 +73,11 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
73
73
  case 'bluetooth.handleRequestDevicePrompt':
74
74
  return await this.#bluetoothProcessor.handleRequestDevicePrompt(this.#parser.parseHandleRequestDevicePromptParams(command.params));
75
75
  case 'bluetooth.simulateAdapter':
76
- return await this.#bluetoothProcessor.simulateAdapter(command.params);
76
+ return await this.#bluetoothProcessor.simulateAdapter(this.#parser.parseSimulateAdapterParameters(command.params));
77
77
  case 'bluetooth.simulateAdvertisement':
78
- return await this.#bluetoothProcessor.simulateAdvertisement(command.params);
78
+ return await this.#bluetoothProcessor.simulateAdvertisement(this.#parser.parseSimulateAdvertisementParameters(command.params));
79
79
  case 'bluetooth.simulatePreconnectedPeripheral':
80
- return await this.#bluetoothProcessor.simulatePreconnectedPeripheral(command.params);
80
+ return await this.#bluetoothProcessor.simulatePreconnectedPeripheral(this.#parser.parseSimulatePreconnectedPeripheralParameters(command.params));
81
81
  // keep-sorted end
82
82
  // Browser domain
83
83
  // keep-sorted start block=yes
@@ -86,7 +86,7 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
86
86
  case 'browser.createUserContext':
87
87
  return await this.#browserProcessor.createUserContext(command.params);
88
88
  case 'browser.getClientWindows':
89
- throw new protocol_js_1.UnknownErrorException(`Method ${command.method} is not implemented.`);
89
+ return await this.#browserProcessor.getClientWindows();
90
90
  case 'browser.getUserContexts':
91
91
  return await this.#browserProcessor.getUserContexts();
92
92
  case 'browser.removeUserContext':
@@ -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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"}
@@ -26,6 +26,10 @@ class BluetoothProcessor {
26
26
  }
27
27
  async simulateAdapter(params) {
28
28
  const context = this.#browsingContextStorage.getContext(params.context);
29
+ // Bluetooth spec requires overriding the existing adapter (step 6). From the CDP
30
+ // perspective, we need to disable the emulation first.
31
+ // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command
32
+ await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable');
29
33
  await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.enable', {
30
34
  state: params.state,
31
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BluetoothProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/bluetooth/BluetoothProcessor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAOH,MAAa,kBAAkB;IAC7B,aAAa,CAAe;IAC5B,uBAAuB,CAAyB;IAEhD,YACE,YAA0B,EAC1B,sBAA8C;QAE9C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAA2C;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAClD,2BAA2B,EAC3B;YACE,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CACF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,8BAA8B,CAClC,MAA0D;QAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAClD,mDAAmD,EACnD;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CACF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,MAAiD;QAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAClD,0CAA0C,EAC1C;YACE,KAAK,EAAE,MAAM,CAAC,SAAS;SACxB,CACF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kBAAkB,CAAC,SAAoB;QACrC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,oCAAoC,EAAE,CAAC,KAAK,EAAE,EAAE;YACrE,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9B;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,sCAAsC;gBAC9C,MAAM,EAAE;oBACN,OAAO,EAAE,SAAS,CAAC,EAAE;oBACrB,MAAM,EAAE,KAAK,CAAC,EAAE;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;aACF,EACD,SAAS,CAAC,EAAE,CACb,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,MAAqD;QAErD,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAC3C,2BAA2B,EAC3B;gBACE,EAAE,EAAE,MAAM,CAAC,MAAM;gBACjB,QAAQ,EAAE,MAAM,CAAC,MAAM;aACxB,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAC3C,2BAA2B,EAC3B;gBACE,EAAE,EAAE,MAAM,CAAC,MAAM;aAClB,CACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AA9FD,gDA8FC"}
1
+ {"version":3,"file":"BluetoothProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/bluetooth/BluetoothProcessor.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,13 @@
16
16
  */
17
17
  import { type EmptyResult, type Browser } from '../../../protocol/protocol.js';
18
18
  import type { CdpClient } from '../../BidiMapper.js';
19
+ import type { BrowsingContextStorage } from '../context/BrowsingContextStorage';
19
20
  export declare class BrowserProcessor {
20
21
  #private;
21
- constructor(browserCdpClient: CdpClient);
22
+ constructor(browserCdpClient: CdpClient, browsingContextStorage: BrowsingContextStorage);
22
23
  close(): EmptyResult;
23
24
  createUserContext(params: Record<string, any>): Promise<Browser.CreateUserContextResult>;
24
25
  removeUserContext(params: Browser.RemoveUserContextParameters): Promise<EmptyResult>;
25
26
  getUserContexts(): Promise<Browser.GetUserContextsResult>;
27
+ getClientWindows(): Promise<Browser.GetClientWindowsResult>;
26
28
  }
@@ -20,8 +20,10 @@ exports.BrowserProcessor = void 0;
20
20
  const protocol_js_1 = require("../../../protocol/protocol.js");
21
21
  class BrowserProcessor {
22
22
  #browserCdpClient;
23
- constructor(browserCdpClient) {
23
+ #browsingContextStorage;
24
+ constructor(browserCdpClient, browsingContextStorage) {
24
25
  this.#browserCdpClient = browserCdpClient;
26
+ this.#browsingContextStorage = browsingContextStorage;
25
27
  }
26
28
  close() {
27
29
  // Ensure that it is put at the end of the event loop.
@@ -76,6 +78,35 @@ class BrowserProcessor {
76
78
  ],
77
79
  };
78
80
  }
81
+ async #getWindowInfo(targetId) {
82
+ const windowInfo = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId });
83
+ return {
84
+ // `active` is not supported in CDP yet.
85
+ active: false,
86
+ clientWindow: `${windowInfo.windowId}`,
87
+ state: windowInfo.bounds.windowState ?? 'normal',
88
+ height: windowInfo.bounds.height ?? 0,
89
+ width: windowInfo.bounds.width ?? 0,
90
+ x: windowInfo.bounds.left ?? 0,
91
+ y: windowInfo.bounds.top ?? 0,
92
+ };
93
+ }
94
+ async getClientWindows() {
95
+ const topLevelTargetIds = this.#browsingContextStorage
96
+ .getTopLevelContexts()
97
+ .map((b) => b.cdpTarget.id);
98
+ const clientWindows = await Promise.all(topLevelTargetIds.map(async (targetId) => await this.#getWindowInfo(targetId)));
99
+ const uniqueClientWindowIds = new Set();
100
+ const uniqueClientWindows = new Array();
101
+ // Filter out duplicated client windows.
102
+ for (const window of clientWindows) {
103
+ if (!uniqueClientWindowIds.has(window.clientWindow)) {
104
+ uniqueClientWindowIds.add(window.clientWindow);
105
+ uniqueClientWindows.push(window);
106
+ }
107
+ }
108
+ return { clientWindows: uniqueClientWindows };
109
+ }
79
110
  }
80
111
  exports.BrowserProcessor = BrowserProcessor;
81
112
  //# sourceMappingURL=BrowserProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/browser/BrowserProcessor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,+DAKuC;AAGvC,MAAa,gBAAgB;IAClB,iBAAiB,CAAY;IAEtC,YAAY,gBAA2B;QACrC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,KAAK;QACH,sDAAsD;QACtD,6DAA6D;QAC7D,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAA2B;QAE3B,MAAM,OAAO,GAAgD;YAC3D,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,SAAS;SACrD,CAAC;QACF,MAAM,eAAe,GACnB,MAAM,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC;QAC9C,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACtD,6BAA6B,EAC7B,OAAO,CACR,CAAC;QACF,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,gBAAgB;SACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAA2C;QAE3C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,sCAAwB,CAChC,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,8BAA8B,EAAE;gBACvE,gBAAgB,EAAE,WAAW;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mKAAmK;YACnK,IAAK,GAAa,CAAC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,wCAA0B,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACrD,2BAA2B,CAC5B,CAAC;QACF,OAAO;YACL,YAAY,EAAE;gBACZ;oBACE,WAAW,EAAE,SAAS;iBACvB;gBACD,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBACrC,OAAO;wBACL,WAAW,EAAE,EAAE;qBAChB,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF;AA3ED,4CA2EC"}
1
+ {"version":3,"file":"BrowserProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/modules/browser/BrowserProcessor.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ const assert_js_1 = require("../../../utils/assert.js");
24
24
  const Deferred_js_1 = require("../../../utils/Deferred.js");
25
25
  const log_js_1 = require("../../../utils/log.js");
26
26
  const unitConversions_js_1 = require("../../../utils/unitConversions.js");
27
+ const UrlHelpers_js_1 = require("../../../utils/UrlHelpers.js");
27
28
  const uuid_js_1 = require("../../../utils/uuid.js");
28
29
  const WindowRealm_js_1 = require("../script/WindowRealm.js");
29
30
  class BrowsingContextImpl {
@@ -73,6 +74,11 @@ class BrowsingContextImpl {
73
74
  // Set if there is a pending navigation initiated by `BrowsingContext.navigate` command.
74
75
  // The promise is resolved when the navigation is finished or rejected when canceled.
75
76
  #pendingCommandNavigation;
77
+ // Flags if the initial navigation to `about:blank` is in progress.
78
+ #initialNavigation = true;
79
+ // Flags if the navigation is initiated by `browsingContext.navigate` or
80
+ // `browsingContext.reload` command.
81
+ #navigationInitiatedByCommand = false;
76
82
  #originalOpener;
77
83
  // Set when the user prompt is opened. Required to provide the type in closing event.
78
84
  #lastUserPromptType;
@@ -335,24 +341,29 @@ class BrowsingContextImpl {
335
341
  if (this.id !== params.frameId) {
336
342
  return;
337
343
  }
338
- // Use `pendingNavigationId` if navigation initiated by BiDi
339
- // `BrowsingContext.navigate` or generate a new navigation id.
340
- this.#navigationId = this.#pendingNavigationId ?? (0, uuid_js_1.uuidv4)();
341
- this.#pendingNavigationId = undefined;
342
- this.#eventManager.registerEvent({
343
- type: 'event',
344
- method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationStarted,
345
- params: {
346
- context: this.id,
347
- navigation: this.#navigationId,
348
- timestamp: _a.getTimestamp(),
349
- // The URL of the navigation that is currently in progress. Although the URL
350
- // is not yet known in case of user-initiated navigations, it is possible to
351
- // provide the URL in case of BiDi-initiated navigations.
352
- // TODO: provide proper URL in case of user-initiated navigations.
353
- url: this.#pendingNavigationUrl ?? 'UNKNOWN',
354
- },
355
- }, this.id);
344
+ if (this.#navigationInitiatedByCommand) {
345
+ // In case of the navigation is initiated by `browsingContext.navigate` or
346
+ // `browsingContext.reload` commands, the `Page.frameRequestedNavigation` is not
347
+ // emitted, which means the `NavigationStarted` is not emitted.
348
+ // TODO: consider emit it right after the CDP command `navigate` or `reload` is finished.
349
+ // The URL of the navigation that is currently in progress. Although the URL
350
+ // is not yet known in case of user-initiated navigations, it is possible to
351
+ // provide the URL in case of BiDi-initiated navigations.
352
+ // TODO: provide proper URL in case of user-initiated navigations.
353
+ const url = this.#pendingNavigationUrl ?? 'UNKNOWN';
354
+ this.#navigationId = this.#pendingNavigationId ?? (0, uuid_js_1.uuidv4)();
355
+ this.#pendingNavigationId = undefined;
356
+ this.#eventManager.registerEvent({
357
+ type: 'event',
358
+ method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationStarted,
359
+ params: {
360
+ context: this.id,
361
+ navigation: this.#navigationId,
362
+ timestamp: _a.getTimestamp(),
363
+ url,
364
+ },
365
+ }, this.id);
366
+ }
356
367
  });
357
368
  // TODO: don't use deprecated `Page.frameScheduledNavigation` event.
358
369
  this.#cdpTarget.cdpClient.on('Page.frameScheduledNavigation', (params) => {
@@ -377,8 +388,30 @@ class BrowsingContextImpl {
377
388
  url: this.#url,
378
389
  },
379
390
  }, this.id);
380
- this.#pendingCommandNavigation.reject(protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationAborted);
391
+ this.#pendingCommandNavigation.reject(new protocol_js_1.UnknownErrorException('navigation aborted'));
381
392
  this.#pendingCommandNavigation = undefined;
393
+ this.#navigationInitiatedByCommand = false;
394
+ }
395
+ if (!(0, UrlHelpers_js_1.urlMatchesAboutBlank)(params.url)) {
396
+ // If the url does not match about:blank, do not consider it is an initial
397
+ // navigation and emit all the required events.
398
+ // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2793.
399
+ this.#initialNavigation = false;
400
+ }
401
+ if (!this.#initialNavigation) {
402
+ // Do not emit the event for the initial navigation to `about:blank`.
403
+ this.#navigationId = this.#pendingNavigationId ?? (0, uuid_js_1.uuidv4)();
404
+ this.#pendingNavigationId = undefined;
405
+ this.#eventManager.registerEvent({
406
+ type: 'event',
407
+ method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationStarted,
408
+ params: {
409
+ context: this.id,
410
+ navigation: this.#navigationId,
411
+ timestamp: _a.getTimestamp(),
412
+ url: params.url,
413
+ },
414
+ }, this.id);
382
415
  }
383
416
  this.#pendingNavigationUrl = params.url;
384
417
  });
@@ -407,29 +440,37 @@ class BrowsingContextImpl {
407
440
  const timestamp = _a.getTimestamp();
408
441
  switch (params.name) {
409
442
  case 'DOMContentLoaded':
410
- this.#eventManager.registerEvent({
411
- type: 'event',
412
- method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.DomContentLoaded,
413
- params: {
414
- context: this.id,
415
- navigation: this.#navigationId,
416
- timestamp,
417
- url: this.#url,
418
- },
419
- }, this.id);
443
+ if (!this.#initialNavigation) {
444
+ // Do not emit for the initial navigation.
445
+ this.#eventManager.registerEvent({
446
+ type: 'event',
447
+ method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.DomContentLoaded,
448
+ params: {
449
+ context: this.id,
450
+ navigation: this.#navigationId,
451
+ timestamp,
452
+ url: this.#url,
453
+ },
454
+ }, this.id);
455
+ }
420
456
  this.#lifecycle.DOMContentLoaded.resolve();
421
457
  break;
422
458
  case 'load':
423
- this.#eventManager.registerEvent({
424
- type: 'event',
425
- method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.Load,
426
- params: {
427
- context: this.id,
428
- navigation: this.#navigationId,
429
- timestamp,
430
- url: this.#url,
431
- },
432
- }, this.id);
459
+ if (!this.#initialNavigation) {
460
+ // Do not emit for the initial navigation.
461
+ this.#eventManager.registerEvent({
462
+ type: 'event',
463
+ method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.Load,
464
+ params: {
465
+ context: this.id,
466
+ navigation: this.#navigationId,
467
+ timestamp,
468
+ url: this.#url,
469
+ },
470
+ }, this.id);
471
+ }
472
+ // The initial navigation is finished.
473
+ this.#initialNavigation = false;
433
474
  this.#lifecycle.load.resolve();
434
475
  break;
435
476
  }
@@ -635,6 +676,7 @@ class BrowsingContextImpl {
635
676
  const navigationId = (0, uuid_js_1.uuidv4)();
636
677
  this.#pendingNavigationId = navigationId;
637
678
  this.#pendingCommandNavigation = new Deferred_js_1.Deferred();
679
+ this.#navigationInitiatedByCommand = true;
638
680
  // Navigate and wait for the result. If the navigation fails, the error event is
639
681
  // emitted and the promise is rejected.
640
682
  const cdpNavigatePromise = (async () => {
@@ -679,12 +721,13 @@ class BrowsingContextImpl {
679
721
  ]).catch((e) => {
680
722
  // Aborting navigation should not fail the original navigation command for now.
681
723
  // https://github.com/w3c/webdriver-bidi/issues/799#issue-2605618955
682
- if (e !== protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationAborted) {
724
+ if (e.message !== 'navigation aborted') {
683
725
  throw e;
684
726
  }
685
727
  });
686
728
  // `#pendingCommandNavigation` can be already rejected and set to undefined.
687
729
  this.#pendingCommandNavigation?.resolve();
730
+ this.#navigationInitiatedByCommand = false;
688
731
  this.#pendingCommandNavigation = undefined;
689
732
  return {
690
733
  navigation: navigationId,
@@ -712,6 +755,7 @@ class BrowsingContextImpl {
712
755
  async reload(ignoreCache, wait) {
713
756
  await this.targetUnblockedOrThrow();
714
757
  this.#resetLifecycleIfFinished();
758
+ this.#navigationInitiatedByCommand = true;
715
759
  await this.#cdpTarget.cdpClient.sendCommand('Page.reload', {
716
760
  ignoreCache,
717
761
  });