chromium-bidi 0.4.20 → 0.4.21

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 (105) hide show
  1. package/.browser +1 -1
  2. package/README.md +2 -2
  3. package/lib/cjs/bidiMapper/BidiNoOpParser.d.ts +8 -1
  4. package/lib/cjs/bidiMapper/BidiNoOpParser.js +24 -0
  5. package/lib/cjs/bidiMapper/BidiNoOpParser.js.map +1 -1
  6. package/lib/cjs/bidiMapper/BidiParser.d.ts +8 -1
  7. package/lib/cjs/bidiMapper/BidiServer.d.ts +1 -1
  8. package/lib/cjs/bidiMapper/BidiServer.js +5 -5
  9. package/lib/cjs/bidiMapper/BidiServer.js.map +1 -1
  10. package/lib/cjs/bidiMapper/CommandProcessor.d.ts +11 -5
  11. package/lib/cjs/bidiMapper/CommandProcessor.js +43 -8
  12. package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
  13. package/lib/cjs/bidiMapper/domains/browser/BrowserProcessor.js +2 -2
  14. package/lib/cjs/bidiMapper/domains/browser/BrowserProcessor.js.map +1 -1
  15. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +3 -2
  16. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +4 -3
  17. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  18. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +3 -2
  19. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +6 -4
  20. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  21. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +16 -4
  22. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +28 -8
  23. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
  24. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +1 -7
  25. package/lib/cjs/bidiMapper/domains/events/EventManager.js +3 -2
  26. package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
  27. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +17 -26
  28. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
  29. package/lib/cjs/bidiMapper/domains/input/InputProcessor.d.ts +1 -2
  30. package/lib/cjs/bidiMapper/domains/input/InputProcessor.js +0 -3
  31. package/lib/cjs/bidiMapper/domains/input/InputProcessor.js.map +1 -1
  32. package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +2 -2
  33. package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
  34. package/lib/cjs/bidiMapper/domains/network/NetworkManager.d.ts +6 -4
  35. package/lib/cjs/bidiMapper/domains/network/NetworkManager.js +38 -43
  36. package/lib/cjs/bidiMapper/domains/network/NetworkManager.js.map +1 -1
  37. package/lib/cjs/bidiMapper/domains/network/NetworkProcessor.d.ts +33 -0
  38. package/lib/cjs/bidiMapper/domains/network/NetworkProcessor.js +74 -0
  39. package/lib/cjs/bidiMapper/domains/network/NetworkProcessor.js.map +1 -0
  40. package/lib/cjs/bidiMapper/domains/network/{networkRequest.d.ts → NetworkRequest.d.ts} +3 -2
  41. package/lib/cjs/bidiMapper/domains/network/{networkRequest.js → NetworkRequest.js} +18 -11
  42. package/lib/cjs/bidiMapper/domains/network/NetworkRequest.js.map +1 -0
  43. package/lib/cjs/bidiMapper/domains/network/NetworkStorage.d.ts +58 -0
  44. package/lib/cjs/bidiMapper/domains/network/NetworkStorage.js +134 -0
  45. package/lib/cjs/bidiMapper/domains/network/NetworkStorage.js.map +1 -0
  46. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.d.ts +2 -1
  47. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js +4 -2
  48. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js.map +1 -1
  49. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.d.ts +2 -1
  50. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.js +2 -2
  51. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.js.map +1 -1
  52. package/lib/cjs/bidiMapper/domains/script/channelProxy.d.ts +5 -4
  53. package/lib/cjs/bidiMapper/domains/script/channelProxy.js +45 -38
  54. package/lib/cjs/bidiMapper/domains/script/channelProxy.js.map +1 -1
  55. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +2 -2
  56. package/lib/cjs/bidiMapper/domains/script/realm.js +2 -2
  57. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  58. package/lib/cjs/bidiMapper/domains/session/SessionProcessor.d.ts +4 -4
  59. package/lib/cjs/bidiMapper/domains/session/SessionProcessor.js +4 -4
  60. package/lib/cjs/bidiMapper/domains/session/SessionProcessor.js.map +1 -1
  61. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  62. package/lib/cjs/bidiServer/bidiServerRunner.d.ts +1 -1
  63. package/lib/cjs/bidiServer/bidiServerRunner.js +24 -12
  64. package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
  65. package/lib/cjs/bidiServer/index.js +6 -3
  66. package/lib/cjs/bidiServer/index.js.map +1 -1
  67. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  68. package/lib/cjs/bidiTab/BidiParserImpl.d.ts +8 -1
  69. package/lib/cjs/bidiTab/BidiParserImpl.js +24 -0
  70. package/lib/cjs/bidiTab/BidiParserImpl.js.map +1 -1
  71. package/lib/cjs/bidiTab/bidiTab.js +3 -3
  72. package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
  73. package/lib/cjs/bidiTab/mapperTabPage.js +1 -2
  74. package/lib/cjs/bidiTab/mapperTabPage.js.map +1 -1
  75. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  76. package/lib/cjs/cdp/cdpConnection.d.ts +3 -1
  77. package/lib/cjs/cdp/cdpConnection.js +5 -3
  78. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  79. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  80. package/lib/cjs/protocol/ErrorResponse.d.ts +6 -0
  81. package/lib/cjs/protocol/ErrorResponse.js +13 -1
  82. package/lib/cjs/protocol/ErrorResponse.js.map +1 -1
  83. package/lib/cjs/protocol/chromium-bidi.d.ts +7 -5
  84. package/lib/cjs/protocol/chromium-bidi.js +10 -5
  85. package/lib/cjs/protocol/chromium-bidi.js.map +1 -1
  86. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  87. package/lib/cjs/protocol/webdriver-bidi.d.ts +190 -4
  88. package/lib/cjs/protocol-parser/protocol-parser.d.ts +143 -0
  89. package/lib/cjs/protocol-parser/protocol-parser.js +33 -1
  90. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  91. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  92. package/lib/cjs/protocol-parser/webdriver-bidi.d.ts +19518 -9505
  93. package/lib/cjs/protocol-parser/webdriver-bidi.js +200 -4
  94. package/lib/cjs/protocol-parser/webdriver-bidi.js.map +1 -1
  95. package/lib/cjs/utils/log.d.ts +4 -4
  96. package/lib/cjs/utils/log.js +4 -4
  97. package/lib/cjs/utils/log.js.map +1 -1
  98. package/lib/cjs/utils/processingQueue.d.ts +2 -1
  99. package/lib/cjs/utils/processingQueue.js +12 -6
  100. package/lib/cjs/utils/processingQueue.js.map +1 -1
  101. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  102. package/lib/iife/mapperTab.js +2 -2
  103. package/lib/iife/mapperTab.js.map +1 -1
  104. package/package.json +18 -18
  105. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetworkProcessor = void 0;
