@browserless.io/browserless 2.24.1 → 2.24.3

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 (83) hide show
  1. package/CHANGELOG.md +19 -4
  2. package/README.md +3 -4
  3. package/build/browsers/browsers.playwright.js +6 -1
  4. package/build/browsers/index.js +1 -1
  5. package/build/routes/chrome/http/content.post.body.json +8 -8
  6. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  7. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  8. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  9. package/build/routes/chromium/http/content.post.body.json +8 -8
  10. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  11. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  12. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  13. package/build/routes/management/http/meta.get.js +3 -1
  14. package/extensions/ublock/_locales/ar/messages.json +3 -3
  15. package/extensions/ublock/_locales/bg/messages.json +1 -1
  16. package/extensions/ublock/_locales/br_FR/messages.json +2 -2
  17. package/extensions/ublock/_locales/cy/messages.json +11 -11
  18. package/extensions/ublock/_locales/el/messages.json +2 -2
  19. package/extensions/ublock/_locales/hu/messages.json +1 -1
  20. package/extensions/ublock/_locales/id/messages.json +1 -1
  21. package/extensions/ublock/_locales/lv/messages.json +4 -4
  22. package/extensions/ublock/_locales/mk/messages.json +130 -130
  23. package/extensions/ublock/_locales/oc/messages.json +1 -1
  24. package/extensions/ublock/_locales/pt_BR/messages.json +1 -1
  25. package/extensions/ublock/_locales/pt_PT/messages.json +2 -2
  26. package/extensions/ublock/_locales/si/messages.json +100 -100
  27. package/extensions/ublock/_locales/sr/messages.json +4 -4
  28. package/extensions/ublock/_locales/vi/messages.json +19 -19
  29. package/extensions/ublock/_locales/zh_TW/messages.json +28 -28
  30. package/extensions/ublock/assets/assets.json +33 -29
  31. package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +2984 -3287
  32. package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +150 -171
  33. package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +37 -27
  34. package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +802 -888
  35. package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +2355 -2071
  36. package/extensions/ublock/assets/ublock/badlists.txt +9 -1
  37. package/extensions/ublock/assets/ublock/badware.min.txt +354 -243
  38. package/extensions/ublock/assets/ublock/filters.min.txt +5837 -5737
  39. package/extensions/ublock/assets/ublock/privacy.min.txt +151 -38
  40. package/extensions/ublock/assets/ublock/quick-fixes.min.txt +83 -127
  41. package/extensions/ublock/assets/ublock/unbreak.min.txt +66 -50
  42. package/extensions/ublock/css/codemirror.css +4 -0
  43. package/extensions/ublock/document-blocked.html +3 -1
  44. package/extensions/ublock/js/arglist-parser.js +116 -0
  45. package/extensions/ublock/js/background.js +1 -1
  46. package/extensions/ublock/js/logger-ui.js +1 -1
  47. package/extensions/ublock/js/messaging.js +9 -2
  48. package/extensions/ublock/js/pagestore.js +3 -1
  49. package/extensions/ublock/js/redirect-engine.js +3 -1
  50. package/extensions/ublock/{assets/resources/set-attr.js → js/resources/attribute.js} +115 -11
  51. package/extensions/ublock/js/resources/base.js +38 -0
  52. package/extensions/ublock/js/resources/cookie.js +419 -0
  53. package/extensions/ublock/js/resources/href-sanitizer.js +188 -0
  54. package/extensions/ublock/js/resources/localstorage.js +235 -0
  55. package/extensions/ublock/js/resources/parse-replace.js +54 -0
  56. package/extensions/ublock/js/resources/prevent-settimeout.js +236 -0
  57. package/extensions/ublock/js/resources/proxy-apply.js +109 -0
  58. package/extensions/ublock/js/resources/replace-argument.js +120 -0
  59. package/extensions/ublock/{assets → js}/resources/run-at.js +20 -4
  60. package/extensions/ublock/{assets → js}/resources/safe-self.js +5 -4
  61. package/extensions/ublock/{assets → js}/resources/scriptlets.js +90 -1589
  62. package/extensions/ublock/js/resources/set-constant.js +287 -0
  63. package/extensions/ublock/js/resources/shared.js +44 -0
  64. package/extensions/ublock/js/resources/spoof-css.js +163 -0
  65. package/extensions/ublock/js/s14e-serializer.js +2 -1
  66. package/extensions/ublock/js/scriptlet-filtering-core.js +1 -1
  67. package/extensions/ublock/js/scriptlet-filtering.js +1 -31
  68. package/extensions/ublock/js/static-dnr-filtering.js +143 -129
  69. package/extensions/ublock/js/static-filtering-parser.js +27 -117
  70. package/extensions/ublock/js/static-net-filtering.js +53 -141
  71. package/extensions/ublock/js/traffic.js +1 -1
  72. package/extensions/ublock/js/urlskip.js +166 -0
  73. package/extensions/ublock/js/vapi-background-ext.js +38 -14
  74. package/extensions/ublock/manifest.json +1 -1
  75. package/package.json +12 -12
  76. package/src/browsers/browsers.playwright.ts +8 -1
  77. package/src/browsers/index.ts +1 -1
  78. package/src/routes/management/http/meta.get.ts +6 -1
  79. package/src/routes/management/http/static.get.ts +1 -1
  80. package/static/docs/swagger.json +10 -10
  81. package/static/docs/swagger.min.json +9 -9
  82. package/static/function/client.js +66 -186
  83. package/static/function/index.html +66 -186
