chromium-bidi 0.4.5 → 0.4.7

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 (150) hide show
  1. package/README.md +16 -4
  2. package/lib/cjs/bidiMapper/BidiServer.d.ts +3 -3
  3. package/lib/cjs/bidiMapper/BidiServer.js +13 -13
  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 +5 -5
  7. package/lib/cjs/bidiMapper/CommandProcessor.d.ts +8 -4
  8. package/lib/cjs/bidiMapper/CommandProcessor.js +45 -23
  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/browsingContextImpl.d.ts +25 -13
  13. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +186 -144
  14. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  15. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +10 -5
  16. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +117 -87
  17. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  18. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +16 -4
  19. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +30 -6
  20. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
  21. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.d.ts +17 -0
  22. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js +36 -0
  23. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.spec.js.map +1 -0
  24. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +24 -0
  25. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +112 -0
  26. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -0
  27. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +9 -7
  28. package/lib/cjs/bidiMapper/domains/events/EventManager.js +50 -30
  29. package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
  30. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +18 -1
  31. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +88 -41
  32. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
  33. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.d.ts +1 -0
  34. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.js +138 -50
  35. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.spec.js.map +1 -1
  36. package/lib/cjs/bidiMapper/domains/log/logHelper.d.ts +1 -1
  37. package/lib/cjs/bidiMapper/domains/log/logHelper.js +7 -7
  38. package/lib/cjs/bidiMapper/domains/log/logHelper.js.map +1 -1
  39. package/lib/cjs/bidiMapper/domains/log/logHelper_getRemoteValuesText.spec.js +5 -29
  40. package/lib/cjs/bidiMapper/domains/log/logHelper_getRemoteValuesText.spec.js.map +1 -1
  41. package/lib/cjs/bidiMapper/domains/log/logHelper_logMessageFormatter.spec.js +5 -29
  42. package/lib/cjs/bidiMapper/domains/log/logHelper_logMessageFormatter.spec.js.map +1 -1
  43. package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +2 -2
  44. package/lib/cjs/bidiMapper/domains/log/logManager.js +11 -33
  45. package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
  46. package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +7 -0
  47. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +68 -0
  48. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -0
  49. package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +16 -0
  50. package/lib/cjs/bidiMapper/domains/network/networkRequest.js +254 -0
  51. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -0
  52. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +11 -11
  53. package/lib/cjs/bidiMapper/domains/script/realm.js +23 -16
  54. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  55. package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +4 -3
  56. package/lib/cjs/bidiMapper/domains/script/realmStorage.js +1 -0
  57. package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
  58. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.d.ts +15 -13
  59. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js +318 -266
  60. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +1 -1
  61. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  62. package/lib/cjs/bidiServer/bidiServerRunner.d.ts +1 -17
  63. package/lib/cjs/bidiServer/bidiServerRunner.js +23 -7
  64. package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
  65. package/lib/cjs/bidiServer/index.js +50 -26
  66. package/lib/cjs/bidiServer/index.js.map +1 -1
  67. package/lib/cjs/bidiServer/mapperReader.js +1 -1
  68. package/lib/cjs/bidiServer/mapperReader.js.map +1 -1
  69. package/lib/cjs/bidiServer/mapperServer.d.ts +2 -10
  70. package/lib/cjs/bidiServer/mapperServer.js +60 -27
  71. package/lib/cjs/bidiServer/mapperServer.js.map +1 -1
  72. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  73. package/lib/cjs/bidiTab/bidiTab.d.ts +1 -0
  74. package/lib/cjs/bidiTab/bidiTab.js +44 -33
  75. package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
  76. package/lib/cjs/bidiTab/mapperTabPage.js +5 -3
  77. package/lib/cjs/bidiTab/mapperTabPage.js.map +1 -1
  78. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  79. package/lib/cjs/cdp/cdpClient.d.ts +11 -12
  80. package/lib/cjs/cdp/cdpClient.js +15 -16
  81. package/lib/cjs/cdp/cdpClient.js.map +1 -1
  82. package/lib/cjs/cdp/cdpClient.spec.js +23 -23
  83. package/lib/cjs/cdp/cdpClient.spec.js.map +1 -1
  84. package/lib/cjs/cdp/cdpConnection.d.ts +7 -7
  85. package/lib/cjs/cdp/cdpConnection.js +9 -24
  86. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  87. package/lib/cjs/cdp/cdpConnection.spec.js +15 -14
  88. package/lib/cjs/cdp/cdpConnection.spec.js.map +1 -1
  89. package/lib/cjs/cdp/cdpMessage.d.ts +4 -3
  90. package/lib/cjs/cdp/cdpMessage.js +0 -16
  91. package/lib/cjs/cdp/cdpMessage.js.map +1 -1
  92. package/lib/cjs/cdp/index.d.ts +1 -1
  93. package/lib/cjs/cdp/index.js +1 -1
  94. package/lib/cjs/cdp/index.js.map +1 -1
  95. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  96. package/lib/cjs/protocol/protocol.d.ts +262 -39
  97. package/lib/cjs/protocol/protocol.js +93 -21
  98. package/lib/cjs/protocol/protocol.js.map +1 -1
  99. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  100. package/lib/cjs/protocol-parser/protocol-parser.d.ts +67 -639
  101. package/lib/cjs/protocol-parser/protocol-parser.js +158 -48
  102. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  103. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  104. package/lib/cjs/utils/DefaultMap.d.ts +26 -0
  105. package/lib/cjs/utils/DefaultMap.js +40 -0
  106. package/lib/cjs/utils/DefaultMap.js.map +1 -0
  107. package/lib/cjs/utils/DefaultMap.spec.d.ts +17 -0
  108. package/lib/cjs/utils/DefaultMap.spec.js +62 -0
  109. package/lib/cjs/utils/DefaultMap.spec.js.map +1 -0
  110. package/lib/cjs/utils/EventEmitter.d.ts +12 -12
  111. package/lib/cjs/utils/EventEmitter.js +6 -6
  112. package/lib/cjs/utils/EventEmitter.js.map +1 -1
  113. package/lib/cjs/utils/EventEmitter.spec.d.ts +2 -1
  114. package/lib/cjs/utils/EventEmitter.spec.js +37 -42
  115. package/lib/cjs/utils/EventEmitter.spec.js.map +1 -1
  116. package/lib/cjs/utils/buffer.spec.js +6 -7
  117. package/lib/cjs/utils/buffer.spec.js.map +1 -1
  118. package/lib/cjs/utils/deferred.d.ts +1 -1
  119. package/lib/cjs/utils/deferred.js +5 -2
  120. package/lib/cjs/utils/deferred.js.map +1 -1
  121. package/lib/cjs/utils/deferred.spec.d.ts +17 -0
  122. package/lib/cjs/utils/deferred.spec.js +46 -0
  123. package/lib/cjs/utils/deferred.spec.js.map +1 -0
  124. package/lib/cjs/utils/idWrapper.spec.js +4 -28
  125. package/lib/cjs/utils/idWrapper.spec.js.map +1 -1
  126. package/lib/cjs/utils/log.js +2 -0
  127. package/lib/cjs/utils/log.js.map +1 -1
  128. package/lib/cjs/utils/processingQueue.js +2 -4
  129. package/lib/cjs/utils/processingQueue.js.map +1 -1
  130. package/lib/cjs/utils/processingQueue.spec.js +6 -5
  131. package/lib/cjs/utils/processingQueue.spec.js.map +1 -1
  132. package/lib/cjs/utils/transport.d.ts +2 -2
  133. package/lib/cjs/{cdp/stubTransport.spec.d.ts → utils/transportStub.spec.d.ts} +2 -2
  134. package/lib/cjs/{cdp/stubTransport.spec.js → utils/transportStub.spec.js} +3 -3
  135. package/lib/cjs/utils/transportStub.spec.js.map +1 -0
  136. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  137. package/lib/cjs/utils/unitConversions.d.ts +18 -0
  138. package/lib/cjs/utils/unitConversions.js +25 -0
  139. package/lib/cjs/utils/unitConversions.js.map +1 -0
  140. package/lib/cjs/utils/unitConversions.spec.d.ts +17 -0
  141. package/lib/cjs/utils/unitConversions.spec.js +27 -0
  142. package/lib/cjs/utils/unitConversions.spec.js.map +1 -0
  143. package/lib/cjs/{cdp → utils}/websocketTransport.d.ts +4 -5
  144. package/lib/cjs/{cdp → utils}/websocketTransport.js +11 -13
  145. package/lib/cjs/utils/websocketTransport.js.map +1 -0
  146. package/lib/iife/mapperTab.js +2 -2
  147. package/lib/iife/mapperTab.js.map +1 -1
  148. package/package.json +23 -18
  149. package/lib/cjs/cdp/stubTransport.spec.js.map +0 -1
  150. package/lib/cjs/cdp/websocketTransport.js.map +0 -1
