rebrowser-playwright-core 1.48.2 → 1.49.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 (112) hide show
  1. package/README.md +2 -2
  2. package/ThirdPartyNotices.txt +70 -384
  3. package/bin/reinstall_chrome_beta_linux.sh +10 -8
  4. package/bin/reinstall_chrome_stable_linux.sh +10 -8
  5. package/bin/reinstall_msedge_beta_linux.sh +11 -9
  6. package/bin/reinstall_msedge_dev_linux.sh +11 -9
  7. package/bin/reinstall_msedge_stable_linux.sh +11 -9
  8. package/browsers.json +19 -11
  9. package/lib/cli/program.js +23 -5
  10. package/lib/client/channelOwner.js +2 -2
  11. package/lib/client/locator.js +7 -0
  12. package/lib/client/network.js +5 -0
  13. package/lib/client/page.js +4 -2
  14. package/lib/client/tracing.js +13 -0
  15. package/lib/client/waiter.js +15 -11
  16. package/lib/generated/consoleApiSource.js +1 -1
  17. package/lib/generated/injectedScriptSource.js +1 -1
  18. package/lib/generated/pollingRecorderSource.js +1 -1
  19. package/lib/generated/webSocketMockSource.js +1 -1
  20. package/lib/protocol/validator.js +23 -3
  21. package/lib/server/ariaSnapshot.js +33 -0
  22. package/lib/server/bidi/bidiChromium.js +1 -1
  23. package/lib/server/bidi/bidiConnection.js +0 -2
  24. package/lib/server/bidi/bidiExecutionContext.js +0 -3
  25. package/lib/server/browserType.js +4 -1
  26. package/lib/server/chromium/chromium.js +6 -2
  27. package/lib/server/chromium/crConnection.js +153 -0
  28. package/lib/server/chromium/crExecutionContext.js +0 -13
  29. package/lib/server/chromium/crPage.js +8 -10
  30. package/lib/server/codegen/csharp.js +11 -16
  31. package/lib/server/codegen/java.js +4 -7
  32. package/lib/server/codegen/javascript.js +28 -6
  33. package/lib/server/codegen/python.js +12 -16
  34. package/lib/server/debugController.js +8 -5
  35. package/lib/server/deviceDescriptorsSource.json +127 -127
  36. package/lib/server/dispatchers/androidDispatcher.js +13 -2
  37. package/lib/server/dispatchers/debugControllerDispatcher.js +1 -1
  38. package/lib/server/dispatchers/dispatcher.js +1 -1
  39. package/lib/server/dispatchers/frameDispatcher.js +8 -1
  40. package/lib/server/dispatchers/tracingDispatcher.js +10 -0
  41. package/lib/server/dom.js +79 -36
  42. package/lib/server/fetch.js +30 -17
  43. package/lib/server/firefox/ffExecutionContext.js +0 -12
  44. package/lib/server/firefox/ffNetworkManager.js +1 -1
  45. package/lib/server/frames.js +66 -196
  46. package/lib/server/index.js +0 -6
  47. package/lib/server/javascript.js +0 -6
  48. package/lib/server/launchApp.js +5 -5
  49. package/lib/server/page.js +52 -8
  50. package/lib/server/progress.js +0 -3
  51. package/lib/server/recorder/recorderApp.js +6 -15
  52. package/lib/server/recorder/recorderCollection.js +1 -1
  53. package/lib/server/recorder/recorderInTraceViewer.js +3 -3
  54. package/lib/server/recorder/recorderUtils.js +2 -1
  55. package/lib/server/recorder.js +66 -31
  56. package/lib/server/registry/index.js +70 -23
  57. package/lib/server/registry/nativeDeps.js +6 -3
  58. package/lib/server/socksClientCertificatesInterceptor.js +1 -1
  59. package/lib/server/trace/recorder/snapshotter.js +1 -12
  60. package/lib/server/trace/recorder/snapshotterInjected.js +19 -1
  61. package/lib/server/trace/recorder/tracing.js +69 -15
  62. package/lib/server/trace/test/inMemorySnapshotter.js +3 -3
  63. package/lib/server/trace/viewer/traceViewer.js +2 -1
  64. package/lib/server/webkit/wkBrowser.js +2 -2
  65. package/lib/server/webkit/wkExecutionContext.js +0 -13
  66. package/lib/server/webkit/wkPage.js +6 -0
  67. package/lib/utils/comparators.js +12 -30
  68. package/lib/utils/crypto.js +1 -4
  69. package/lib/utils/hostPlatform.js +6 -0
  70. package/lib/utils/isomorphic/ariaSnapshot.js +267 -0
  71. package/lib/utils/isomorphic/locatorGenerators.js +23 -5
  72. package/lib/utils/isomorphic/recorderUtils.js +36 -4
  73. package/lib/utils/isomorphic/stringUtils.js +30 -0
  74. package/lib/utils/isomorphic/urlMatch.js +5 -1
  75. package/lib/utils/network.js +1 -1
  76. package/lib/utils/sequence.js +64 -0
  77. package/lib/utils/stackTrace.js +16 -3
  78. package/lib/utils/zones.js +32 -23
  79. package/lib/utilsBundle.js +4 -5
  80. package/lib/utilsBundleImpl/index.js +190 -33
  81. package/lib/vite/htmlReport/index.html +19 -16
  82. package/lib/vite/recorder/assets/codeMirrorModule-C5j27SYZ.js +24 -0
  83. package/lib/vite/recorder/assets/{index-BW-aOBcL.css → index-iA1aAGZg.css} +1 -1
  84. package/lib/vite/recorder/assets/index-m0XdVJHe.js +184 -0
  85. package/lib/vite/recorder/index.html +2 -2
  86. package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +24 -0
  87. package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +68 -0
  88. package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +9 -0
  89. package/lib/vite/traceViewer/{embedded.BlHoW5LY.js → embedded.CmarehFk.js} +1 -1
  90. package/lib/vite/traceViewer/embedded.html +5 -5
  91. package/lib/vite/traceViewer/{index.DaWVfou1.js → index.FBucu_gE.js} +1 -1
  92. package/lib/vite/traceViewer/index.html +24 -7
  93. package/lib/vite/traceViewer/{inspectorTab.DLjBDrQR.css → inspectorTab.DEOUW62d.css} +1 -1
  94. package/lib/vite/traceViewer/recorder.CW_rzcEp.js +2 -0
  95. package/lib/vite/traceViewer/recorder.html +3 -3
  96. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  97. package/lib/vite/traceViewer/uiMode.CDUVjusr.js +5 -0
  98. package/lib/vite/traceViewer/uiMode.html +6 -6
  99. package/lib/vite/traceViewer/{uiMode.CAYqod-m.css → uiMode.voC1ZiOQ.css} +1 -1
  100. package/lib/vite/traceViewer/workbench.C-zR9ysA.css +1 -0
  101. package/package.json +1 -1
  102. package/types/protocol.d.ts +58 -10
  103. package/types/types.d.ts +134 -29
  104. package/lib/third_party/diff_match_patch.js +0 -2222
  105. package/lib/vite/recorder/assets/codeMirrorModule-baozm8ur.js +0 -24
  106. package/lib/vite/recorder/assets/index-2ElAIWFB.js +0 -42
  107. package/lib/vite/traceViewer/assets/codeMirrorModule-Bh1rfd2w.js +0 -24
  108. package/lib/vite/traceViewer/assets/inspectorTab-7GHnKvSD.js +0 -64
  109. package/lib/vite/traceViewer/assets/workbench-DPQnTHYP.js +0 -9
  110. package/lib/vite/traceViewer/recorder.C4zxcvd2.js +0 -2
  111. package/lib/vite/traceViewer/uiMode.mTXWniJb.js +0 -5
  112. package/lib/vite/traceViewer/workbench.D3JVcA9K.css +0 -1