4
+ /**
5
+ * Copyright 2023 Google LLC.
6
+ * Copyright (c) Microsoft Corporation.
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */
20
+ const protocol_js_1 = require("../../../protocol/protocol.js");
21
+ /** Dispatches Network domain commands. */
22
+ class NetworkProcessor {
23
+ #browsingContextStorage;
24
+ #networkStorage;
25
+ constructor(browsingContextStorage, networkStorage) {
26
+ this.#browsingContextStorage = browsingContextStorage;
27
+ this.#networkStorage = networkStorage;
28
+ }
29
+ /** Applies all existing network intercepts to all CDP targets concurrently. */
30
+ async applyIntercepts() {
31
+ await Promise.all(this.#browsingContextStorage.getAllContexts().map(async (context) => {
32
+ await context.cdpTarget.fetchApply();
33
+ }));
34
+ }
35
+ async addIntercept(params) {
36
+ if (params.phases.length === 0) {
37
+ throw new protocol_js_1.InvalidArgumentException('At least one phase must be specified.');
38
+ }
39
+ // TODO: Parse the pattern. Should fix a WPT test with the "foo" string.
40
+ const urlPatterns = params.urlPatterns ?? [];
41
+ const intercept = this.#networkStorage.addIntercept({
42
+ urlPatterns,
43
+ phases: params.phases,
44
+ });
45
+ // TODO: Add try/catch. Remove the intercept if CDP Fetch commands fail.
46
+ await this.applyIntercepts();
47
+ return {
48
+ intercept,
49
+ };
50
+ }
51
+ continueRequest(_params) {
52
+ throw new protocol_js_1.UnknownCommandException('Not implemented yet.');
53
+ }
54
+ continueResponse(_params) {
55
+ throw new protocol_js_1.UnknownCommandException('Not implemented yet.');
56
+ }
57
+ continueWithAuth(_params) {
58
+ throw new protocol_js_1.UnknownCommandException('Not implemented yet.');
59
+ }
60
+ failRequest(_params) {
61
+ throw new protocol_js_1.UnknownCommandException('Not implemented yet.');
62
+ }
63
+ provideResponse(_params) {
64
+ throw new protocol_js_1.UnknownCommandException('Not implemented yet.');
65
+ }
66
+ async removeIntercept(params) {
67
+ this.#networkStorage.removeIntercept(params.intercept);
68
+ // TODO: Add try/catch. Remove the intercept if CDP Fetch commands fail.
69
+ await this.applyIntercepts();
70
+ return {};
71
+ }
72
+ }
73
+ exports.NetworkProcessor = NetworkProcessor;
74
+ //# sourceMappingURL=NetworkProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/network/NetworkProcessor.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,+DAKuC;AAKvC,0CAA0C;AAC1C,MAAa,gBAAgB;IAClB,uBAAuB,CAAyB;IAChD,eAAe,CAAiB;IAEzC,YACE,sBAA8C,EAC9C,cAA8B;QAE9B,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,eAAe;QACnB,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClE,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QACvC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAsC;QAEtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,sCAAwB,CAChC,uCAAuC,CACxC,CAAC;SACH;QAED,wEAAwE;QACxE,MAAM,WAAW,GAAyB,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAEnE,MAAM,SAAS,GAAsB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YACrE,WAAW;YACX,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,wEAAwE;QACxE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,OAAO;YACL,SAAS;SACV,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,OAA0C;QACxD,MAAM,IAAI,qCAAuB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB,CAAC,OAA2C;QAC1D,MAAM,IAAI,qCAAuB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB,CAAC,OAA2C;QAC1D,MAAM,IAAI,qCAAuB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,OAAsC;QAChD,MAAM,IAAI,qCAAuB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe,CAAC,OAA0C;QACxD,MAAM,IAAI,qCAAuB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAyC;QAEzC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvD,wEAAwE;QACxE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AA5ED,4CA4EC"}
@@ -3,8 +3,9 @@
3
3
  * track of all the related CDP events.
