chromium-bidi 0.4.19 → 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 (122) hide show
  1. package/.browser +1 -1
  2. package/README.md +19 -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 +2 -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 +12 -5
  11. package/lib/cjs/bidiMapper/CommandProcessor.js +51 -9
  12. package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
  13. package/lib/cjs/bidiMapper/OutgoingBidiMessage.d.ts +3 -2
  14. package/lib/cjs/bidiMapper/OutgoingBidiMessage.js +15 -4
  15. package/lib/cjs/bidiMapper/OutgoingBidiMessage.js.map +1 -1
  16. package/lib/cjs/bidiMapper/domains/browser/BrowserProcessor.d.ts +23 -0
  17. package/lib/cjs/bidiMapper/domains/browser/BrowserProcessor.js +34 -0
  18. package/lib/cjs/bidiMapper/domains/browser/BrowserProcessor.js.map +1 -0
  19. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +5 -3
  20. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +6 -13
  21. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  22. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +3 -2
  23. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +6 -4
  24. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  25. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +20 -6
  26. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +32 -9
  27. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
  28. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +3 -8
  29. package/lib/cjs/bidiMapper/domains/events/EventManager.js +7 -3
  30. package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
  31. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +17 -26
  32. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
  33. package/lib/cjs/bidiMapper/domains/input/InputProcessor.d.ts +1 -2
  34. package/lib/cjs/bidiMapper/domains/input/InputProcessor.js +0 -3
  35. package/lib/cjs/bidiMapper/domains/input/InputProcessor.js.map +1 -1
  36. package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +2 -2
  37. package/lib/cjs/bidiMapper/domains/log/logManager.js +31 -25
  38. package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
  39. package/lib/cjs/bidiMapper/domains/network/NetworkManager.d.ts +6 -4
  40. package/lib/cjs/bidiMapper/domains/network/NetworkManager.js +38 -43
  41. package/lib/cjs/bidiMapper/domains/network/NetworkManager.js.map +1 -1
  42. package/lib/cjs/bidiMapper/domains/network/NetworkProcessor.d.ts +33 -0
  43. package/lib/cjs/bidiMapper/domains/network/NetworkProcessor.js +74 -0
  44. package/lib/cjs/bidiMapper/domains/network/NetworkProcessor.js.map +1 -0
  45. package/lib/cjs/bidiMapper/domains/network/{networkRequest.d.ts → NetworkRequest.d.ts} +3 -2
  46. package/lib/cjs/bidiMapper/domains/network/{networkRequest.js → NetworkRequest.js} +82 -27
  47. package/lib/cjs/bidiMapper/domains/network/NetworkRequest.js.map +1 -0
  48. package/lib/cjs/bidiMapper/domains/network/NetworkStorage.d.ts +58 -0
  49. package/lib/cjs/bidiMapper/domains/network/NetworkStorage.js +134 -0
  50. package/lib/cjs/bidiMapper/domains/network/NetworkStorage.js.map +1 -0
  51. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.d.ts +2 -1
  52. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js +6 -4
  53. package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js.map +1 -1
  54. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.d.ts +5 -3
  55. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.js +2 -2
  56. package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.js.map +1 -1
  57. package/lib/cjs/bidiMapper/domains/script/channelProxy.d.ts +5 -4
  58. package/lib/cjs/bidiMapper/domains/script/channelProxy.js +45 -38
  59. package/lib/cjs/bidiMapper/domains/script/channelProxy.js.map +1 -1
  60. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +4 -4
  61. package/lib/cjs/bidiMapper/domains/script/realm.js +6 -4
  62. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  63. package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +1 -1
  64. package/lib/cjs/bidiMapper/domains/session/SessionProcessor.d.ts +4 -4
  65. package/lib/cjs/bidiMapper/domains/session/SessionProcessor.js +4 -4
  66. package/lib/cjs/bidiMapper/domains/session/SessionProcessor.js.map +1 -1
  67. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  68. package/lib/cjs/bidiServer/bidiServerRunner.d.ts +1 -1
  69. package/lib/cjs/bidiServer/bidiServerRunner.js +24 -12
  70. package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
  71. package/lib/cjs/bidiServer/index.js +6 -3
  72. package/lib/cjs/bidiServer/index.js.map +1 -1
  73. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  74. package/lib/cjs/bidiTab/BidiParserImpl.d.ts +8 -1
  75. package/lib/cjs/bidiTab/BidiParserImpl.js +24 -0
  76. package/lib/cjs/bidiTab/BidiParserImpl.js.map +1 -1
  77. package/lib/cjs/bidiTab/bidiTab.js +5 -3
  78. package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
  79. package/lib/cjs/bidiTab/mapperTabPage.js +1 -2
  80. package/lib/cjs/bidiTab/mapperTabPage.js.map +1 -1
  81. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  82. package/lib/cjs/cdp/cdpClient.d.ts +5 -6
  83. package/lib/cjs/cdp/cdpClient.js.map +1 -1
  84. package/lib/cjs/cdp/cdpConnection.d.ts +7 -4
  85. package/lib/cjs/cdp/cdpConnection.js +5 -3
  86. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  87. package/lib/cjs/cdp/cdpMessage.d.ts +2 -1
  88. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  89. package/lib/cjs/protocol/ErrorResponse.d.ts +18 -6
  90. package/lib/cjs/protocol/ErrorResponse.js +41 -33
  91. package/lib/cjs/protocol/ErrorResponse.js.map +1 -1
  92. package/lib/cjs/protocol/cdp.d.ts +5 -4
  93. package/lib/cjs/protocol/chromium-bidi.d.ts +10 -6
  94. package/lib/cjs/protocol/chromium-bidi.js +10 -5
  95. package/lib/cjs/protocol/chromium-bidi.js.map +1 -1
  96. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  97. package/lib/cjs/protocol/webdriver-bidi.d.ts +258 -44
  98. package/lib/cjs/protocol-parser/protocol-parser.d.ts +145 -2
  99. package/lib/cjs/protocol-parser/protocol-parser.js +33 -1
  100. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  101. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  102. package/lib/cjs/protocol-parser/webdriver-bidi.d.ts +19567 -9508
  103. package/lib/cjs/protocol-parser/webdriver-bidi.js +202 -4
  104. package/lib/cjs/protocol-parser/webdriver-bidi.js.map +1 -1
  105. package/lib/cjs/utils/assert.js +2 -2
  106. package/lib/cjs/utils/assert.js.map +1 -1
  107. package/lib/cjs/utils/deferred.js +2 -2
  108. package/lib/cjs/utils/deferred.js.map +1 -1
  109. package/lib/cjs/utils/log.d.ts +4 -4
  110. package/lib/cjs/utils/log.js +4 -4
  111. package/lib/cjs/utils/log.js.map +1 -1
  112. package/lib/cjs/utils/processingQueue.d.ts +3 -1
  113. package/lib/cjs/utils/processingQueue.js +18 -6
  114. package/lib/cjs/utils/processingQueue.js.map +1 -1
  115. package/lib/cjs/utils/result.d.ts +23 -0
  116. package/lib/cjs/utils/result.js +19 -0
  117. package/lib/cjs/utils/result.js.map +1 -0
  118. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  119. package/lib/iife/mapperTab.js +2 -2
  120. package/lib/iife/mapperTab.js.map +1 -1
  121. package/package.json +19 -18
  122. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +0 -1
