chromium-bidi 0.4.4 → 0.4.6

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 (136) hide show
  1. package/README.md +36 -28
  2. package/lib/cjs/bidiMapper/BidiServer.d.ts +3 -3
  3. package/lib/cjs/bidiMapper/BidiServer.js +12 -12
  4. package/lib/cjs/bidiMapper/BidiServer.js.map +1 -1
  5. package/lib/cjs/bidiMapper/CdpConnection.d.ts +5 -5
  6. package/lib/cjs/bidiMapper/CommandProcessor.d.ts +6 -4
  7. package/lib/cjs/bidiMapper/CommandProcessor.js +33 -21
  8. package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
  9. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +8 -7
  10. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +120 -105
  11. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  12. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +8 -5
  13. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +69 -59
  14. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  15. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +2 -1
  16. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +3 -0
  17. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
  18. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +24 -0
  19. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +112 -0
  20. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -0
  21. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +8 -6
  22. package/lib/cjs/bidiMapper/domains/events/EventManager.js +60 -25
  23. package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
  24. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +18 -1
  25. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +104 -33
  26. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
  27. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.d.ts +1 -0
  28. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.js +165 -52
  29. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.js.map +1 -1
  30. package/lib/cjs/bidiMapper/domains/log/logHelper.d.ts +1 -1
  31. package/lib/cjs/bidiMapper/domains/log/logHelper.js +3 -3
  32. package/lib/cjs/bidiMapper/domains/log/logHelper.js.map +1 -1
  33. package/lib/cjs/bidiMapper/domains/log/logHelper_getRemoteValuesText.spec.js +5 -29
  34. package/lib/cjs/bidiMapper/domains/log/logHelper_getRemoteValuesText.spec.js.map +1 -1
  35. package/lib/cjs/bidiMapper/domains/log/logHelper_logMessageFormatter.spec.js +5 -29
  36. package/lib/cjs/bidiMapper/domains/log/logHelper_logMessageFormatter.spec.js.map +1 -1
  37. package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +2 -2
  38. package/lib/cjs/bidiMapper/domains/log/logManager.js +10 -32
  39. package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
  40. package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +7 -0
  41. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +65 -0
  42. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -0
  43. package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +15 -0
  44. package/lib/cjs/bidiMapper/domains/network/networkRequest.js +263 -0
  45. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -0
  46. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +9 -9
  47. package/lib/cjs/bidiMapper/domains/script/realm.js +20 -18
  48. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  49. package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +1 -1
  50. package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
  51. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.d.ts +15 -13
  52. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js +323 -267
  53. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +1 -1
  54. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  55. package/lib/cjs/bidiServer/bidiServerRunner.d.ts +0 -16
  56. package/lib/cjs/bidiServer/bidiServerRunner.js +18 -2
  57. package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
  58. package/lib/cjs/bidiServer/index.js +50 -26
  59. package/lib/cjs/bidiServer/index.js.map +1 -1
  60. package/lib/cjs/bidiServer/mapperReader.js +1 -1
  61. package/lib/cjs/bidiServer/mapperReader.js.map +1 -1
  62. package/lib/cjs/bidiServer/mapperServer.d.ts +2 -10
  63. package/lib/cjs/bidiServer/mapperServer.js +60 -23
  64. package/lib/cjs/bidiServer/mapperServer.js.map +1 -1
  65. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  66. package/lib/cjs/bidiTab/bidiTab.d.ts +1 -0
  67. package/lib/cjs/bidiTab/bidiTab.js +32 -28
  68. package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
  69. package/lib/cjs/bidiTab/mapperTabPage.js +2 -0
  70. package/lib/cjs/bidiTab/mapperTabPage.js.map +1 -1
  71. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  72. package/lib/cjs/cdp/cdpClient.d.ts +11 -12
  73. package/lib/cjs/cdp/cdpClient.js +15 -16
  74. package/lib/cjs/cdp/cdpClient.js.map +1 -1
  75. package/lib/cjs/cdp/cdpClient.spec.js +20 -22
  76. package/lib/cjs/cdp/cdpClient.spec.js.map +1 -1
  77. package/lib/cjs/cdp/cdpConnection.d.ts +7 -7
  78. package/lib/cjs/cdp/cdpConnection.js +9 -24
  79. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  80. package/lib/cjs/cdp/cdpConnection.spec.js +14 -13
  81. package/lib/cjs/cdp/cdpConnection.spec.js.map +1 -1
  82. package/lib/cjs/cdp/cdpMessage.d.ts +4 -3
  83. package/lib/cjs/cdp/cdpMessage.js +0 -16
  84. package/lib/cjs/cdp/cdpMessage.js.map +1 -1
  85. package/lib/cjs/cdp/index.d.ts +1 -1
  86. package/lib/cjs/cdp/index.js +1 -1
  87. package/lib/cjs/cdp/index.js.map +1 -1
  88. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  89. package/lib/cjs/protocol/protocol.d.ts +184 -19
  90. package/lib/cjs/protocol/protocol.js +22 -2
  91. package/lib/cjs/protocol/protocol.js.map +1 -1
  92. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  93. package/lib/cjs/protocol-parser/protocol-parser.d.ts +53 -712
  94. package/lib/cjs/protocol-parser/protocol-parser.js +143 -59
  95. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  96. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  97. package/lib/cjs/utils/EventEmitter.d.ts +12 -12
  98. package/lib/cjs/utils/EventEmitter.js +6 -6
  99. package/lib/cjs/utils/EventEmitter.js.map +1 -1
  100. package/lib/cjs/utils/EventEmitter.spec.d.ts +2 -1
  101. package/lib/cjs/utils/EventEmitter.spec.js +37 -42
  102. package/lib/cjs/utils/EventEmitter.spec.js.map +1 -1
  103. package/lib/cjs/utils/buffer.spec.js +6 -7
  104. package/lib/cjs/utils/buffer.spec.js.map +1 -1
  105. package/lib/cjs/utils/deferred.d.ts +1 -1
  106. package/lib/cjs/utils/deferred.js +2 -2
  107. package/lib/cjs/utils/deferred.js.map +1 -1
  108. package/lib/cjs/utils/deferred.spec.d.ts +17 -0
  109. package/lib/cjs/utils/deferred.spec.js +37 -0
  110. package/lib/cjs/utils/deferred.spec.js.map +1 -0
  111. package/lib/cjs/utils/idWrapper.spec.js +4 -28
  112. package/lib/cjs/utils/idWrapper.spec.js.map +1 -1
  113. package/lib/cjs/utils/log.js +2 -0
  114. package/lib/cjs/utils/log.js.map +1 -1
  115. package/lib/cjs/utils/processingQueue.js +0 -1
  116. package/lib/cjs/utils/processingQueue.js.map +1 -1
  117. package/lib/cjs/utils/processingQueue.spec.js +6 -5
  118. package/lib/cjs/utils/processingQueue.spec.js.map +1 -1
  119. package/lib/cjs/{cdp/stubTransport.spec.d.ts → utils/transportStub.spec.d.ts} +2 -2
  120. package/lib/cjs/{cdp/stubTransport.spec.js → utils/transportStub.spec.js} +3 -3
  121. package/lib/cjs/utils/transportStub.spec.js.map +1 -0
  122. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  123. package/lib/cjs/utils/unitConversions.d.ts +18 -0
  124. package/lib/cjs/utils/unitConversions.js +25 -0
  125. package/lib/cjs/utils/unitConversions.js.map +1 -0
  126. package/lib/cjs/utils/unitConversions.spec.d.ts +17 -0
  127. package/lib/cjs/utils/unitConversions.spec.js +27 -0
  128. package/lib/cjs/utils/unitConversions.spec.js.map +1 -0
  129. package/lib/cjs/{cdp → utils}/websocketTransport.d.ts +3 -4
  130. package/lib/cjs/{cdp → utils}/websocketTransport.js +10 -12
  131. package/lib/cjs/utils/websocketTransport.js.map +1 -0
  132. package/lib/iife/mapperTab.js +2 -2
  133. package/lib/iife/mapperTab.js.map +1 -1
  134. package/package.json +9 -6
  135. package/lib/cjs/cdp/stubTransport.spec.js.map +0 -1
  136. package/lib/cjs/cdp/websocketTransport.js.map +0 -1
