chromium-bidi 0.4.16 → 0.4.18

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 (139) hide show
  1. package/.browser +1 -1
  2. package/README.md +13 -2
  3. package/lib/cjs/bidiMapper/BidiNoOpParser.d.ts +41 -0
  4. package/lib/cjs/bidiMapper/BidiNoOpParser.js +100 -0
  5. package/lib/cjs/bidiMapper/BidiNoOpParser.js.map +1 -0
  6. package/lib/cjs/bidiMapper/BidiParser.d.ts +40 -0
  7. package/lib/cjs/bidiMapper/BidiParser.js +19 -0
  8. package/lib/cjs/bidiMapper/BidiParser.js.map +1 -0
  9. package/lib/cjs/bidiMapper/BidiServer.d.ts +9 -9
  10. package/lib/cjs/bidiMapper/BidiServer.js.map +1 -1
  11. package/lib/cjs/bidiMapper/BidiTransport.d.ts +4 -4
  12. package/lib/cjs/bidiMapper/CommandProcessor.d.ts +7 -27
  13. package/lib/cjs/bidiMapper/CommandProcessor.js +83 -108
  14. package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
  15. package/lib/cjs/bidiMapper/OutgoingBidiMessage.d.ts +4 -4
  16. package/lib/cjs/bidiMapper/OutgoingBidiMessage.js.map +1 -1
  17. package/lib/cjs/bidiMapper/bidiMapper.d.ts +2 -2
  18. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +10 -7
  19. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +130 -65
  20. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  21. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +11 -16
  22. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +69 -176
  23. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  24. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +6 -6
  25. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +1 -1
  26. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
  27. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +7 -8
  28. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +25 -35
  29. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
  30. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +9 -9
  31. package/lib/cjs/bidiMapper/domains/events/EventManager.js +23 -4
  32. package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
  33. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +6 -6
  34. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +36 -26
  35. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
  36. package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.js +79 -71
  37. package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.js.map +1 -1
  38. package/lib/cjs/bidiMapper/domains/input/InputProcessor.d.ts +10 -0
  39. package/lib/cjs/bidiMapper/domains/input/InputProcessor.js +80 -0
  40. package/lib/cjs/bidiMapper/domains/input/InputProcessor.js.map +1 -0
  41. package/lib/cjs/bidiMapper/domains/input/InputSource.d.ts +11 -6
  42. package/lib/cjs/bidiMapper/domains/input/InputSource.js +5 -7
  43. package/lib/cjs/bidiMapper/domains/input/InputSource.js.map +1 -1
  44. package/lib/cjs/bidiMapper/domains/input/InputState.d.ts +1 -1
  45. package/lib/cjs/bidiMapper/domains/input/InputState.js +10 -10
  46. package/lib/cjs/bidiMapper/domains/input/InputState.js.map +1 -1
  47. package/lib/cjs/bidiMapper/domains/input/InputStateManager.d.ts +1 -3
  48. package/lib/cjs/bidiMapper/domains/input/InputStateManager.js +6 -12
  49. package/lib/cjs/bidiMapper/domains/input/InputStateManager.js.map +1 -1
  50. package/lib/cjs/bidiMapper/domains/log/logHelper.d.ts +3 -3
  51. package/lib/cjs/bidiMapper/domains/log/logHelper.js +7 -8
  52. package/lib/cjs/bidiMapper/domains/log/logHelper.js.map +1 -1
  53. package/lib/cjs/bidiMapper/domains/log/logManager.js +18 -16
  54. package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
  55. package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +1 -0
  56. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +28 -4
  57. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -1
  58. package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +3 -2
  59. package/lib/cjs/bidiMapper/domains/network/networkRequest.js +24 -10
  60. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -1
  61. package/lib/cjs/bidiMapper/domains/{context → script}/PreloadScriptStorage.d.ts +3 -9
  62. package/lib/cjs/bidiMapper/domains/{context → script}/PreloadScriptStorage.js +0 -8
  63. package/lib/cjs/bidiMapper/domains/script/PreloadScriptStorage.js.map +1 -0
  64. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.d.ts +30 -0
  65. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js +97 -0
  66. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js.map +1 -0
  67. package/lib/cjs/bidiMapper/domains/{context → script}/bidiPreloadScript.d.ts +9 -17
  68. package/lib/cjs/bidiMapper/domains/{context → script}/bidiPreloadScript.js +18 -34
  69. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.js.map +1 -0
  70. package/lib/cjs/bidiMapper/domains/script/channelProxy.d.ts +2 -3
  71. package/lib/cjs/bidiMapper/domains/script/channelProxy.js +7 -6
  72. package/lib/cjs/bidiMapper/domains/script/channelProxy.js.map +1 -1
  73. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +14 -22
  74. package/lib/cjs/bidiMapper/domains/script/realm.js +401 -98
  75. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  76. package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +5 -5
  77. package/lib/cjs/bidiMapper/domains/script/realmStorage.js +8 -8
  78. package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
  79. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  80. package/lib/cjs/bidiServer/bidiServerRunner.js +2 -1
  81. package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
  82. package/lib/cjs/bidiServer/index.js +16 -15
  83. package/lib/cjs/bidiServer/index.js.map +1 -1
  84. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  85. package/lib/cjs/bidiTab/BidiParserImpl.d.ts +41 -0
  86. package/lib/cjs/bidiTab/BidiParserImpl.js +108 -0
  87. package/lib/cjs/bidiTab/BidiParserImpl.js.map +1 -0
  88. package/lib/cjs/bidiTab/bidiTab.js +4 -86
  89. package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
  90. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  91. package/lib/cjs/cdp/cdpClient.d.ts +10 -0
  92. package/lib/cjs/cdp/cdpClient.js +6 -0
  93. package/lib/cjs/cdp/cdpClient.js.map +1 -1
  94. package/lib/cjs/cdp/cdpConnection.js +11 -8
  95. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  96. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  97. package/lib/cjs/protocol/ErrorResponse.d.ts +64 -0
  98. package/lib/cjs/protocol/ErrorResponse.js +118 -0
  99. package/lib/cjs/protocol/ErrorResponse.js.map +1 -0
  100. package/lib/cjs/protocol/cdp.d.ts +66 -0
  101. package/lib/cjs/protocol/cdp.js +19 -0
  102. package/lib/cjs/protocol/cdp.js.map +1 -0
  103. package/lib/cjs/protocol/chromium-bidi.d.ts +64 -0
  104. package/lib/cjs/protocol/chromium-bidi.js +71 -0
  105. package/lib/cjs/protocol/chromium-bidi.js.map +1 -0
  106. package/lib/cjs/protocol/protocol.d.ts +5 -947
  107. package/lib/cjs/protocol/protocol.js +32 -198
  108. package/lib/cjs/protocol/protocol.js.map +1 -1
  109. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  110. package/lib/cjs/protocol/webdriver-bidi.d.ts +1497 -0
  111. package/lib/cjs/protocol/webdriver-bidi.js +19 -0
  112. package/lib/cjs/protocol/webdriver-bidi.js.map +1 -0
  113. package/lib/cjs/protocol-parser/protocol-parser.d.ts +29 -217
  114. package/lib/cjs/protocol-parser/protocol-parser.js +76 -700
  115. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  116. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  117. package/lib/cjs/protocol-parser/webdriver-bidi.d.ts +48774 -0
  118. package/lib/cjs/protocol-parser/webdriver-bidi.js +1631 -0
  119. package/lib/cjs/protocol-parser/webdriver-bidi.js.map +1 -0
  120. package/lib/cjs/utils/EventEmitter.d.ts +7 -0
  121. package/lib/cjs/utils/EventEmitter.js +15 -0
  122. package/lib/cjs/utils/EventEmitter.js.map +1 -1
  123. package/lib/cjs/utils/buffer.d.ts +3 -5
  124. package/lib/cjs/utils/buffer.js +3 -5
  125. package/lib/cjs/utils/buffer.js.map +1 -1
  126. package/lib/cjs/utils/deferred.d.ts +1 -1
  127. package/lib/cjs/utils/deferred.js.map +1 -1
  128. package/lib/cjs/utils/idWrapper.js.map +1 -1
  129. package/lib/cjs/utils/log.js +1 -1
  130. package/lib/cjs/utils/log.js.map +1 -1
  131. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  132. package/lib/iife/mapperTab.js +2 -2
  133. package/lib/iife/mapperTab.js.map +1 -1
  134. package/package.json +39 -43
  135. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js.map +0 -1
  136. package/lib/cjs/bidiMapper/domains/context/bidiPreloadScript.js.map +0 -1
  137. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.d.ts +0 -43
  138. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js +0 -355
  139. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +0 -1