package/README.md CHANGED
@@ -172,14 +172,26 @@ npm run server -- --headless=false
172
172
  ```
173
173
 
174
174
  Use the `CHANNEL=...` environment variable or `--channel=...` argument with one of
175
- the following values to run the specific Chrome channel: `chrome`,
176
- `chrome-beta`, `chrome-canary`, `chrome-dev`.
175
+ the following values to run the specific Chrome channel: `stable`,
176
+ `beta`, `canary`, `dev`.
177
177
 
178
178
  The requested Chrome version should be installed.
179
179
 
180
180
  ```sh
181
- CHANNEL=chrome-dev npm run server
182
- 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
183
195
  ```
184
196
 
185
197
  ### Starting on Linux and Mac
@@ -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,12 +30,22 @@ class BidiServer extends EventEmitter_js_1.EventEmitter {
30
30
  #browsingContextStorage;
31
31
  #realmStorage;
32
32
  #logger;
33
+ #handleIncomingMessage = (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;
36
46
  this.#browsingContextStorage = new browsingContextStorage_js_1.BrowsingContextStorage();
37
47
  this.#realmStorage = new realmStorage_js_1.RealmStorage();
38
- 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);
39
49
  this.#transport = bidiTransport;
40
50
  this.#transport.setOnMessage(this.#handleIncomingMessage);
41
51
  this.#commandProcessor = new CommandProcessor_js_1.CommandProcessor(this.#realmStorage, cdpConnection, new EventManager_js_1.EventManager(this), selfTargetId, parser, this.#browsingContextStorage, this.#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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"}
@@ -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
  }
@@ -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,32 +15,36 @@
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 = {
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;
37
+ parseSubscribeParams(params: object): Session.SubscribeParameters;
35
38
  parseNavigateParams(params: object): BrowsingContext.NavigateParameters;
36
39
  parseGetTreeParams(params: object): BrowsingContext.GetTreeParameters;
37
- parseSubscribeParams(params: object): Session.SubscribeParameters;
38
40
  parseCreateParams(params: object): BrowsingContext.CreateParameters;
39
41
  parseCloseParams(params: object): BrowsingContext.CloseParameters;
42
+ parseCaptureScreenshotParams(params: object): BrowsingContext.CaptureScreenshotParameters;
43
+ parsePrintParams(params: object): BrowsingContext.PrintParameters;
40
44
  }
41
45
  export declare class CommandProcessor extends EventEmitter<CommandProcessorEvents> {
42
46
  #private;
43
47
  constructor(realmStorage: RealmStorage, cdpConnection: CdpConnection, eventManager: IEventManager, selfTargetId: string, parser: BidiParser | undefined, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn);
44
- processCommand: (command: Message.RawCommandRequest) => Promise<void>;
48
+ processCommand(command: Message.RawCommandRequest): Promise<void>;
45
49
  }
46
50
  export {};
@@ -18,10 +18,17 @@
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 {
26
+ parseAddPreloadScriptParams(params) {
27
+ return params;
28
+ }
29
+ parseRemovePreloadScriptParams(params) {
30
+ return params;
31
+ }
25
32
  parseGetRealmsParams(params) {
26
33
  return params;
27
34
  }
@@ -40,13 +47,13 @@ class BidiNoOpParser {
40
47
  parseGetSessionParams(params) {
41
48
  return params;
42
49
  }
43
- parseNavigateParams(params) {
50
+ parseSubscribeParams(params) {
44
51
  return params;
45
52
  }
46
- parseGetTreeParams(params) {
53
+ parseNavigateParams(params) {
47
54
  return params;
48
55
  }
49
- parseSubscribeParams(params) {
56
+ parseGetTreeParams(params) {
50
57
  return params;
51
58
  }
52
59
  parseCreateParams(params) {
@@ -55,19 +62,26 @@ class BidiNoOpParser {
55
62
  parseCloseParams(params) {
56
63
  return params;
57
64
  }
65
+ parseCaptureScreenshotParams(params) {
66
+ return params;
67
+ }
68
+ parsePrintParams(params) {
69
+ return params;
70
+ }
58
71
  }
59
72
  class CommandProcessor extends EventEmitter_js_1.EventEmitter {
60
73
  #contextProcessor;
61
74
  #eventManager;
62
75
  #parser;
76
+ #logger;
63
77
  constructor(realmStorage, cdpConnection, eventManager, selfTargetId, parser = new BidiNoOpParser(), browsingContextStorage, logger) {
64
78
  super();
65
79
  this.#eventManager = eventManager;
80
+ this.#logger = logger;
66
81
  this.#contextProcessor = new browsingContextProcessor_js_1.BrowsingContextProcessor(realmStorage, cdpConnection, selfTargetId, eventManager, browsingContextStorage, logger);
67
82
  this.#parser = parser;
68
83
  }
69
- // noinspection JSMethodCanBeStatic,JSUnusedLocalSymbols
70
- async #process_session_status() {
84
+ static #process_session_status() {
71
85
  return { result: { ready: false, message: 'already connected' } };
72
86
  }
73
87
  async #process_session_subscribe(params, channel) {
@@ -81,36 +95,44 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
81
95
  async #processCommand(commandData) {
82
96
  switch (commandData.method) {
83
97
  case 'session.status':
84
- return await this.#process_session_status();
98
+ return CommandProcessor.#process_session_status();
85
99
  case 'session.subscribe':
86
- return await this.#process_session_subscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
100
+ return this.#process_session_subscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
87
101
  case 'session.unsubscribe':
88
- return await this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
102
+ return this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
89
103
  case 'browsingContext.create':
90
- return await this.#contextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(commandData.params));
104
+ return this.#contextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(commandData.params));
91
105
  case 'browsingContext.close':
92
- return await this.#contextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(commandData.params));
106
+ return this.#contextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(commandData.params));
93
107
  case 'browsingContext.getTree':
94
- return await this.#contextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(commandData.params));
108
+ return this.#contextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(commandData.params));
95
109
  case 'browsingContext.navigate':
96
- return await this.#contextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(commandData.params));
110
+ return this.#contextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(commandData.params));
111
+ case 'browsingContext.captureScreenshot':
112
+ return this.#contextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(commandData.params));
113
+ case 'browsingContext.print':
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));
97
119
  case 'script.getRealms':
98
120
  return this.#contextProcessor.process_script_getRealms(this.#parser.parseGetRealmsParams(commandData.params));
99
121
  case 'script.callFunction':
100
- return await this.#contextProcessor.process_script_callFunction(this.#parser.parseCallFunctionParams(commandData.params));
122
+ return this.#contextProcessor.process_script_callFunction(this.#parser.parseCallFunctionParams(commandData.params));
101
123
  case 'script.evaluate':
102
- return await this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
124
+ return this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
103
125
  case 'script.disown':
104
- return await this.#contextProcessor.process_script_disown(this.#parser.parseDisownParams(commandData.params));
126
+ return this.#contextProcessor.process_script_disown(this.#parser.parseDisownParams(commandData.params));
105
127
  case 'cdp.sendCommand':
106
- return await this.#contextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(commandData.params));
128
+ return this.#contextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(commandData.params));
107
129
  case 'cdp.getSession':
108
- return await this.#contextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(commandData.params));
130
+ return this.#contextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(commandData.params));
109
131
  default:
110
132
  throw new protocol_js_1.Message.UnknownCommandException(`Unknown command '${commandData.method}'.`);
111
133
  }
112
134
  }
113
- processCommand = async (command) => {
135
+ async processCommand(command) {
114
136
  try {
115
137
  const result = await this.#processCommand(command);
116
138
  const response = {
@@ -120,17 +142,17 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
120
142
  this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(response, command.channel ?? null));
121
143
  }
122
144
  catch (e) {
123
- if (e instanceof protocol_js_1.Message.ErrorResponseClass) {
145
+ if (e instanceof protocol_js_1.Message.ErrorResponse) {
124
146
  const errorResponse = e;
125
147
  this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(errorResponse.toErrorResponse(command.id), command.channel ?? null));
126
148
  }
127
149
  else {
128
150
  const error = e;
129
- console.error(error);
130
- this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.Message.UnknownException(error.message).toErrorResponse(command.id), command.channel ?? null));
151
+ this.#logger?.(log_js_1.LogType.bidi, error);
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));
131
153
  }
132
154
  }
133
- };
155
+ }
134
156
  }
135
157
  exports.CommandProcessor = CommandProcessor;
136
158
  //# 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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"}
@@ -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"}
@@ -14,31 +14,43 @@
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, Script } from '../../../protocol/protocol.js';
18
18
  import { LoggerFn } from '../../../utils/log.js';
19
- import { BrowsingContextStorage } from './browsingContextStorage.js';
20
- import { CdpClient } from '../../CdpConnection.js';
21
19
  import { IEventManager } from '../events/EventManager.js';
22
20
  import { Realm } from '../script/realm.js';
23
21
  import { RealmStorage } from '../script/realmStorage.js';
22
+ import { BrowsingContextStorage } from './browsingContextStorage.js';
23
+ import { CdpTarget } from './cdpTarget';
24
24
  export declare class BrowsingContextImpl {
25
25
  #private;
26
26
  private constructor();
27
- static createFrameContext(realmStorage: RealmStorage, contextId: string, parentId: string | null, cdpClient: CdpClient, cdpSessionId: string, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn): Promise<void>;
28
- static createTargetContext(realmStorage: RealmStorage, contextId: string, parentId: string | null, cdpClient: CdpClient, cdpSessionId: string, cdpBrowserContextId: string | null, eventManager: IEventManager, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn): Promise<void>;
29
- get cdpBrowserContextId(): string | null;
27
+ static create(cdpTarget: CdpTarget, realmStorage: RealmStorage, contextId: 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
+ */
30
31
  get navigableId(): string | null;
31
- convertFrameToTargetContext(cdpClient: CdpClient, cdpSessionId: string): void;
32
- delete(): Promise<void>;
33
- get contextId(): string;
34
- get parentId(): string | null;
35
- get cdpSessionId(): string;
32
+ delete(): void;
33
+ /** Returns the ID of this context. */
34
+ get contextId(): CommonDataTypes.BrowsingContext;
35
+ /** Returns the parent context ID. */
36
+ get parentId(): CommonDataTypes.BrowsingContext | null;
37
+ /** Returns all children contexts. */
36
38
  get children(): BrowsingContextImpl[];
37
- get url(): string;
39
+ /**
40
+ * Returns true if this is a top-level context.
41
+ * This is the case whenever the parent context ID is null.
42
+ */
43
+ isTopLevelContext(): boolean;
38
44
  addChild(child: BrowsingContextImpl): void;
45
+ get cdpTarget(): CdpTarget;
46
+ updateCdpTarget(cdpTarget: CdpTarget): void;
47
+ get url(): string;
39
48
  awaitLoaded(): Promise<void>;
40
49
  awaitUnblocked(): Promise<void>;
50
+ getOrCreateSandbox(sandbox: string | undefined): Promise<Realm>;
41
51
  serializeToBidiValue(maxDepth?: number, addParentFiled?: boolean): BrowsingContext.Info;
42
52
  navigate(url: string, wait: BrowsingContext.ReadinessState): Promise<BrowsingContext.NavigateResult>;
43
- getOrCreateSandbox(sandbox: string | undefined): Promise<Realm>;
53
+ captureScreenshot(): Promise<BrowsingContext.CaptureScreenshotResult>;
54
+ print(params: BrowsingContext.PrintParameters): Promise<BrowsingContext.PrintResult>;
55
+ addPreloadScript(params: Script.AddPreloadScriptParameters): Promise<Script.AddPreloadScriptResult>;
44
56
  }