patchright-core 1.50.1 → 1.51.1

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 (242) hide show
  1. package/ThirdPartyNotices.txt +1 -43
  2. package/browsers.json +22 -10
  3. package/index.js +0 -1
  4. package/lib/androidServerImpl.js +4 -4
  5. package/lib/browserServerImpl.js +18 -9
  6. package/lib/cli/driver.js +6 -6
  7. package/lib/cli/program.js +9 -9
  8. package/lib/cli/programWithTestStub.js +2 -1
  9. package/lib/client/android.js +37 -58
  10. package/lib/client/artifact.js +4 -7
  11. package/lib/client/browser.js +10 -15
  12. package/lib/client/browserContext.js +77 -73
  13. package/lib/client/browserType.js +30 -64
  14. package/lib/client/channelOwner.js +23 -20
  15. package/lib/client/clientHelper.js +5 -7
  16. package/lib/client/clientStackTrace.js +65 -0
  17. package/lib/client/connection.js +46 -39
  18. package/lib/client/consoleMessage.js +4 -7
  19. package/lib/client/electron.js +10 -10
  20. package/lib/client/elementHandle.js +32 -33
  21. package/lib/client/errors.js +2 -2
  22. package/lib/client/eventEmitter.js +5 -8
  23. package/lib/client/fetch.js +60 -61
  24. package/lib/client/fileUtils.js +31 -0
  25. package/lib/client/frame.js +30 -29
  26. package/lib/client/harRouter.js +7 -9
  27. package/lib/client/jsHandle.js +3 -4
  28. package/lib/client/localUtils.js +24 -0
  29. package/lib/client/locator.js +37 -18
  30. package/lib/client/network.js +40 -40
  31. package/lib/client/page.js +59 -55
  32. package/lib/client/platform.js +71 -0
  33. package/lib/client/playwright.js +21 -1
  34. package/lib/client/selectors.js +8 -2
  35. package/lib/client/stream.js +2 -21
  36. package/lib/client/timeoutSettings.js +65 -0
  37. package/lib/client/tracing.js +10 -7
  38. package/lib/client/video.js +2 -2
  39. package/lib/client/waiter.js +5 -6
  40. package/lib/client/webSocket.js +106 -0
  41. package/lib/client/worker.js +12 -10
  42. package/lib/client/writableStream.js +2 -21
  43. package/lib/generated/consoleApiSource.js +1 -1
  44. package/lib/generated/injectedScriptSource.js +1 -1
  45. package/lib/inProcessFactory.js +6 -3
  46. package/lib/outofprocess.js +12 -8
  47. package/lib/protocol/validator.js +64 -13
  48. package/lib/protocol/validatorPrimitives.js +1 -2
  49. package/lib/remote/playwrightConnection.js +18 -10
  50. package/lib/remote/playwrightServer.js +20 -7
  51. package/lib/server/android/android.js +17 -14
  52. package/lib/server/android/backendAdb.js +14 -14
  53. package/lib/server/artifact.js +3 -3
  54. package/lib/server/bidi/bidiBrowser.js +2 -2
  55. package/lib/server/bidi/bidiChromium.js +4 -3
  56. package/lib/server/bidi/bidiConnection.js +1 -1
  57. package/lib/server/bidi/bidiExecutionContext.js +70 -40
  58. package/lib/server/bidi/bidiFirefox.js +4 -3
  59. package/lib/server/bidi/bidiInput.js +5 -8
  60. package/lib/server/bidi/bidiNetworkManager.js +3 -3
  61. package/lib/server/bidi/bidiOverCdp.js +2 -2
  62. package/lib/server/bidi/bidiPage.js +30 -46
  63. package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
  64. package/lib/server/browser.js +2 -2
  65. package/lib/server/browserContext.js +37 -40
  66. package/lib/server/browserType.js +18 -17
  67. package/lib/{utils/sequence.js → server/callLog.js} +18 -3
  68. package/lib/server/chromium/chromium.js +14 -14
  69. package/lib/server/chromium/chromiumSwitches.js +32 -1
  70. package/lib/server/chromium/crBrowser.js +15 -14
  71. package/lib/server/chromium/crConnection.js +2 -2
  72. package/lib/server/chromium/crCoverage.js +1 -1
  73. package/lib/server/chromium/crDevTools.js +1 -1
  74. package/lib/server/chromium/crDragDrop.js +1 -1
  75. package/lib/server/chromium/crExecutionContext.js +25 -17
  76. package/lib/server/chromium/crInput.js +2 -2
  77. package/lib/server/chromium/crNetworkManager.js +73 -26
  78. package/lib/server/chromium/crPage.js +22 -23
  79. package/lib/server/chromium/crPdf.js +1 -1
  80. package/lib/server/chromium/crProtocolHelper.js +3 -3
  81. package/lib/server/chromium/crServiceWorker.js +2 -2
  82. package/lib/server/chromium/videoRecorder.js +2 -2
  83. package/lib/server/clock.js +1 -1
  84. package/lib/server/codegen/javascript.js +1 -1
  85. package/lib/server/codegen/languages.js +2 -2
  86. package/lib/server/debugController.js +3 -3
  87. package/lib/server/deviceDescriptors.js +1 -1
  88. package/lib/server/deviceDescriptorsSource.json +131 -131
  89. package/lib/server/dispatchers/androidDispatcher.js +1 -1
  90. package/lib/server/dispatchers/artifactDispatcher.js +3 -3
  91. package/lib/server/dispatchers/browserContextDispatcher.js +19 -19
  92. package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
  93. package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
  94. package/lib/server/dispatchers/dispatcher.js +27 -25
  95. package/lib/server/dispatchers/electronDispatcher.js +3 -3
  96. package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
  97. package/lib/server/dispatchers/frameDispatcher.js +4 -4
  98. package/lib/server/dispatchers/jsHandleDispatcher.js +2 -2
  99. package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
  100. package/lib/server/dispatchers/localUtilsDispatcher.js +25 -298
  101. package/lib/server/dispatchers/networkDispatchers.js +3 -3
  102. package/lib/server/dispatchers/pageDispatcher.js +11 -9
  103. package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
  104. package/lib/server/dispatchers/streamDispatcher.js +4 -3
  105. package/lib/server/dispatchers/webSocketRouteDispatcher.js +8 -7
  106. package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
  107. package/lib/server/dom.js +18 -12
  108. package/lib/server/download.js +1 -1
  109. package/lib/server/electron/electron.js +17 -16
  110. package/lib/server/errors.js +1 -1
  111. package/lib/server/fetch.js +36 -25
  112. package/lib/server/fileUploadUtils.js +7 -4
  113. package/lib/server/firefox/ffBrowser.js +8 -2
  114. package/lib/server/firefox/ffConnection.js +1 -1
  115. package/lib/server/firefox/ffExecutionContext.js +25 -17
  116. package/lib/server/firefox/ffNetworkManager.js +2 -2
  117. package/lib/server/firefox/ffPage.js +15 -21
  118. package/lib/server/firefox/firefox.js +7 -9
  119. package/lib/server/frameSelectors.js +1 -1
  120. package/lib/server/frames.js +366 -209
  121. package/lib/server/har/harRecorder.js +4 -4
  122. package/lib/server/har/harTracer.js +7 -8
  123. package/lib/server/harBackend.js +157 -0
  124. package/lib/server/helper.js +2 -2
  125. package/lib/server/index.js +1 -8
  126. package/lib/server/input.js +1 -1
  127. package/lib/server/instrumentation.js +2 -2
  128. package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
  129. package/lib/server/javascript.js +46 -33
  130. package/lib/server/launchApp.js +2 -2
  131. package/lib/server/localUtils.js +203 -0
  132. package/lib/server/network.js +3 -3
  133. package/lib/server/page.js +41 -22
  134. package/lib/server/pipeTransport.js +1 -1
  135. package/lib/server/playwright.js +5 -5
  136. package/lib/server/progress.js +1 -1
  137. package/lib/server/protocolError.js +1 -1
  138. package/lib/server/recorder/contextRecorder.js +3 -3
  139. package/lib/server/recorder/recorderApp.js +18 -12
  140. package/lib/server/recorder/recorderCollection.js +3 -3
  141. package/lib/server/recorder/throttledFile.js +3 -4
  142. package/lib/server/recorder.js +7 -5
  143. package/lib/server/registry/browserFetcher.js +9 -7
  144. package/lib/server/registry/dependencies.js +15 -15
  145. package/lib/server/registry/index.js +38 -44
  146. package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
  147. package/lib/server/screenshotter.js +1 -1
  148. package/lib/server/selectors.js +3 -3
  149. package/lib/server/socksClientCertificatesInterceptor.js +8 -8
  150. package/lib/server/socksInterceptor.js +8 -5
  151. package/lib/server/storageScript.js +160 -0
  152. package/lib/{common → server}/timeoutSettings.js +6 -5
  153. package/lib/server/trace/recorder/snapshotter.js +9 -8
  154. package/lib/server/trace/recorder/tracing.js +40 -31
  155. package/lib/server/trace/test/inMemorySnapshotter.js +4 -4
  156. package/lib/server/trace/viewer/traceViewer.js +13 -5
  157. package/lib/server/transport.js +2 -2
  158. package/lib/{utils → server/utils}/comparators.js +4 -4
  159. package/lib/{utils → server/utils}/crypto.js +4 -4
  160. package/lib/{utils → server/utils}/debug.js +4 -12
  161. package/lib/{utils → server/utils}/debugLogger.js +2 -2
  162. package/lib/{utils → server/utils}/env.js +4 -0
  163. package/lib/{utils → server/utils}/expectUtils.js +1 -1
  164. package/lib/{utils → server/utils}/fileUtils.js +4 -5
  165. package/lib/{utils/happy-eyeballs.js → server/utils/happyEyeballs.js} +22 -24
  166. package/lib/{utils → server/utils}/hostPlatform.js +1 -1
  167. package/lib/{utils → server/utils}/httpServer.js +8 -8
  168. package/lib/{utils → server/utils}/linuxUtils.js +3 -23
  169. package/lib/{utils → server/utils}/network.js +4 -4
  170. package/lib/server/utils/nodePlatform.js +140 -0
  171. package/lib/{protocol/transport.js → server/utils/pipeTransport.js} +2 -2
  172. package/lib/{utils → server/utils}/processLauncher.js +5 -5
  173. package/lib/{utils → server/utils}/profiler.js +5 -6
  174. package/lib/{common → server/utils}/socksProxy.js +10 -9
  175. package/lib/{utils → server/utils}/userAgent.js +2 -16
  176. package/lib/{utils → server/utils}/wsServer.js +3 -3
  177. package/lib/{utils → server/utils}/zipFile.js +1 -1
  178. package/lib/{utils → server/utils}/zones.js +9 -24
  179. package/lib/server/webkit/webkit.js +4 -4
  180. package/lib/server/webkit/wkBrowser.js +4 -4
  181. package/lib/server/webkit/wkConnection.js +1 -1
  182. package/lib/server/webkit/wkExecutionContext.js +25 -17
  183. package/lib/server/webkit/wkInput.js +2 -2
  184. package/lib/server/webkit/wkInterceptableRequest.js +2 -2
  185. package/lib/server/webkit/wkPage.js +41 -40
  186. package/lib/server/webkit/wkProvisionalPage.js +1 -1
  187. package/lib/server/webkit/wkWorkers.js +2 -2
  188. package/lib/utils/isomorphic/ariaSnapshot.js +2 -1
  189. package/lib/utils/isomorphic/assert.js +25 -0
  190. package/lib/utils/isomorphic/colors.js +65 -0
  191. package/lib/utils/isomorphic/cssParser.js +1 -1
  192. package/lib/utils/isomorphic/locatorGenerators.js +13 -1
  193. package/lib/utils/isomorphic/locatorParser.js +2 -2
  194. package/lib/utils/{manualPromise.js → isomorphic/manualPromise.js} +3 -5
  195. package/lib/utils/isomorphic/mimeType.js +11 -3
  196. package/lib/utils/{multimap.js → isomorphic/multimap.js} +1 -3
  197. package/lib/utils/{rtti.js → isomorphic/rtti.js} +2 -5
  198. package/lib/utils/isomorphic/stackTrace.js +169 -0
  199. package/lib/utils/isomorphic/stringUtils.js +1 -1
  200. package/lib/utils/{time.js → isomorphic/time.js} +1 -13
  201. package/lib/utils/{timeoutRunner.js → isomorphic/timeoutRunner.js} +4 -4
  202. package/lib/utils/isomorphic/traceUtils.js +23 -0
  203. package/lib/{utils/index.js → utils.js} +200 -121
  204. package/lib/utilsBundle.js +1 -25
  205. package/lib/utilsBundleImpl/index.js +114 -116
  206. package/lib/vite/htmlReport/index.html +20 -20
  207. package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
  208. package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
  209. package/lib/vite/recorder/index.html +1 -1
  210. package/lib/vite/traceViewer/assets/codeMirrorModule-DpJ-EmBQ.js +24 -0
  211. package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +259 -0
  212. package/lib/vite/traceViewer/assets/{xtermModule-c-SNdYZy.js → xtermModule-BoAIEibi.js} +7 -7
  213. package/lib/vite/traceViewer/defaultSettingsView.5fN5lw10.css +1 -0
  214. package/lib/vite/traceViewer/index.CUq7VgrV.js +2 -0
  215. package/lib/vite/traceViewer/index.html +3 -3
  216. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  217. package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +5 -0
  218. package/lib/vite/traceViewer/uiMode.html +3 -3
  219. package/lib/zipBundleImpl.js +4 -4
  220. package/package.json +7 -7
  221. package/types/protocol.d.ts +123 -99
  222. package/types/types.d.ts +91 -37
  223. package/lib/utils/stackTrace.js +0 -134
  224. package/lib/utils/traceUtils.js +0 -44
  225. package/lib/vite/recorder/assets/codeMirrorModule-CNAqJrkA.js +0 -24
  226. package/lib/vite/recorder/assets/index-DGS0JLxS.js +0 -184
  227. package/lib/vite/traceViewer/assets/codeMirrorModule-D55P_UuL.js +0 -24
  228. package/lib/vite/traceViewer/assets/defaultSettingsView-B-uNoFsX.js +0 -243
  229. package/lib/vite/traceViewer/defaultSettingsView.2xeEXCXv.css +0 -1
  230. package/lib/vite/traceViewer/index.BfvuujqP.js +0 -2
  231. package/lib/vite/traceViewer/uiMode.CStJu6jo.js +0 -5
  232. /package/lib/{utils → server/utils}/ascii.js +0 -0
  233. /package/lib/{utils → server/utils}/eventsHelper.js +0 -0
  234. /package/lib/{image_tools → server/utils/image_tools}/colorUtils.js +0 -0
  235. /package/lib/{image_tools → server/utils/image_tools}/compare.js +0 -0
  236. /package/lib/{image_tools → server/utils/image_tools}/imageChannel.js +0 -0
  237. /package/lib/{image_tools → server/utils/image_tools}/stats.js +0 -0
  238. /package/lib/{utils → server/utils}/spawnAsync.js +0 -0
  239. /package/lib/{utils → server/utils}/task.js +0 -0
  240. /package/lib/utils/{headers.js → isomorphic/headers.js} +0 -0
  241. /package/lib/utils/{semaphore.js → isomorphic/semaphore.js} +0 -0
  242. /package/lib/{common → utils/isomorphic}/types.js +0 -0
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.BidiChromium = void 0;
7
7
  var _os = _interopRequireDefault(require("os"));