@@ -4401,7 +4401,7 @@
4401
4401
  // node_modules/puppeteer-core/lib/esm/puppeteer/generated/version.js
4402
4402
  init_dirname();
4403
4403
  init_buffer2();
4404
- var packageVersion = "23.11.1";
4404
+ var packageVersion = "24.1.1";
4405
4405
 
4406
4406
  // node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js
4407
4407
  init_dirname();
@@ -4546,17 +4546,50 @@
4546
4546
  init_dirname();
4547
4547
  init_buffer2();
4548
4548
  var paperFormats = {
4549
- letter: { width: 8.5, height: 11 },
4550
- legal: { width: 8.5, height: 14 },
4551
- tabloid: { width: 11, height: 17 },
4552
- ledger: { width: 17, height: 11 },
4553
- a0: { width: 33.1102, height: 46.811 },
4554
- a1: { width: 23.3858, height: 33.1102 },
4555
- a2: { width: 16.5354, height: 23.3858 },
4556
- a3: { width: 11.6929, height: 16.5354 },
4557
- a4: { width: 8.2677, height: 11.6929 },
4558
- a5: { width: 5.8268, height: 8.2677 },
4559
- a6: { width: 4.1339, height: 5.8268 }
4549
+ letter: {
4550
+ cm: { width: 21.59, height: 27.94 },
4551
+ in: { width: 8.5, height: 11 }
4552
+ },
4553
+ legal: {
4554
+ cm: { width: 21.59, height: 35.56 },
4555
+ in: { width: 8.5, height: 14 }
4556
+ },
4557
+ tabloid: {
4558
+ cm: { width: 27.94, height: 43.18 },
4559
+ in: { width: 11, height: 17 }
4560
+ },
4561
+ ledger: {
4562
+ cm: { width: 43.18, height: 27.94 },
4563
+ in: { width: 17, height: 11 }
4564
+ },
4565
+ a0: {
4566
+ cm: { width: 84.1, height: 118.9 },
4567
+ in: { width: 33.1102, height: 46.811 }
4568
+ },
4569
+ a1: {
4570
+ cm: { width: 59.4, height: 84.1 },
4571
+ in: { width: 23.3858, height: 33.1102 }
4572
+ },
4573
+ a2: {
4574
+ cm: { width: 42, height: 59.4 },
4575
+ in: { width: 16.5354, height: 23.3858 }
4576
+ },
4577
+ a3: {
4578
+ cm: { width: 29.7, height: 42 },
4579
+ in: { width: 11.6929, height: 16.5354 }
4580
+ },
4581
+ a4: {
4582
+ cm: { width: 21, height: 29.7 },
4583
+ in: { width: 8.2677, height: 11.6929 }
4584
+ },
4585
+ a5: {
4586
+ cm: { width: 14.8, height: 21 },
4587
+ in: { width: 5.8268, height: 8.2677 }
4588
+ },
4589
+ a6: {
4590
+ cm: { width: 10.5, height: 14.8 },
4591
+ in: { width: 4.1339, height: 5.8268 }
4592
+ }
4560
4593
  };
4561
4594
 
4562
4595
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/util.js
@@ -4739,7 +4772,7 @@
4739
4772
  let width = 8.5;
4740
4773
  let height = 11;