package/types/types.d.ts CHANGED
@@ -2553,16 +2553,15 @@ export interface Page {
2553
2553
  * // → true
2554
2554
  * await page.evaluate(() => matchMedia('(prefers-color-scheme: light)').matches);
2555
2555
  * // → false
2556
- * await page.evaluate(() => matchMedia('(prefers-color-scheme: no-preference)').matches);
2557
- * // → false
2558
2556
  * ```
2559
2557
  *
2560
2558
  * @param options
2561
2559
  */
2562
2560
  emulateMedia(options?: {
2563
2561
  /**
2564
- * Emulates `'prefers-colors-scheme'` media feature, supported values are `'light'`, `'dark'`, `'no-preference'`.
2565
- * Passing `null` disables color scheme emulation.
2562
+ * Emulates [prefers-colors-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
2563
+ * media feature, supported values are `'light'` and `'dark'`. Passing `null` disables color scheme emulation.
2564
+ * `'no-preference'` is deprecated.
2566
2565
  */
2567
2566
  colorScheme?: null|"light"|"dark"|"no-preference";
2568
2567
 
@@ -9761,7 +9760,8 @@ export interface Browser {
9761
9760
  }>;
9762
9761
 
9763
9762
  /**
9764
- * Emulates `'prefers-colors-scheme'` media feature, supported values are `'light'`, `'dark'`, `'no-preference'`. See
9763
+ * Emulates [prefers-colors-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
9764
+ * media feature, supported values are `'light'` and `'dark'`. See
9765
9765
  * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details.
9766
9766
  * Passing `null` resets emulation to system defaults. Defaults to `'light'`.
9767
9767
  */
@@ -12424,6 +12424,57 @@ export interface Locator {
12424
12424
  */
12425
12425
  and(locator: Locator): Locator;
12426
12426
 
12427
+ /**
12428
+ * Captures the aria snapshot of the given element. Read more about [aria snapshots](https://playwright.dev/docs/aria-snapshots) and
12429
+ * [expect(locator).toMatchAriaSnapshot(expected[, options])](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-match-aria-snapshot)
12430
+ * for the corresponding assertion.
12431
+ *
12432
+ * **Usage**
12433
+ *
12434
+ * ```js
12435
+ * await page.getByRole('link').ariaSnapshot();
12436
+ * ```
12437
+ *
12438
+ * **Details**
12439
+ *
12440
+ * This method captures the aria snapshot of the given element. The snapshot is a string that represents the state of
12441
+ * the element and its children. The snapshot can be used to assert the state of the element in the test, or to
12442
+ * compare it to state in the future.
12443
+ *
12444
+ * The ARIA snapshot is represented using [YAML](https://yaml.org/spec/1.2.2/) markup language:
12445
+ * - The keys of the objects are the roles and optional accessible names of the elements.
12446
+ * - The values are either text content or an array of child elements.
12447
+ * - Generic static text can be represented with the `text` key.
12448
+ *
12449
+ * Below is the HTML markup and the respective ARIA snapshot:
12450
+ *
12451
+ * ```html
12452
+ * <ul aria-label="Links">
12453
+ * <li><a href="/">Home</a></li>
12454
+ * <li><a href="/about">About</a></li>
12455
+ * <ul>
12456
+ * ```
12457
+ *
12458
+ * ```yml
12459
+ * - list "Links":
12460
+ * - listitem:
12461
+ * - link "Home"
12462
+ * - listitem:
12463
+ * - link "About"
12464
+ * ```
12465
+ *
12466
+ * @param options
12467
+ */
12468
+ ariaSnapshot(options?: {
12469
+ /**
12470
+ * Maximum time in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout`
12471
+ * option in the config, or by using the
12472
+ * [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout)
12473
+ * or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods.
12474
+ */
12475
+ timeout?: number;
12476
+ }): Promise<string>;
12477
+
12427
12478
  /**
12428
12479
  * Calls [blur](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/blur) on the element.
12429
12480
  * @param options
@@ -14658,9 +14709,12 @@ export interface BrowserType<Unused = {}> {
14658
14709
  bypassCSP?: boolean;
14659
14710
 
14660
14711
  /**
14661
- * Browser distribution channel. Supported values are "chrome", "chrome-beta", "chrome-dev", "chrome-canary",
14662
- * "msedge", "msedge-beta", "msedge-dev", "msedge-canary". Read more about using
14663
- * [Google Chrome and Microsoft Edge](https://playwright.dev/docs/browsers#google-chrome--microsoft-edge).
14712
+ * Browser distribution channel.
14713
+ *
14714
+ * Use "chromium" to [opt in to new headless mode](https://playwright.dev/docs/browsers#opt-in-to-new-headless-mode).
14715
+ *
14716
+ * Use "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev", or
14717
+ * "msedge-canary" to use branded [Google Chrome and Microsoft Edge](https://playwright.dev/docs/browsers#google-chrome--microsoft-edge).
14664
14718
  */