package/README.md CHANGED
@@ -1,11 +1,14 @@
1
1
  # WebDriver BiDi for Chromium [![chromium-bidi on npm](https://img.shields.io/npm/v/chromium-bidi)](https://www.npmjs.com/package/chromium-bidi)
2
2
 
3
- ![Unit Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/unit.yml/badge.svg)
3
+ ## CI status
4
+
4
5
  ![E2E Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/e2e.yml/badge.svg)
5
- ![WPT Tests (mapper)](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/wpt-mapper.yml/badge.svg)
6
+ ![Unit Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/unit.yml/badge.svg)
6
7
  ![WPT Tests (chromedriver)](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/wpt-chromedriver.yml/badge.svg)
8
+ ![WPT Tests (mapper)](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/wpt-mapper.yml/badge.svg)
7
9
 
8
- ![pre-commit](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/pre-commit.yml/badge.svg)
10
+ ![Generate WPT Report](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/generate-wpt-report.yml/badge.svg)
11
+ ![Pre-commit](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/pre-commit.yml/badge.svg)
9
12
 
10
13
  This is an implementation of the
11
14
  [WebDriver BiDi](https://w3c.github.io/webdriver-bidi/) protocol with some
@@ -169,14 +172,26 @@ npm run server -- --headless=false
169
172
  ```
170
173
 
171
174
  Use the `CHANNEL=...` environment variable or `--channel=...` argument with one of
172
- the following values to run the specific Chrome channel: `chrome`,
173
- `chrome-beta`, `chrome-canary`, `chrome-dev`.
175
+ the following values to run the specific Chrome channel: `stable`,
176
+ `beta`, `canary`, `dev`.
174
177
 
175
178
  The requested Chrome version should be installed.
176
179
 
177
180
  ```sh
178
- CHANNEL=chrome-dev npm run server
179
- npm run server -- --channel=chrome-dev
181
+ CHANNEL=dev npm run server
182
+ npm run server -- --channel=dev
183
+ ```
184
+
185
+ Use the CLI argument `--verbose` to have CDP events printed to the console. Note: you have to enable debugging output `bidiMapper:mapperDebug:*` as well.
186
+
187
+ ```sh
188
+ DEBUG=bidiMapper:mapperDebug:* npm run server -- --verbose
189
+ ```
190
+
191
+ or
192
+
193
+ ```sh
194
+ DEBUG=* npm run server -- --verbose
180
195
  ```
181
196
 
182
197
  ### Starting on Linux and Mac
@@ -305,7 +320,7 @@ export WPT_BROWSER_PATH="/Applications/Microsoft Edge.app/Contents/MacOS/Microso
305
320
 
306
321
  https://www.google.com/chrome/dev/
307
322
 
308
- #### 2. Build ChromeDriver BiDi
323
+ #### 2. Build Chromedriver BiDi
309
324
 
310
325
  Oneshot:
311
326
 
@@ -323,10 +338,10 @@ npm run watch
323
338
 
324
339
  ```sh
325
340
  ./wpt/wpt run \
326
- --webdriver-binary ./runBiDiServer.sh \
341
+ --webdriver-binary runBiDiServer.sh \
327
342
  --binary "$WPT_BROWSER_PATH" \
328
- --manifest ./wpt/MANIFEST.json \
329
- --metadata ./wpt-metadata \
343
+ --manifest wpt/MANIFEST.json \
344
+ --metadata wpt-metadata/mapper/headless \
330
345
  chromium \
331
346
  webdriver/tests/bidi/
332
347
  ```
@@ -337,10 +352,10 @@ npm run watch
337
352
 
338
353
  ```sh
339
354
  ./wpt/wpt run \
340
- --webdriver-binary ./runBiDiServer.sh \
355
+ --webdriver-binary runBiDiServer.sh \
341
356
  --binary "$WPT_BROWSER_PATH" \
342
- --manifest ./wpt/MANIFEST.json \
343
- --metadata ./wpt-metadata \
357
+ --manifest wpt/MANIFEST.json \
358
+ --metadata wpt-metadata/mapper/headless \
344
359
  --log-wptreport wptreport.json \
345
360
  chromium \
346
361
  webdriver/tests/bidi/
@@ -351,9 +366,9 @@ npm run watch
351
366
  ```sh
352
367
  ./wpt/wpt update-expectations \
353
368
  --product chromium \
354
- --manifest ./wpt/MANIFEST.json \
355
- --metadata ./wpt-metadata \
356
- ./wptreport.json
369
+ --manifest wpt/MANIFEST.json \
370
+ --metadata wpt-metadata/mapper/headless \
371
+ wptreport.json
357
372
  ```
358
373
 
359
374
  ## How does it work?
@@ -376,20 +391,13 @@ new command, add it to `_processCommand`, write and call processor for it.
376
391
 
377
392
  ### Publish new `npm` release
378
393
 
379
- 1. On the `main` branch, bump the chromium-bidi version number in `package.json`:
394
+ 1. Open a PR bumping the chromium-bidi version number in `package.json` for review:
380
395
 
381
396
  ```sh
382
- npm version patch -m 'Release v%s'
397
+ npm version patch -m 'Release v%s' --no-git-tag-version
383
398
  ```
384
399
 
385
400
  Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
386
401
 
387
- Note that this produces a Git commit + tag.
388
-
389
- 1. Push the release commit and tag:
390
-
391
- ```sh
392
- git push && git push --tags
393
- ```
394
-
395
- Our CI then automatically publishes the new release to npm.
402
+ 1. After the PR is reviewed, [create a GitHub release](https://github.com/GoogleChromeLabs/chromium-bidi/releases/new) specifying the tag name matching the bumped version.
403
+ Our CI then automatically publishes the new release to npm based on the tag name.
@@ -14,13 +14,13 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { EventEmitter } from '../utils/EventEmitter.js';
18
+ import { LoggerFn } from '../utils/log.js';
19
+ import type { Message } from '../protocol/protocol.js';
17
20
  import { BidiParser } from './CommandProcessor.js';
18
21
  import { BidiTransport } from './BidiTransport.js';
19
22
  import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
20
23
  import { CdpConnection } from './CdpConnection.js';
21
- import { EventEmitter } from '../utils/EventEmitter.js';
22
- import { LoggerFn } from '../utils/log.js';
23
- import type { Message } from '../protocol/protocol.js';
24
24
  import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
25
25
  declare type BidiServerEvents = {
26
26
  message: Message.RawCommandRequest;
@@ -17,11 +17,11 @@
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.BidiServer = void 0;
20
+ const EventEmitter_js_1 = require("../utils/EventEmitter.js");
21
+ const processingQueue_js_1 = require("../utils/processingQueue.js");
20
22
  const CommandProcessor_js_1 = require("./CommandProcessor.js");
21
23
  const browsingContextStorage_js_1 = require("./domains/context/browsingContextStorage.js");
22
- const EventEmitter_js_1 = require("../utils/EventEmitter.js");
23
24
  const EventManager_js_1 = require("./domains/events/EventManager.js");
24
- const processingQueue_js_1 = require("../utils/processingQueue.js");
25
25
  const realmStorage_js_1 = require("./domains/script/realmStorage.js");
26
26
  class BidiServer extends EventEmitter_js_1.EventEmitter {
27
27
  #messageQueue;
@@ -30,6 +30,16 @@ class BidiServer extends EventEmitter_js_1.EventEmitter {
30
30
  #browsingContextStorage;
31
31
  #realmStorage;
32
32
  #logger;
33
+ #handleIncomingMessage = async (message) => {
34
+ this.#commandProcessor.processCommand(message);
35
+ };
36
+ #processOutgoingMessage = async (messageEntry) => {
37
+ const message = messageEntry.message;
38
+ if (messageEntry.channel !== null) {
39
+ message['channel'] = messageEntry.channel;
40
+ }
41
+ await this.#transport.sendMessage(message);
42
+ };
33
43
  constructor(bidiTransport, cdpConnection, selfTargetId, parser, logger) {
34
44
  super();
35
45
  this.#logger = logger;
@@ -62,13 +72,6 @@ class BidiServer extends EventEmitter_js_1.EventEmitter {
62
72
  .getTopLevelContexts()
63
73
  .map((c) => c.awaitLoaded()));
64
74
  }
65
- #processOutgoingMessage = async (messageEntry) => {
66
- const message = messageEntry.message;
67
- if (messageEntry.channel !== null) {
68
- message['channel'] = messageEntry.channel;
69
- }
70
- await this.#transport.sendMessage(message);
71
- };
72
75
  /**
73
76
  * Sends BiDi message.
74
77
  */
@@ -78,9 +81,6 @@ class BidiServer extends EventEmitter_js_1.EventEmitter {
78
81
  close() {
79
82
  this.#transport.close();
80
83
  }
81
- #handleIncomingMessage = async (message) => {
82
- this.#commandProcessor.processCommand(message);
83
- };
84
84
  getBrowsingContextStorage() {
85
85
  return this.#browsingContextStorage;
86
86
  }
@@ -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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"}
@@ -14,19 +14,19 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { EventEmitter } from '../utils/EventEmitter.js';
17
+ /**
18
+ * @fileoverview CDP interfaces and types that BiDi Mapper expects.
19
+ */
18
20
  import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js';
21
+ import { EventEmitter } from '../utils/EventEmitter.js';
19
22
  declare type CdpEvents = {
20
23
  [Property in keyof ProtocolMapping.Events]: ProtocolMapping.Events[Property][0];
21
24
  };
22
- /**
23
- * CDP interfaces that BiDi Mapper expects.
24
- */
25
25
  export interface CdpConnection {
26
26
  browserClient(): CdpClient;
27
27
  getCdpClient(sessionId: string): CdpClient;
28
28
  }
29
29
  export interface CdpClient extends EventEmitter<CdpEvents> {
30
- sendCommand<T extends keyof ProtocolMapping.Commands>(method: T, ...params: ProtocolMapping.Commands[T]['paramsType']): Promise<ProtocolMapping.Commands[T]['returnType']>;
30
+ sendCommand<CdpMethod extends keyof ProtocolMapping.Commands>(method: CdpMethod, ...params: ProtocolMapping.Commands[CdpMethod]['paramsType']): Promise<ProtocolMapping.Commands[CdpMethod]['returnType']>;
31
31
  }
32
32
  export {};
@@ -15,11 +15,11 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { BrowsingContext, CDP, Message, Script, Session } from '../protocol/protocol.js';
18
+ import { LoggerFn } from '../utils/log.js';
19
+ import { EventEmitter } from '../utils/EventEmitter.js';
18
20
  import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
19
21
  import { CdpConnection } from './CdpConnection.js';
20
- import { EventEmitter } from '../utils/EventEmitter.js';
21
22
  import { IEventManager } from './domains/events/EventManager.js';
22
- import { LoggerFn } from '../utils/log.js';
23
23
  import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
24
24
  import { RealmStorage } from './domains/script/realmStorage.js';
25
25
  declare type CommandProcessorEvents = {
@@ -32,15 +32,17 @@ export interface BidiParser {
32
32
  parseDisownParams(params: object): Script.DisownParameters;
33
33
  parseSendCommandParams(params: object): CDP.SendCommandParams;
34
34
  parseGetSessionParams(params: object): CDP.GetSessionParams;
35
+ parseSubscribeParams(params: object): Session.SubscribeParameters;
35
36
  parseNavigateParams(params: object): BrowsingContext.NavigateParameters;
36
37
  parseGetTreeParams(params: object): BrowsingContext.GetTreeParameters;
37
- parseSubscribeParams(params: object): Session.SubscribeParameters;
38
38
  parseCreateParams(params: object): BrowsingContext.CreateParameters;
39
39
  parseCloseParams(params: object): BrowsingContext.CloseParameters;
40
+ parseCaptureScreenshotParams(params: object): BrowsingContext.CaptureScreenshotParameters;
41
+ parsePrintParams(params: object): BrowsingContext.PrintParameters;
40
42
  }
41
43
  export declare class CommandProcessor extends EventEmitter<CommandProcessorEvents> {
42
44
  #private;
43
45
  constructor(realmStorage: RealmStorage, cdpConnection: CdpConnection, eventManager: IEventManager, selfTargetId: string, parser: BidiParser | undefined, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn);
44
- processCommand: (command: Message.RawCommandRequest) => Promise<void>;
46
+ processCommand(command: Message.RawCommandRequest): Promise<void>;
45
47
  }
46
48
  export {};
@@ -18,8 +18,9 @@
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.CommandProcessor = void 0;
20
20
  const protocol_js_1 = require("../protocol/protocol.js");
21
- const browsingContextProcessor_js_1 = require("./domains/context/browsingContextProcessor.js");
21
+ const log_js_1 = require("../utils/log.js");
22
22
  const EventEmitter_js_1 = require("../utils/EventEmitter.js");
23
+ const browsingContextProcessor_js_1 = require("./domains/context/browsingContextProcessor.js");
23
24
  const OutgoingBidiMessage_js_1 = require("./OutgoingBidiMessage.js");
24
25
  class BidiNoOpParser {
25
26
  parseGetRealmsParams(params) {
@@ -40,13 +41,13 @@ class BidiNoOpParser {
40
41
  parseGetSessionParams(params) {
41
42
  return params;
42
43
  }
43
- parseNavigateParams(params) {
44
+ parseSubscribeParams(params) {
44
45
  return params;
45
46
  }
46
- parseGetTreeParams(params) {
47
+ parseNavigateParams(params) {
47
48
  return params;
48
49
  }
49
- parseSubscribeParams(params) {
50
+ parseGetTreeParams(params) {
50
51
  return params;
51
52
  }
52
53
  parseCreateParams(params) {
@@ -55,19 +56,26 @@ class BidiNoOpParser {
55
56
  parseCloseParams(params) {
56
57
  return params;
57
58
  }
59
+ parseCaptureScreenshotParams(params) {
60
+ return params;
61
+ }
62
+ parsePrintParams(params) {
63
+ return params;
64
+ }
58
65
  }
59
66
  class CommandProcessor extends EventEmitter_js_1.EventEmitter {
60
67
  #contextProcessor;
61
68
  #eventManager;
62
69
  #parser;
70
+ #logger;
63
71
  constructor(realmStorage, cdpConnection, eventManager, selfTargetId, parser = new BidiNoOpParser(), browsingContextStorage, logger) {
64
72
  super();
65
73
  this.#eventManager = eventManager;
74
+ this.#logger = logger;
66
75
  this.#contextProcessor = new browsingContextProcessor_js_1.BrowsingContextProcessor(realmStorage, cdpConnection, selfTargetId, eventManager, browsingContextStorage, logger);
67
76
  this.#parser = parser;
68
77
  }
69
- // noinspection JSMethodCanBeStatic,JSUnusedLocalSymbols
70
- async #process_session_status() {
78
+ static #process_session_status() {
71
79
  return { result: { ready: false, message: 'already connected' } };
72
80
  }
73
81
  async #process_session_subscribe(params, channel) {
@@ -81,36 +89,40 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
81
89
  async #processCommand(commandData) {
82
90
  switch (commandData.method) {
83
91
  case 'session.status':
84
- return await this.#process_session_status();
92
+ return CommandProcessor.#process_session_status();
85
93
  case 'session.subscribe':
86
- return await this.#process_session_subscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
94
+ return this.#process_session_subscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
87
95
  case 'session.unsubscribe':
88
- return await this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
96
+ return this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
89
97
  case 'browsingContext.create':
90
- return await this.#contextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(commandData.params));
98
+ return this.#contextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(commandData.params));
91
99
  case 'browsingContext.close':
92
- return await this.#contextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(commandData.params));
100
+ return this.#contextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(commandData.params));
93
101
  case 'browsingContext.getTree':
94
- return await this.#contextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(commandData.params));
102
+ return this.#contextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(commandData.params));
95
103
  case 'browsingContext.navigate':
96
- return await this.#contextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(commandData.params));
104
+ return this.#contextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(commandData.params));
105
+ case 'browsingContext.captureScreenshot':
106
+ return this.#contextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(commandData.params));
107
+ case 'browsingContext.print':
108
+ return this.#contextProcessor.process_browsingContext_print(this.#parser.parsePrintParams(commandData.params));
97
109
  case 'script.getRealms':
98
110
  return this.#contextProcessor.process_script_getRealms(this.#parser.parseGetRealmsParams(commandData.params));
99
111
  case 'script.callFunction':
100
- return await this.#contextProcessor.process_script_callFunction(this.#parser.parseCallFunctionParams(commandData.params));
112
+ return this.#contextProcessor.process_script_callFunction(this.#parser.parseCallFunctionParams(commandData.params));
101
113
  case 'script.evaluate':
102
- return await this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
114
+ return this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
103
115
  case 'script.disown':
104
- return await this.#contextProcessor.process_script_disown(this.#parser.parseDisownParams(commandData.params));
116
+ return this.#contextProcessor.process_script_disown(this.#parser.parseDisownParams(commandData.params));
105
117
  case 'cdp.sendCommand':
106
- return await this.#contextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(commandData.params));
118
+ return this.#contextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(commandData.params));
107
119
  case 'cdp.getSession':
108
- return await this.#contextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(commandData.params));
120
+ return this.#contextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(commandData.params));
109
121
  default:
110
122
  throw new protocol_js_1.Message.UnknownCommandException(`Unknown command '${commandData.method}'.`);
111
123
  }
112
124
  }
113
- processCommand = async (command) => {
125
+ async processCommand(command) {
114
126
  try {
115
127
  const result = await this.#processCommand(command);
116
128
  const response = {
@@ -126,11 +138,11 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
126
138
  }
127
139
  else {
128
140
  const error = e;
129
- console.error(error);
141
+ this.#logger?.(log_js_1.LogType.bidi, error);
130
142
  this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.Message.UnknownException(error.message).toErrorResponse(command.id), command.channel ?? null));
131
143
  }
132
144
  }
133
- };
145
+ }
134
146
  }
135
147
  exports.CommandProcessor = CommandProcessor;
136
148
  //# sourceMappingURL=CommandProcessor.js.map
@@ -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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"}
@@ -15,23 +15,22 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { BrowsingContext } from '../../../protocol/protocol.js';
18
- import { BrowsingContextStorage } from './browsingContextStorage.js';
19
- import { CdpClient } from '../../CdpConnection.js';
18
+ import { LoggerFn } from '../../../utils/log.js';
20
19
  import { IEventManager } from '../events/EventManager.js';
21
20
  import { Realm } from '../script/realm.js';
22
21
  import { RealmStorage } from '../script/realmStorage.js';
22
+ import { BrowsingContextStorage } from './browsingContextStorage.js';
23
+ import { CdpTarget } from './cdpTarget';
23
24
  export declare class BrowsingContextImpl {
24
25
  #private;
25
26
  private constructor();
26
- static createFrameContext(realmStorage: RealmStorage, contextId: string, parentId: string | null, cdpClient: CdpClient, cdpSessionId: string, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage): Promise<void>;
27
- static createTargetContext(realmStorage: RealmStorage, contextId: string, parentId: string | null, cdpClient: CdpClient, cdpSessionId: string, cdpBrowserContextId: string | null, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage): Promise<void>;
28
- get cdpBrowserContextId(): string | null;
27
+ static create(cdpTarget: CdpTarget, realmStorage: RealmStorage, contextId: string, parentId: string | null, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn): Promise<void>;
29
28
  get navigableId(): string | null;
30
- convertFrameToTargetContext(cdpClient: CdpClient, cdpSessionId: string): void;
29
+ updateCdpTarget(cdpTarget: CdpTarget): void;
31
30
  delete(): Promise<void>;
32
31
  get contextId(): string;
33
32
  get parentId(): string | null;
34
- get cdpSessionId(): string;
33
+ get cdpTarget(): CdpTarget;
35
34
  get children(): BrowsingContextImpl[];
36
35
  get url(): string;
37
36
  addChild(child: BrowsingContextImpl): void;
@@ -40,4 +39,6 @@ export declare class BrowsingContextImpl {
40
39
  serializeToBidiValue(maxDepth?: number, addParentFiled?: boolean): BrowsingContext.Info;
41
40
  navigate(url: string, wait: BrowsingContext.ReadinessState): Promise<BrowsingContext.NavigateResult>;
42
41
  getOrCreateSandbox(sandbox: string | undefined): Promise<Realm>;
42
+ captureScreenshot(): Promise<BrowsingContext.CaptureScreenshotResult>;
43
+ print(params: BrowsingContext.PrintParameters): Promise<BrowsingContext.PrintResult>;
43
44
  }