4741
4774
  if (options.format) {
4742
- const format = paperFormats[options.format.toLowerCase()];
4775
+ const format = paperFormats[options.format.toLowerCase()][lengthUnit];
4743
4776
  assert(format, "Unknown paper format: " + options.format);
4744
4777
  width = format.width;
4745
4778
  height = format.height;
@@ -9634,136 +9667,6 @@
9634
9667
  };
9635
9668
  })();
9636
9669
 
9637
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FirefoxTargetManager.js
9638
- init_dirname();
9639
- init_buffer2();
9640
- var FirefoxTargetManager = class extends EventEmitter {
9641
- #connection;
9642
- /**
9643
- * Keeps track of the following events: 'Target.targetCreated',
9644
- * 'Target.targetDestroyed'.
9645
- *
9646
- * A target becomes discovered when 'Target.targetCreated' is received.
9647
- * A target is removed from this map once 'Target.targetDestroyed' is
9648
- * received.
9649
- *
9650
- * `targetFilterCallback` has no effect on this map.
9651
- */
9652
- #discoveredTargetsByTargetId = /* @__PURE__ */ new Map();
9653
- /**
9654
- * Keeps track of targets that were created via 'Target.targetCreated'
9655
- * and which one are not filtered out by `targetFilterCallback`.
9656
- *
9657
- * The target is removed from here once it's been destroyed.
9658
- */
9659
- #availableTargetsByTargetId = /* @__PURE__ */ new Map();
9660
- /**
9661
- * Tracks which sessions attach to which target.
9662
- */
9663
- #availableTargetsBySessionId = /* @__PURE__ */ new Map();
9664
- #targetFilterCallback;
9665
- #targetFactory;
9666
- #attachedToTargetListenersBySession = /* @__PURE__ */ new WeakMap();
9667
- #initializeDeferred = Deferred.create();
9668
- #targetsIdsForInit = /* @__PURE__ */ new Set();
9669
- constructor(connection, targetFactory, targetFilterCallback) {
9670
- super();
9671
- this.#connection = connection;
9672
- this.#targetFilterCallback = targetFilterCallback;
9673
- this.#targetFactory = targetFactory;
9674
- this.#connection.on("Target.targetCreated", this.#onTargetCreated);
9675
- this.#connection.on("Target.targetDestroyed", this.#onTargetDestroyed);
9676
- this.#connection.on(CDPSessionEvent.SessionDetached, this.#onSessionDetached);
9677
- this.setupAttachmentListeners(this.#connection);
9678
- }
9679
- setupAttachmentListeners(session) {
9680
- const listener = (event) => {
9681
- return this.#onAttachedToTarget(session, event);
9682
- };
9683
- assert(!this.#attachedToTargetListenersBySession.has(session));
9684
- this.#attachedToTargetListenersBySession.set(session, listener);
9685
- session.on("Target.attachedToTarget", listener);
9686
- }
9687
- #onSessionDetached = (session) => {
9688
- this.removeSessionListeners(session);
9689
- this.#availableTargetsBySessionId.delete(session.id());
9690
- };
9691
- removeSessionListeners(session) {
9692
- if (this.#attachedToTargetListenersBySession.has(session)) {
9693
- session.off("Target.attachedToTarget", this.#attachedToTargetListenersBySession.get(session));
9694
- this.#attachedToTargetListenersBySession.delete(session);
9695
- }
9696
- }
9697
- getAvailableTargets() {
9698
- return this.#availableTargetsByTargetId;
9699
- }
9700
- getChildTargets(_target) {
9701
- return /* @__PURE__ */ new Set();
9702
- }
9703
- dispose() {
9704
- this.#connection.off("Target.targetCreated", this.#onTargetCreated);
9705
- this.#connection.off("Target.targetDestroyed", this.#onTargetDestroyed);
9706
- }
9707
- async initialize() {
9708
- await this.#connection.send("Target.setDiscoverTargets", {
9709
- discover: true,
9710
- filter: [{}]
9711
- });
9712
- this.#targetsIdsForInit = new Set(this.#discoveredTargetsByTargetId.keys());
9713
- await this.#initializeDeferred.valueOrThrow();
9714
- }
9715
- #onTargetCreated = async (event) => {
9716
- if (this.#discoveredTargetsByTargetId.has(event.targetInfo.targetId)) {
9717
- return;
9718
- }
9719
- this.#discoveredTargetsByTargetId.set(event.targetInfo.targetId, event.targetInfo);
9720
- if (event.targetInfo.type === "browser" && event.targetInfo.attached) {
9721
- const target2 = this.#targetFactory(event.targetInfo, void 0);
9722
- target2._initialize();
9723
- this.#availableTargetsByTargetId.set(event.targetInfo.targetId, target2);
9724
- this.#finishInitializationIfReady(target2._targetId);
9725
- return;
9726
- }
9727
- const target = this.#targetFactory(event.targetInfo, void 0);
9728
- if (this.#targetFilterCallback && !this.#targetFilterCallback(target)) {
9729
- this.#finishInitializationIfReady(event.targetInfo.targetId);
9730
- return;
9731
- }
9732
- target._initialize();
9733
- this.#availableTargetsByTargetId.set(event.targetInfo.targetId, target);
9734
- this.emit("targetAvailable", target);
9735
- this.#finishInitializationIfReady(target._targetId);
9736
- };
9737
- #onTargetDestroyed = (event) => {
9738
- this.#discoveredTargetsByTargetId.delete(event.targetId);
9739
- this.#finishInitializationIfReady(event.targetId);
9740
- const target = this.#availableTargetsByTargetId.get(event.targetId);
9741
- if (target) {
9742
- this.emit("targetGone", target);
9743
- this.#availableTargetsByTargetId.delete(event.targetId);
9744
- }
9745
- };
9746
- #onAttachedToTarget = async (parentSession, event) => {
9747
- const targetInfo = event.targetInfo;
9748
- const session = this.#connection.session(event.sessionId);
9749
- if (!session) {
9750
- throw new Error(`Session ${event.sessionId} was not created.`);
9751
- }
9752
- const target = this.#availableTargetsByTargetId.get(targetInfo.targetId);
9753
- assert(target, `Target ${targetInfo.targetId} is missing`);
9754
- session._setTarget(target);
9755
- this.setupAttachmentListeners(session);
9756
- this.#availableTargetsBySessionId.set(session.id(), this.#availableTargetsByTargetId.get(targetInfo.targetId));
9757
- parentSession.emit(CDPSessionEvent.Ready, session);
9758
- };
9759
- #finishInitializationIfReady(targetId) {
9760
- this.#targetsIdsForInit.delete(targetId);
9761
- if (this.#targetsIdsForInit.size === 0) {
9762
- this.#initializeDeferred.resolve();
9763
- }
9764
- }
9765
- };
9766
-
9767
9670
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FrameManager.js
9768
9671
  init_dirname();