14665
14719
  channel?: string;
14666
14720
 
@@ -14726,7 +14780,8 @@ export interface BrowserType<Unused = {}> {
14726
14780
  }>;
14727
14781
 
14728
14782
  /**
14729
- * Emulates `'prefers-colors-scheme'` media feature, supported values are `'light'`, `'dark'`, `'no-preference'`. See
14783
+ * Emulates [prefers-colors-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
14784
+ * media feature, supported values are `'light'` and `'dark'`. See
14730
14785
  * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details.
14731
14786
  * Passing `null` resets emulation to system defaults. Defaults to `'light'`.
14732
14787
  */
@@ -15153,9 +15208,12 @@ export interface BrowserType<Unused = {}> {
15153
15208
  args?: Array<string>;
15154
15209
 
15155
15210
  /**
15156
- * Browser distribution channel. Supported values are "chrome", "chrome-beta", "chrome-dev", "chrome-canary",
15157
- * "msedge", "msedge-beta", "msedge-dev", "msedge-canary". Read more about using
15158
- * [Google Chrome and Microsoft Edge](https://playwright.dev/docs/browsers#google-chrome--microsoft-edge).
15211
+ * Browser distribution channel.
15212
+ *
15213
+ * Use "chromium" to [opt in to new headless mode](https://playwright.dev/docs/browsers#opt-in-to-new-headless-mode).
15214
+ *
15215
+ * Use "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev", or
15216
+ * "msedge-canary" to use branded [Google Chrome and Microsoft Edge](https://playwright.dev/docs/browsers#google-chrome--microsoft-edge).
15159
15217
  */
15160
15218
  channel?: string;
15161
15219
 
@@ -16534,7 +16592,8 @@ export interface AndroidDevice {
16534
16592
  bypassCSP?: boolean;
16535
16593
 
16536
16594
  /**
16537
- * Emulates `'prefers-colors-scheme'` media feature, supported values are `'light'`, `'dark'`, `'no-preference'`. See
16595
+ * Emulates [prefers-colors-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
16596
+ * media feature, supported values are `'light'` and `'dark'`. See
16538
16597
  * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details.
16539
16598
  * Passing `null` resets emulation to system defaults. Defaults to `'light'`.
16540
16599
  */
@@ -18554,6 +18613,10 @@ export interface Clock {
18554
18613
  /**
18555
18614
  * Makes `Date.now` and `new Date()` return fixed fake time at all times, keeps all the timers running.
18556
18615
  *
18616
+ * Use this method for simple scenarios where you only need to test with a predefined time. For more advanced
18617
+ * scenarios, use [clock.install([options])](https://playwright.dev/docs/api/class-clock#clock-install) instead. Read
18618
+ * docs on [clock emulation](https://playwright.dev/docs/clock) to learn more.
18619
+ *
18557
18620
  * **Usage**
18558
18621
  *
18559
18622
  * ```js
@@ -18567,7 +18630,8 @@ export interface Clock {
18567
18630
  setFixedTime(time: number|string|Date): Promise<void>;
18568
18631
 
18569
18632
  /**
18570
- * Sets current system time but does not trigger any timers.
18633
+ * Sets system time, but does not trigger any timers. Use this to test how the web page reacts to a time shift, for
18634
+ * example switching from summer to winter time, or changing time zones.
18571
18635
  *
18572
18636
  * **Usage**
18573
18637
  *
@@ -19010,7 +19074,8 @@ export interface Electron {
19010
19074
  bypassCSP?: boolean;
19011
19075
 
19012
19076
  /**
19013
- * Emulates `'prefers-colors-scheme'` media feature, supported values are `'light'`, `'dark'`, `'no-preference'`. See
19077
+ * Emulates [prefers-colors-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
19078
+ * media feature, supported values are `'light'` and `'dark'`. See
19014
19079
  * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details.
19015
19080
  * Passing `null` resets emulation to system defaults. Defaults to `'light'`.
19016
19081
  */
@@ -19760,10 +19825,7 @@ export interface FrameLocator {
19760
19825
  * An example to trigger select-all with the keyboard
19761
19826
  *
19762
19827
  * ```js
19763
- * // on Windows and Linux
19764
- * await page.keyboard.press('Control+A');
19765
- * // on macOS
19766
- * await page.keyboard.press('Meta+A');
19828
+ * await page.keyboard.press('ControlOrMeta+A');
19767
19829
  * ```
19768
19830
  *
19769
19831
  */
@@ -20618,12 +20680,12 @@ export interface Route {
20618
20680
  *
20619
20681
  * **Details**
20620
20682
  *
20621
- * Note that any overrides such as [`url`](https://playwright.dev/docs/api/class-route#route-continue-option-url) or
20622
- * [`headers`](https://playwright.dev/docs/api/class-route#route-continue-option-headers) only apply to the request
20623
- * being routed. If this request results in a redirect, overrides will not be applied to the new redirected request.
20624
- * If you want to propagate a header through redirects, use the combination of
20625
- * [route.fetch([options])](https://playwright.dev/docs/api/class-route#route-fetch) and
20626
- * [route.fulfill([options])](https://playwright.dev/docs/api/class-route#route-fulfill) instead.
20683
+ * The [`headers`](https://playwright.dev/docs/api/class-route#route-continue-option-headers) option applies to both
20684
+ * the routed request and any redirects it initiates. However,
20685
+ * [`url`](https://playwright.dev/docs/api/class-route#route-continue-option-url),
20686
+ * [`method`](https://playwright.dev/docs/api/class-route#route-continue-option-method), and
20687
+ * [`postData`](https://playwright.dev/docs/api/class-route#route-continue-option-post-data) only apply to the
20688
+ * original request and are not carried over to redirected requests.
20627
20689
  *
20628
20690
  * [route.continue([options])](https://playwright.dev/docs/api/class-route#route-continue) will immediately send the
20629
20691
  * request to the network, other matching handlers won't be invoked. Use
@@ -20999,6 +21061,45 @@ export interface Touchscreen {
20999
21061
  *
21000
21062
  */
21001
21063
  export interface Tracing {
21064
+ /**
21065
+ * **NOTE** Use `test.step` instead when available.
21066
+ *
21067
+ * Creates a new group within the trace, assigning any subsequent API calls to this group, until
21068
+ * [tracing.groupEnd()](https://playwright.dev/docs/api/class-tracing#tracing-group-end) is called. Groups can be
21069
+ * nested and will be visible in the trace viewer.
21070
+ *
21071
+ * **Usage**
21072
+ *
21073
+ * ```js
21074
+ * // use test.step instead
21075
+ * await test.step('Log in', async () => {
21076
+ * // ...
21077
+ * });
21078
+ * ```
21079
+ *
21080
+ * @param name Group name shown in the trace viewer.
21081
+ * @param options
21082
+ */
21083
+ group(name: string, options?: {
21084
+ /**
21085
+ * Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the
21086
+ * [tracing.group(name[, options])](https://playwright.dev/docs/api/class-tracing#tracing-group) call.
21087
+ */
21088
+ location?: {
21089
+ file: string;
21090
+
21091
+ line?: number;
21092
+
21093
+ column?: number;
21094
+ };
21095
+ }): Promise<void>;
21096
+
21097
+ /**
21098
+ * Closes the last group created by
21099
+ * [tracing.group(name[, options])](https://playwright.dev/docs/api/class-tracing#tracing-group).
21100
+ */
21101
+ groupEnd(): Promise<void>;
21102
+
21002
21103
  /**
21003
21104
  * Start tracing.
21004
21105
  *
@@ -21445,9 +21546,12 @@ export interface LaunchOptions {
21445
21546
  args?: Array<string>;
21446
21547
 
21447
21548
  /**
21448
- * Browser distribution channel. Supported values are "chrome", "chrome-beta", "chrome-dev", "chrome-canary",
21449
- * "msedge", "msedge-beta", "msedge-dev", "msedge-canary". Read more about using
21450
- * [Google Chrome and Microsoft Edge](https://playwright.dev/docs/browsers#google-chrome--microsoft-edge).
21549
+ * Browser distribution channel.
21550
+ *
21551
+ * Use "chromium" to [opt in to new headless mode](https://playwright.dev/docs/browsers#opt-in-to-new-headless-mode).
21552
+ *
21553
+ * Use "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev", or
21554
+ * "msedge-canary" to use branded [Google Chrome and Microsoft Edge](https://playwright.dev/docs/browsers#google-chrome--microsoft-edge).
21451
21555
  */
21452
21556
  channel?: string;
21453
21557
 
@@ -21832,7 +21936,8 @@ export interface BrowserContextOptions {
21832
21936
  }>;
21833
21937
 
21834
21938
  /**
21835
- * Emulates `'prefers-colors-scheme'` media feature, supported values are `'light'`, `'dark'`, `'no-preference'`. See
21939
+ * Emulates [prefers-colors-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
21940
+ * media feature, supported values are `'light'` and `'dark'`. See
21836
21941
  * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details.
21837
21942
  * Passing `null` resets emulation to system defaults. Defaults to `'light'`.
21838
21943
  */