@@ -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()
@@ -59,11 +61,11 @@ class ScriptProcessor {
59
61
  type: 'undefined',
60
62
  }, // `this` is `undefined` by default.
61
63
  params.arguments ?? [], // `arguments` is `[]` by default.
62
- params.awaitPromise, params.resultOwnership ?? "none" /* Script.ResultOwnership.None */, params.serializationOptions ?? {});
64
+ params.awaitPromise, params.resultOwnership ?? "none" /* Script.ResultOwnership.None */, params.serializationOptions ?? {}, params.userActivation ?? false);
63
65
  }
64
66
  async evaluate(params) {
65
67
  const realm = await this.#getRealm(params.target);
66
- return realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership ?? "none" /* Script.ResultOwnership.None */, params.serializationOptions ?? {});
68
+ return realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership ?? "none" /* Script.ResultOwnership.None */, params.serializationOptions ?? {}, params.userActivation ?? false);
67
69
  }
68
70
  async disown(params) {
69
71
  const realm = await this.#getRealm(params.target);
@@ -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,5 +1,7 @@
1
+ import type Protocol from 'devtools-protocol';
1
2
  import type { Script } from '../../../protocol/protocol.js';
2
3
  import type { CdpTarget } from '../context/cdpTarget.js';
4
+ import type { LoggerFn } from '../../../utils/log.js';
3
5
  import { ChannelProxy } from './channelProxy.js';
4
6
  /**
5
7
  * BiDi IDs are generated by the server and are unique within contexts.
@@ -14,8 +16,8 @@ import { ChannelProxy } from './channelProxy.js';
14
16
  export declare class BidiPreloadScript {
15
17
  #private;
16
18
  get id(): string;
17
- get targetIds(): Set<string>;
18
- constructor(params: Script.AddPreloadScriptParameters);
19
+ get targetIds(): Set<Protocol.Target.TargetID>;
20
+ constructor(params: Script.AddPreloadScriptParameters, logger?: LoggerFn);
19
21
  /** Channels of the preload script. */
20
22
  get channels(): ChannelProxy[];
21
23
  /**
@@ -33,5 +35,5 @@ export declare class BidiPreloadScript {
33
35
  */
34
36
  remove(): Promise<void>;
35
37
  /** Removes the provided cdp target from the list of cdp preload scripts. */
36
- dispose(cdpTargetId: string): void;
38
+ dispose(cdpTargetId: Protocol.Target.TargetID): void;
37
39
  }