9769
9672
  init_buffer2();
@@ -12111,8 +12014,8 @@
12111
12014
  /**
12112
12015
  * @internal
12113
12016
  */
12114
- dispose() {
12115
- return this.handle.dispose();
12017
+ async dispose() {
12018
+ await Promise.all([this.handle.dispose(), this.isolatedHandle?.dispose()]);
12116
12019
  }
12117
12020
  /**
12118
12021
  * @internal
@@ -14490,7 +14393,7 @@ ${sourceUrlComment}
14490
14393
  }
14491
14394
  if (this.#poller) {
14492
14395
  try {
14493
- await this.#poller.evaluateHandle(async (poller) => {
14396
+ await this.#poller.evaluate(async (poller) => {
14494
14397
  await poller.stop();
14495
14398
  });
14496
14399
  if (this.#poller) {
@@ -14515,7 +14418,7 @@ ${sourceUrlComment}
14515
14418
  if (error.message.includes("Cannot find context with specified id")) {
14516
14419
  return;
14517
14420
  }
14518
- if (error.message.includes("AbortError: Actor 'MessageHandlerFrame' destroyed")) {
14421
+ if (error.message.includes("DiscardedBrowsingContextError")) {
14519
14422
  return;
14520
14423
  }
14521
14424
  return error;
@@ -15169,10 +15072,6 @@ ${sourceUrlComment}
15169
15072
  throw new UnsupportedOperation();
15170
15073
  }
15171
15074
  async frameElement() {
15172
- const isFirefox = this.page().target()._targetManager() instanceof FirefoxTargetManager;
15173
- if (isFirefox) {
15174
- return await super.frameElement();
15175
- }
15176
15075
  const parent = this.parentFrame();
15177
15076
  if (!parent) {
15178
15077
  return null;
@@ -15688,7 +15587,7 @@ ${sourceUrlComment}
15688
15587
  this.id = data.requestId;
15689
15588
  this.#isNavigationRequest = data.requestId === data.loaderId && data.type === "Document";
15690
15589
  this._interceptionId = interceptionId;
15691
- this.#url = data.request.url;
15590
+ this.#url = data.request.url + (data.request.urlFragment ?? "");
15692
15591
  this.#resourceType = (data.type || "other").toLowerCase();
15693
15592
  this.#method = data.request.method;
15694
15593
  this.#postData = data.request.postData;
@@ -15939,7 +15838,6 @@ ${sourceUrlComment}
15939
15838
  #remoteAddress;
15940
15839
  #status;
15941
15840
  #statusText;
15942
- #url;
15943
15841
  #fromDiskCache;
15944
15842
  #fromServiceWorker;
15945
15843
  #headers = {};
@@ -15953,7 +15851,6 @@ ${sourceUrlComment}
15953
15851
  port: responsePayload.remotePort
15954
15852
  };
15955
15853
  this.#statusText = this.#parseStatusTextFromExtraInfo(extraInfo) || responsePayload.statusText;
15956
- this.#url = request.url();
15957
15854
  this.#fromDiskCache = !!responsePayload.fromDiskCache;
15958
15855
  this.#fromServiceWorker = !!responsePayload.fromServiceWorker;
15959
15856
  this.#status = extraInfo ? extraInfo.statusCode : responsePayload.status;
@@ -15992,7 +15889,7 @@ ${sourceUrlComment}
15992
15889
  return this.#remoteAddress;
15993
15890
  }
15994
15891
  url() {
15995
- return this.#url;
15892
+ return this.#request.url();
15996
15893
  }
15997
15894
  status() {
15998
15895
  return this.#status;
@@ -18891,9 +18788,8 @@ ${sourceUrlComment}
18891
18788
  const env_2 = { stack: [], error: void 0, hasError: false };
18892
18789
  try {
18893
18790
  const { fromSurface, omitBackground, optimizeForSpeed, quality, clip: userClip, type, captureBeyondViewport } = options;
18894
- const isFirefox = this.target()._targetManager() instanceof FirefoxTargetManager;
18895
18791
  const stack = __addDisposableResource12(env_2, new AsyncDisposableStack(), true);
18896
- if (!isFirefox && omitBackground && (type === "png" || type === "webp")) {
18792
+ if (omitBackground && (type === "png" || type === "webp")) {
18897
18793
  await this.#emulationManager.setTransparentBackgroundColor();
18898
18794
  stack.defer(async () => {
18899
18795
  await this.#emulationManager.resetDefaultBackgroundColor().catch(debugError);
@@ -18909,10 +18805,10 @@ ${sourceUrlComment}
18909
18805
  }
18910
18806
  const { data } = await this.#primaryTargetClient.send("Page.captureScreenshot", {
18911
18807
  format: type,
18912
- ...optimizeForSpeed ? { optimizeForSpeed } : {},
18808
+ optimizeForSpeed,
18809
+ fromSurface,
18913
18810
  ...quality !== void 0 ? { quality: Math.round(quality) } : {},
18914
18811
  ...clip ? { clip: { ...clip, scale: clip.scale ?? 1 } } : {},
18915
- ...!fromSurface ? { fromSurface } : {},
18916
18812
  captureBeyondViewport
18917
18813
  });
18918
18814
  return data;
@@ -19224,10 +19120,6 @@ ${sourceUrlComment}
19224
19120
  }
19225
19121
  };
19226
19122
 
19227
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
19228
- init_dirname();
19229
- init_buffer2();
19230
-
19231
19123
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js
19232
19124
  init_dirname();
19233
19125
  init_buffer2();
@@ -19455,11 +19347,13 @@ ${sourceUrlComment}
19455
19347
  var OtherTarget = class extends CdpTarget {
19456
19348
  };
19457
19349
 
19458
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
19350
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/TargetManager.js
19351
+ init_dirname();
19352
+ init_buffer2();
19459
19353
  function isPageTargetBecomingPrimary(target, newTargetInfo) {
19460
19354
  return Boolean(target._subtype()) && !newTargetInfo.subtype;
19461
19355
  }
19462
- var ChromeTargetManager = class extends EventEmitter {
19356
+ var TargetManager = class extends EventEmitter {
19463
19357
  #connection;
19464
19358
  /**
19465
19359
  * Keeps track of the following events: 'Target.targetCreated',
@@ -19473,7 +19367,7 @@ ${sourceUrlComment}
19473
19367
  */
19474
19368
  #discoveredTargetsByTargetId = /* @__PURE__ */ new Map();
19475
19369
  /**
19476
- * A target is added to this map once ChromeTargetManager has created
19370
+ * A target is added to this map once TargetManager has created
19477
19371
  * a Target and attached at least once to it.
19478
19372
  */
19479
19373
  #attachedTargetsByTargetId = /* @__PURE__ */ new Map();
@@ -19717,8 +19611,8 @@ ${sourceUrlComment}
19717
19611
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Browser.js
19718
19612
  var CdpBrowser = class _CdpBrowser extends Browser {
19719
19613
  protocol = "cdp";
19720
- static async _create(product, connection, contextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19721
- const browser = new _CdpBrowser(product, connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets);
19614
+ static async _create(connection, contextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19615
+ const browser = new _CdpBrowser(connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets);
19722
19616
  if (acceptInsecureCerts) {
19723
19617
  await connection.send("Security.setIgnoreCertificateErrors", {
19724
19618
  ignore: true
@@ -19736,9 +19630,8 @@ ${sourceUrlComment}
19736
19630
  #defaultContext;
19737
19631
  #contexts = /* @__PURE__ */ new Map();
19738
19632
  #targetManager;
19739
- constructor(product, connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19633
+ constructor(connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19740
19634
  super();
19741
- product = product || "chrome";
19742
19635
  this.#defaultViewport = defaultViewport;
19743
19636
  this.#process = process3;
19744
19637
  this.#connection = connection;
@@ -19748,11 +19641,7 @@ ${sourceUrlComment}
19748
19641
  return true;
19749
19642
  });
19750
19643
  this.#setIsPageTargetCallback(isPageTargetCallback);
19751
- if (product === "firefox") {
19752
- this.#targetManager = new FirefoxTargetManager(connection, this.#createTarget, this.#targetFilterCallback);
19753
- } else {
19754
- this.#targetManager = new ChromeTargetManager(connection, this.#createTarget, this.#targetFilterCallback, waitForInitiallyDiscoveredTargets);
19755
- }
19644
+ this.#targetManager = new TargetManager(connection, this.#createTarget, this.#targetFilterCallback, waitForInitiallyDiscoveredTargets);
19756
19645
  this.#defaultContext = new CdpBrowserContext(this.#connection, this);
19757
19646
  for (const contextId of contextIds) {
19758
19647
  this.#contexts.set(contextId, new CdpBrowserContext(this.#connection, this, contextId));
@@ -19939,10 +19828,8 @@ ${sourceUrlComment}
19939
19828
  async function _connectToCdpBrowser(connectionTransport, url, options) {
19940
19829
  const { acceptInsecureCerts = false, defaultViewport = DEFAULT_VIEWPORT, downloadBehavior, targetFilter, _isPageTarget: isPageTarget, slowMo = 0, protocolTimeout } = options;
19941
19830
  const connection = new Connection(url, connectionTransport, slowMo, protocolTimeout);
19942
- const version = await connection.send("Browser.getVersion");
19943
- const product = version.product.toLowerCase().includes("firefox") ? "firefox" : "chrome";
19944
19831
  const { browserContextIds } = await connection.send("Target.getBrowserContexts");
19945
- const browser = await CdpBrowser._create(product || "chrome", connection, browserContextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, void 0, () => {
19832
+ const browser = await CdpBrowser._create(connection, browserContextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, void 0, () => {
19946
19833
  return connection.send("Browser.close").catch(debugError);
19947
19834
  }, targetFilter, isPageTarget);
19948
19835
  return browser;
@@ -20225,13 +20112,6 @@ puppeteer-core/lib/esm/puppeteer/cdp/Dialog.js:
20225
20112
  * SPDX-License-Identifier: Apache-2.0
20226
20113
  *)
20227
20114
 
20228
- puppeteer-core/lib/esm/puppeteer/cdp/FirefoxTargetManager.js:
20229
- (**
20230
- * @license
20231
- * Copyright 2022 Google Inc.
20232
- * SPDX-License-Identifier: Apache-2.0
20233
- *)
20234
-
20235
20115
  puppeteer-core/lib/esm/puppeteer/api/ElementHandleSymbol.js:
20236
20116
  (**
20237
20117
  * @license
@@ -20547,7 +20427,7 @@ puppeteer-core/lib/esm/puppeteer/cdp/Target.js:
20547
20427
  * SPDX-License-Identifier: Apache-2.0
20548
20428
  *)
20549
20429
 
20550
- puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js:
20430
+ puppeteer-core/lib/esm/puppeteer/cdp/TargetManager.js:
20551
20431
  (**
20552
20432
  * @license
20553
20433
  * Copyright 2022 Google Inc.