package/.browser CHANGED
@@ -1 +1 @@
1
- chrome@116.0.5840.0
1
+ chrome@117.0.5900.2
package/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  ![Pre-commit](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/pre-commit.yml/badge.svg)
10
10
 
11
+ [![codecov](https://codecov.io/gh/GoogleChromeLabs/chromium-bidi/branch/main/graph/badge.svg?token=LJSXSC9L09)](https://codecov.io/gh/GoogleChromeLabs/chromium-bidi)
12
+
11
13
  This is an implementation of the
12
14
  [WebDriver BiDi](https://w3c.github.io/webdriver-bidi/) protocol with some
13
15
  extensions (**BiDi+**)
@@ -138,6 +140,15 @@ This is a Node.js project, so install dependencies as usual:
138
140
  npm install
139
141
  ```
140
142
 
143
+ ### `cargo`
144
+
145
+ <!-- TODO(jrandolf): Remove after binaries get published -->
146
+
147
+ We use [cddlconv](https://github.com/jrandolf/cddlconv) to generate our WebDriverBidi types before building.
148
+
149
+ 1. Install [Rust](https://rustup.rs/).
150
+ 2. Run `cargo install --git https://github.com/jrandolf/cddlconv.git cddlconv`
151
+
141
152
  ### pre-commit.com integration
142
153
 
143
154
  Refer to the documentation at [.pre-commit-config.yaml](.pre-commit-config.yaml).
@@ -196,11 +207,11 @@ DEBUG=* npm run server -- --verbose
196
207
 
197
208
  TODO: verify it works on Windows.
198
209
 
199
- You can also run the server by using script `./runBiDiServer.sh`. It will write
210
+ You can also run the server by using `npm run server`. It will write
200
211
  output to the file `log.txt`:
201
212
 
202
213
  ```sh
203
- ./runBiDiServer.sh --port=8081 --headless=false
214
+ npm run server -- --port=8081 --headless=false
204
215
  ```
205
216
 
206
217
  ## Running
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright 2023 Google LLC.
3
+ * Copyright (c) Microsoft Corporation.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import type { BrowsingContext, Cdp, Input, Script, Session } from '../protocol/protocol.js';
18
+ import type { IBidiParser } from './BidiParser.js';
19
+ export declare class BidiNoOpParser implements IBidiParser {
20
+ parseActivateParams(params: unknown): BrowsingContext.ActivateParameters;
21
+ parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters;
22
+ parseCloseParams(params: unknown): BrowsingContext.CloseParameters;
23
+ parseCreateParams(params: unknown): BrowsingContext.CreateParameters;
24
+ parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters;
25
+ parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters;
26
+ parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters;
27
+ parsePrintParams(params: unknown): BrowsingContext.PrintParameters;
28
+ parseReloadParams(params: unknown): BrowsingContext.ReloadParameters;
29
+ parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters;
30
+ parseGetSessionParams(params: unknown): Cdp.GetSessionParameters;
31
+ parseSendCommandParams(params: unknown): Cdp.SendCommandParameters;
32
+ parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters;
33
+ parseCallFunctionParams(params: unknown): Script.CallFunctionParameters;
34
+ parseDisownParams(params: unknown): Script.DisownParameters;
35
+ parseEvaluateParams(params: unknown): Script.EvaluateParameters;
36
+ parseGetRealmsParams(params: unknown): Script.GetRealmsParameters;
37
+ parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters;
38
+ parsePerformActionsParams(params: unknown): Input.PerformActionsParameters;
39
+ parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters;
40
+ parseSubscribeParams(params: unknown): Session.SubscriptionRequest;
41
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2023 Google LLC.
4
+ * Copyright (c) Microsoft Corporation.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.BidiNoOpParser = void 0;
20
+ class BidiNoOpParser {
21
+ // Browsing Context domain
22
+ // keep-sorted start block=yes
23
+ parseActivateParams(params) {
24
+ return params;
25
+ }
26
+ parseCaptureScreenshotParams(params) {
27
+ return params;
28
+ }
29
+ parseCloseParams(params) {
30
+ return params;
31
+ }
32
+ parseCreateParams(params) {
33
+ return params;
34
+ }
35
+ parseGetTreeParams(params) {
36
+ return params;
37
+ }
38
+ parseHandleUserPromptParams(params) {
39
+ return params;
40
+ }
41
+ parseNavigateParams(params) {
42
+ return params;
43
+ }
44
+ parsePrintParams(params) {
45
+ return params;
46
+ }
47
+ parseReloadParams(params) {
48
+ return params;
49
+ }
50
+ parseSetViewportParams(params) {
51
+ return params;
52
+ }
53
+ // keep-sorted end
54
+ // CDP domain
55
+ // keep-sorted start block=yes
56
+ parseGetSessionParams(params) {
57
+ return params;
58
+ }
59
+ parseSendCommandParams(params) {
60
+ return params;
61
+ }
62
+ // keep-sorted end
63
+ // Script domain
64
+ // keep-sorted start block=yes
65
+ parseAddPreloadScriptParams(params) {
66
+ return params;
67
+ }
68
+ parseCallFunctionParams(params) {
69
+ return params;
70
+ }
71
+ parseDisownParams(params) {
72
+ return params;
73
+ }
74
+ parseEvaluateParams(params) {
75
+ return params;
76
+ }
77
+ parseGetRealmsParams(params) {
78
+ return params;
79
+ }
80
+ parseRemovePreloadScriptParams(params) {
81
+ return params;
82
+ }
83
+ // keep-sorted end
84
+ // Input domain
85
+ // keep-sorted start block=yes
86
+ parsePerformActionsParams(params) {
87
+ return params;
88
+ }
89
+ parseReleaseActionsParams(params) {
90
+ return params;
91
+ }
92
+ // keep-sorted end
93
+ // Session domain
94
+ // keep-sorted start block=yes
95
+ parseSubscribeParams(params) {
96
+ return params;
97
+ }
98
+ }
99
+ exports.BidiNoOpParser = BidiNoOpParser;
100
+ //# sourceMappingURL=BidiNoOpParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BidiNoOpParser.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiNoOpParser.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAYH,MAAa,cAAc;IACzB,0BAA0B;IAC1B,8BAA8B;IAC9B,mBAAmB,CAAC,MAAe;QACjC,OAAO,MAA4C,CAAC;IACtD,CAAC;IACD,4BAA4B,CAC1B,MAAe;QAEf,OAAO,MAAqD,CAAC;IAC/D,CAAC;IACD,gBAAgB,CAAC,MAAe;QAC9B,OAAO,MAAyC,CAAC;IACnD,CAAC;IACD,iBAAiB,CAAC,MAAe;QAC/B,OAAO,MAA0C,CAAC;IACpD,CAAC;IACD,kBAAkB,CAAC,MAAe;QAChC,OAAO,MAA2C,CAAC;IACrD,CAAC;IACD,2BAA2B,CACzB,MAAe;QAEf,OAAO,MAAoD,CAAC;IAC9D,CAAC;IACD,mBAAmB,CAAC,MAAe;QACjC,OAAO,MAA4C,CAAC;IACtD,CAAC;IACD,gBAAgB,CAAC,MAAe;QAC9B,OAAO,MAAyC,CAAC;IACnD,CAAC;IACD,iBAAiB,CAAC,MAAe;QAC/B,OAAO,MAA0C,CAAC;IACpD,CAAC;IACD,sBAAsB,CACpB,MAAe;QAEf,OAAO,MAA+C,CAAC;IACzD,CAAC;IACD,kBAAkB;IAElB,aAAa;IACb,8BAA8B;IAC9B,qBAAqB,CAAC,MAAe;QACnC,OAAO,MAAkC,CAAC;IAC5C,CAAC;IACD,sBAAsB,CAAC,MAAe;QACpC,OAAO,MAAmC,CAAC;IAC7C,CAAC;IACD,kBAAkB;IAElB,gBAAgB;IAChB,8BAA8B;IAC9B,2BAA2B,CACzB,MAAe;QAEf,OAAO,MAA2C,CAAC;IACrD,CAAC;IACD,uBAAuB,CAAC,MAAe;QACrC,OAAO,MAAuC,CAAC;IACjD,CAAC;IACD,iBAAiB,CAAC,MAAe;QAC/B,OAAO,MAAiC,CAAC;IAC3C,CAAC;IACD,mBAAmB,CAAC,MAAe;QACjC,OAAO,MAAmC,CAAC;IAC7C,CAAC;IACD,oBAAoB,CAAC,MAAe;QAClC,OAAO,MAAoC,CAAC;IAC9C,CAAC;IACD,8BAA8B,CAC5B,MAAe;QAEf,OAAO,MAA8C,CAAC;IACxD,CAAC;IACD,kBAAkB;IAElB,eAAe;IACf,8BAA8B;IAC9B,yBAAyB,CAAC,MAAe;QACvC,OAAO,MAAwC,CAAC;IAClD,CAAC;IACD,yBAAyB,CAAC,MAAe;QACvC,OAAO,MAAwC,CAAC;IAClD,CAAC;IACD,kBAAkB;IAElB,iBAAiB;IACjB,8BAA8B;IAC9B,oBAAoB,CAAC,MAAe;QAClC,OAAO,MAAqC,CAAC;IAC/C,CAAC;CAEF;AA7FD,wCA6FC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Copyright 2023 Google LLC.
3
+ * Copyright (c) Microsoft Corporation.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import type { BrowsingContext, Cdp, Input, Script, Session } from '../protocol/protocol.js';
18
+ export interface IBidiParser {
19
+ parseActivateParams(params: unknown): BrowsingContext.ActivateParameters;
20
+ parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters;
21
+ parseCloseParams(params: unknown): BrowsingContext.CloseParameters;
22
+ parseCreateParams(params: unknown): BrowsingContext.CreateParameters;
23
+ parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters;
24
+ parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters;
25
+ parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters;
26
+ parsePrintParams(params: unknown): BrowsingContext.PrintParameters;
27
+ parseReloadParams(params: unknown): BrowsingContext.ReloadParameters;
28
+ parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters;
29
+ parseGetSessionParams(params: unknown): Cdp.GetSessionParameters;
30
+ parseSendCommandParams(params: unknown): Cdp.SendCommandParameters;
31
+ parsePerformActionsParams(params: unknown): Input.PerformActionsParameters;
32
+ parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters;
33
+ parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters;
34
+ parseCallFunctionParams(params: unknown): Script.CallFunctionParameters;
35
+ parseDisownParams(params: unknown): Script.DisownParameters;
36
+ parseEvaluateParams(params: unknown): Script.EvaluateParameters;
37
+ parseGetRealmsParams(params: unknown): Script.GetRealmsParameters;
38
+ parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters;
39
+ parseSubscribeParams(params: unknown): Session.SubscriptionRequest;
40
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2023 Google LLC.
4
+ * Copyright (c) Microsoft Corporation.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ //# sourceMappingURL=BidiParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BidiParser.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiParser.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -14,21 +14,21 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import type { ICdpConnection } from '../cdp/cdpConnection.js';
18
+ import type { ChromiumBidi } from '../protocol/protocol.js';
17
19
  import { EventEmitter } from '../utils/EventEmitter.js';
18
20
  import { type LoggerFn } from '../utils/log.js';
19
- import type { Message } from '../protocol/protocol.js';
20
- import type { ICdpConnection } from '../cdp/cdpConnection.js';
21
- import { type BidiParser } from './CommandProcessor.js';
22
- import type { BidiTransport } from './BidiTransport.js';
23
- import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
21
+ import type { IBidiParser } from './BidiParser.js';
22
+ import type { IBidiTransport } from './BidiTransport.js';
24
23
  import type { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
25
- type BidiServerEvents = {
26
- message: Message.RawCommandRequest;
24
+ import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
25
+ type BidiServerEvent = {
26
+ message: ChromiumBidi.Command;
27
27
  };
28
- export declare class BidiServer extends EventEmitter<BidiServerEvents> {
28
+ export declare class BidiServer extends EventEmitter<BidiServerEvent> {
29
29
  #private;
30
30
  private constructor();
31
- static createAndStart(bidiTransport: BidiTransport, cdpConnection: ICdpConnection, selfTargetId: string, parser?: BidiParser, logger?: LoggerFn): Promise<BidiServer>;
31
+ static createAndStart(bidiTransport: IBidiTransport, cdpConnection: ICdpConnection, selfTargetId: string, parser?: IBidiParser, logger?: LoggerFn): Promise<BidiServer>;
32
32
  topLevelContextsLoaded(): Promise<void>;
33
33
  /**
34
34
  * Sends BiDi message.
@@ -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,9 +14,9 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import type { Message } from '../protocol/protocol.js';
18
- export interface BidiTransport {
19
- setOnMessage: (handler: (message: Message.RawCommandRequest) => Promise<void> | void) => void;
20
- sendMessage: (message: Message.OutgoingMessage) => Promise<void> | void;
17
+ import type { ChromiumBidi } from '../protocol/protocol.js';
18
+ export interface IBidiTransport {
19
+ setOnMessage: (handler: (message: ChromiumBidi.Command) => Promise<void> | void) => void;
20
+ sendMessage: (message: ChromiumBidi.Message) => Promise<void> | void;
21
21
  close(): void;
22
22
  }
@@ -14,41 +14,21 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { type BrowsingContext, type Cdp, type Input, Message, type Script, type Session } from '../protocol/protocol.js';
18
- import { type LoggerFn } from '../utils/log.js';
19
- import { EventEmitter } from '../utils/EventEmitter.js';
20
17
  import type { ICdpConnection } from '../cdp/cdpConnection.js';
18
+ import { type ChromiumBidi } from '../protocol/protocol.js';
19
+ import { EventEmitter } from '../utils/EventEmitter.js';
20
+ import { type LoggerFn } from '../utils/log.js';
21
+ import type { IBidiParser } from './BidiParser.js';
22
+ import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
21
23
  import type { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
22
24
  import type { IEventManager } from './domains/events/EventManager.js';
23
- import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
24
25
  import type { RealmStorage } from './domains/script/realmStorage.js';
25
26
  type CommandProcessorEvents = {
26
27
  response: Promise<OutgoingBidiMessage>;
27
28
  };
28
- export interface BidiParser {
29
- parseAddPreloadScriptParams(params: object): Script.AddPreloadScriptParameters;
30
- parseRemovePreloadScriptParams(params: object): Script.RemovePreloadScriptParameters;
31
- parseGetRealmsParams(params: object): Script.GetRealmsParameters;
32
- parseCallFunctionParams(params: object): Script.CallFunctionParameters;
33
- parseEvaluateParams(params: object): Script.EvaluateParameters;
34
- parseDisownParams(params: object): Script.DisownParameters;
35
- parseSendCommandParams(params: object): Cdp.SendCommandParams;
36
- parseGetSessionParams(params: object): Cdp.GetSessionParams;
37
- parseSubscribeParams(params: object): Session.SubscriptionRequest;
38
- parseNavigateParams(params: object): BrowsingContext.NavigateParameters;
39
- parseReloadParams(params: object): BrowsingContext.ReloadParameters;
40
- parseGetTreeParams(params: object): BrowsingContext.GetTreeParameters;
41
- parseCreateParams(params: object): BrowsingContext.CreateParameters;
42
- parseCloseParams(params: object): BrowsingContext.CloseParameters;
43
- parseCaptureScreenshotParams(params: object): BrowsingContext.CaptureScreenshotParameters;
44
- parsePrintParams(params: object): BrowsingContext.PrintParameters;
45
- parseSetViewportParams(params: object): BrowsingContext.SetViewportParameters;
46
- parsePerformActionsParams(params: object): Input.PerformActionsParameters;
47
- parseReleaseActionsParams(params: object): Input.ReleaseActionsParameters;
48
- }
49
29
  export declare class CommandProcessor extends EventEmitter<CommandProcessorEvents> {
50
30
  #private;
51
- constructor(cdpConnection: ICdpConnection, eventManager: IEventManager, selfTargetId: string, parser: BidiParser | undefined, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, logger?: LoggerFn);
52
- processCommand(command: Message.RawCommandRequest): Promise<void>;
31
+ constructor(cdpConnection: ICdpConnection, eventManager: IEventManager, selfTargetId: string, parser: IBidiParser | undefined, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, logger?: LoggerFn);
32
+ processCommand(command: ChromiumBidi.Command): Promise<void>;
53
33
  }
54
34
  export {};
@@ -18,160 +18,135 @@
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 log_js_1 = require("../utils/log.js");
22
21
  const EventEmitter_js_1 = require("../utils/EventEmitter.js");
23
- const browsingContextProcessor_js_1 = require("./domains/context/browsingContextProcessor.js");
22
+ const log_js_1 = require("../utils/log.js");
23
+ const BidiNoOpParser_js_1 = require("./BidiNoOpParser.js");
24
24
  const OutgoingBidiMessage_js_1 = require("./OutgoingBidiMessage.js");
25
- class BidiNoOpParser {
26
- parseAddPreloadScriptParams(params) {
27
- return params;
28
- }
29
- parseRemovePreloadScriptParams(params) {
30
- return params;
31
- }
32
- parseGetRealmsParams(params) {
33
- return params;
34
- }
35
- parseCallFunctionParams(params) {
36
- return params;
37
- }
38
- parseEvaluateParams(params) {
39
- return params;
40
- }
41
- parseDisownParams(params) {
42
- return params;
43
- }
44
- parseSendCommandParams(params) {
45
- return params;
46
- }
47
- parseGetSessionParams(params) {
48
- return params;
49
- }
50
- parseSubscribeParams(params) {
51
- return params;
52
- }
53
- parseNavigateParams(params) {
54
- return params;
55
- }
56
- parseReloadParams(params) {
57
- return params;
58
- }
59
- parseGetTreeParams(params) {
60
- return params;
61
- }
62
- parseCreateParams(params) {
63
- return params;
64
- }
65
- parseCloseParams(params) {
66
- return params;
67
- }
68
- parseCaptureScreenshotParams(params) {
69
- return params;
70
- }
71
- parsePrintParams(params) {
72
- return params;
73
- }
74
- parsePerformActionsParams(params) {
75
- return params;
76
- }
77
- parseReleaseActionsParams(params) {
78
- return params;
79
- }
80
- parseSetViewportParams(params) {
81
- return params;
82
- }
83
- }
25
+ const browsingContextProcessor_js_1 = require("./domains/context/browsingContextProcessor.js");
26
+ const InputProcessor_js_1 = require("./domains/input/InputProcessor.js");
27
+ const PreloadScriptStorage_js_1 = require("./domains/script/PreloadScriptStorage.js");
28
+ const ScriptProcessor_js_1 = require("./domains/script/ScriptProcessor.js");
84
29
  class CommandProcessor extends EventEmitter_js_1.EventEmitter {
85
- #contextProcessor;
30
+ #browsingContextProcessor;
31
+ #inputProcessor;
32
+ #scriptProcessor;
86
33
  #eventManager;
87
34
  #parser;
88
35
  #logger;
89
- constructor(cdpConnection, eventManager, selfTargetId, parser = new BidiNoOpParser(), browsingContextStorage, realmStorage, logger) {
36
+ constructor(cdpConnection, eventManager, selfTargetId, parser = new BidiNoOpParser_js_1.BidiNoOpParser(), browsingContextStorage, realmStorage, logger) {
90
37
  super();
91
38
  this.#eventManager = eventManager;
92
- this.#logger = logger;
93
- this.#contextProcessor = new browsingContextProcessor_js_1.BrowsingContextProcessor(cdpConnection, selfTargetId, eventManager, browsingContextStorage, realmStorage, logger);
94
39
  this.#parser = parser;
40
+ this.#logger = logger;
41
+ const preloadScriptStorage = new PreloadScriptStorage_js_1.PreloadScriptStorage();
42
+ this.#browsingContextProcessor = new browsingContextProcessor_js_1.BrowsingContextProcessor(cdpConnection, selfTargetId, eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, logger);
43
+ this.#inputProcessor = InputProcessor_js_1.InputProcessor.create(browsingContextStorage);
44
+ this.#scriptProcessor = new ScriptProcessor_js_1.ScriptProcessor(browsingContextStorage, realmStorage, preloadScriptStorage);
95
45
  }
96
46
  static #process_session_status() {
97
- return { result: { ready: false, message: 'already connected' } };
47
+ return { ready: false, message: 'already connected' };
98
48
  }
99
49
  async #process_session_subscribe(params, channel) {
100
50
  await this.#eventManager.subscribe(params.events, params.contexts ?? [null], channel);
101
- return { result: {} };
51
+ return {};
102
52
  }
103
53
  async #process_session_unsubscribe(params, channel) {
104
54
  await this.#eventManager.unsubscribe(params.events, params.contexts ?? [null], channel);
105
- return { result: {} };
106
- }
107
- async #processCommand(commandData) {
108
- switch (commandData.method) {
109
- case 'session.status':
110
- return CommandProcessor.#process_session_status();
111
- case 'session.subscribe':
112
- return this.#process_session_subscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
113
- case 'session.unsubscribe':
114
- return this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(commandData.params), commandData.channel ?? null);
115
- case 'browsingContext.create':
116
- return this.#contextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(commandData.params));
55
+ return {};
56
+ }
57
+ async #processCommand(command) {
58
+ switch (command.method) {
59
+ case 'browser.close':
60
+ case 'session.end':
61
+ case 'session.new':
62
+ // TODO: Implement.
63
+ break;
64
+ // Browsing Context domain
65
+ // keep-sorted start block=yes
66
+ case 'browsingContext.activate':
67
+ return this.#browsingContextProcessor.process_browsingContext_activate(this.#parser.parseActivateParams(command.params));
68
+ case 'browsingContext.captureScreenshot':
69
+ return this.#browsingContextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(command.params));
117
70
  case 'browsingContext.close':
118
- return this.#contextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(commandData.params));
71
+ return this.#browsingContextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(command.params));
72
+ case 'browsingContext.create':
73
+ return this.#browsingContextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(command.params));
119
74
  case 'browsingContext.getTree':
120
- return this.#contextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(commandData.params));
75
+ return this.#browsingContextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(command.params));
76
+ case 'browsingContext.handleUserPrompt':
77
+ return this.#browsingContextProcessor.process_browsingContext_handleUserPrompt(this.#parser.parseHandleUserPromptParams(command.params));
121
78
  case 'browsingContext.navigate':
122
- return this.#contextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(commandData.params));
123
- case 'browsingContext.captureScreenshot':
124
- return this.#contextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(commandData.params));
79
+ return this.#browsingContextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(command.params));
125
80
  case 'browsingContext.print':
126
- return this.#contextProcessor.process_browsingContext_print(this.#parser.parsePrintParams(commandData.params));
81
+ return this.#browsingContextProcessor.process_browsingContext_print(this.#parser.parsePrintParams(command.params));
127
82
  case 'browsingContext.reload':
128
- return this.#contextProcessor.process_browsingContext_reload(this.#parser.parseReloadParams(commandData.params));
83
+ return this.#browsingContextProcessor.process_browsingContext_reload(this.#parser.parseReloadParams(command.params));
129
84
  case 'browsingContext.setViewport':
130
- return this.#contextProcessor.process_browsingContext_setViewport(this.#parser.parseSetViewportParams(commandData.params));
85
+ return this.#browsingContextProcessor.process_browsingContext_setViewport(this.#parser.parseSetViewportParams(command.params));
86
+ // keep-sorted end
87
+ // CDP domain
88
+ // keep-sorted start block=yes
89
+ case 'cdp.getSession':
90
+ return this.#browsingContextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(command.params));
91
+ case 'cdp.sendCommand':
92
+ return this.#browsingContextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(command.params));
93
+ // keep-sorted end
94
+ // Input domain
95
+ // keep-sorted start block=yes
96
+ case 'input.performActions':
97
+ return this.#inputProcessor.performActions(this.#parser.parsePerformActionsParams(command.params));
98
+ case 'input.releaseActions':
99
+ return this.#inputProcessor.releaseActions(this.#parser.parseReleaseActionsParams(command.params));
100
+ // keep-sorted end
101
+ // Script domain
102
+ // keep-sorted start block=yes
131
103
  case 'script.addPreloadScript':
132
- return this.#contextProcessor.process_script_addPreloadScript(this.#parser.parseAddPreloadScriptParams(commandData.params));
133
- case 'script.removePreloadScript':
134
- return this.#contextProcessor.process_script_removePreloadScript(this.#parser.parseRemovePreloadScriptParams(commandData.params));
135
- case 'script.getRealms':
136
- return this.#contextProcessor.process_script_getRealms(this.#parser.parseGetRealmsParams(commandData.params));
104
+ return this.#scriptProcessor.addPreloadScript(this.#parser.parseAddPreloadScriptParams(command.params));
137
105
  case 'script.callFunction':
138
- return this.#contextProcessor.process_script_callFunction(this.#parser.parseCallFunctionParams(commandData.params));
139
- case 'script.evaluate':
140
- return this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
106
+ return this.#scriptProcessor.callFunction(this.#parser.parseCallFunctionParams(command.params));
141
107
  case 'script.disown':
142
- return this.#contextProcessor.process_script_disown(this.#parser.parseDisownParams(commandData.params));
143
- case 'input.performActions':
144
- return this.#contextProcessor.process_input_performActions(this.#parser.parsePerformActionsParams(commandData.params));
145
- case 'input.releaseActions':
146
- return this.#contextProcessor.process_input_releaseActions(this.#parser.parseReleaseActionsParams(commandData.params));
147
- case 'cdp.sendCommand':
148
- return this.#contextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(commandData.params));
149
- case 'cdp.getSession':
150
- return this.#contextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(commandData.params));
108
+ return this.#scriptProcessor.disown(this.#parser.parseDisownParams(command.params));
109
+ case 'script.evaluate':
110
+ return this.#scriptProcessor.evaluate(this.#parser.parseEvaluateParams(command.params));
111
+ case 'script.getRealms':
112
+ return this.#scriptProcessor.getRealms(this.#parser.parseGetRealmsParams(command.params));
113
+ case 'script.removePreloadScript':
114
+ return this.#scriptProcessor.removePreloadScript(this.#parser.parseRemovePreloadScriptParams(command.params));
115
+ // keep-sorted end
116
+ // Session domain
117
+ // keep-sorted start block=yes
118
+ case 'session.status':
119
+ return CommandProcessor.#process_session_status();
120
+ case 'session.subscribe':
121
+ return this.#process_session_subscribe(this.#parser.parseSubscribeParams(command.params), command.channel ?? null);
122
+ case 'session.unsubscribe':
123
+ return this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(command.params), command.channel ?? null);
124
+ // keep-sorted end
151
125
  }
152
126
  // Intentionally kept outside of the switch statement to ensure that
153
127
  // ESLint @typescript-eslint/switch-exhaustiveness-check triggers if a new
154
128
  // command is added.
155
- throw new protocol_js_1.Message.UnknownCommandException(`Unknown command '${commandData.method}'.`);
129
+ throw new protocol_js_1.UnknownCommandException(`Unknown command '${command.method}'.`);
156
130
  }
157
131
  async processCommand(command) {
158
132
  try {
159
133
  const result = await this.#processCommand(command);
160
134
  const response = {
135
+ type: 'success',
161
136
  id: command.id,
162
- ...result,
137
+ result,
163
138
  };
164
139
  this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(response, command.channel ?? null));
165
140
  }
166
141
  catch (e) {
167
- if (e instanceof protocol_js_1.Message.ErrorResponse) {
142
+ if (e instanceof protocol_js_1.Exception) {
168
143
  const errorResponse = e;
169
144
  this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(errorResponse.toErrorResponse(command.id), command.channel ?? null));
170
145
  }
171
146
  else {
172
147
  const error = e;
173
148
  this.#logger?.(log_js_1.LogType.bidi, error);
174
- this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.Message.UnknownErrorException(error.message).toErrorResponse(command.id), command.channel ?? null));
149
+ this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.UnknownErrorException(error.message, error.stack).toErrorResponse(command.id), command.channel ?? null));
175
150
  }
176
151
  }
177
152
  }