@@ -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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"channelProxy.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/script/channelProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channelProxy.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/script/channelProxy.ts"],"names":[],"mappings":"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"}
@@ -17,14 +17,14 @@
17
17
  import { Protocol } from 'devtools-protocol';
18
18
  import { type BrowsingContext, Script } from '../../../protocol/protocol.js';
19
19
  import type { BrowsingContextStorage } from '../context/browsingContextStorage.js';
20
- import type { IEventManager } from '../events/EventManager.js';
20
+ import type { EventManager } from '../events/EventManager.js';
21
21
  import type { ICdpClient } from '../../../cdp/cdpClient.js';
22
22
  import { type LoggerFn } from '../../../utils/log.js';
23
23
  import type { RealmStorage } from './realmStorage.js';
24
24
  export declare class Realm {
25
25
  #private;
26
26
  readonly sandbox?: string;
27
- constructor(realmStorage: RealmStorage, browsingContextStorage: BrowsingContextStorage, realmId: Script.Realm, browsingContextId: BrowsingContext.BrowsingContext, executionContextId: Protocol.Runtime.ExecutionContextId, origin: string, type: Script.RealmType, sandbox: string | undefined, cdpClient: ICdpClient, eventManager: IEventManager, logger?: LoggerFn);
27
+ constructor(realmStorage: RealmStorage, browsingContextStorage: BrowsingContextStorage, realmId: Script.Realm, browsingContextId: BrowsingContext.BrowsingContext, executionContextId: Protocol.Runtime.ExecutionContextId, origin: string, type: Script.RealmType, sandbox: string | undefined, cdpClient: ICdpClient, eventManager: EventManager, logger?: LoggerFn);
28
28
  cdpToBidiValue(cdpValue: Protocol.Runtime.CallFunctionOnResponse | Protocol.Runtime.EvaluateResponse, resultOwnership: Script.ResultOwnership): Script.RemoteValue;
29
29
  get realmId(): Script.Realm;
30
30
  get navigableId(): string;
@@ -34,7 +34,7 @@ export declare class Realm {
34
34
  get type(): Script.RealmType;
35
35
  get cdpClient(): ICdpClient;
36
36
  get realmInfo(): Script.RealmInfo;
37
- evaluate(expression: string, awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions): Promise<Script.EvaluateResult>;
37
+ evaluate(expression: string, awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>;
38
38
  /**
39
39
  * Serializes a given CDP object into BiDi, keeping references in the
40
40
  * target's `globalThis`.
@@ -45,7 +45,7 @@ export declare class Realm {
45
45
  * calling `toString()` on the object value.
46
46
  */
47
47
  stringifyObject(cdpRemoteObject: Protocol.Runtime.RemoteObject): Promise<string>;
48
- callFunction(functionDeclaration: string, thisLocalValue: Script.LocalValue, argumentsLocalValues: Script.LocalValue[], awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions): Promise<Script.EvaluateResult>;
48
+ callFunction(functionDeclaration: string, thisLocalValue: Script.LocalValue, argumentsLocalValues: Script.LocalValue[], awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise<Script.EvaluateResult>;
49
49
  disown(handle: Script.Handle): Promise<void>;
50
50
  dispose(): void;
51
51
  }
@@ -49,7 +49,7 @@ class Realm {
49
49
  }
50
50
  else {
51
51
  // No need to await for the object to be released.
52
- void this.#releaseObject(objectId).catch((error) => this.#logger?.(log_js_1.LogType.system, error));
52
+ void this.#releaseObject(objectId).catch((error) => this.#logger?.(log_js_1.LogType.debug, error));
53
53
  }
54
54
  }
55
55
  if (cdpValue.result.type === 'object') {
@@ -145,7 +145,7 @@ class Realm {
145
145
  ...(this.sandbox === undefined ? {} : { sandbox: this.sandbox }),
146
146
  };
147
147
  }
148
- async evaluate(expression, awaitPromise, resultOwnership, serializationOptions) {
148
+ async evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation = false) {
149
149
  await this.#browsingContextStorage
150
150
  .getContext(this.browsingContextId)
151
151
  .targetUnblocked();
@@ -154,6 +154,7 @@ class Realm {
154
154
  expression,
155
155
  awaitPromise,
156
156
  serializationOptions: Realm.#getSerializationOptions("deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions),
157
+ userGesture: userActivation,
157
158
  });
158
159
  if (cdpEvaluateResult.exceptionDetails) {
159
160
  return this.#getExceptionResult(cdpEvaluateResult.exceptionDetails, 0, resultOwnership);
@@ -244,7 +245,7 @@ class Realm {
244
245
  text: (await this.stringifyObject(exception)) || cdpExceptionDetails.text,
245
246
  };
246
247
  }
247
- async callFunction(functionDeclaration, thisLocalValue, argumentsLocalValues, awaitPromise, resultOwnership, serializationOptions) {
248
+ async callFunction(functionDeclaration, thisLocalValue, argumentsLocalValues, awaitPromise, resultOwnership, serializationOptions, userActivation = false) {
248
249
  await this.#browsingContextStorage
249
250
  .getContext(this.browsingContextId)
250
251
  .targetUnblocked();
@@ -270,6 +271,7 @@ class Realm {
270
271
  arguments: thisAndArgumentsList,
271
272
  serializationOptions: Realm.#getSerializationOptions("deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions),
272
273
  executionContextId: this.executionContextId,
274
+ userGesture: userActivation,
273
275
  });
274
276
  }
275
277
  catch (error) {
@@ -441,7 +443,7 @@ class Realm {
441
443
  return { objectId: result.objectId };
442
444
  }
443
445
  case 'channel': {
444
- const channelProxy = new channelProxy_js_1.ChannelProxy(localValue.value);
446
+ const channelProxy = new channelProxy_js_1.ChannelProxy(localValue.value, this.#logger);
445
447
  const channelProxySendMessageHandle = await channelProxy.init(this, this.#eventManager);
446
448
  return { objectId: channelProxySendMessageHandle };
447
449
  }