4
4
  */
5
5
  import type Protocol from 'devtools-protocol';
6
- import type { IEventManager } from '../events/EventManager.js';
6
+ import type { EventManager } from '../events/EventManager.js';
7
7
  import { type Network } from '../../../protocol/protocol.js';
8
+ /** Abstracts one individual network request. */
8
9
  export declare class NetworkRequest {
9
10
  #private;
10
11
  /**
@@ -15,7 +16,7 @@ export declare class NetworkRequest {
15
16
  * request that initiated it.
16
17
  */
17
18
  readonly requestId: Network.Request;
18
- constructor(requestId: Network.Request, eventManager: IEventManager);
19
+ constructor(requestId: Network.Request, eventManager: EventManager);
19
20
  onRequestWillBeSentEvent(event: Protocol.Network.RequestWillBeSentEvent): void;
20
21
  onRequestWillBeSentExtraInfoEvent(event: Protocol.Network.RequestWillBeSentExtraInfoEvent): void;
21
22
  onResponseReceivedEventExtraInfo(event: Protocol.Network.ResponseReceivedExtraInfoEvent): void;
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.NetworkRequest = void 0;
21
21
  const deferred_js_1 = require("../../../utils/deferred.js");
22
22
  const protocol_js_1 = require("../../../protocol/protocol.js");
23
+ /** Abstracts one individual network request. */
23
24
  class NetworkRequest {
24
25
  static #unknown = 'UNKNOWN';
25
26
  /**
@@ -149,6 +150,8 @@ class NetworkRequest {
149
150
  }
150
151
  #getBaseEventParams() {
151
152
  return {
153
+ // TODO: implement.
154
+ isBlocked: false,
152
155
  context: this.#requestWillBeSentEvent?.frameId ?? null,
153
156
  navigation: this.#getNavigationId(),
154
157
  // TODO: implement.
@@ -332,20 +335,24 @@ class NetworkRequest {
332
335
  }
333
336
  }
334
337
  static #getCookies(associatedCookies) {
335
- return associatedCookies.map((cookieInfo) => {
338
+ return associatedCookies
339
+ .filter(({ blockedReasons }) => {
340
+ return !Array.isArray(blockedReasons) || blockedReasons.length === 0;
341
+ })
342
+ .map(({ cookie }) => {
336
343
  return {
337
- name: cookieInfo.cookie.name,
344
+ name: cookie.name,
338
345
  value: {
339
346
  type: 'string',
340
- value: cookieInfo.cookie.value,
347
+ value: cookie.value,
341
348
  },
342
- domain: cookieInfo.cookie.domain,
343
- path: cookieInfo.cookie.path,
344
- expires: cookieInfo.cookie.expires,
345
- size: cookieInfo.cookie.size,
346
- httpOnly: cookieInfo.cookie.httpOnly,
347
- secure: cookieInfo.cookie.secure,
348
- sameSite: NetworkRequest.#getCookiesSameSite(cookieInfo.cookie.sameSite),
349
+ domain: cookie.domain,
350
+ path: cookie.path,
351
+ expires: cookie.expires,
352
+ size: cookie.size,
353
+ httpOnly: cookie.httpOnly,
354
+ secure: cookie.secure,
355
+ sameSite: NetworkRequest.#getCookiesSameSite(cookie.sameSite),
349
356
  };
350
357
  });
351
358
  }
@@ -361,4 +368,4 @@ class NetworkRequest {
361
368
  }
362
369
  }
363
370
  exports.NetworkRequest = NetworkRequest;
364
- //# sourceMappingURL=networkRequest.js.map
371
+ //# sourceMappingURL=NetworkRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkRequest.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/network/NetworkRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
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 Protocol from 'devtools-protocol';
18
+ import { Network } from '../../../protocol/protocol.js';
19
+ import { DefaultMap } from '../../../utils/DefaultMap.js';
20
+ import type { EventManager } from '../events/EventManager.js';
21
+ import { NetworkRequest } from './NetworkRequest.js';
22
+ /** Stores network and intercept maps. */
23
+ export declare class NetworkStorage {
24
+ #private;
25
+ constructor(eventManager: EventManager);
26
+ get requestMap(): DefaultMap<string, NetworkRequest>;
27
+ disposeRequestMap(): void;
28
+ /**
29
+ * Adds the given entry to the intercept map.
30
+ * URL patterns are assumed to be parsed.
31
+ *
32
+ * @return The intercept ID.
33
+ */
34
+ addIntercept(value: {
35
+ urlPatterns: Network.UrlPattern[];
36
+ phases: Network.InterceptPhase[];
37
+ }): Network.Intercept;
38
+ /**
39
+ * Removes the given intercept from the intercept map.
40
+ * Throws NoSuchInterceptException if the intercept does not exist.
41
+ */
42
+ removeIntercept(intercept: Network.Intercept): void;
43
+ /** Gets parameters for CDP 'Fetch.enable' command from the intercept map. */
44
+ getFetchEnableParams(): Protocol.Fetch.EnableRequest;
45
+ /** Converts a URL pattern from the spec to a CDP URL pattern. */
46
+ static cdpFromSpecUrlPattern(urlPattern: Network.UrlPattern): string;
47
+ static buildUrlPatternString({ protocol, hostname, port, pathname, search, }: Network.UrlPatternPattern): string;
48
+ /**
49
+ * Maps spec Network.InterceptPhase to CDP Fetch.RequestStage.
50
+ * AuthRequired has no CDP equivalent..
51
+ */
52
+ static requestStageFromPhase(phase: Network.InterceptPhase): Protocol.Fetch.RequestStage;
53
+ get blockedRequestMap(): Map<string, {
54
+ request: string;
55
+ phase: Network.InterceptPhase;
56
+ response: Network.ResponseData;
57
+ }>;
58
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetworkStorage = void 0;
4
+ const uuid_js_1 = require("../../../utils/uuid.js");
5
+ const protocol_js_1 = require("../../../protocol/protocol.js");
6
+ const DefaultMap_js_1 = require("../../../utils/DefaultMap.js");
7
+ const NetworkRequest_js_1 = require("./NetworkRequest.js");
8
+ /** Stores network and intercept maps. */
9
+ class NetworkStorage {
10
+ /**
11
+ * Map of request ID to NetworkRequest objects. Needed as long as information
12
+ * about requests comes from different events.
13
+ */
14
+ #requestMap;
15
+ /** A map to define the properties of active network intercepts. */
16
+ #interceptMap;
17
+ /** A map to track the requests which are actively being blocked. */
18
+ #blockedRequestMap;
19
+ constructor(eventManager) {
20
+ this.#requestMap = new DefaultMap_js_1.DefaultMap((requestId) => new NetworkRequest_js_1.NetworkRequest(requestId, eventManager));
21
+ this.#interceptMap = new Map();
22
+ this.#blockedRequestMap = new Map();
23
+ }
24
+ // XXX: Replace getters with custom operations, follow suit of Browsing Context Storage.
25
+ get requestMap() {
26
+ return this.#requestMap;
27
+ }
28
+ disposeRequestMap() {
29
+ for (const request of this.#requestMap.values()) {
30
+ request.dispose();
31
+ }
32
+ this.#requestMap.clear();
33
+ }
34
+ /**
35
+ * Adds the given entry to the intercept map.
36
+ * URL patterns are assumed to be parsed.
37
+ *
38
+ * @return The intercept ID.
39
+ */
40
+ addIntercept(value) {
41
+ const intercept = (0, uuid_js_1.uuidv4)();
42
+ this.#interceptMap.set(intercept, value);
43
+ return intercept;
44
+ }
45
+ /**
46
+ * Removes the given intercept from the intercept map.
47
+ * Throws NoSuchInterceptException if the intercept does not exist.
48
+ */
49
+ removeIntercept(intercept) {
50
+ if (!this.#interceptMap.has(intercept)) {
51
+ throw new protocol_js_1.NoSuchInterceptException(`Intercept '${intercept}' does not exist.`);
52
+ }
53
+ this.#interceptMap.delete(intercept);
54
+ }
55
+ /** Gets parameters for CDP 'Fetch.enable' command from the intercept map. */
56
+ getFetchEnableParams() {
57
+ const patterns = [];
58
+ for (const value of this.#interceptMap.values()) {
59
+ for (const urlPatternSpec of value.urlPatterns) {
60
+ const urlPattern = NetworkStorage.cdpFromSpecUrlPattern(urlPatternSpec);
61
+ for (const phase of value.phases) {
62
+ if (phase === "authRequired" /* Network.InterceptPhase.AuthRequired */) {
63
+ patterns.push({
64
+ urlPattern,
65
+ });
66
+ }
67
+ else {
68
+ patterns.push({
69
+ urlPattern,
70
+ requestStage: NetworkStorage.requestStageFromPhase(phase),
71
+ });
72
+ }
73
+ }
74
+ }
75
+ }
76
+ return {
77
+ patterns,
78
+ // If there's at least one intercept that requires auth, enable the
79
+ // 'Fetch.authRequired' event.
80
+ handleAuthRequests: [...this.#interceptMap.values()].some((param) => {
81
+ return param.phases.includes("authRequired" /* Network.InterceptPhase.AuthRequired */);
82
+ }),
83
+ };
84
+ }
85
+ /** Converts a URL pattern from the spec to a CDP URL pattern. */
86
+ static cdpFromSpecUrlPattern(urlPattern) {
87
+ switch (urlPattern.type) {
88
+ case 'string':
89
+ return urlPattern.pattern;
90
+ case 'pattern':
91
+ return NetworkStorage.buildUrlPatternString(urlPattern);
92
+ }
93
+ }
94
+ static buildUrlPatternString({ protocol, hostname, port, pathname, search, }) {
95
+ let url = '';
96
+ if (protocol) {
97
+ url += `${protocol}://`;
98
+ }
99
+ if (hostname) {
100
+ url += hostname;
101
+ }
102
+ if (port) {
103
+ url += `:${port}`;
104
+ }
105
+ if (pathname) {
106
+ // TODO: add slash?
107
+ url += pathname;
108
+ }
109
+ if (search) {
110
+ url += `?${search}`;
111
+ }
112
+ return url;
113
+ }
114
+ /**
115
+ * Maps spec Network.InterceptPhase to CDP Fetch.RequestStage.
116
+ * AuthRequired has no CDP equivalent..
117
+ */
118
+ static requestStageFromPhase(phase) {
119
+ switch (phase) {
120
+ case "beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */:
121
+ return 'Request';
122
+ case "responseStarted" /* Network.InterceptPhase.ResponseStarted */:
123
+ return 'Response';
124
+ case "authRequired" /* Network.InterceptPhase.AuthRequired */:
125
+ throw new Error('AuthRequired is not a valid intercept phase for request stage.');
126
+ }
127
+ }
128
+ // XXX: Replace getters with custom operations, follow suit of Browsing Context Storage.
129
+ get blockedRequestMap() {
130
+ return this.#blockedRequestMap;
131
+ }
132
+ }
133
+ exports.NetworkStorage = NetworkStorage;
134
+ //# sourceMappingURL=NetworkStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkStorage.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/network/NetworkStorage.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,13 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { type EmptyResult, Script } from '../../../protocol/protocol';
18
+ import type { LoggerFn } from '../../../utils/log';
18
19
  import type { BrowsingContextStorage } from '../context/browsingContextStorage';
19
20
  import type { PreloadScriptStorage } from './PreloadScriptStorage';
20
21
  import type { RealmStorage } from './realmStorage';
21
22
  export declare class ScriptProcessor {
22
23
  #private;
23
- constructor(browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, preloadScriptStorage: PreloadScriptStorage);
24
+ constructor(browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, preloadScriptStorage: PreloadScriptStorage, logger?: LoggerFn);
24
25
  addPreloadScript(params: Script.AddPreloadScriptParameters): Promise<Script.AddPreloadScriptResult>;
25
26
  removePreloadScript(params: Script.RemovePreloadScriptParameters): Promise<EmptyResult>;
26
27
  callFunction(params: Script.CallFunctionParameters): Promise<Script.EvaluateResult>;
@@ -23,13 +23,15 @@ class ScriptProcessor {
23
23
  #browsingContextStorage;
24
24
  #realmStorage;
25
25
  #preloadScriptStorage;
26
- constructor(browsingContextStorage, realmStorage, preloadScriptStorage) {
26
+ #logger;
27
+ constructor(browsingContextStorage, realmStorage, preloadScriptStorage, logger) {
27
28
  this.#browsingContextStorage = browsingContextStorage;
28
29
  this.#realmStorage = realmStorage;
29
30
  this.#preloadScriptStorage = preloadScriptStorage;
31
+ this.#logger = logger;
30
32
  }
31
33
  async addPreloadScript(params) {
32
- const preloadScript = new bidiPreloadScript_1.BidiPreloadScript(params);
34
+ const preloadScript = new bidiPreloadScript_1.BidiPreloadScript(params, this.#logger);
33
35
  this.#preloadScriptStorage.addPreloadScript(preloadScript);
34
36
  const cdpTargets = new Set(this.#browsingContextStorage
35
37
  .getTopLevelContexts()
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/script/ScriptProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScriptProcessor.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/script/ScriptProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type Protocol from 'devtools-protocol';
2
2
  import type { Script } from '../../../protocol/protocol.js';
3
3
  import type { CdpTarget } from '../context/cdpTarget.js';
4
+ import type { LoggerFn } from '../../../utils/log.js';
4
5
  import { ChannelProxy } from './channelProxy.js';
5
6
  /**
6
7
  * BiDi IDs are generated by the server and are unique within contexts.
@@ -16,7 +17,7 @@ export declare class BidiPreloadScript {
16
17
  #private;
17
18
  get id(): string;
18
19
  get targetIds(): Set<Protocol.Target.TargetID>;
19
- constructor(params: Script.AddPreloadScriptParameters);
20
+ constructor(params: Script.AddPreloadScriptParameters, logger?: LoggerFn);
20
21
  /** Channels of the preload script. */
21
22
  get channels(): ChannelProxy[];
22
23
  /**
@@ -49,9 +49,9 @@ class BidiPreloadScript {
49
49
  get targetIds() {
50
50
  return this.#targetIds;
51
51
  }
52
- constructor(params) {
52
+ constructor(params, logger) {
53
53
  this.#channels =
54
- params.arguments?.map((a) => new channelProxy_js_1.ChannelProxy(a.value)) ?? [];
54
+ params.arguments?.map((a) => new channelProxy_js_1.ChannelProxy(a.value, logger)) ?? [];
55
55
  this.#functionDeclaration = params.functionDeclaration;
56
56
  this.#sandbox = params.sandbox;
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bidiPreloadScript.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/script/bidiPreloadScript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bidiPreloadScript.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/script/bidiPreloadScript.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  import { Script } from '../../../protocol/protocol.js';
2
- import type { IEventManager } from '../events/EventManager.js';
2
+ import type { EventManager } from '../events/EventManager.js';
3
+ import { type LoggerFn } from '../../../utils/log.js';
3
4
  import type { Realm } from './realm.js';
4
5
  /**
5
6
  * Used to send messages from realm to BiDi user.
6
7
  */
7
8
  export declare class ChannelProxy {
8
9
  #private;
9
- constructor(channel: Script.ChannelProperties);
10
+ constructor(channel: Script.ChannelProperties, logger?: LoggerFn);
10
11
  /**
11
12
  * Creates a channel proxy in the given realm, initialises listener and
12
13
  * returns a handle to `sendMessage` delegate.
13
14
  */
14
- init(realm: Realm, eventManager: IEventManager): Promise<Script.Handle>;
15
+ init(realm: Realm, eventManager: EventManager): Promise<Script.Handle>;
15
16
  /** Gets a ChannelProxy from window and returns its handle. */
16
- startListenerFromWindow(realm: Realm, eventManager: IEventManager): Promise<void>;
17
+ startListenerFromWindow(realm: Realm, eventManager: EventManager): Promise<void>;
17
18
  /**
18
19
  * String to be evaluated to create a ProxyChannel and put it to window.
19
20
  * Returns the delegate `sendMessage`. Used to provide an argument for preload
@@ -20,13 +20,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.ChannelProxy = void 0;
21
21
  const protocol_js_1 = require("../../../protocol/protocol.js");
22
22
  const uuid_1 = require("../../../utils/uuid");
23
+ const log_js_1 = require("../../../utils/log.js");
23
24
  /**
24
25
  * Used to send messages from realm to BiDi user.
25
26
  */
26
27
  class ChannelProxy {
27
28
  #properties;
28
29
  #id = (0, uuid_1.uuidv4)();
29
- constructor(channel) {
30
+ #logger;
31
+ constructor(channel, logger) {
30
32
  if (![0, null, undefined].includes(channel.serializationOptions?.maxDomDepth)) {
31
33
  throw new Error('serializationOptions.maxDomDepth other than 0 or null is not supported');
32
34
  }
@@ -34,6 +36,7 @@ class ChannelProxy {
34
36
  throw new Error('serializationOptions.includeShadowTree other than "none" is not supported');
35
37
  }
36
38
  this.#properties = channel;
39
+ this.#logger = logger;
37
40
  }
38
41
  /**
39
42
  * Creates a channel proxy in the given realm, initialises listener and
@@ -118,47 +121,51 @@ class ChannelProxy {
118
121
  }
119
122
  /** Starts listening for the channel events of the provided ChannelProxy. */
120
123
  async #startListener(realm, channelHandle, eventManager) {
121
- // TODO(#294): Remove this loop after the realm is destroyed.
122
- // Rely on the CDP throwing exception in such a case.
123
124
  // noinspection InfiniteLoopJS
124
125
  for (;;) {
125
- const message = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {
126
- functionDeclaration: String(async (channelHandle) => channelHandle.getMessage()),
127
- arguments: [
128
- {
129
- objectId: channelHandle,
126
+ try {
127
+ const message = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {
128
+ functionDeclaration: String(async (channelHandle) => channelHandle.getMessage()),
129
+ arguments: [
130
+ {
131
+ objectId: channelHandle,
132
+ },
133
+ ],
134
+ awaitPromise: true,
135
+ executionContextId: realm.executionContextId,
136
+ serializationOptions: {
137
+ serialization: "deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */,
138
+ ...(this.#properties.serializationOptions?.maxObjectDepth ===
139
+ undefined ||
140
+ this.#properties.serializationOptions.maxObjectDepth === null
141
+ ? {}
142
+ : {
143
+ maxDepth: this.#properties.serializationOptions.maxObjectDepth,
144
+ }),
130
145
  },
131
- ],
132
- awaitPromise: true,
133
- executionContextId: realm.executionContextId,
134
- serializationOptions: {
135
- serialization: "deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */,
136
- ...(this.#properties.serializationOptions?.maxObjectDepth ===
137
- undefined ||
138
- this.#properties.serializationOptions.maxObjectDepth === null
139
- ? {}
140
- : {
141
- maxDepth: this.#properties.serializationOptions.maxObjectDepth,
142
- }),
143
- },
144
- });
145
- if (message.exceptionDetails) {
146
- // TODO: add logging.
147
- // TODO: check if a error should be thrown.
148
- return;
149
- }
150
- eventManager.registerEvent({
151
- type: 'event',
152
- method: protocol_js_1.ChromiumBidi.Script.EventNames.MessageEvent,
153
- params: {
154
- channel: this.#properties.channel,
155
- data: realm.cdpToBidiValue(message, this.#properties.ownership ?? "none" /* Script.ResultOwnership.None */),
156
- source: {
157
- realm: realm.realmId,
158
- context: realm.browsingContextId,
146
+ });
147
+ if (message.exceptionDetails) {
148
+ throw message.exceptionDetails;
149
+ }
150
+ eventManager.registerEvent({
151
+ type: 'event',
152
+ method: protocol_js_1.ChromiumBidi.Script.EventNames.MessageEvent,
153
+ params: {
154
+ channel: this.#properties.channel,
155
+ data: realm.cdpToBidiValue(message, this.#properties.ownership ?? "none" /* Script.ResultOwnership.None */),
156
+ source: {
157
+ realm: realm.realmId,
158
+ context: realm.browsingContextId,
159
+ },
159
160
  },
160
- },
161
- }, realm.browsingContextId);
161
+ }, realm.browsingContextId);
162
+ }
163
+ catch (error) {
164
+ // If an error is thrown, then the channel is permanently broken, so we
165
+ // exit the loop.
166
+ this.#logger?.(log_js_1.LogType.debug, error);
167
+ break;
168
+ }
162
169
  }
163
170
  }
164
171
  /**