8
8
  var _utils = require("../../utils");
9
+ var _ascii = require("../utils/ascii");
9
10
  var _browserType = require("../browserType");
10
- var _chromiumSwitches = require("../chromium/chromiumSwitches");
11
11
  var _bidiBrowser = require("./bidiBrowser");
12
12
  var _bidiConnection = require("./bidiConnection");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ var _chromiumSwitches = require("../chromium/chromiumSwitches");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  /**
15
16
  * Copyright (c) Microsoft Corporation.
16
17
  *
@@ -42,7 +43,7 @@ class BidiChromium extends _browserType.BrowserType {
42
43
  }
43
44
  doRewriteStartupLog(error) {
44
45
  if (!error.logs) return error;
45
- if (error.logs.includes('Missing X server')) error.logs = '\n' + (0, _utils.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
46
+ if (error.logs.includes('Missing X server')) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
46
47
  // These error messages are taken from Chromium source code as of July, 2020:
47
48
  // https://github.com/chromium/chromium/blob/70565f67e79f79e17663ad1337dc6e63ee207ce9/content/browser/zygote_host/zygote_host_impl_linux.cc
48
49
  if (!error.logs.includes('crbug.com/357670') && !error.logs.includes('No usable sandbox!') && !error.logs.includes('crbug.com/638180')) return error;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.kBrowserCloseMessageId = exports.BidiSession = exports.BidiConnection = void 0;
7
7
  var _events = require("events");
8
- var _debugLogger = require("../../utils/debugLogger");
8
+ var _debugLogger = require("../utils/debugLogger");
9
9
  var _helper = require("../helper");
10
10
  var _protocolError = require("../protocolError");
11
11
  /**
@@ -4,13 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BidiExecutionContext = void 0;
7
+ exports.createHandle = createHandle;
8
+ var _utils = require("../../utils");
7
9
  var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
8
10
  var js = _interopRequireWildcard(require("../javascript"));
11
+ var dom = _interopRequireWildcard(require("../dom"));
9
12
  var _bidiDeserializer = require("./third_party/bidiDeserializer");
10
13
  var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
11
14
  var _bidiSerializer = require("./third_party/bidiSerializer");
12
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
17
  /**
15
18
  * Copyright (c) Microsoft Corporation.
16
19
  *
@@ -59,7 +62,7 @@ class BidiExecutionContext {
59
62
  if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
60
63
  throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
61
64
  }
62
- async rawEvaluateHandle(expression) {
65
+ async rawEvaluateHandle(context, expression) {
63
66
  const response = await this._session.send('script.evaluate', {
64
67
  expression,
65
68
  target: this._target,
@@ -73,20 +76,20 @@ class BidiExecutionContext {
73
76
  userActivation: true
74
77
  });
75
78
  if (response.type === 'success') {
76
- if ('handle' in response.result) return response.result.handle;
79
+ if ('handle' in response.result) return createHandle(context, response.result);
77
80
  throw new js.JavaScriptErrorInEvaluate('Cannot get handle: ' + JSON.stringify(response.result));
78
81
  }
79
82
  if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
80
83
  throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
81
84
  }
82
- async evaluateWithArguments(functionDeclaration, returnByValue, utilityScript, values, objectIds) {
85
+ async evaluateWithArguments(functionDeclaration, returnByValue, utilityScript, values, handles) {
83
86
  const response = await this._session.send('script.callFunction', {
84
87
  functionDeclaration,
85
88
  target: this._target,
86
89
  arguments: [{
87
90
  handle: utilityScript._objectId
88
- }, ...values.map(_bidiSerializer.BidiSerializer.serialize), ...objectIds.map(handle => ({
89
- handle
91
+ }, ...values.map(_bidiSerializer.BidiSerializer.serialize), ...handles.map(handle => ({
92
+ handle: handle._objectId
90
93
  }))],
91
94
  resultOwnership: returnByValue ? undefined : bidi.Script.ResultOwnership.Root,
92
95
  // Necessary for the handle to be returned.
@@ -100,53 +103,72 @@ class BidiExecutionContext {
100
103
  if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
101
104
  if (response.type === 'success') {
102
105
  if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(_bidiDeserializer.BidiDeserializer.deserialize(response.result));
103
- const objectId = 'handle' in response.result ? response.result.handle : undefined;
104
- return utilityScript._context.createHandle({
105
- objectId,
106
- ...response.result
107
- });
106
+ return createHandle(utilityScript._context, response.result);
108
107
  }
109
108
  throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
110
109
  }
111
- async getProperties(context, objectId) {
112
- const handle = this.createHandle(context, {
113
- objectId
110
+ async getProperties(handle) {
111
+ const names = await handle.evaluate(object => {
112
+ const names = [];
113
+ const descriptors = Object.getOwnPropertyDescriptors(object);
114
+ for (const name in descriptors) {
115
+ var _descriptors$name;
116
+ if ((_descriptors$name = descriptors[name]) !== null && _descriptors$name !== void 0 && _descriptors$name.enumerable) names.push(name);
117
+ }
118
+ return names;
114
119
  });
115
- try {
116
- const names = await handle.evaluate(object => {
117
- const names = [];
118
- const descriptors = Object.getOwnPropertyDescriptors(object);
119
- for (const name in descriptors) {
120
- var _descriptors$name;
121
- if ((_descriptors$name = descriptors[name]) !== null && _descriptors$name !== void 0 && _descriptors$name.enumerable) names.push(name);
122
- }
123
- return names;
124
- });
125
- const values = await Promise.all(names.map(name => handle.evaluateHandle((object, name) => object[name], name)));
126
- const map = new Map();
127
- for (let i = 0; i < names.length; i++) map.set(names[i], values[i]);
128
- return map;
129
- } finally {
130
- handle.dispose();
131
- }
132
- }
133
- createHandle(context, jsRemoteObject) {
134
- const remoteObject = jsRemoteObject;
135
- return new js.JSHandle(context, remoteObject.type, renderPreview(remoteObject), jsRemoteObject.objectId, remoteObjectValue(remoteObject));
120
+ const values = await Promise.all(names.map(name => handle.evaluateHandle((object, name) => object[name], name)));
121
+ const map = new Map();
122
+ for (let i = 0; i < names.length; i++) map.set(names[i], values[i]);
123
+ return map;
136
124
  }
137
- async releaseHandle(objectId) {
125
+ async releaseHandle(handle) {
126
+ if (!handle._objectId) return;
138
127
  await this._session.send('script.disown', {
139
128
  target: this._target,
140
- handles: [objectId]
129
+ handles: [handle._objectId]
130
+ });
131
+ }
132
+ async nodeIdForElementHandle(handle) {
133
+ const shared = await this._remoteValueForReference({
134
+ handle: handle._objectId
135
+ });
136
+ // TODO: store sharedId in the handle.
137
+ if (!('sharedId' in shared)) throw new Error('Element is not a node');
138
+ return {
139
+ sharedId: shared.sharedId
140
+ };
141
+ }
142
+ async remoteObjectForNodeId(context, nodeId) {
143
+ const result = await this._remoteValueForReference(nodeId, true);
144
+ if (!('handle' in result)) throw new Error('Can\'t get remote object for nodeId');
145
+ return createHandle(context, result);
146
+ }
147
+ async contentFrameIdForFrame(handle) {
148
+ const contentWindow = await this._rawCallFunction('e => e.contentWindow', {
149
+ handle: handle._objectId
141
150
  });
151
+ if ((contentWindow === null || contentWindow === void 0 ? void 0 : contentWindow.type) === 'window') return contentWindow.value.context;
152
+ return null;
142
153
  }
143
- async rawCallFunction(functionDeclaration, arg) {
154
+ async frameIdForWindowHandle(handle) {
155
+ if (!handle._objectId) throw new Error('JSHandle is not a DOM node handle');
156
+ const contentWindow = await this._remoteValueForReference({
157
+ handle: handle._objectId
158
+ });
159
+ if (contentWindow.type === 'window') return contentWindow.value.context;
160
+ return null;
161
+ }
162
+ async _remoteValueForReference(reference, createHandle) {
163
+ return await this._rawCallFunction('e => e', reference, createHandle);
164
+ }
165
+ async _rawCallFunction(functionDeclaration, arg, createHandle) {
144
166
  const response = await this._session.send('script.callFunction', {
145
167
  functionDeclaration,
146
168
  target: this._target,
147
169
  arguments: [arg],
148
- resultOwnership: bidi.Script.ResultOwnership.Root,
149
- // Necessary for the handle to be returned.
170
+ // "Root" is necessary for the handle to be returned.
171
+ resultOwnership: createHandle ? bidi.Script.ResultOwnership.Root : bidi.Script.ResultOwnership.None,
150
172
  serializationOptions: {
151
173
  maxObjectDepth: 0,
152
174
  maxDomDepth: 0
@@ -172,4 +194,12 @@ function remoteObjectValue(remoteObject) {
172
194
  if (remoteObject.type === 'number' && typeof remoteObject.value === 'string') return js.parseUnserializableValue(remoteObject.value);
173
195
  if ('value' in remoteObject) return remoteObject.value;
174
196
  return undefined;
197
+ }
198
+ function createHandle(context, remoteObject) {
199
+ if (remoteObject.type === 'node') {
200
+ (0, _utils.assert)(context instanceof dom.FrameExecutionContext);
201
+ return new dom.ElementHandle(context, remoteObject.handle);
202
+ }
203
+ const objectId = 'handle' in remoteObject ? remoteObject.handle : undefined;
204
+ return new js.JSHandle(context, remoteObject.type, renderPreview(remoteObject), objectId, remoteObjectValue(remoteObject));
175
205
  }
@@ -7,11 +7,12 @@ exports.BidiFirefox = void 0;
7
7
  var _os = _interopRequireDefault(require("os"));
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
  var _utils = require("../../utils");
10
+ var _ascii = require("../utils/ascii");
10
11
  var _browserType = require("../browserType");
11
12
  var _bidiBrowser = require("./bidiBrowser");
12
13
  var _bidiConnection = require("./bidiConnection");
13
14
  var _firefoxPrefs = require("./third_party/firefoxPrefs");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
16
  /**
16
17
  * Copyright (c) Microsoft Corporation.
17
18
  *
@@ -39,8 +40,8 @@ class BidiFirefox extends _browserType.BrowserType {
39
40
  doRewriteStartupLog(error) {
40
41
  if (!error.logs) return error;
41
42
  // https://github.com/microsoft/playwright/issues/6500
42
- if (error.logs.includes(`as root in a regular user's session is not supported.`)) error.logs = '\n' + (0, _utils.wrapInASCIIBox)(`Firefox is unable to launch if the $HOME folder isn't owned by the current user.\nWorkaround: Set the HOME=/root environment variable${process.env.GITHUB_ACTION ? ' in your GitHub Actions workflow file' : ''} when running Playwright.`, 1);
43
- if (error.logs.includes('no DISPLAY environment variable specified')) error.logs = '\n' + (0, _utils.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
43
+ if (error.logs.includes(`as root in a regular user's session is not supported.`)) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(`Firefox is unable to launch if the $HOME folder isn't owned by the current user.\nWorkaround: Set the HOME=/root environment variable${process.env.GITHUB_ACTION ? ' in your GitHub Actions workflow file' : ''} when running Playwright.`, 1);
44
+ if (error.logs.includes('no DISPLAY environment variable specified')) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
44
45
  return error;
45
46
  }
46
47
  amendEnvironment(env, userDataDir, executable, browserArguments) {
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.RawTouchscreenImpl = exports.RawMouseImpl = exports.RawKeyboardImpl = void 0;
7
- var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
8
- var _bidiKeyboard = require("./third_party/bidiKeyboard");
9
7
  var _input = require("../input");
8
+ var _bidiKeyboard = require("./third_party/bidiKeyboard");
9
+ var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
10
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  /**
13
13
  * Copyright (c) Microsoft Corporation.
14
14
  *
@@ -84,9 +84,6 @@ class RawMouseImpl {
84
84
  this._session = session;
85
85
  }
86
86
  async move(x, y, button, buttons, modifiers, forClick) {
87
- // Bidi throws when x/y are not integers.
88
- x = Math.round(x);
89
- y = Math.round(y);
90
87
  await this._performActions([{
91
88
  type: 'pointerMove',
92
89
  x,
@@ -107,8 +104,8 @@ class RawMouseImpl {
107
104
  }
108
105
  async wheel(x, y, buttons, modifiers, deltaX, deltaY) {
109
106
  // Bidi throws when x/y are not integers.
110
- x = Math.round(x);
111
- y = Math.round(y);
107
+ x = Math.floor(x);
108
+ y = Math.floor(y);
112
109
  await this._session.send('input.performActions', {
113
110
  context: this._session.sessionId,
114
111
  actions: [{
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.BidiNetworkManager = void 0;
7
7
  exports.bidiBytesValueToString = bidiBytesValueToString;
8
- var _eventsHelper = require("../../utils/eventsHelper");
8
+ var _eventsHelper = require("../utils/eventsHelper");
9
+ var _cookieStore = require("../cookieStore");
9
10
  var network = _interopRequireWildcard(require("../network"));
10
11
  var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
11
- var _cookieStore = require("../cookieStore");
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
14
  /**
15
15
  * Copyright (c) Microsoft Corporation.
16
16
  *
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.connectBidiOverCdp = connectBidiOverCdp;
7
7
  var bidiMapper = _interopRequireWildcard(require("chromium-bidi/lib/cjs/bidiMapper/BidiMapper"));
8
8
  var bidiCdpConnection = _interopRequireWildcard(require("chromium-bidi/lib/cjs/cdp/CdpConnection"));
9
- var _debugLogger = require("../../utils/debugLogger");
9
+ var _debugLogger = require("../utils/debugLogger");
10
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  /**
13
13
  * Copyright (c) Microsoft Corporation.
14
14
  *
@@ -4,19 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BidiPage = void 0;
7
- var _eventsHelper = require("../../utils/eventsHelper");
8
7
  var _utils = require("../../utils");
9
- var dom = _interopRequireWildcard(require("../dom"));
8
+ var _eventsHelper = require("../utils/eventsHelper");
9
+ var _browserContext = require("../browserContext");
10
10
  var dialog = _interopRequireWildcard(require("../dialog"));
11
+ var dom = _interopRequireWildcard(require("../dom"));
11
12
  var _page = require("../page");
12
- var _bidiInput = require("./bidiInput");
13
- var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
14
13
  var _bidiExecutionContext = require("./bidiExecutionContext");
14
+ var _bidiInput = require("./bidiInput");
15
15
  var _bidiNetworkManager = require("./bidiNetworkManager");
16
- var _browserContext = require("../browserContext");
17
16
  var _bidiPdf = require("./bidiPdf");
17
+ var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
18
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
20
  /**
21
21
  * Copyright (c) Microsoft Corporation.
22
22
  *
@@ -101,7 +101,6 @@ class BidiPage {
101
101
  if (realmInfo.type !== 'window') return;
102
102
  const frame = this._page._frameManager.frame(realmInfo.context);
103
103
  if (!frame) return;
104
- const delegate = new _bidiExecutionContext.BidiExecutionContext(this._session, realmInfo);
105
104
  let worldName;
106
105
  if (!realmInfo.sandbox) {
107
106
  worldName = 'main';
@@ -112,8 +111,8 @@ class BidiPage {
112
111
  } else {
113
112
  return;
114
113
  }
114
+ const delegate = new _bidiExecutionContext.BidiExecutionContext(this._session, realmInfo);
115
115
  const context = new dom.FrameExecutionContext(delegate, frame, worldName);
116
- context[contextDelegateSymbol] = delegate;
117
116
  frame._contextCreated(worldName, context);
118
117
  this._realmToContext.set(realmInfo.realm, context);
119
118
  }
@@ -202,10 +201,7 @@ class BidiPage {
202
201
  lineNumber: 1,
203
202
  columnNumber: 1
204
203
  };
205
- this._page._addConsoleMessage(entry.method, entry.args.map(arg => context.createHandle({
206
- objectId: arg.handle,
207
- ...arg
208
- })), location, params.text || undefined);
204
+ this._page._addConsoleMessage(entry.method, entry.args.map(arg => (0, _bidiExecutionContext.createHandle)(context, arg)), location, params.text || undefined);
209
205
  }
210
206
  async navigateFrame(frame, url, referrer) {
211
207
  const {
@@ -352,21 +348,20 @@ class BidiPage {
352
348
  }
353
349
  async getContentFrame(handle) {
354
350
  const executionContext = toBidiExecutionContext(handle._context);
355
- const contentWindow = await executionContext.rawCallFunction('e => e.contentWindow', {
356
- handle: handle._objectId
357
- });
358
- if (contentWindow.type === 'window') {
359
- const frameId = contentWindow.value.context;
360
- const result = this._page._frameManager.frame(frameId);
361
- return result;
362
- }
363
- return null;
351
+ const frameId = await executionContext.contentFrameIdForFrame(handle);
352
+ if (!frameId) return null;
353
+ return this._page._frameManager.frame(frameId);
364
354
  }
365
355
  async getOwnerFrame(handle) {
366
- throw new Error('Method not implemented.');
367
- }
368
- isElementHandle(remoteObject) {
369
- return remoteObject.type === 'node';
356
+ // TODO: switch to utility world?
357
+ const windowHandle = await handle.evaluateHandle(node => {
358
+ var _node$ownerDocument;
359
+ const doc = (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : node;
360
+ return doc.defaultView;
361
+ });
362
+ if (!windowHandle) return null;
363
+ const executionContext = toBidiExecutionContext(handle._context);
364
+ return executionContext.frameIdForWindowHandle(windowHandle);
370
365
  }
371
366
  async getBoundingBox(handle) {
372
367
  const box = await handle.evaluate(element => {
@@ -449,29 +444,19 @@ class BidiPage {
449
444
  }));
450
445
  return quads;
451
446
  }
452
- async setInputFiles(handle, files) {
453
- throw new Error('Method not implemented.');
454
- }
455
447
  async setInputFilePaths(handle, paths) {
456
- throw new Error('Method not implemented.');
448
+ const fromContext = toBidiExecutionContext(handle._context);
449
+ await this._session.send('input.setFiles', {
450
+ context: this._session.sessionId,
451
+ element: await fromContext.nodeIdForElementHandle(handle),
452
+ files: paths
453
+ });
457
454
  }
458
455
  async adoptElementHandle(handle, to) {
459
456
  const fromContext = toBidiExecutionContext(handle._context);
460
- const shared = await fromContext.rawCallFunction('x => x', {
461
- handle: handle._objectId
462
- });
463
- // TODO: store sharedId in the handle.
464
- if (!('sharedId' in shared)) throw new Error('Element is not a node');
465
- const sharedId = shared.sharedId;
457
+ const nodeId = await fromContext.nodeIdForElementHandle(handle);
466
458
  const executionContext = toBidiExecutionContext(to);
467
- const result = await executionContext.rawCallFunction('x => x', {
468
- sharedId
469
- });
470
- if ('handle' in result) return to.createHandle({
471
- objectId: result.handle,
472
- ...result
473
- });
474
- throw new Error('Failed to adopt element handle.');
459
+ return await executionContext.remoteObjectForNodeId(to, nodeId);
475
460
  }
476
461
  async getAccessibilityTree(needle) {
477
462
  throw new Error('Method not implemented.');
@@ -513,6 +498,5 @@ function addMainBinding(callback) {
513
498
  globalThis['__playwright__binding__'] = callback;
514
499
  }
515
500
  function toBidiExecutionContext(executionContext) {
516
- return executionContext[contextDelegateSymbol];
517
- }
518
- const contextDelegateSymbol = Symbol('delegate');
501
+ return executionContext.delegate;
502
+ }
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.createProfile = createProfile;
7
7
  var _fs = _interopRequireDefault(require("fs"));
8
8
  var _path = _interopRequireDefault(require("path"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  /**
11
11
  * @license
12
12
  * Copyright 2023 Google Inc.
@@ -47,6 +47,13 @@ function defaultProfilePreferences(extraPrefs) {
47
47
  // console
48
48
  // https://bugzilla.mozilla.org/show_bug.cgi?id=1543115
49
49
  'browser.dom.window.dump.enabled': true,
50
+ // Make sure newtab weather doesn't hit the network to retrieve weather data.
51
+ 'browser.newtabpage.activity-stream.discoverystream.region-weather-config': '',
52
+ // Make sure newtab wallpapers don't hit the network to retrieve wallpaper data.
53
+ 'browser.newtabpage.activity-stream.newtabWallpapers.enabled': false,
54
+ 'browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled': false,
55
+ // Make sure Topsites doesn't hit the network to retrieve sponsored tiles.
56
+ 'browser.newtabpage.activity-stream.showSponsoredTopSites': false,
50
57
  // Disable topstories
51
58
  'browser.newtabpage.activity-stream.feeds.system.topstories': false,
52
59
  // Always display a blank page
@@ -112,6 +119,13 @@ function defaultProfilePreferences(extraPrefs) {
112
119
  // Disable slow script dialogues
113
120
  'dom.max_chrome_script_run_time': 0,
114
121
  'dom.max_script_run_time': 0,
122
+ // Disable background timer throttling to allow tests to run in parallel
123
+ // without a decrease in performance.
124
+ 'dom.min_background_timeout_value': 0,
125
+ 'dom.min_background_timeout_value_without_budget_throttling': 0,
126
+ 'dom.timeout.enable_budget_timer_throttling': false,
127
+ // Disable HTTPS-First upgrades
128
+ 'dom.security.https_first': false,
115
129
  // Only load extensions from the application and user profile
116
130
  // AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION
117
131
  'extensions.autoDisableScopes': 0,
@@ -141,10 +155,14 @@ function defaultProfilePreferences(extraPrefs) {
141
155
  'hangmonitor.timeout': 0,
142
156
  // Show chrome errors and warnings in the error console
143
157
  'javascript.options.showInConsole': true,
158
+ // Do not throttle rendering (requestAnimationFrame) in background tabs
159
+ 'layout.testing.top-level-always-active': true,
144
160
  // Disable download and usage of OpenH264: and Widevine plugins
145
161
  'media.gmp-manager.updateEnabled': false,
146
162
  // Disable the GFX sanity window
147
163
  'media.sanity-test.disabled': true,
164
+ // Disable connectivity service pings
165
+ 'network.connectivity-service.enabled': false,
148
166
  // Disable experimental feature that is only available in Nightly
149
167
  'network.cookie.sameSite.laxByDefault': false,
150
168
  // Do not prompt for temporary redirects
@@ -169,8 +187,6 @@ function defaultProfilePreferences(extraPrefs) {
169
187
  'security.fileuri.strict_origin_policy': false,
170
188
  // Do not wait for the notification button security delay
171
189
  'security.notification_enable_delay': 0,
172
- // Ensure blocklist updates do not hit the network
173
- 'services.settings.server': `http://${server}/dummy/blocklist/`,
174
190
  // Do not automatically fill sign-in forms with known usernames and
175
191
  // passwords
176
192
  'signon.autofillForms': false,
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Browser = void 0;
7
+ var _artifact = require("./artifact");
7
8
  var _browserContext = require("./browserContext");
8
- var _page = require("./page");
9
9
  var _download = require("./download");
10
10
  var _instrumentation = require("./instrumentation");
11
- var _artifact = require("./artifact");
11
+ var _page = require("./page");
12
12
  var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
13
13
  /**
14
14
  * Copyright (c) Microsoft Corporation.