diff --git a/dotnet/docs/actionability.mdx b/dotnet/docs/actionability.mdx
index 62de3c36f0a..d12555758f3 100644
--- a/dotnet/docs/actionability.mdx
+++ b/dotnet/docs/actionability.mdx
@@ -5,6 +5,7 @@ title: "Auto-waiting"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/api-testing.mdx b/dotnet/docs/api-testing.mdx
index 53f8f232501..caf826b691c 100644
--- a/dotnet/docs/api-testing.mdx
+++ b/dotnet/docs/api-testing.mdx
@@ -5,6 +5,7 @@ title: "API testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/api/class-accessibility.mdx b/dotnet/docs/api/class-accessibility.mdx
index be54f8d7c9e..b989859c06e 100644
--- a/dotnet/docs/api/class-accessibility.mdx
+++ b/dotnet/docs/api/class-accessibility.mdx
@@ -5,6 +5,7 @@ title: "Accessibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
:::warning[Deprecated]
diff --git a/dotnet/docs/api/class-apirequest.mdx b/dotnet/docs/api/class-apirequest.mdx
index 01989086592..5af8dd1c77c 100644
--- a/dotnet/docs/api/class-apirequest.mdx
+++ b/dotnet/docs/api/class-apirequest.mdx
@@ -5,6 +5,7 @@ title: "APIRequest"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Exposes API that can be used for the Web API testing. This class is used for creating [APIRequestContext] instance which in turn can be used for sending web requests. An instance of this class can be obtained via [Playwright.APIRequest](/api/class-playwright.mdx#playwright-request). For more information see [APIRequestContext].
diff --git a/dotnet/docs/api/class-apirequestcontext.mdx b/dotnet/docs/api/class-apirequestcontext.mdx
index b583a1bf242..7aac00a3fc4 100644
--- a/dotnet/docs/api/class-apirequestcontext.mdx
+++ b/dotnet/docs/api/class-apirequestcontext.mdx
@@ -5,6 +5,7 @@ title: "APIRequestContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
This API is used for the Web API testing. You can use it to trigger API endpoints, configure micro-services, prepare environment or the service to your e2e test.
diff --git a/dotnet/docs/api/class-apiresponse.mdx b/dotnet/docs/api/class-apiresponse.mdx
index d18b3c8497b..fe29aa32cee 100644
--- a/dotnet/docs/api/class-apiresponse.mdx
+++ b/dotnet/docs/api/class-apiresponse.mdx
@@ -5,6 +5,7 @@ title: "APIResponse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[APIResponse] class represents responses returned by [ApiRequestContext.GetAsync()](/api/class-apirequestcontext.mdx#api-request-context-get) and similar methods.
diff --git a/dotnet/docs/api/class-apiresponseassertions.mdx b/dotnet/docs/api/class-apiresponseassertions.mdx
index b003204b53c..bb51496e1a8 100644
--- a/dotnet/docs/api/class-apiresponseassertions.mdx
+++ b/dotnet/docs/api/class-apiresponseassertions.mdx
@@ -5,6 +5,7 @@ title: "APIResponseAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [APIResponseAssertions] class provides assertion methods that can be used to make assertions about the [APIResponse] in the tests.
diff --git a/dotnet/docs/api/class-browser.mdx b/dotnet/docs/api/class-browser.mdx
index 170d2ad2ac8..032996c48f7 100644
--- a/dotnet/docs/api/class-browser.mdx
+++ b/dotnet/docs/api/class-browser.mdx
@@ -5,6 +5,7 @@ title: "Browser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
A Browser is created via [BrowserType.LaunchAsync()](/api/class-browsertype.mdx#browser-type-launch). An example of using a [Browser] to create a [Page]:
diff --git a/dotnet/docs/api/class-browsercontext.mdx b/dotnet/docs/api/class-browsercontext.mdx
index da9fcb6629b..e56d6eed29b 100644
--- a/dotnet/docs/api/class-browsercontext.mdx
+++ b/dotnet/docs/api/class-browsercontext.mdx
@@ -5,6 +5,7 @@ title: "BrowserContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserContexts provide a way to operate multiple independent browser sessions.
diff --git a/dotnet/docs/api/class-browsertype.mdx b/dotnet/docs/api/class-browsertype.mdx
index dd5f174e136..10defc5b82a 100644
--- a/dotnet/docs/api/class-browsertype.mdx
+++ b/dotnet/docs/api/class-browsertype.mdx
@@ -5,6 +5,7 @@ title: "BrowserType"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserType provides methods to launch a specific browser instance or connect to an existing one. The following is a typical example of using Playwright to drive automation:
diff --git a/dotnet/docs/api/class-cdpsession.mdx b/dotnet/docs/api/class-cdpsession.mdx
index fcf218add1a..5ebb93bc6ba 100644
--- a/dotnet/docs/api/class-cdpsession.mdx
+++ b/dotnet/docs/api/class-cdpsession.mdx
@@ -5,6 +5,7 @@ title: "CDPSession"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The `CDPSession` instances are used to talk raw Chrome Devtools Protocol:
diff --git a/dotnet/docs/api/class-cdpsessionevent.mdx b/dotnet/docs/api/class-cdpsessionevent.mdx
index 018340872b1..2db7f37d770 100644
--- a/dotnet/docs/api/class-cdpsessionevent.mdx
+++ b/dotnet/docs/api/class-cdpsessionevent.mdx
@@ -5,6 +5,7 @@ title: "CDPSessionEvent"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[CDPSessionEvent] objects are returned by page via the [CdpSession.Event()](/api/class-cdpsession.mdx#cdp-session-event) method.
diff --git a/dotnet/docs/api/class-clock.mdx b/dotnet/docs/api/class-clock.mdx
index 8511c7b2d58..df9d7e370b7 100644
--- a/dotnet/docs/api/class-clock.mdx
+++ b/dotnet/docs/api/class-clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Accurately simulating time-dependent behavior is essential for verifying the correctness of applications. Learn more about [clock emulation](../clock.mdx).
diff --git a/dotnet/docs/api/class-consolemessage.mdx b/dotnet/docs/api/class-consolemessage.mdx
index d468abddc16..424a5880baf 100644
--- a/dotnet/docs/api/class-consolemessage.mdx
+++ b/dotnet/docs/api/class-consolemessage.mdx
@@ -5,6 +5,7 @@ title: "ConsoleMessage"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[ConsoleMessage] objects are dispatched by page via the [Page.Console](/api/class-page.mdx#page-event-console) event. For each console message logged in the page there will be corresponding event in the Playwright context.
diff --git a/dotnet/docs/api/class-dialog.mdx b/dotnet/docs/api/class-dialog.mdx
index 0c239aea28b..e8f598a308c 100644
--- a/dotnet/docs/api/class-dialog.mdx
+++ b/dotnet/docs/api/class-dialog.mdx
@@ -5,6 +5,7 @@ title: "Dialog"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Dialog] objects are dispatched by page via the [Page.Dialog](/api/class-page.mdx#page-event-dialog) event.
diff --git a/dotnet/docs/api/class-download.mdx b/dotnet/docs/api/class-download.mdx
index 1ead454fc71..a3cd0571e21 100644
--- a/dotnet/docs/api/class-download.mdx
+++ b/dotnet/docs/api/class-download.mdx
@@ -5,6 +5,7 @@ title: "Download"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Download] objects are dispatched by page via the [Page.Download](/api/class-page.mdx#page-event-download) event.
diff --git a/dotnet/docs/api/class-elementhandle.mdx b/dotnet/docs/api/class-elementhandle.mdx
index 406f1bb3a5c..247890d904d 100644
--- a/dotnet/docs/api/class-elementhandle.mdx
+++ b/dotnet/docs/api/class-elementhandle.mdx
@@ -5,6 +5,7 @@ title: "ElementHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [JSHandle]
diff --git a/dotnet/docs/api/class-filechooser.mdx b/dotnet/docs/api/class-filechooser.mdx
index df3ad9642ab..e9efa17d517 100644
--- a/dotnet/docs/api/class-filechooser.mdx
+++ b/dotnet/docs/api/class-filechooser.mdx
@@ -5,6 +5,7 @@ title: "FileChooser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[FileChooser] objects are dispatched by the page in the [Page.FileChooser](/api/class-page.mdx#page-event-file-chooser) event.
diff --git a/dotnet/docs/api/class-formdata.mdx b/dotnet/docs/api/class-formdata.mdx
index 7419df2b6f5..bb1ff1ff8e6 100644
--- a/dotnet/docs/api/class-formdata.mdx
+++ b/dotnet/docs/api/class-formdata.mdx
@@ -5,6 +5,7 @@ title: "FormData"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [FormData] is used create form data that is sent via [APIRequestContext].
diff --git a/dotnet/docs/api/class-frame.mdx b/dotnet/docs/api/class-frame.mdx
index 3b49f0a7f87..2f9d8d91b31 100644
--- a/dotnet/docs/api/class-frame.mdx
+++ b/dotnet/docs/api/class-frame.mdx
@@ -5,6 +5,7 @@ title: "Frame"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
At every point of time, page exposes its current frame tree via the [Page.MainFrame](/api/class-page.mdx#page-main-frame) and [Frame.ChildFrames](/api/class-frame.mdx#frame-child-frames) methods.
diff --git a/dotnet/docs/api/class-framelocator.mdx b/dotnet/docs/api/class-framelocator.mdx
index df3f9feee08..d9574aa8ed2 100644
--- a/dotnet/docs/api/class-framelocator.mdx
+++ b/dotnet/docs/api/class-framelocator.mdx
@@ -5,6 +5,7 @@ title: "FrameLocator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
FrameLocator represents a view to the `iframe` on the page. It captures the logic sufficient to retrieve the `iframe` and locate elements in that iframe. FrameLocator can be created with either [Locator.ContentFrame](/api/class-locator.mdx#locator-content-frame), [Page.FrameLocator()](/api/class-page.mdx#page-frame-locator) or [Locator.FrameLocator()](/api/class-locator.mdx#locator-frame-locator) method.
diff --git a/dotnet/docs/api/class-jshandle.mdx b/dotnet/docs/api/class-jshandle.mdx
index b289757ebad..f3707490794 100644
--- a/dotnet/docs/api/class-jshandle.mdx
+++ b/dotnet/docs/api/class-jshandle.mdx
@@ -5,6 +5,7 @@ title: "JSHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
JSHandle represents an in-page JavaScript object. JSHandles can be created with the [Page.EvaluateHandleAsync()](/api/class-page.mdx#page-evaluate-handle) method.
diff --git a/dotnet/docs/api/class-keyboard.mdx b/dotnet/docs/api/class-keyboard.mdx
index 29c525e9cb2..c82c326ec81 100644
--- a/dotnet/docs/api/class-keyboard.mdx
+++ b/dotnet/docs/api/class-keyboard.mdx
@@ -5,6 +5,7 @@ title: "Keyboard"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Keyboard provides an api for managing a virtual keyboard. The high level api is [Keyboard.TypeAsync()](/api/class-keyboard.mdx#keyboard-type), which takes raw characters and generates proper `keydown`, `keypress`/`input`, and `keyup` events on your page.
diff --git a/dotnet/docs/api/class-locator.mdx b/dotnet/docs/api/class-locator.mdx
index 62f77c78daa..46d4d580d63 100644
--- a/dotnet/docs/api/class-locator.mdx
+++ b/dotnet/docs/api/class-locator.mdx
@@ -5,6 +5,7 @@ title: "Locator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Locators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent a way to find element(s) on the page at any moment. A locator can be created with the [Page.Locator()](/api/class-page.mdx#page-locator) method.
diff --git a/dotnet/docs/api/class-locatorassertions.mdx b/dotnet/docs/api/class-locatorassertions.mdx
index 5d69ecf63ff..07979a6c83b 100644
--- a/dotnet/docs/api/class-locatorassertions.mdx
+++ b/dotnet/docs/api/class-locatorassertions.mdx
@@ -5,6 +5,7 @@ title: "LocatorAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [LocatorAssertions] class provides assertion methods that can be used to make assertions about the [Locator] state in the tests.
diff --git a/dotnet/docs/api/class-mouse.mdx b/dotnet/docs/api/class-mouse.mdx
index ace213b7186..eb18625877c 100644
--- a/dotnet/docs/api/class-mouse.mdx
+++ b/dotnet/docs/api/class-mouse.mdx
@@ -5,6 +5,7 @@ title: "Mouse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.
diff --git a/dotnet/docs/api/class-page.mdx b/dotnet/docs/api/class-page.mdx
index b6284641518..1adcd69e55b 100644
--- a/dotnet/docs/api/class-page.mdx
+++ b/dotnet/docs/api/class-page.mdx
@@ -5,6 +5,7 @@ title: "Page"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Page provides methods to interact with a single tab in a [Browser], or an [extension background page](https://developer.chrome.com/extensions/background_pages) in Chromium. One [Browser] instance might have multiple [Page] instances.
diff --git a/dotnet/docs/api/class-pageassertions.mdx b/dotnet/docs/api/class-pageassertions.mdx
index 9952a82d1fc..bbd6921715c 100644
--- a/dotnet/docs/api/class-pageassertions.mdx
+++ b/dotnet/docs/api/class-pageassertions.mdx
@@ -5,6 +5,7 @@ title: "PageAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [PageAssertions] class provides assertion methods that can be used to make assertions about the [Page] state in the tests.
diff --git a/dotnet/docs/api/class-playwright.mdx b/dotnet/docs/api/class-playwright.mdx
index 4b552226802..80d716b4846 100644
--- a/dotnet/docs/api/class-playwright.mdx
+++ b/dotnet/docs/api/class-playwright.mdx
@@ -5,6 +5,7 @@ title: "Playwright"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright module provides a method to launch a browser instance. The following is a typical example of using Playwright to drive automation:
diff --git a/dotnet/docs/api/class-playwrightassertions.mdx b/dotnet/docs/api/class-playwrightassertions.mdx
index cee9cdd51ca..731359e6ca9 100644
--- a/dotnet/docs/api/class-playwrightassertions.mdx
+++ b/dotnet/docs/api/class-playwrightassertions.mdx
@@ -5,6 +5,7 @@ title: "PlaywrightAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright gives you Web-First Assertions with convenience methods for creating assertions that will wait and retry until the expected condition is met.
diff --git a/dotnet/docs/api/class-request.mdx b/dotnet/docs/api/class-request.mdx
index a346c9fe0a1..9e42852d09c 100644
--- a/dotnet/docs/api/class-request.mdx
+++ b/dotnet/docs/api/class-request.mdx
@@ -5,6 +5,7 @@ title: "Request"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever the page sends a request for a network resource the following sequence of events are emitted by [Page]:
diff --git a/dotnet/docs/api/class-response.mdx b/dotnet/docs/api/class-response.mdx
index 3b4f13d59d0..5d51fc8756a 100644
--- a/dotnet/docs/api/class-response.mdx
+++ b/dotnet/docs/api/class-response.mdx
@@ -5,6 +5,7 @@ title: "Response"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Response] class represents responses which are received by page.
diff --git a/dotnet/docs/api/class-route.mdx b/dotnet/docs/api/class-route.mdx
index 78748892afd..5f8e803f5e4 100644
--- a/dotnet/docs/api/class-route.mdx
+++ b/dotnet/docs/api/class-route.mdx
@@ -5,6 +5,7 @@ title: "Route"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a network route is set up with [Page.RouteAsync()](/api/class-page.mdx#page-route) or [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route), the `Route` object allows to handle the route.
diff --git a/dotnet/docs/api/class-selectors.mdx b/dotnet/docs/api/class-selectors.mdx
index efee1d802b6..84096406f67 100644
--- a/dotnet/docs/api/class-selectors.mdx
+++ b/dotnet/docs/api/class-selectors.mdx
@@ -5,6 +5,7 @@ title: "Selectors"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Selectors can be used to install custom selector engines. See [extensibility](../extensibility.mdx) for more information.
diff --git a/dotnet/docs/api/class-timeouterror.mdx b/dotnet/docs/api/class-timeouterror.mdx
index 11864b08d11..723d1b04650 100644
--- a/dotnet/docs/api/class-timeouterror.mdx
+++ b/dotnet/docs/api/class-timeouterror.mdx
@@ -5,6 +5,7 @@ title: "TimeoutError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [Error]
diff --git a/dotnet/docs/api/class-touchscreen.mdx b/dotnet/docs/api/class-touchscreen.mdx
index 9a0fe300c8f..5ed2ffe0d9d 100644
--- a/dotnet/docs/api/class-touchscreen.mdx
+++ b/dotnet/docs/api/class-touchscreen.mdx
@@ -5,6 +5,7 @@ title: "Touchscreen"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Touchscreen class operates in main-frame CSS pixels relative to the top-left corner of the viewport. Methods on the touchscreen can only be used in browser contexts that have been initialized with `hasTouch` set to true.
diff --git a/dotnet/docs/api/class-tracing.mdx b/dotnet/docs/api/class-tracing.mdx
index da363d22ed2..9ed1d08bae2 100644
--- a/dotnet/docs/api/class-tracing.mdx
+++ b/dotnet/docs/api/class-tracing.mdx
@@ -5,6 +5,7 @@ title: "Tracing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
API for collecting and saving Playwright traces. Playwright traces can be opened in [Trace Viewer](../trace-viewer.mdx) after Playwright script runs.
diff --git a/dotnet/docs/api/class-video.mdx b/dotnet/docs/api/class-video.mdx
index a3d0ef4a679..ece589175ee 100644
--- a/dotnet/docs/api/class-video.mdx
+++ b/dotnet/docs/api/class-video.mdx
@@ -5,6 +5,7 @@ title: "Video"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
When browser context is created with the `recordVideo` option, each page has a video object associated with it.
diff --git a/dotnet/docs/api/class-weberror.mdx b/dotnet/docs/api/class-weberror.mdx
index bbe73bf2d2b..2eda5340524 100644
--- a/dotnet/docs/api/class-weberror.mdx
+++ b/dotnet/docs/api/class-weberror.mdx
@@ -5,6 +5,7 @@ title: "WebError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[WebError] class represents an unhandled exception thrown in the page. It is dispatched via the [BrowserContext.WebError](/api/class-browsercontext.mdx#browser-context-event-web-error) event.
diff --git a/dotnet/docs/api/class-websocket.mdx b/dotnet/docs/api/class-websocket.mdx
index 8ca4fb4a0c9..6a068700f73 100644
--- a/dotnet/docs/api/class-websocket.mdx
+++ b/dotnet/docs/api/class-websocket.mdx
@@ -5,6 +5,7 @@ title: "WebSocket"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [WebSocket] class represents WebSocket connections within a page. It provides the ability to inspect and manipulate the data being transmitted and received.
diff --git a/dotnet/docs/api/class-websocketframe.mdx b/dotnet/docs/api/class-websocketframe.mdx
index 24903141f97..ee59e81ab76 100644
--- a/dotnet/docs/api/class-websocketframe.mdx
+++ b/dotnet/docs/api/class-websocketframe.mdx
@@ -5,6 +5,7 @@ title: "WebSocketFrame"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [WebSocketFrame] class represents frames sent over [WebSocket] connections in the page. Frame payload is returned by either [WebSocketFrame.Text](/api/class-websocketframe.mdx#web-socket-frame-text) or [WebSocketFrame.Binary](/api/class-websocketframe.mdx#web-socket-frame-binary) method depending on the its type.
diff --git a/dotnet/docs/api/class-websocketroute.mdx b/dotnet/docs/api/class-websocketroute.mdx
index 0c0d8b2449b..5958716f5ed 100644
--- a/dotnet/docs/api/class-websocketroute.mdx
+++ b/dotnet/docs/api/class-websocketroute.mdx
@@ -5,6 +5,7 @@ title: "WebSocketRoute"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a [`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) route is set up with [Page.RouteWebSocketAsync()](/api/class-page.mdx#page-route-web-socket) or [BrowserContext.RouteWebSocketAsync()](/api/class-browsercontext.mdx#browser-context-route-web-socket), the `WebSocketRoute` object allows to handle the WebSocket, like an actual server would do.
diff --git a/dotnet/docs/api/class-worker.mdx b/dotnet/docs/api/class-worker.mdx
index 11239d8db59..d16d830b939 100644
--- a/dotnet/docs/api/class-worker.mdx
+++ b/dotnet/docs/api/class-worker.mdx
@@ -5,6 +5,7 @@ title: "Worker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Worker class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). `worker` event is emitted on the page object to signal a worker creation. `close` event is emitted on the worker object when the worker is gone.
diff --git a/dotnet/docs/aria-snapshots.mdx b/dotnet/docs/aria-snapshots.mdx
index 60443a16e55..ac3bc8b1384 100644
--- a/dotnet/docs/aria-snapshots.mdx
+++ b/dotnet/docs/aria-snapshots.mdx
@@ -5,6 +5,7 @@ title: "Snapshot testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/dotnet/docs/auth.mdx b/dotnet/docs/auth.mdx
index b852bb26e1c..241a9a792fb 100644
--- a/dotnet/docs/auth.mdx
+++ b/dotnet/docs/auth.mdx
@@ -5,6 +5,7 @@ title: "Authentication"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/browser-contexts.mdx b/dotnet/docs/browser-contexts.mdx
index 6ecd9a8c626..cf0a0c0035b 100644
--- a/dotnet/docs/browser-contexts.mdx
+++ b/dotnet/docs/browser-contexts.mdx
@@ -5,6 +5,7 @@ title: "Isolation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/browsers.mdx b/dotnet/docs/browsers.mdx
index 56090e76f05..bf8638f5b62 100644
--- a/dotnet/docs/browsers.mdx
+++ b/dotnet/docs/browsers.mdx
@@ -5,6 +5,7 @@ title: "Browsers"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/ci-intro.mdx b/dotnet/docs/ci-intro.mdx
index 17f61aed3f7..98e1cd0023e 100644
--- a/dotnet/docs/ci-intro.mdx
+++ b/dotnet/docs/ci-intro.mdx
@@ -5,6 +5,7 @@ title: "Setting up CI"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/ci.mdx b/dotnet/docs/ci.mdx
index bfa7fbfb2b3..1bed1d75218 100644
--- a/dotnet/docs/ci.mdx
+++ b/dotnet/docs/ci.mdx
@@ -5,6 +5,7 @@ title: "Continuous Integration"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/clock.mdx b/dotnet/docs/clock.mdx
index 07adfe38211..28de6df39d8 100644
--- a/dotnet/docs/clock.mdx
+++ b/dotnet/docs/clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/dotnet/docs/codegen-intro.mdx b/dotnet/docs/codegen-intro.mdx
index 0c29067d34e..dc37e104fe0 100644
--- a/dotnet/docs/codegen-intro.mdx
+++ b/dotnet/docs/codegen-intro.mdx
@@ -5,6 +5,7 @@ title: "Generating tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/codegen.mdx b/dotnet/docs/codegen.mdx
index 90f4855ac72..13b6b7a3a0b 100644
--- a/dotnet/docs/codegen.mdx
+++ b/dotnet/docs/codegen.mdx
@@ -5,6 +5,7 @@ title: "Test generator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/dotnet/docs/debug.mdx b/dotnet/docs/debug.mdx
index d58c29dd64a..e04f205f249 100644
--- a/dotnet/docs/debug.mdx
+++ b/dotnet/docs/debug.mdx
@@ -5,6 +5,7 @@ title: "Debugging Tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Playwright Inspector
diff --git a/dotnet/docs/dialogs.mdx b/dotnet/docs/dialogs.mdx
index 4a330b54729..5bc777df326 100644
--- a/dotnet/docs/dialogs.mdx
+++ b/dotnet/docs/dialogs.mdx
@@ -5,6 +5,7 @@ title: "Dialogs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/docker.mdx b/dotnet/docs/docker.mdx
index dfaa8a434b3..9eeed0d723e 100644
--- a/dotnet/docs/docker.mdx
+++ b/dotnet/docs/docker.mdx
@@ -5,6 +5,7 @@ title: "Docker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/downloads.mdx b/dotnet/docs/downloads.mdx
index 4b2511f751a..99834b7cbe9 100644
--- a/dotnet/docs/downloads.mdx
+++ b/dotnet/docs/downloads.mdx
@@ -5,6 +5,7 @@ title: "Downloads"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/emulation.mdx b/dotnet/docs/emulation.mdx
index c5a4d0e4443..019d3f0315d 100644
--- a/dotnet/docs/emulation.mdx
+++ b/dotnet/docs/emulation.mdx
@@ -5,6 +5,7 @@ title: "Emulation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/evaluating.mdx b/dotnet/docs/evaluating.mdx
index 2b46f35f916..314f1bcd2ff 100644
--- a/dotnet/docs/evaluating.mdx
+++ b/dotnet/docs/evaluating.mdx
@@ -5,6 +5,7 @@ title: "Evaluating JavaScript"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/events.mdx b/dotnet/docs/events.mdx
index fcc18829fd4..d4b10cf2d38 100644
--- a/dotnet/docs/events.mdx
+++ b/dotnet/docs/events.mdx
@@ -5,6 +5,7 @@ title: "Events"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/extensibility.mdx b/dotnet/docs/extensibility.mdx
index 1e4f3948000..3d0c5a1ab4d 100644
--- a/dotnet/docs/extensibility.mdx
+++ b/dotnet/docs/extensibility.mdx
@@ -5,6 +5,7 @@ title: "Extensibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Custom selector engines
diff --git a/dotnet/docs/frames.mdx b/dotnet/docs/frames.mdx
index 84797a050e9..9dfc8a4565a 100644
--- a/dotnet/docs/frames.mdx
+++ b/dotnet/docs/frames.mdx
@@ -5,6 +5,7 @@ title: "Frames"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/handles.mdx b/dotnet/docs/handles.mdx
index 6a8be5b34ce..8b295b098a5 100644
--- a/dotnet/docs/handles.mdx
+++ b/dotnet/docs/handles.mdx
@@ -5,6 +5,7 @@ title: "Handles"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/input.mdx b/dotnet/docs/input.mdx
index 61f5a13abcf..d9c42227d97 100644
--- a/dotnet/docs/input.mdx
+++ b/dotnet/docs/input.mdx
@@ -5,6 +5,7 @@ title: "Actions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/intro.mdx b/dotnet/docs/intro.mdx
index 6a3189ff8ca..f36fe405133 100644
--- a/dotnet/docs/intro.mdx
+++ b/dotnet/docs/intro.mdx
@@ -5,6 +5,7 @@ title: "Installation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/languages.mdx b/dotnet/docs/languages.mdx
index 2d0b901919e..03de39a995c 100644
--- a/dotnet/docs/languages.mdx
+++ b/dotnet/docs/languages.mdx
@@ -5,6 +5,7 @@ title: "Supported languages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/library.mdx b/dotnet/docs/library.mdx
index c26935acb42..440c4fbb636 100644
--- a/dotnet/docs/library.mdx
+++ b/dotnet/docs/library.mdx
@@ -5,6 +5,7 @@ title: "Getting started - Library"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/locators.mdx b/dotnet/docs/locators.mdx
index e961cb4d71a..428f37e816c 100644
--- a/dotnet/docs/locators.mdx
+++ b/dotnet/docs/locators.mdx
@@ -5,6 +5,7 @@ title: "Locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/mock.mdx b/dotnet/docs/mock.mdx
index e5eda9b5e8d..fa848fec502 100644
--- a/dotnet/docs/mock.mdx
+++ b/dotnet/docs/mock.mdx
@@ -5,6 +5,7 @@ title: "Mock APIs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/navigations.mdx b/dotnet/docs/navigations.mdx
index d60331e1370..a055e83aa0c 100644
--- a/dotnet/docs/navigations.mdx
+++ b/dotnet/docs/navigations.mdx
@@ -5,6 +5,7 @@ title: "Navigations"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/network.mdx b/dotnet/docs/network.mdx
index 512847ea620..71dc7418188 100644
--- a/dotnet/docs/network.mdx
+++ b/dotnet/docs/network.mdx
@@ -5,6 +5,7 @@ title: "Network"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/other-locators.mdx b/dotnet/docs/other-locators.mdx
index fd34190284d..5063b14858f 100644
--- a/dotnet/docs/other-locators.mdx
+++ b/dotnet/docs/other-locators.mdx
@@ -5,6 +5,7 @@ title: "Other locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/pages.mdx b/dotnet/docs/pages.mdx
index beddf404289..1d0356e9e55 100644
--- a/dotnet/docs/pages.mdx
+++ b/dotnet/docs/pages.mdx
@@ -5,6 +5,7 @@ title: "Pages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Pages
diff --git a/dotnet/docs/pom.mdx b/dotnet/docs/pom.mdx
index da302a6704a..897fce0a5cf 100644
--- a/dotnet/docs/pom.mdx
+++ b/dotnet/docs/pom.mdx
@@ -5,6 +5,7 @@ title: "Page object models"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/release-notes.mdx b/dotnet/docs/release-notes.mdx
index 0945d31bb7a..a5f91f64538 100644
--- a/dotnet/docs/release-notes.mdx
+++ b/dotnet/docs/release-notes.mdx
@@ -6,6 +6,7 @@ toc_max_heading_level: 2
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Version 1.54
diff --git a/dotnet/docs/running-tests.mdx b/dotnet/docs/running-tests.mdx
index 067d518eb90..a35c51d62c5 100644
--- a/dotnet/docs/running-tests.mdx
+++ b/dotnet/docs/running-tests.mdx
@@ -5,6 +5,7 @@ title: "Running and debugging tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/screenshots.mdx b/dotnet/docs/screenshots.mdx
index c72ce7fdfec..42306845089 100644
--- a/dotnet/docs/screenshots.mdx
+++ b/dotnet/docs/screenshots.mdx
@@ -5,6 +5,7 @@ title: "Screenshots"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/selenium-grid.mdx b/dotnet/docs/selenium-grid.mdx
index 36dd5988d41..0a65242b49a 100644
--- a/dotnet/docs/selenium-grid.mdx
+++ b/dotnet/docs/selenium-grid.mdx
@@ -5,6 +5,7 @@ title: "Selenium Grid (experimental)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/test-assertions.mdx b/dotnet/docs/test-assertions.mdx
index 93eeb4cfa16..9d0c9b5097e 100644
--- a/dotnet/docs/test-assertions.mdx
+++ b/dotnet/docs/test-assertions.mdx
@@ -5,6 +5,7 @@ title: "Assertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## List of assertions
diff --git a/dotnet/docs/test-runners.mdx b/dotnet/docs/test-runners.mdx
index 70a4c25aad5..f8ea6ded426 100644
--- a/dotnet/docs/test-runners.mdx
+++ b/dotnet/docs/test-runners.mdx
@@ -5,6 +5,7 @@ title: "Test Runners"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/touch-events.mdx b/dotnet/docs/touch-events.mdx
index 247e46af8f8..a323c123191 100644
--- a/dotnet/docs/touch-events.mdx
+++ b/dotnet/docs/touch-events.mdx
@@ -5,6 +5,7 @@ title: "Touch events (legacy)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/trace-viewer-intro.mdx b/dotnet/docs/trace-viewer-intro.mdx
index 99bd16f1635..d2037b6821a 100644
--- a/dotnet/docs/trace-viewer-intro.mdx
+++ b/dotnet/docs/trace-viewer-intro.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/trace-viewer.mdx b/dotnet/docs/trace-viewer.mdx
index 4098118c627..8f49f9581a9 100644
--- a/dotnet/docs/trace-viewer.mdx
+++ b/dotnet/docs/trace-viewer.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/dotnet/docs/videos.mdx b/dotnet/docs/videos.mdx
index 4c1e43e1390..61ddb9ea35f 100644
--- a/dotnet/docs/videos.mdx
+++ b/dotnet/docs/videos.mdx
@@ -5,6 +5,7 @@ title: "Videos"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/webview2.mdx b/dotnet/docs/webview2.mdx
index e2a47effd31..282f01a0820 100644
--- a/dotnet/docs/webview2.mdx
+++ b/dotnet/docs/webview2.mdx
@@ -5,6 +5,7 @@ title: "WebView2"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docs/writing-tests.mdx b/dotnet/docs/writing-tests.mdx
index 14756f75102..1edede1f083 100644
--- a/dotnet/docs/writing-tests.mdx
+++ b/dotnet/docs/writing-tests.mdx
@@ -5,6 +5,7 @@ title: "Writing tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/dotnet/docusaurus.config.ts b/dotnet/docusaurus.config.ts
index cb26119d007..87e573cfc5e 100644
--- a/dotnet/docusaurus.config.ts
+++ b/dotnet/docusaurus.config.ts
@@ -34,6 +34,15 @@ let plugins = [
}),
],
require.resolve("@docusaurus/plugin-content-pages"),
+ [
+ require.resolve('@docusaurus/plugin-ideal-image'),
+ {
+ max: 1024,
+ min: 640,
+ steps: 4,
+ disableInDev: false
+ }
+ ],
];
if (isProd) {
diff --git a/java/docs/accessibility-testing.mdx b/java/docs/accessibility-testing.mdx
index e6f0cd9d490..36c964b1915 100644
--- a/java/docs/accessibility-testing.mdx
+++ b/java/docs/accessibility-testing.mdx
@@ -5,6 +5,7 @@ title: "Accessibility testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/actionability.mdx b/java/docs/actionability.mdx
index b56e8201110..85c3f019e08 100644
--- a/java/docs/actionability.mdx
+++ b/java/docs/actionability.mdx
@@ -5,6 +5,7 @@ title: "Auto-waiting"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/api-testing.mdx b/java/docs/api-testing.mdx
index 9e9e31ddaef..fceefe0fb51 100644
--- a/java/docs/api-testing.mdx
+++ b/java/docs/api-testing.mdx
@@ -5,6 +5,7 @@ title: "API testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/api/class-apirequest.mdx b/java/docs/api/class-apirequest.mdx
index 5a02eeabde5..cf872cbe1d7 100644
--- a/java/docs/api/class-apirequest.mdx
+++ b/java/docs/api/class-apirequest.mdx
@@ -5,6 +5,7 @@ title: "APIRequest"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Exposes API that can be used for the Web API testing. This class is used for creating [APIRequestContext] instance which in turn can be used for sending web requests. An instance of this class can be obtained via [Playwright.request()](/api/class-playwright.mdx#playwright-request). For more information see [APIRequestContext].
diff --git a/java/docs/api/class-apirequestcontext.mdx b/java/docs/api/class-apirequestcontext.mdx
index e794937f0c4..ed3f5ddaa06 100644
--- a/java/docs/api/class-apirequestcontext.mdx
+++ b/java/docs/api/class-apirequestcontext.mdx
@@ -5,6 +5,7 @@ title: "APIRequestContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
This API is used for the Web API testing. You can use it to trigger API endpoints, configure micro-services, prepare environment or the service to your e2e test.
diff --git a/java/docs/api/class-apiresponse.mdx b/java/docs/api/class-apiresponse.mdx
index 9eab4228ebd..68c60d291c2 100644
--- a/java/docs/api/class-apiresponse.mdx
+++ b/java/docs/api/class-apiresponse.mdx
@@ -5,6 +5,7 @@ title: "APIResponse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[APIResponse] class represents responses returned by [APIRequestContext.get()](/api/class-apirequestcontext.mdx#api-request-context-get) and similar methods.
diff --git a/java/docs/api/class-apiresponseassertions.mdx b/java/docs/api/class-apiresponseassertions.mdx
index b12c477f99c..e09e980ebd7 100644
--- a/java/docs/api/class-apiresponseassertions.mdx
+++ b/java/docs/api/class-apiresponseassertions.mdx
@@ -5,6 +5,7 @@ title: "APIResponseAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [APIResponseAssertions] class provides assertion methods that can be used to make assertions about the [APIResponse] in the tests.
diff --git a/java/docs/api/class-browser.mdx b/java/docs/api/class-browser.mdx
index 36a1463dd9a..8cecdb8f6c5 100644
--- a/java/docs/api/class-browser.mdx
+++ b/java/docs/api/class-browser.mdx
@@ -5,6 +5,7 @@ title: "Browser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
A Browser is created via [BrowserType.launch()](/api/class-browsertype.mdx#browser-type-launch). An example of using a [Browser] to create a [Page]:
diff --git a/java/docs/api/class-browsercontext.mdx b/java/docs/api/class-browsercontext.mdx
index fff48de66c0..e29cf340648 100644
--- a/java/docs/api/class-browsercontext.mdx
+++ b/java/docs/api/class-browsercontext.mdx
@@ -5,6 +5,7 @@ title: "BrowserContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserContexts provide a way to operate multiple independent browser sessions.
diff --git a/java/docs/api/class-browsertype.mdx b/java/docs/api/class-browsertype.mdx
index 8b9e1dd85be..2776a5fa00a 100644
--- a/java/docs/api/class-browsertype.mdx
+++ b/java/docs/api/class-browsertype.mdx
@@ -5,6 +5,7 @@ title: "BrowserType"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserType provides methods to launch a specific browser instance or connect to an existing one. The following is a typical example of using Playwright to drive automation:
diff --git a/java/docs/api/class-cdpsession.mdx b/java/docs/api/class-cdpsession.mdx
index 85925a0830f..aabf3f76f30 100644
--- a/java/docs/api/class-cdpsession.mdx
+++ b/java/docs/api/class-cdpsession.mdx
@@ -5,6 +5,7 @@ title: "CDPSession"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The `CDPSession` instances are used to talk raw Chrome Devtools Protocol:
diff --git a/java/docs/api/class-clock.mdx b/java/docs/api/class-clock.mdx
index 370ed3ad5d2..9cd2813310d 100644
--- a/java/docs/api/class-clock.mdx
+++ b/java/docs/api/class-clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Accurately simulating time-dependent behavior is essential for verifying the correctness of applications. Learn more about [clock emulation](../clock.mdx).
diff --git a/java/docs/api/class-consolemessage.mdx b/java/docs/api/class-consolemessage.mdx
index a545927a9ef..1bcb021928b 100644
--- a/java/docs/api/class-consolemessage.mdx
+++ b/java/docs/api/class-consolemessage.mdx
@@ -5,6 +5,7 @@ title: "ConsoleMessage"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[ConsoleMessage] objects are dispatched by page via the [Page.onConsoleMessage(handler)](/api/class-page.mdx#page-event-console) event. For each console message logged in the page there will be corresponding event in the Playwright context.
diff --git a/java/docs/api/class-dialog.mdx b/java/docs/api/class-dialog.mdx
index a885c843673..e2cb355274e 100644
--- a/java/docs/api/class-dialog.mdx
+++ b/java/docs/api/class-dialog.mdx
@@ -5,6 +5,7 @@ title: "Dialog"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Dialog] objects are dispatched by page via the [Page.onDialog(handler)](/api/class-page.mdx#page-event-dialog) event.
diff --git a/java/docs/api/class-download.mdx b/java/docs/api/class-download.mdx
index 073088ca1bf..c5362efc07e 100644
--- a/java/docs/api/class-download.mdx
+++ b/java/docs/api/class-download.mdx
@@ -5,6 +5,7 @@ title: "Download"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Download] objects are dispatched by page via the [Page.onDownload(handler)](/api/class-page.mdx#page-event-download) event.
diff --git a/java/docs/api/class-elementhandle.mdx b/java/docs/api/class-elementhandle.mdx
index 257924f1ce6..7d07e1a65e9 100644
--- a/java/docs/api/class-elementhandle.mdx
+++ b/java/docs/api/class-elementhandle.mdx
@@ -5,6 +5,7 @@ title: "ElementHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [JSHandle]
diff --git a/java/docs/api/class-filechooser.mdx b/java/docs/api/class-filechooser.mdx
index e0fea5a321e..453264f4c6c 100644
--- a/java/docs/api/class-filechooser.mdx
+++ b/java/docs/api/class-filechooser.mdx
@@ -5,6 +5,7 @@ title: "FileChooser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[FileChooser] objects are dispatched by the page in the [Page.onFileChooser(handler)](/api/class-page.mdx#page-event-file-chooser) event.
diff --git a/java/docs/api/class-formdata.mdx b/java/docs/api/class-formdata.mdx
index c438d104382..805daee883a 100644
--- a/java/docs/api/class-formdata.mdx
+++ b/java/docs/api/class-formdata.mdx
@@ -5,6 +5,7 @@ title: "FormData"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [FormData] is used create form data that is sent via [APIRequestContext].
diff --git a/java/docs/api/class-frame.mdx b/java/docs/api/class-frame.mdx
index c33a3ae8564..3f060ee8030 100644
--- a/java/docs/api/class-frame.mdx
+++ b/java/docs/api/class-frame.mdx
@@ -5,6 +5,7 @@ title: "Frame"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
At every point of time, page exposes its current frame tree via the [Page.mainFrame()](/api/class-page.mdx#page-main-frame) and [Frame.childFrames()](/api/class-frame.mdx#frame-child-frames) methods.
diff --git a/java/docs/api/class-framelocator.mdx b/java/docs/api/class-framelocator.mdx
index 78eedabc22c..e5e8365f4ab 100644
--- a/java/docs/api/class-framelocator.mdx
+++ b/java/docs/api/class-framelocator.mdx
@@ -5,6 +5,7 @@ title: "FrameLocator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
FrameLocator represents a view to the `iframe` on the page. It captures the logic sufficient to retrieve the `iframe` and locate elements in that iframe. FrameLocator can be created with either [Locator.contentFrame()](/api/class-locator.mdx#locator-content-frame), [Page.frameLocator()](/api/class-page.mdx#page-frame-locator) or [Locator.frameLocator()](/api/class-locator.mdx#locator-frame-locator) method.
diff --git a/java/docs/api/class-jshandle.mdx b/java/docs/api/class-jshandle.mdx
index 7754fe2685f..944c7ca7493 100644
--- a/java/docs/api/class-jshandle.mdx
+++ b/java/docs/api/class-jshandle.mdx
@@ -5,6 +5,7 @@ title: "JSHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
JSHandle represents an in-page JavaScript object. JSHandles can be created with the [Page.evaluateHandle()](/api/class-page.mdx#page-evaluate-handle) method.
diff --git a/java/docs/api/class-keyboard.mdx b/java/docs/api/class-keyboard.mdx
index d4e332a3665..db44cc086b9 100644
--- a/java/docs/api/class-keyboard.mdx
+++ b/java/docs/api/class-keyboard.mdx
@@ -5,6 +5,7 @@ title: "Keyboard"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Keyboard provides an api for managing a virtual keyboard. The high level api is [Keyboard.type()](/api/class-keyboard.mdx#keyboard-type), which takes raw characters and generates proper `keydown`, `keypress`/`input`, and `keyup` events on your page.
diff --git a/java/docs/api/class-locator.mdx b/java/docs/api/class-locator.mdx
index 2aca2d1d148..3a79e400623 100644
--- a/java/docs/api/class-locator.mdx
+++ b/java/docs/api/class-locator.mdx
@@ -5,6 +5,7 @@ title: "Locator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Locators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent a way to find element(s) on the page at any moment. A locator can be created with the [Page.locator()](/api/class-page.mdx#page-locator) method.
diff --git a/java/docs/api/class-locatorassertions.mdx b/java/docs/api/class-locatorassertions.mdx
index 53e31f6e3c4..a03581311b3 100644
--- a/java/docs/api/class-locatorassertions.mdx
+++ b/java/docs/api/class-locatorassertions.mdx
@@ -5,6 +5,7 @@ title: "LocatorAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [LocatorAssertions] class provides assertion methods that can be used to make assertions about the [Locator] state in the tests.
diff --git a/java/docs/api/class-mouse.mdx b/java/docs/api/class-mouse.mdx
index 2ce1015698f..865de2b20c2 100644
--- a/java/docs/api/class-mouse.mdx
+++ b/java/docs/api/class-mouse.mdx
@@ -5,6 +5,7 @@ title: "Mouse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.
diff --git a/java/docs/api/class-page.mdx b/java/docs/api/class-page.mdx
index 37c756657e1..5b0949641e3 100644
--- a/java/docs/api/class-page.mdx
+++ b/java/docs/api/class-page.mdx
@@ -5,6 +5,7 @@ title: "Page"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Page provides methods to interact with a single tab in a [Browser], or an [extension background page](https://developer.chrome.com/extensions/background_pages) in Chromium. One [Browser] instance might have multiple [Page] instances.
diff --git a/java/docs/api/class-pageassertions.mdx b/java/docs/api/class-pageassertions.mdx
index 887e0bd5fe4..432b87fd3e2 100644
--- a/java/docs/api/class-pageassertions.mdx
+++ b/java/docs/api/class-pageassertions.mdx
@@ -5,6 +5,7 @@ title: "PageAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [PageAssertions] class provides assertion methods that can be used to make assertions about the [Page] state in the tests.
diff --git a/java/docs/api/class-playwright.mdx b/java/docs/api/class-playwright.mdx
index 53b175db645..6314262a700 100644
--- a/java/docs/api/class-playwright.mdx
+++ b/java/docs/api/class-playwright.mdx
@@ -5,6 +5,7 @@ title: "Playwright"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright module provides a method to launch a browser instance. The following is a typical example of using Playwright to drive automation:
diff --git a/java/docs/api/class-playwrightassertions.mdx b/java/docs/api/class-playwrightassertions.mdx
index 04d27460b3d..f8dff25a211 100644
--- a/java/docs/api/class-playwrightassertions.mdx
+++ b/java/docs/api/class-playwrightassertions.mdx
@@ -5,6 +5,7 @@ title: "PlaywrightAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright gives you Web-First Assertions with convenience methods for creating assertions that will wait and retry until the expected condition is met.
diff --git a/java/docs/api/class-playwrightexception.mdx b/java/docs/api/class-playwrightexception.mdx
index 37c0a20db5b..cfc359e06fe 100644
--- a/java/docs/api/class-playwrightexception.mdx
+++ b/java/docs/api/class-playwrightexception.mdx
@@ -5,6 +5,7 @@ title: "PlaywrightException"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [RuntimeException]
diff --git a/java/docs/api/class-request.mdx b/java/docs/api/class-request.mdx
index 11d2f87c357..566962850e1 100644
--- a/java/docs/api/class-request.mdx
+++ b/java/docs/api/class-request.mdx
@@ -5,6 +5,7 @@ title: "Request"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever the page sends a request for a network resource the following sequence of events are emitted by [Page]:
diff --git a/java/docs/api/class-requestoptions.mdx b/java/docs/api/class-requestoptions.mdx
index 59d44b4e624..c6f217f360f 100644
--- a/java/docs/api/class-requestoptions.mdx
+++ b/java/docs/api/class-requestoptions.mdx
@@ -5,6 +5,7 @@ title: "RequestOptions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [RequestOptions] allows to create form data to be sent via [APIRequestContext]. Playwright will automatically determine content type of the request.
diff --git a/java/docs/api/class-response.mdx b/java/docs/api/class-response.mdx
index a20dc1b5573..641bc47c202 100644
--- a/java/docs/api/class-response.mdx
+++ b/java/docs/api/class-response.mdx
@@ -5,6 +5,7 @@ title: "Response"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Response] class represents responses which are received by page.
diff --git a/java/docs/api/class-route.mdx b/java/docs/api/class-route.mdx
index a50646b90a0..5e71c317383 100644
--- a/java/docs/api/class-route.mdx
+++ b/java/docs/api/class-route.mdx
@@ -5,6 +5,7 @@ title: "Route"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a network route is set up with [Page.route()](/api/class-page.mdx#page-route) or [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route), the `Route` object allows to handle the route.
diff --git a/java/docs/api/class-selectors.mdx b/java/docs/api/class-selectors.mdx
index 2d4b2c13a3c..388c57b4269 100644
--- a/java/docs/api/class-selectors.mdx
+++ b/java/docs/api/class-selectors.mdx
@@ -5,6 +5,7 @@ title: "Selectors"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Selectors can be used to install custom selector engines. See [extensibility](../extensibility.mdx) for more information.
diff --git a/java/docs/api/class-timeouterror.mdx b/java/docs/api/class-timeouterror.mdx
index cb9c7aabc13..b13455a563f 100644
--- a/java/docs/api/class-timeouterror.mdx
+++ b/java/docs/api/class-timeouterror.mdx
@@ -5,6 +5,7 @@ title: "TimeoutError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [PlaywrightException]
diff --git a/java/docs/api/class-touchscreen.mdx b/java/docs/api/class-touchscreen.mdx
index 6159d2422d1..540e9ec8032 100644
--- a/java/docs/api/class-touchscreen.mdx
+++ b/java/docs/api/class-touchscreen.mdx
@@ -5,6 +5,7 @@ title: "Touchscreen"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Touchscreen class operates in main-frame CSS pixels relative to the top-left corner of the viewport. Methods on the touchscreen can only be used in browser contexts that have been initialized with `hasTouch` set to true.
diff --git a/java/docs/api/class-tracing.mdx b/java/docs/api/class-tracing.mdx
index 844c09f1ca9..94cabc29618 100644
--- a/java/docs/api/class-tracing.mdx
+++ b/java/docs/api/class-tracing.mdx
@@ -5,6 +5,7 @@ title: "Tracing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
API for collecting and saving Playwright traces. Playwright traces can be opened in [Trace Viewer](../trace-viewer.mdx) after Playwright script runs.
diff --git a/java/docs/api/class-video.mdx b/java/docs/api/class-video.mdx
index e88f02a5b01..f0a2698150b 100644
--- a/java/docs/api/class-video.mdx
+++ b/java/docs/api/class-video.mdx
@@ -5,6 +5,7 @@ title: "Video"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
When browser context is created with the `recordVideo` option, each page has a video object associated with it.
diff --git a/java/docs/api/class-weberror.mdx b/java/docs/api/class-weberror.mdx
index 90796f6d65b..a557739f19f 100644
--- a/java/docs/api/class-weberror.mdx
+++ b/java/docs/api/class-weberror.mdx
@@ -5,6 +5,7 @@ title: "WebError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[WebError] class represents an unhandled exception thrown in the page. It is dispatched via the [BrowserContext.onWebError(handler)](/api/class-browsercontext.mdx#browser-context-event-web-error) event.
diff --git a/java/docs/api/class-websocket.mdx b/java/docs/api/class-websocket.mdx
index d1e0e9e0944..d6fca617d1d 100644
--- a/java/docs/api/class-websocket.mdx
+++ b/java/docs/api/class-websocket.mdx
@@ -5,6 +5,7 @@ title: "WebSocket"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [WebSocket] class represents WebSocket connections within a page. It provides the ability to inspect and manipulate the data being transmitted and received.
diff --git a/java/docs/api/class-websocketframe.mdx b/java/docs/api/class-websocketframe.mdx
index a9eb945cd98..3809999e590 100644
--- a/java/docs/api/class-websocketframe.mdx
+++ b/java/docs/api/class-websocketframe.mdx
@@ -5,6 +5,7 @@ title: "WebSocketFrame"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [WebSocketFrame] class represents frames sent over [WebSocket] connections in the page. Frame payload is returned by either [WebSocketFrame.text()](/api/class-websocketframe.mdx#web-socket-frame-text) or [WebSocketFrame.binary()](/api/class-websocketframe.mdx#web-socket-frame-binary) method depending on the its type.
diff --git a/java/docs/api/class-websocketroute.mdx b/java/docs/api/class-websocketroute.mdx
index 204636c059d..307dd25ec96 100644
--- a/java/docs/api/class-websocketroute.mdx
+++ b/java/docs/api/class-websocketroute.mdx
@@ -5,6 +5,7 @@ title: "WebSocketRoute"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a [`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) route is set up with [Page.routeWebSocket()](/api/class-page.mdx#page-route-web-socket) or [BrowserContext.routeWebSocket()](/api/class-browsercontext.mdx#browser-context-route-web-socket), the `WebSocketRoute` object allows to handle the WebSocket, like an actual server would do.
diff --git a/java/docs/api/class-worker.mdx b/java/docs/api/class-worker.mdx
index f387780e844..686fc6343aa 100644
--- a/java/docs/api/class-worker.mdx
+++ b/java/docs/api/class-worker.mdx
@@ -5,6 +5,7 @@ title: "Worker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Worker class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). `worker` event is emitted on the page object to signal a worker creation. `close` event is emitted on the worker object when the worker is gone.
diff --git a/java/docs/aria-snapshots.mdx b/java/docs/aria-snapshots.mdx
index df92b9876cb..00210824f22 100644
--- a/java/docs/aria-snapshots.mdx
+++ b/java/docs/aria-snapshots.mdx
@@ -5,6 +5,7 @@ title: "Snapshot testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/java/docs/auth.mdx b/java/docs/auth.mdx
index 2a0d6f5f037..9030cc97c3d 100644
--- a/java/docs/auth.mdx
+++ b/java/docs/auth.mdx
@@ -5,6 +5,7 @@ title: "Authentication"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/browser-contexts.mdx b/java/docs/browser-contexts.mdx
index 2ad715392d4..530fd6d2bd5 100644
--- a/java/docs/browser-contexts.mdx
+++ b/java/docs/browser-contexts.mdx
@@ -5,6 +5,7 @@ title: "Isolation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/browsers.mdx b/java/docs/browsers.mdx
index 972f6e90796..7d53ba5e1d2 100644
--- a/java/docs/browsers.mdx
+++ b/java/docs/browsers.mdx
@@ -5,6 +5,7 @@ title: "Browsers"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/ci-intro.mdx b/java/docs/ci-intro.mdx
index 84423e6c59a..60f5abee200 100644
--- a/java/docs/ci-intro.mdx
+++ b/java/docs/ci-intro.mdx
@@ -5,6 +5,7 @@ title: "Setting up CI"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/ci.mdx b/java/docs/ci.mdx
index 33d3c9f91c0..d02c986d4eb 100644
--- a/java/docs/ci.mdx
+++ b/java/docs/ci.mdx
@@ -5,6 +5,7 @@ title: "Continuous Integration"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/clock.mdx b/java/docs/clock.mdx
index 64655dd6fb1..ea395dfa335 100644
--- a/java/docs/clock.mdx
+++ b/java/docs/clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/java/docs/codegen-intro.mdx b/java/docs/codegen-intro.mdx
index e36f0714e75..a30862e980e 100644
--- a/java/docs/codegen-intro.mdx
+++ b/java/docs/codegen-intro.mdx
@@ -5,6 +5,7 @@ title: "Generating tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/codegen.mdx b/java/docs/codegen.mdx
index 1d5ec814d2c..fa31003521d 100644
--- a/java/docs/codegen.mdx
+++ b/java/docs/codegen.mdx
@@ -5,6 +5,7 @@ title: "Test generator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/java/docs/debug.mdx b/java/docs/debug.mdx
index d72575da6ba..10c4464c471 100644
--- a/java/docs/debug.mdx
+++ b/java/docs/debug.mdx
@@ -5,6 +5,7 @@ title: "Debugging Tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Playwright Inspector
diff --git a/java/docs/dialogs.mdx b/java/docs/dialogs.mdx
index 9f984d4bfd5..04802aaeb66 100644
--- a/java/docs/dialogs.mdx
+++ b/java/docs/dialogs.mdx
@@ -5,6 +5,7 @@ title: "Dialogs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/docker.mdx b/java/docs/docker.mdx
index 84417c62018..304fa203b40 100644
--- a/java/docs/docker.mdx
+++ b/java/docs/docker.mdx
@@ -5,6 +5,7 @@ title: "Docker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/downloads.mdx b/java/docs/downloads.mdx
index ef37e8effa6..e979439aed6 100644
--- a/java/docs/downloads.mdx
+++ b/java/docs/downloads.mdx
@@ -5,6 +5,7 @@ title: "Downloads"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/emulation.mdx b/java/docs/emulation.mdx
index e9ab0fed3f8..051d97c4056 100644
--- a/java/docs/emulation.mdx
+++ b/java/docs/emulation.mdx
@@ -5,6 +5,7 @@ title: "Emulation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/evaluating.mdx b/java/docs/evaluating.mdx
index c584364e5df..80bddf49440 100644
--- a/java/docs/evaluating.mdx
+++ b/java/docs/evaluating.mdx
@@ -5,6 +5,7 @@ title: "Evaluating JavaScript"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/events.mdx b/java/docs/events.mdx
index 8c3a6624ae8..346882f0634 100644
--- a/java/docs/events.mdx
+++ b/java/docs/events.mdx
@@ -5,6 +5,7 @@ title: "Events"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/extensibility.mdx b/java/docs/extensibility.mdx
index 2e2e4efe5f3..32027c6ee91 100644
--- a/java/docs/extensibility.mdx
+++ b/java/docs/extensibility.mdx
@@ -5,6 +5,7 @@ title: "Extensibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Custom selector engines
diff --git a/java/docs/frames.mdx b/java/docs/frames.mdx
index 0e01dba06f1..1b149ea7eaa 100644
--- a/java/docs/frames.mdx
+++ b/java/docs/frames.mdx
@@ -5,6 +5,7 @@ title: "Frames"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/handles.mdx b/java/docs/handles.mdx
index d8e8c3824dc..01bc3054d39 100644
--- a/java/docs/handles.mdx
+++ b/java/docs/handles.mdx
@@ -5,6 +5,7 @@ title: "Handles"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/input.mdx b/java/docs/input.mdx
index 1527d1df3db..1031a3a0c8b 100644
--- a/java/docs/input.mdx
+++ b/java/docs/input.mdx
@@ -5,6 +5,7 @@ title: "Actions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/intro.mdx b/java/docs/intro.mdx
index 3702f780d06..d1ae734eec3 100644
--- a/java/docs/intro.mdx
+++ b/java/docs/intro.mdx
@@ -5,6 +5,7 @@ title: "Installation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/junit.mdx b/java/docs/junit.mdx
index 8cd9ee7b427..ce9c2169a2d 100644
--- a/java/docs/junit.mdx
+++ b/java/docs/junit.mdx
@@ -5,6 +5,7 @@ title: "JUnit (experimental)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/languages.mdx b/java/docs/languages.mdx
index a2504016d9e..171f6aa50c2 100644
--- a/java/docs/languages.mdx
+++ b/java/docs/languages.mdx
@@ -5,6 +5,7 @@ title: "Supported languages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/locators.mdx b/java/docs/locators.mdx
index cbb508e2a73..c87e0f34454 100644
--- a/java/docs/locators.mdx
+++ b/java/docs/locators.mdx
@@ -5,6 +5,7 @@ title: "Locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/mock.mdx b/java/docs/mock.mdx
index 4e102340503..66a23c670ba 100644
--- a/java/docs/mock.mdx
+++ b/java/docs/mock.mdx
@@ -5,6 +5,7 @@ title: "Mock APIs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/navigations.mdx b/java/docs/navigations.mdx
index 5d29509f164..59e2d1e596b 100644
--- a/java/docs/navigations.mdx
+++ b/java/docs/navigations.mdx
@@ -5,6 +5,7 @@ title: "Navigations"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/network.mdx b/java/docs/network.mdx
index 97c34f97b68..04045944563 100644
--- a/java/docs/network.mdx
+++ b/java/docs/network.mdx
@@ -5,6 +5,7 @@ title: "Network"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/other-locators.mdx b/java/docs/other-locators.mdx
index 66b256c5cd5..ad2a279040f 100644
--- a/java/docs/other-locators.mdx
+++ b/java/docs/other-locators.mdx
@@ -5,6 +5,7 @@ title: "Other locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/pages.mdx b/java/docs/pages.mdx
index 62e190dc35a..783fba26a51 100644
--- a/java/docs/pages.mdx
+++ b/java/docs/pages.mdx
@@ -5,6 +5,7 @@ title: "Pages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Pages
diff --git a/java/docs/pom.mdx b/java/docs/pom.mdx
index 25a69f6b6b8..cdd27fb94ad 100644
--- a/java/docs/pom.mdx
+++ b/java/docs/pom.mdx
@@ -5,6 +5,7 @@ title: "Page object models"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/release-notes.mdx b/java/docs/release-notes.mdx
index 65df07e9f06..484ca8306a7 100644
--- a/java/docs/release-notes.mdx
+++ b/java/docs/release-notes.mdx
@@ -6,6 +6,7 @@ toc_max_heading_level: 2
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Version 1.54
diff --git a/java/docs/running-tests.mdx b/java/docs/running-tests.mdx
index 51e9aa9e33a..37009908dbc 100644
--- a/java/docs/running-tests.mdx
+++ b/java/docs/running-tests.mdx
@@ -5,6 +5,7 @@ title: "Running and debugging tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/screenshots.mdx b/java/docs/screenshots.mdx
index 90dbb322a90..217bdeac753 100644
--- a/java/docs/screenshots.mdx
+++ b/java/docs/screenshots.mdx
@@ -5,6 +5,7 @@ title: "Screenshots"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/selenium-grid.mdx b/java/docs/selenium-grid.mdx
index 87a1a1d154e..3459ddced8d 100644
--- a/java/docs/selenium-grid.mdx
+++ b/java/docs/selenium-grid.mdx
@@ -5,6 +5,7 @@ title: "Selenium Grid (experimental)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/test-assertions.mdx b/java/docs/test-assertions.mdx
index 88dc40b867c..1181de61855 100644
--- a/java/docs/test-assertions.mdx
+++ b/java/docs/test-assertions.mdx
@@ -5,6 +5,7 @@ title: "Assertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## List of assertions
diff --git a/java/docs/test-runners.mdx b/java/docs/test-runners.mdx
index 62419497b86..22c0962ccb5 100644
--- a/java/docs/test-runners.mdx
+++ b/java/docs/test-runners.mdx
@@ -5,6 +5,7 @@ title: "Test Runners"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/threading.mdx b/java/docs/threading.mdx
index e97e36a486b..a3f1fb66bff 100644
--- a/java/docs/threading.mdx
+++ b/java/docs/threading.mdx
@@ -5,6 +5,7 @@ title: "Multithreading"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/touch-events.mdx b/java/docs/touch-events.mdx
index 1041b23f9af..916a44345ad 100644
--- a/java/docs/touch-events.mdx
+++ b/java/docs/touch-events.mdx
@@ -5,6 +5,7 @@ title: "Touch events (legacy)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/trace-viewer-intro.mdx b/java/docs/trace-viewer-intro.mdx
index 1110c26c0a2..59b4fb4858c 100644
--- a/java/docs/trace-viewer-intro.mdx
+++ b/java/docs/trace-viewer-intro.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/trace-viewer.mdx b/java/docs/trace-viewer.mdx
index b446e1d01a6..00f1bfd516d 100644
--- a/java/docs/trace-viewer.mdx
+++ b/java/docs/trace-viewer.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/java/docs/videos.mdx b/java/docs/videos.mdx
index 53b66491503..d0fa0cb5785 100644
--- a/java/docs/videos.mdx
+++ b/java/docs/videos.mdx
@@ -5,6 +5,7 @@ title: "Videos"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/webview2.mdx b/java/docs/webview2.mdx
index 394d4f055ff..cc0e73b3886 100644
--- a/java/docs/webview2.mdx
+++ b/java/docs/webview2.mdx
@@ -5,6 +5,7 @@ title: "WebView2"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docs/writing-tests.mdx b/java/docs/writing-tests.mdx
index 95018cbf098..2357972c783 100644
--- a/java/docs/writing-tests.mdx
+++ b/java/docs/writing-tests.mdx
@@ -5,6 +5,7 @@ title: "Writing tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/java/docusaurus.config.ts b/java/docusaurus.config.ts
index 8e867033cc2..13350977154 100644
--- a/java/docusaurus.config.ts
+++ b/java/docusaurus.config.ts
@@ -34,6 +34,15 @@ let plugins = [
}),
],
require.resolve("@docusaurus/plugin-content-pages"),
+ [
+ require.resolve('@docusaurus/plugin-ideal-image'),
+ {
+ max: 1024,
+ min: 640,
+ steps: 4,
+ disableInDev: false
+ }
+ ],
];
if (isProd) {
diff --git a/nodejs/docs/accessibility-testing.mdx b/nodejs/docs/accessibility-testing.mdx
index 1001896d000..9afe292783f 100644
--- a/nodejs/docs/accessibility-testing.mdx
+++ b/nodejs/docs/accessibility-testing.mdx
@@ -5,6 +5,7 @@ title: "Accessibility testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/actionability.mdx b/nodejs/docs/actionability.mdx
index c1a305d5eb9..6e62170e8ba 100644
--- a/nodejs/docs/actionability.mdx
+++ b/nodejs/docs/actionability.mdx
@@ -5,6 +5,7 @@ title: "Auto-waiting"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/api-testing.mdx b/nodejs/docs/api-testing.mdx
index 45f4e7a5af0..c078709d65c 100644
--- a/nodejs/docs/api-testing.mdx
+++ b/nodejs/docs/api-testing.mdx
@@ -5,6 +5,7 @@ title: "API testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/api/class-accessibility.mdx b/nodejs/docs/api/class-accessibility.mdx
index 14ce9846c70..94544635c8d 100644
--- a/nodejs/docs/api/class-accessibility.mdx
+++ b/nodejs/docs/api/class-accessibility.mdx
@@ -5,6 +5,7 @@ title: "Accessibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
:::warning[Deprecated]
diff --git a/nodejs/docs/api/class-android.mdx b/nodejs/docs/api/class-android.mdx
index 180b780be04..5dca12a85c0 100644
--- a/nodejs/docs/api/class-android.mdx
+++ b/nodejs/docs/api/class-android.mdx
@@ -5,6 +5,7 @@ title: "Android"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright has **experimental** support for Android automation. This includes Chrome for Android and Android WebView.
diff --git a/nodejs/docs/api/class-androiddevice.mdx b/nodejs/docs/api/class-androiddevice.mdx
index 5e628dfc641..5d6a367876a 100644
--- a/nodejs/docs/api/class-androiddevice.mdx
+++ b/nodejs/docs/api/class-androiddevice.mdx
@@ -5,6 +5,7 @@ title: "AndroidDevice"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[AndroidDevice] represents a connected device, either real hardware or emulated. Devices can be obtained using [android.devices()](/api/class-android.mdx#android-devices).
diff --git a/nodejs/docs/api/class-androidinput.mdx b/nodejs/docs/api/class-androidinput.mdx
index 30ab549be38..3f1d1e8f41d 100644
--- a/nodejs/docs/api/class-androidinput.mdx
+++ b/nodejs/docs/api/class-androidinput.mdx
@@ -5,6 +5,7 @@ title: "AndroidInput"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
diff --git a/nodejs/docs/api/class-androidsocket.mdx b/nodejs/docs/api/class-androidsocket.mdx
index 2aceae3d950..8f3200cbfa4 100644
--- a/nodejs/docs/api/class-androidsocket.mdx
+++ b/nodejs/docs/api/class-androidsocket.mdx
@@ -5,6 +5,7 @@ title: "AndroidSocket"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[AndroidSocket] is a way to communicate with a process launched on the [AndroidDevice]. Use [androidDevice.open()](/api/class-androiddevice.mdx#android-device-open) to open a socket.
diff --git a/nodejs/docs/api/class-androidwebview.mdx b/nodejs/docs/api/class-androidwebview.mdx
index 83b8198e26e..a788446c9d0 100644
--- a/nodejs/docs/api/class-androidwebview.mdx
+++ b/nodejs/docs/api/class-androidwebview.mdx
@@ -5,6 +5,7 @@ title: "AndroidWebView"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[AndroidWebView] represents a WebView open on the [AndroidDevice]. WebView is usually obtained using [androidDevice.webView()](/api/class-androiddevice.mdx#android-device-web-view).
diff --git a/nodejs/docs/api/class-apirequest.mdx b/nodejs/docs/api/class-apirequest.mdx
index d93d91e3b55..fe1706bc2f6 100644
--- a/nodejs/docs/api/class-apirequest.mdx
+++ b/nodejs/docs/api/class-apirequest.mdx
@@ -5,6 +5,7 @@ title: "APIRequest"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Exposes API that can be used for the Web API testing. This class is used for creating [APIRequestContext] instance which in turn can be used for sending web requests. An instance of this class can be obtained via [playwright.request](/api/class-playwright.mdx#playwright-request). For more information see [APIRequestContext].
diff --git a/nodejs/docs/api/class-apirequestcontext.mdx b/nodejs/docs/api/class-apirequestcontext.mdx
index becb68c8048..1e81638d528 100644
--- a/nodejs/docs/api/class-apirequestcontext.mdx
+++ b/nodejs/docs/api/class-apirequestcontext.mdx
@@ -5,6 +5,7 @@ title: "APIRequestContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
This API is used for the Web API testing. You can use it to trigger API endpoints, configure micro-services, prepare environment or the service to your e2e test.
diff --git a/nodejs/docs/api/class-apiresponse.mdx b/nodejs/docs/api/class-apiresponse.mdx
index c9e92db9165..0e792609d0c 100644
--- a/nodejs/docs/api/class-apiresponse.mdx
+++ b/nodejs/docs/api/class-apiresponse.mdx
@@ -5,6 +5,7 @@ title: "APIResponse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[APIResponse] class represents responses returned by [apiRequestContext.get()](/api/class-apirequestcontext.mdx#api-request-context-get) and similar methods.
diff --git a/nodejs/docs/api/class-apiresponseassertions.mdx b/nodejs/docs/api/class-apiresponseassertions.mdx
index 1c91dbdf8ab..10f8db11089 100644
--- a/nodejs/docs/api/class-apiresponseassertions.mdx
+++ b/nodejs/docs/api/class-apiresponseassertions.mdx
@@ -5,6 +5,7 @@ title: "APIResponseAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [APIResponseAssertions] class provides assertion methods that can be used to make assertions about the [APIResponse] in the tests.
diff --git a/nodejs/docs/api/class-browser.mdx b/nodejs/docs/api/class-browser.mdx
index 755023ae855..b0c1d421b0d 100644
--- a/nodejs/docs/api/class-browser.mdx
+++ b/nodejs/docs/api/class-browser.mdx
@@ -5,6 +5,7 @@ title: "Browser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
A Browser is created via [browserType.launch()](/api/class-browsertype.mdx#browser-type-launch). An example of using a [Browser] to create a [Page]:
diff --git a/nodejs/docs/api/class-browsercontext.mdx b/nodejs/docs/api/class-browsercontext.mdx
index 1bf1b9400c8..6162ec42bd7 100644
--- a/nodejs/docs/api/class-browsercontext.mdx
+++ b/nodejs/docs/api/class-browsercontext.mdx
@@ -5,6 +5,7 @@ title: "BrowserContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserContexts provide a way to operate multiple independent browser sessions.
diff --git a/nodejs/docs/api/class-browserserver.mdx b/nodejs/docs/api/class-browserserver.mdx
index 2dfdc6c3aac..0888cce7a07 100644
--- a/nodejs/docs/api/class-browserserver.mdx
+++ b/nodejs/docs/api/class-browserserver.mdx
@@ -5,6 +5,7 @@ title: "BrowserServer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
diff --git a/nodejs/docs/api/class-browsertype.mdx b/nodejs/docs/api/class-browsertype.mdx
index 91d904b56e1..44c2101ee8e 100644
--- a/nodejs/docs/api/class-browsertype.mdx
+++ b/nodejs/docs/api/class-browsertype.mdx
@@ -5,6 +5,7 @@ title: "BrowserType"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserType provides methods to launch a specific browser instance or connect to an existing one. The following is a typical example of using Playwright to drive automation:
diff --git a/nodejs/docs/api/class-cdpsession.mdx b/nodejs/docs/api/class-cdpsession.mdx
index 8d321cacdf0..78ac899f25f 100644
--- a/nodejs/docs/api/class-cdpsession.mdx
+++ b/nodejs/docs/api/class-cdpsession.mdx
@@ -5,6 +5,7 @@ title: "CDPSession"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The `CDPSession` instances are used to talk raw Chrome Devtools Protocol:
diff --git a/nodejs/docs/api/class-clock.mdx b/nodejs/docs/api/class-clock.mdx
index 65042be53a5..c4bfca040cd 100644
--- a/nodejs/docs/api/class-clock.mdx
+++ b/nodejs/docs/api/class-clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Accurately simulating time-dependent behavior is essential for verifying the correctness of applications. Learn more about [clock emulation](../clock.mdx).
diff --git a/nodejs/docs/api/class-consolemessage.mdx b/nodejs/docs/api/class-consolemessage.mdx
index 2b92dadfdae..837d5730c2a 100644
--- a/nodejs/docs/api/class-consolemessage.mdx
+++ b/nodejs/docs/api/class-consolemessage.mdx
@@ -5,6 +5,7 @@ title: "ConsoleMessage"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[ConsoleMessage] objects are dispatched by page via the [page.on('console')](/api/class-page.mdx#page-event-console) event. For each console message logged in the page there will be corresponding event in the Playwright context.
diff --git a/nodejs/docs/api/class-coverage.mdx b/nodejs/docs/api/class-coverage.mdx
index 4c64d6cf908..51021f5a5ef 100644
--- a/nodejs/docs/api/class-coverage.mdx
+++ b/nodejs/docs/api/class-coverage.mdx
@@ -5,6 +5,7 @@ title: "Coverage"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Coverage gathers information about parts of JavaScript and CSS that were used by the page.
diff --git a/nodejs/docs/api/class-dialog.mdx b/nodejs/docs/api/class-dialog.mdx
index 1f3347fc018..9a5a703fe38 100644
--- a/nodejs/docs/api/class-dialog.mdx
+++ b/nodejs/docs/api/class-dialog.mdx
@@ -5,6 +5,7 @@ title: "Dialog"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Dialog] objects are dispatched by page via the [page.on('dialog')](/api/class-page.mdx#page-event-dialog) event.
diff --git a/nodejs/docs/api/class-download.mdx b/nodejs/docs/api/class-download.mdx
index 1b22f24a763..c20a68cc7a2 100644
--- a/nodejs/docs/api/class-download.mdx
+++ b/nodejs/docs/api/class-download.mdx
@@ -5,6 +5,7 @@ title: "Download"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Download] objects are dispatched by page via the [page.on('download')](/api/class-page.mdx#page-event-download) event.
diff --git a/nodejs/docs/api/class-electron.mdx b/nodejs/docs/api/class-electron.mdx
index f73104f385d..7293eb056d2 100644
--- a/nodejs/docs/api/class-electron.mdx
+++ b/nodejs/docs/api/class-electron.mdx
@@ -5,6 +5,7 @@ title: "Electron"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright has **experimental** support for Electron automation. You can access electron namespace via:
diff --git a/nodejs/docs/api/class-electronapplication.mdx b/nodejs/docs/api/class-electronapplication.mdx
index 544f41b9c1e..d05afb5fa2d 100644
--- a/nodejs/docs/api/class-electronapplication.mdx
+++ b/nodejs/docs/api/class-electronapplication.mdx
@@ -5,6 +5,7 @@ title: "ElectronApplication"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Electron application representation. You can use [electron.launch()](/api/class-electron.mdx#electron-launch) to obtain the application instance. This instance you can control main electron process as well as work with Electron windows:
diff --git a/nodejs/docs/api/class-elementhandle.mdx b/nodejs/docs/api/class-elementhandle.mdx
index 9f11669d1a8..f9a64c69699 100644
--- a/nodejs/docs/api/class-elementhandle.mdx
+++ b/nodejs/docs/api/class-elementhandle.mdx
@@ -5,6 +5,7 @@ title: "ElementHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [JSHandle]
diff --git a/nodejs/docs/api/class-filechooser.mdx b/nodejs/docs/api/class-filechooser.mdx
index 99f5cb32318..fdcb573cdd5 100644
--- a/nodejs/docs/api/class-filechooser.mdx
+++ b/nodejs/docs/api/class-filechooser.mdx
@@ -5,6 +5,7 @@ title: "FileChooser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[FileChooser] objects are dispatched by the page in the [page.on('filechooser')](/api/class-page.mdx#page-event-file-chooser) event.
diff --git a/nodejs/docs/api/class-fixtures.mdx b/nodejs/docs/api/class-fixtures.mdx
index 7425517af01..ca43aed71f5 100644
--- a/nodejs/docs/api/class-fixtures.mdx
+++ b/nodejs/docs/api/class-fixtures.mdx
@@ -5,6 +5,7 @@ title: "Fixtures"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright Test is based on the concept of the [test fixtures](../test-fixtures.mdx). Test fixtures are used to establish environment for each test, giving the test everything it needs and nothing else.
diff --git a/nodejs/docs/api/class-frame.mdx b/nodejs/docs/api/class-frame.mdx
index 397db6b0ccb..28968838682 100644
--- a/nodejs/docs/api/class-frame.mdx
+++ b/nodejs/docs/api/class-frame.mdx
@@ -5,6 +5,7 @@ title: "Frame"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
At every point of time, page exposes its current frame tree via the [page.mainFrame()](/api/class-page.mdx#page-main-frame) and [frame.childFrames()](/api/class-frame.mdx#frame-child-frames) methods.
diff --git a/nodejs/docs/api/class-framelocator.mdx b/nodejs/docs/api/class-framelocator.mdx
index 5282e3eab77..69f8b5794b2 100644
--- a/nodejs/docs/api/class-framelocator.mdx
+++ b/nodejs/docs/api/class-framelocator.mdx
@@ -5,6 +5,7 @@ title: "FrameLocator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
FrameLocator represents a view to the `iframe` on the page. It captures the logic sufficient to retrieve the `iframe` and locate elements in that iframe. FrameLocator can be created with either [locator.contentFrame()](/api/class-locator.mdx#locator-content-frame), [page.frameLocator()](/api/class-page.mdx#page-frame-locator) or [locator.frameLocator()](/api/class-locator.mdx#locator-frame-locator) method.
diff --git a/nodejs/docs/api/class-fullconfig.mdx b/nodejs/docs/api/class-fullconfig.mdx
index 39899fdd35f..49f5513961f 100644
--- a/nodejs/docs/api/class-fullconfig.mdx
+++ b/nodejs/docs/api/class-fullconfig.mdx
@@ -5,6 +5,7 @@ title: "FullConfig"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Resolved configuration which is accessible via [testInfo.config](/api/class-testinfo.mdx#test-info-config) and is passed to the test reporters. To see the format of Playwright configuration file, please see [TestConfig] instead.
diff --git a/nodejs/docs/api/class-fullproject.mdx b/nodejs/docs/api/class-fullproject.mdx
index edc9d6deb17..f4b8a0115af 100644
--- a/nodejs/docs/api/class-fullproject.mdx
+++ b/nodejs/docs/api/class-fullproject.mdx
@@ -5,6 +5,7 @@ title: "FullProject"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Runtime representation of the test project configuration. It is accessible in the tests via [testInfo.project](/api/class-testinfo.mdx#test-info-project) and [workerInfo.project](/api/class-workerinfo.mdx#worker-info-project) and is passed to the test reporters. To see the format of the project in the Playwright configuration file please see [TestProject] instead.
diff --git a/nodejs/docs/api/class-genericassertions.mdx b/nodejs/docs/api/class-genericassertions.mdx
index 52e3c4d3761..9c54b167410 100644
--- a/nodejs/docs/api/class-genericassertions.mdx
+++ b/nodejs/docs/api/class-genericassertions.mdx
@@ -5,6 +5,7 @@ title: "GenericAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [GenericAssertions] class provides assertion methods that can be used to make assertions about any values in the tests. A new instance of [GenericAssertions] is created by calling [expect()](/api/class-playwrightassertions.mdx#playwright-assertions-expect-generic):
diff --git a/nodejs/docs/api/class-jshandle.mdx b/nodejs/docs/api/class-jshandle.mdx
index 6139cef830c..787157e3f08 100644
--- a/nodejs/docs/api/class-jshandle.mdx
+++ b/nodejs/docs/api/class-jshandle.mdx
@@ -5,6 +5,7 @@ title: "JSHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
JSHandle represents an in-page JavaScript object. JSHandles can be created with the [page.evaluateHandle()](/api/class-page.mdx#page-evaluate-handle) method.
diff --git a/nodejs/docs/api/class-keyboard.mdx b/nodejs/docs/api/class-keyboard.mdx
index 850dfba6383..ee604a40370 100644
--- a/nodejs/docs/api/class-keyboard.mdx
+++ b/nodejs/docs/api/class-keyboard.mdx
@@ -5,6 +5,7 @@ title: "Keyboard"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Keyboard provides an api for managing a virtual keyboard. The high level api is [keyboard.type()](/api/class-keyboard.mdx#keyboard-type), which takes raw characters and generates proper `keydown`, `keypress`/`input`, and `keyup` events on your page.
diff --git a/nodejs/docs/api/class-location.mdx b/nodejs/docs/api/class-location.mdx
index c44e9ecbc0f..4f6f8fc9d02 100644
--- a/nodejs/docs/api/class-location.mdx
+++ b/nodejs/docs/api/class-location.mdx
@@ -5,6 +5,7 @@ title: "Location"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Represents a location in the source code where [TestCase] or [Suite] is defined.
diff --git a/nodejs/docs/api/class-locator.mdx b/nodejs/docs/api/class-locator.mdx
index 19208a39d5b..152987c69e3 100644
--- a/nodejs/docs/api/class-locator.mdx
+++ b/nodejs/docs/api/class-locator.mdx
@@ -5,6 +5,7 @@ title: "Locator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Locators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent a way to find element(s) on the page at any moment. A locator can be created with the [page.locator()](/api/class-page.mdx#page-locator) method.
diff --git a/nodejs/docs/api/class-locatorassertions.mdx b/nodejs/docs/api/class-locatorassertions.mdx
index e23f2f82614..a4b2a0b2fc9 100644
--- a/nodejs/docs/api/class-locatorassertions.mdx
+++ b/nodejs/docs/api/class-locatorassertions.mdx
@@ -5,6 +5,7 @@ title: "LocatorAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [LocatorAssertions] class provides assertion methods that can be used to make assertions about the [Locator] state in the tests.
diff --git a/nodejs/docs/api/class-logger.mdx b/nodejs/docs/api/class-logger.mdx
index c549adb1ce6..d2d2284d759 100644
--- a/nodejs/docs/api/class-logger.mdx
+++ b/nodejs/docs/api/class-logger.mdx
@@ -5,6 +5,7 @@ title: "Logger"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
:::warning[Deprecated]
diff --git a/nodejs/docs/api/class-mouse.mdx b/nodejs/docs/api/class-mouse.mdx
index 46415239c00..fe4183a6f11 100644
--- a/nodejs/docs/api/class-mouse.mdx
+++ b/nodejs/docs/api/class-mouse.mdx
@@ -5,6 +5,7 @@ title: "Mouse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.
diff --git a/nodejs/docs/api/class-page.mdx b/nodejs/docs/api/class-page.mdx
index 27f1d735a29..3515ccdb948 100644
--- a/nodejs/docs/api/class-page.mdx
+++ b/nodejs/docs/api/class-page.mdx
@@ -5,6 +5,7 @@ title: "Page"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Page provides methods to interact with a single tab in a [Browser], or an [extension background page](https://developer.chrome.com/extensions/background_pages) in Chromium. One [Browser] instance might have multiple [Page] instances.
diff --git a/nodejs/docs/api/class-pageassertions.mdx b/nodejs/docs/api/class-pageassertions.mdx
index 5c71ee88b6d..8021bc38bbd 100644
--- a/nodejs/docs/api/class-pageassertions.mdx
+++ b/nodejs/docs/api/class-pageassertions.mdx
@@ -5,6 +5,7 @@ title: "PageAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [PageAssertions] class provides assertion methods that can be used to make assertions about the [Page] state in the tests.
diff --git a/nodejs/docs/api/class-playwright.mdx b/nodejs/docs/api/class-playwright.mdx
index 50abdcfeb58..7cdd1af90b8 100644
--- a/nodejs/docs/api/class-playwright.mdx
+++ b/nodejs/docs/api/class-playwright.mdx
@@ -5,6 +5,7 @@ title: "Playwright Library"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright module provides a method to launch a browser instance. The following is a typical example of using Playwright to drive automation:
diff --git a/nodejs/docs/api/class-playwrightassertions.mdx b/nodejs/docs/api/class-playwrightassertions.mdx
index 975832568a5..1de27d743f3 100644
--- a/nodejs/docs/api/class-playwrightassertions.mdx
+++ b/nodejs/docs/api/class-playwrightassertions.mdx
@@ -5,6 +5,7 @@ title: "PlaywrightAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright gives you Web-First Assertions with convenience methods for creating assertions that will wait and retry until the expected condition is met.
diff --git a/nodejs/docs/api/class-reporter.mdx b/nodejs/docs/api/class-reporter.mdx
index 20dea760129..a2010f95dd9 100644
--- a/nodejs/docs/api/class-reporter.mdx
+++ b/nodejs/docs/api/class-reporter.mdx
@@ -5,6 +5,7 @@ title: "Reporter"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Test runner notifies the reporter about various events during test execution. All methods of the reporter are optional.
diff --git a/nodejs/docs/api/class-request.mdx b/nodejs/docs/api/class-request.mdx
index 097954e0605..df138a0afdf 100644
--- a/nodejs/docs/api/class-request.mdx
+++ b/nodejs/docs/api/class-request.mdx
@@ -5,6 +5,7 @@ title: "Request"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever the page sends a request for a network resource the following sequence of events are emitted by [Page]:
diff --git a/nodejs/docs/api/class-response.mdx b/nodejs/docs/api/class-response.mdx
index 9708a479779..73d6ef15581 100644
--- a/nodejs/docs/api/class-response.mdx
+++ b/nodejs/docs/api/class-response.mdx
@@ -5,6 +5,7 @@ title: "Response"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Response] class represents responses which are received by page.
diff --git a/nodejs/docs/api/class-route.mdx b/nodejs/docs/api/class-route.mdx
index 268a3beb783..3ea6f06e939 100644
--- a/nodejs/docs/api/class-route.mdx
+++ b/nodejs/docs/api/class-route.mdx
@@ -5,6 +5,7 @@ title: "Route"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a network route is set up with [page.route()](/api/class-page.mdx#page-route) or [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route), the `Route` object allows to handle the route.
diff --git a/nodejs/docs/api/class-selectors.mdx b/nodejs/docs/api/class-selectors.mdx
index 5408cb3db3b..cf296111e6f 100644
--- a/nodejs/docs/api/class-selectors.mdx
+++ b/nodejs/docs/api/class-selectors.mdx
@@ -5,6 +5,7 @@ title: "Selectors"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Selectors can be used to install custom selector engines. See [extensibility](../extensibility.mdx) for more information.
diff --git a/nodejs/docs/api/class-snapshotassertions.mdx b/nodejs/docs/api/class-snapshotassertions.mdx
index 25a2815b07a..eb127019ae4 100644
--- a/nodejs/docs/api/class-snapshotassertions.mdx
+++ b/nodejs/docs/api/class-snapshotassertions.mdx
@@ -5,6 +5,7 @@ title: "SnapshotAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright provides methods for comparing page and element screenshots with expected values stored in files.
diff --git a/nodejs/docs/api/class-suite.mdx b/nodejs/docs/api/class-suite.mdx
index 5e78d23b6ae..4d9f0233696 100644
--- a/nodejs/docs/api/class-suite.mdx
+++ b/nodejs/docs/api/class-suite.mdx
@@ -5,6 +5,7 @@ title: "Suite"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
`Suite` is a group of tests. All tests in Playwright Test form the following hierarchy:
diff --git a/nodejs/docs/api/class-test.mdx b/nodejs/docs/api/class-test.mdx
index 43e3f6f0c80..87e1996a3d6 100644
--- a/nodejs/docs/api/class-test.mdx
+++ b/nodejs/docs/api/class-test.mdx
@@ -5,6 +5,7 @@ title: "Playwright Test"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright Test provides a `test` function to declare tests and `expect` function to write assertions.
diff --git a/nodejs/docs/api/class-testcase.mdx b/nodejs/docs/api/class-testcase.mdx
index 7b0079fe2ba..e1dae8bdfe9 100644
--- a/nodejs/docs/api/class-testcase.mdx
+++ b/nodejs/docs/api/class-testcase.mdx
@@ -5,6 +5,7 @@ title: "TestCase"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
`TestCase` corresponds to every [test()](/api/class-test.mdx#test-call) call in a test file. When a single [test()](/api/class-test.mdx#test-call) is running in multiple projects or repeated multiple times, it will have multiple `TestCase` objects in corresponding projects' suites.
diff --git a/nodejs/docs/api/class-testconfig.mdx b/nodejs/docs/api/class-testconfig.mdx
index 0a2f60f6469..9962fa43c00 100644
--- a/nodejs/docs/api/class-testconfig.mdx
+++ b/nodejs/docs/api/class-testconfig.mdx
@@ -5,6 +5,7 @@ title: "TestConfig"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright Test provides many options to configure how your tests are collected and executed, for example `timeout` or `testDir`. These options are described in the [TestConfig] object in the [configuration file](../test-configuration.mdx). This type describes format of the configuration file, to access resolved configuration parameters at run time use [FullConfig].
diff --git a/nodejs/docs/api/class-testerror.mdx b/nodejs/docs/api/class-testerror.mdx
index cf73cf29366..a5c57df7fe7 100644
--- a/nodejs/docs/api/class-testerror.mdx
+++ b/nodejs/docs/api/class-testerror.mdx
@@ -5,6 +5,7 @@ title: "TestError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Information about an error thrown during test execution.
diff --git a/nodejs/docs/api/class-testinfo.mdx b/nodejs/docs/api/class-testinfo.mdx
index 54fe20911a8..dc07deff8e9 100644
--- a/nodejs/docs/api/class-testinfo.mdx
+++ b/nodejs/docs/api/class-testinfo.mdx
@@ -5,6 +5,7 @@ title: "TestInfo"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
`TestInfo` contains information about currently running test. It is available to test functions, [test.beforeEach()](/api/class-test.mdx#test-before-each), [test.afterEach()](/api/class-test.mdx#test-after-each), [test.beforeAll()](/api/class-test.mdx#test-before-all) and [test.afterAll()](/api/class-test.mdx#test-after-all) hooks, and test-scoped fixtures. `TestInfo` provides utilities to control test execution: attach files, update test timeout, determine which test is currently running and whether it was retried, etc.
diff --git a/nodejs/docs/api/class-testinfoerror.mdx b/nodejs/docs/api/class-testinfoerror.mdx
index ea196dca906..07331bccada 100644
--- a/nodejs/docs/api/class-testinfoerror.mdx
+++ b/nodejs/docs/api/class-testinfoerror.mdx
@@ -5,6 +5,7 @@ title: "TestInfoError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Information about an error thrown during test execution.
diff --git a/nodejs/docs/api/class-testoptions.mdx b/nodejs/docs/api/class-testoptions.mdx
index b5065a8c32d..71f6f4e799f 100644
--- a/nodejs/docs/api/class-testoptions.mdx
+++ b/nodejs/docs/api/class-testoptions.mdx
@@ -5,6 +5,7 @@ title: "TestOptions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright Test provides many options to configure test environment, [Browser], [BrowserContext] and more.
diff --git a/nodejs/docs/api/class-testproject.mdx b/nodejs/docs/api/class-testproject.mdx
index d2775b2a2b8..00ecca5a422 100644
--- a/nodejs/docs/api/class-testproject.mdx
+++ b/nodejs/docs/api/class-testproject.mdx
@@ -5,6 +5,7 @@ title: "TestProject"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright Test supports running multiple test projects at the same time. This is useful for running tests in multiple configurations. For example, consider running tests against multiple browsers. This type describes format of a project in the configuration file, to access resolved configuration parameters at run time use [FullProject].
diff --git a/nodejs/docs/api/class-testresult.mdx b/nodejs/docs/api/class-testresult.mdx
index 9361fbeba0d..4a25307321c 100644
--- a/nodejs/docs/api/class-testresult.mdx
+++ b/nodejs/docs/api/class-testresult.mdx
@@ -5,6 +5,7 @@ title: "TestResult"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
A result of a single [TestCase] run.
diff --git a/nodejs/docs/api/class-teststep.mdx b/nodejs/docs/api/class-teststep.mdx
index 0175c490198..44eace4b806 100644
--- a/nodejs/docs/api/class-teststep.mdx
+++ b/nodejs/docs/api/class-teststep.mdx
@@ -5,6 +5,7 @@ title: "TestStep"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Represents a step in the [TestRun].
diff --git a/nodejs/docs/api/class-teststepinfo.mdx b/nodejs/docs/api/class-teststepinfo.mdx
index b23a4a31eef..59c8cf7cd37 100644
--- a/nodejs/docs/api/class-teststepinfo.mdx
+++ b/nodejs/docs/api/class-teststepinfo.mdx
@@ -5,6 +5,7 @@ title: "TestStepInfo"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
`TestStepInfo` contains information about currently running test step. It is passed as an argument to the step function. `TestStepInfo` provides utilities to control test step execution.
diff --git a/nodejs/docs/api/class-timeouterror.mdx b/nodejs/docs/api/class-timeouterror.mdx
index 04896071a00..9f4968d8a50 100644
--- a/nodejs/docs/api/class-timeouterror.mdx
+++ b/nodejs/docs/api/class-timeouterror.mdx
@@ -5,6 +5,7 @@ title: "TimeoutError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [Error]
diff --git a/nodejs/docs/api/class-touchscreen.mdx b/nodejs/docs/api/class-touchscreen.mdx
index 8edddf5a38b..77bd35fae2d 100644
--- a/nodejs/docs/api/class-touchscreen.mdx
+++ b/nodejs/docs/api/class-touchscreen.mdx
@@ -5,6 +5,7 @@ title: "Touchscreen"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Touchscreen class operates in main-frame CSS pixels relative to the top-left corner of the viewport. Methods on the touchscreen can only be used in browser contexts that have been initialized with `hasTouch` set to true.
diff --git a/nodejs/docs/api/class-tracing.mdx b/nodejs/docs/api/class-tracing.mdx
index 45ace077818..7a44b2d5b9b 100644
--- a/nodejs/docs/api/class-tracing.mdx
+++ b/nodejs/docs/api/class-tracing.mdx
@@ -5,6 +5,7 @@ title: "Tracing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
API for collecting and saving Playwright traces. Playwright traces can be opened in [Trace Viewer](../trace-viewer.mdx) after Playwright script runs.
diff --git a/nodejs/docs/api/class-video.mdx b/nodejs/docs/api/class-video.mdx
index ca8cfcd9a02..f1edfd33fd6 100644
--- a/nodejs/docs/api/class-video.mdx
+++ b/nodejs/docs/api/class-video.mdx
@@ -5,6 +5,7 @@ title: "Video"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
When browser context is created with the `recordVideo` option, each page has a video object associated with it.
diff --git a/nodejs/docs/api/class-weberror.mdx b/nodejs/docs/api/class-weberror.mdx
index 36ac8ab3872..0c21d029b91 100644
--- a/nodejs/docs/api/class-weberror.mdx
+++ b/nodejs/docs/api/class-weberror.mdx
@@ -5,6 +5,7 @@ title: "WebError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[WebError] class represents an unhandled exception thrown in the page. It is dispatched via the [browserContext.on('weberror')](/api/class-browsercontext.mdx#browser-context-event-web-error) event.
diff --git a/nodejs/docs/api/class-websocket.mdx b/nodejs/docs/api/class-websocket.mdx
index a5d457bbdee..5da1802bdf6 100644
--- a/nodejs/docs/api/class-websocket.mdx
+++ b/nodejs/docs/api/class-websocket.mdx
@@ -5,6 +5,7 @@ title: "WebSocket"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [WebSocket] class represents WebSocket connections within a page. It provides the ability to inspect and manipulate the data being transmitted and received.
diff --git a/nodejs/docs/api/class-websocketroute.mdx b/nodejs/docs/api/class-websocketroute.mdx
index 12be0f5e2da..69bba2f7e19 100644
--- a/nodejs/docs/api/class-websocketroute.mdx
+++ b/nodejs/docs/api/class-websocketroute.mdx
@@ -5,6 +5,7 @@ title: "WebSocketRoute"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a [`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) route is set up with [page.routeWebSocket()](/api/class-page.mdx#page-route-web-socket) or [browserContext.routeWebSocket()](/api/class-browsercontext.mdx#browser-context-route-web-socket), the `WebSocketRoute` object allows to handle the WebSocket, like an actual server would do.
diff --git a/nodejs/docs/api/class-worker.mdx b/nodejs/docs/api/class-worker.mdx
index d540273eec9..94f54126179 100644
--- a/nodejs/docs/api/class-worker.mdx
+++ b/nodejs/docs/api/class-worker.mdx
@@ -5,6 +5,7 @@ title: "Worker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Worker class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). `worker` event is emitted on the page object to signal a worker creation. `close` event is emitted on the worker object when the worker is gone.
diff --git a/nodejs/docs/api/class-workerinfo.mdx b/nodejs/docs/api/class-workerinfo.mdx
index c462f54b206..1217a30fb50 100644
--- a/nodejs/docs/api/class-workerinfo.mdx
+++ b/nodejs/docs/api/class-workerinfo.mdx
@@ -5,6 +5,7 @@ title: "WorkerInfo"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
`WorkerInfo` contains information about the worker that is running tests and is available to worker-scoped fixtures. `WorkerInfo` is a subset of [TestInfo] that is available in many other places.
diff --git a/nodejs/docs/aria-snapshots.mdx b/nodejs/docs/aria-snapshots.mdx
index 928ed1d5483..3b4f5bdbb80 100644
--- a/nodejs/docs/aria-snapshots.mdx
+++ b/nodejs/docs/aria-snapshots.mdx
@@ -5,6 +5,7 @@ title: "Snapshot testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/auth.mdx b/nodejs/docs/auth.mdx
index b5810db4e34..5f6c767fe5c 100644
--- a/nodejs/docs/auth.mdx
+++ b/nodejs/docs/auth.mdx
@@ -5,6 +5,7 @@ title: "Authentication"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/best-practices.mdx b/nodejs/docs/best-practices.mdx
index b014115c576..7df9fb05c7f 100644
--- a/nodejs/docs/best-practices.mdx
+++ b/nodejs/docs/best-practices.mdx
@@ -5,6 +5,7 @@ title: "Best Practices"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/browser-contexts.mdx b/nodejs/docs/browser-contexts.mdx
index d9e7f0c5fbd..c9657d019e9 100644
--- a/nodejs/docs/browser-contexts.mdx
+++ b/nodejs/docs/browser-contexts.mdx
@@ -5,6 +5,7 @@ title: "Isolation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/browsers.mdx b/nodejs/docs/browsers.mdx
index 0f00b7260b8..16ec7a5ee62 100644
--- a/nodejs/docs/browsers.mdx
+++ b/nodejs/docs/browsers.mdx
@@ -5,6 +5,7 @@ title: "Browsers"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
@@ -149,7 +150,7 @@ Running 1 test using 1 worker
With the VS Code extension you can run your tests on different browsers by checking the checkbox next to the browser name in the Playwright sidebar. These names are defined in your Playwright config file under the projects section. The default config when installing Playwright gives you 3 projects, Chromium, Firefox and WebKit. The first project is selected by default.
-
+
To run tests on multiple projects(browsers), select each project by checking the checkboxes next to the project name.
diff --git a/nodejs/docs/canary-releases.mdx b/nodejs/docs/canary-releases.mdx
index 9340c37001d..4bc9c475344 100644
--- a/nodejs/docs/canary-releases.mdx
+++ b/nodejs/docs/canary-releases.mdx
@@ -5,6 +5,7 @@ title: "Canary releases"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/chrome-extensions.mdx b/nodejs/docs/chrome-extensions.mdx
index a0b1c340890..38f87bb2f72 100644
--- a/nodejs/docs/chrome-extensions.mdx
+++ b/nodejs/docs/chrome-extensions.mdx
@@ -5,6 +5,7 @@ title: "Chrome extensions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/ci-intro.mdx b/nodejs/docs/ci-intro.mdx
index 449ecb91099..abbeafdf1ba 100644
--- a/nodejs/docs/ci-intro.mdx
+++ b/nodejs/docs/ci-intro.mdx
@@ -5,6 +5,7 @@ title: "Setting up CI"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/ci.mdx b/nodejs/docs/ci.mdx
index 1c422e77923..2dead782b72 100644
--- a/nodejs/docs/ci.mdx
+++ b/nodejs/docs/ci.mdx
@@ -5,6 +5,7 @@ title: "Continuous Integration"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/clock.mdx b/nodejs/docs/clock.mdx
index beb1a663ae9..38168f57943 100644
--- a/nodejs/docs/clock.mdx
+++ b/nodejs/docs/clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/codegen-intro.mdx b/nodejs/docs/codegen-intro.mdx
index 0020535bcae..428ab453539 100644
--- a/nodejs/docs/codegen-intro.mdx
+++ b/nodejs/docs/codegen-intro.mdx
@@ -5,6 +5,7 @@ title: "Generating tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/codegen.mdx b/nodejs/docs/codegen.mdx
index f38a1d9f376..6a556a64feb 100644
--- a/nodejs/docs/codegen.mdx
+++ b/nodejs/docs/codegen.mdx
@@ -5,6 +5,7 @@ title: "Test generator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/debug.mdx b/nodejs/docs/debug.mdx
index 1ea5f659d0c..aaed5a8a36d 100644
--- a/nodejs/docs/debug.mdx
+++ b/nodejs/docs/debug.mdx
@@ -5,6 +5,7 @@ title: "Debugging Tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## VS Code debugger
diff --git a/nodejs/docs/dialogs.mdx b/nodejs/docs/dialogs.mdx
index a8584745ad5..941c27338d5 100644
--- a/nodejs/docs/dialogs.mdx
+++ b/nodejs/docs/dialogs.mdx
@@ -5,6 +5,7 @@ title: "Dialogs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/docker.mdx b/nodejs/docs/docker.mdx
index ea8689c7329..a55557908f8 100644
--- a/nodejs/docs/docker.mdx
+++ b/nodejs/docs/docker.mdx
@@ -5,6 +5,7 @@ title: "Docker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/downloads.mdx b/nodejs/docs/downloads.mdx
index 38cdd3e6715..f7cc084704f 100644
--- a/nodejs/docs/downloads.mdx
+++ b/nodejs/docs/downloads.mdx
@@ -5,6 +5,7 @@ title: "Downloads"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/emulation.mdx b/nodejs/docs/emulation.mdx
index 881ac70de5b..dae8dd522ea 100644
--- a/nodejs/docs/emulation.mdx
+++ b/nodejs/docs/emulation.mdx
@@ -5,6 +5,7 @@ title: "Emulation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/evaluating.mdx b/nodejs/docs/evaluating.mdx
index 267da3f6866..e63ae514dc8 100644
--- a/nodejs/docs/evaluating.mdx
+++ b/nodejs/docs/evaluating.mdx
@@ -5,6 +5,7 @@ title: "Evaluating JavaScript"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/events.mdx b/nodejs/docs/events.mdx
index f612750074b..fed61817564 100644
--- a/nodejs/docs/events.mdx
+++ b/nodejs/docs/events.mdx
@@ -5,6 +5,7 @@ title: "Events"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/extensibility.mdx b/nodejs/docs/extensibility.mdx
index a7623f411e9..8337fe51a7b 100644
--- a/nodejs/docs/extensibility.mdx
+++ b/nodejs/docs/extensibility.mdx
@@ -5,6 +5,7 @@ title: "Extensibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Custom selector engines
diff --git a/nodejs/docs/frames.mdx b/nodejs/docs/frames.mdx
index 84e5284a9fc..f8ed832f565 100644
--- a/nodejs/docs/frames.mdx
+++ b/nodejs/docs/frames.mdx
@@ -5,6 +5,7 @@ title: "Frames"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/getting-started-vscode.mdx b/nodejs/docs/getting-started-vscode.mdx
index 2b531623c1e..71e509bea5e 100644
--- a/nodejs/docs/getting-started-vscode.mdx
+++ b/nodejs/docs/getting-started-vscode.mdx
@@ -5,6 +5,7 @@ title: "Getting started - VS Code"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/handles.mdx b/nodejs/docs/handles.mdx
index 5faafa286bb..08abb06c6a7 100644
--- a/nodejs/docs/handles.mdx
+++ b/nodejs/docs/handles.mdx
@@ -5,6 +5,7 @@ title: "Handles"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/input.mdx b/nodejs/docs/input.mdx
index f25c6253472..0f4bf6ee750 100644
--- a/nodejs/docs/input.mdx
+++ b/nodejs/docs/input.mdx
@@ -5,6 +5,7 @@ title: "Actions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/intro.mdx b/nodejs/docs/intro.mdx
index de310012e32..ab3d10e9e93 100644
--- a/nodejs/docs/intro.mdx
+++ b/nodejs/docs/intro.mdx
@@ -5,6 +5,7 @@ title: "Installation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/languages.mdx b/nodejs/docs/languages.mdx
index 0d103aa17f0..1b2e2e9a6cd 100644
--- a/nodejs/docs/languages.mdx
+++ b/nodejs/docs/languages.mdx
@@ -5,6 +5,7 @@ title: "Supported languages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/library.mdx b/nodejs/docs/library.mdx
index 4c3256bb83d..1a3ed3254a9 100644
--- a/nodejs/docs/library.mdx
+++ b/nodejs/docs/library.mdx
@@ -5,6 +5,7 @@ title: "Library"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/locators.mdx b/nodejs/docs/locators.mdx
index 70fe24fe089..f4cbaa6716f 100644
--- a/nodejs/docs/locators.mdx
+++ b/nodejs/docs/locators.mdx
@@ -5,6 +5,7 @@ title: "Locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/mock-browser.mdx b/nodejs/docs/mock-browser.mdx
index 1ada607fd19..e35fefa148e 100644
--- a/nodejs/docs/mock-browser.mdx
+++ b/nodejs/docs/mock-browser.mdx
@@ -5,6 +5,7 @@ title: "Mock browser APIs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/mock.mdx b/nodejs/docs/mock.mdx
index 13548590c02..bb6b534e71c 100644
--- a/nodejs/docs/mock.mdx
+++ b/nodejs/docs/mock.mdx
@@ -5,6 +5,7 @@ title: "Mock APIs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/navigations.mdx b/nodejs/docs/navigations.mdx
index ca32970e2fc..40dadf27e0c 100644
--- a/nodejs/docs/navigations.mdx
+++ b/nodejs/docs/navigations.mdx
@@ -5,6 +5,7 @@ title: "Navigations"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/network.mdx b/nodejs/docs/network.mdx
index 2e380557bc2..9dea85d7e2c 100644
--- a/nodejs/docs/network.mdx
+++ b/nodejs/docs/network.mdx
@@ -5,6 +5,7 @@ title: "Network"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/other-locators.mdx b/nodejs/docs/other-locators.mdx
index 995c542c206..ba45ea8b3df 100644
--- a/nodejs/docs/other-locators.mdx
+++ b/nodejs/docs/other-locators.mdx
@@ -5,6 +5,7 @@ title: "Other locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/pages.mdx b/nodejs/docs/pages.mdx
index 05f2cec005c..11e193b4982 100644
--- a/nodejs/docs/pages.mdx
+++ b/nodejs/docs/pages.mdx
@@ -5,6 +5,7 @@ title: "Pages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Pages
diff --git a/nodejs/docs/pom.mdx b/nodejs/docs/pom.mdx
index cc5b08d5d6d..cace62eb028 100644
--- a/nodejs/docs/pom.mdx
+++ b/nodejs/docs/pom.mdx
@@ -5,6 +5,7 @@ title: "Page object models"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/protractor.mdx b/nodejs/docs/protractor.mdx
index 952d4000252..69e4e8eeb81 100644
--- a/nodejs/docs/protractor.mdx
+++ b/nodejs/docs/protractor.mdx
@@ -5,6 +5,7 @@ title: "Migrating from Protractor"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Migration Principles
- No need for "webdriver-manager" / Selenium.
diff --git a/nodejs/docs/puppeteer.mdx b/nodejs/docs/puppeteer.mdx
index 8cc2fee8418..3049d28c196 100644
--- a/nodejs/docs/puppeteer.mdx
+++ b/nodejs/docs/puppeteer.mdx
@@ -5,6 +5,7 @@ title: "Migrating from Puppeteer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Migration Principles
diff --git a/nodejs/docs/release-notes.mdx b/nodejs/docs/release-notes.mdx
index 63de29ef9e6..b22e522cb98 100644
--- a/nodejs/docs/release-notes.mdx
+++ b/nodejs/docs/release-notes.mdx
@@ -6,6 +6,7 @@ toc_max_heading_level: 2
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/running-tests.mdx b/nodejs/docs/running-tests.mdx
index 7f3345744a0..c261c916381 100644
--- a/nodejs/docs/running-tests.mdx
+++ b/nodejs/docs/running-tests.mdx
@@ -5,6 +5,7 @@ title: "Running and debugging tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/screenshots.mdx b/nodejs/docs/screenshots.mdx
index 716cadefb18..0b19d461946 100644
--- a/nodejs/docs/screenshots.mdx
+++ b/nodejs/docs/screenshots.mdx
@@ -5,6 +5,7 @@ title: "Screenshots"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/selenium-grid.mdx b/nodejs/docs/selenium-grid.mdx
index 39317c3ab21..90fe66f6688 100644
--- a/nodejs/docs/selenium-grid.mdx
+++ b/nodejs/docs/selenium-grid.mdx
@@ -5,6 +5,7 @@ title: "Selenium Grid (experimental)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/service-workers-experimental-network-events.mdx b/nodejs/docs/service-workers-experimental-network-events.mdx
index ab540ed68a3..314980bda16 100644
--- a/nodejs/docs/service-workers-experimental-network-events.mdx
+++ b/nodejs/docs/service-workers-experimental-network-events.mdx
@@ -5,6 +5,7 @@ title: "(Experimental) Service Worker Network Events"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-annotations.mdx b/nodejs/docs/test-annotations.mdx
index 7f5f8ad2e23..0bc81e7a43a 100644
--- a/nodejs/docs/test-annotations.mdx
+++ b/nodejs/docs/test-annotations.mdx
@@ -5,6 +5,7 @@ title: "Annotations"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-assertions.mdx b/nodejs/docs/test-assertions.mdx
index efd4b1b3150..eae79cfef6e 100644
--- a/nodejs/docs/test-assertions.mdx
+++ b/nodejs/docs/test-assertions.mdx
@@ -5,6 +5,7 @@ title: "Assertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-cli.mdx b/nodejs/docs/test-cli.mdx
index 7ec1b69f5a3..65a62b630f3 100644
--- a/nodejs/docs/test-cli.mdx
+++ b/nodejs/docs/test-cli.mdx
@@ -5,6 +5,7 @@ title: "Command line"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright provides a powerful command line interface for running tests, generating code, debugging, and more. The most up to date list of commands and arguments available on the CLI can always be retrieved via `npx playwright --help`.
diff --git a/nodejs/docs/test-components.mdx b/nodejs/docs/test-components.mdx
index da6683274f1..b20992e9fec 100644
--- a/nodejs/docs/test-components.mdx
+++ b/nodejs/docs/test-components.mdx
@@ -5,6 +5,7 @@ title: "Components (experimental)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/test-configuration.mdx b/nodejs/docs/test-configuration.mdx
index 007e50a3346..6d7a5abbcf8 100644
--- a/nodejs/docs/test-configuration.mdx
+++ b/nodejs/docs/test-configuration.mdx
@@ -5,6 +5,7 @@ title: "Test configuration"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-fixtures.mdx b/nodejs/docs/test-fixtures.mdx
index 8072c89e237..84ed142247b 100644
--- a/nodejs/docs/test-fixtures.mdx
+++ b/nodejs/docs/test-fixtures.mdx
@@ -5,6 +5,7 @@ title: "Fixtures"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-global-setup-teardown.mdx b/nodejs/docs/test-global-setup-teardown.mdx
index 693b31933d8..b4314ef9b7e 100644
--- a/nodejs/docs/test-global-setup-teardown.mdx
+++ b/nodejs/docs/test-global-setup-teardown.mdx
@@ -5,6 +5,7 @@ title: "Global setup and teardown"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-parallel.mdx b/nodejs/docs/test-parallel.mdx
index c766c0bb3e3..602f1630e86 100644
--- a/nodejs/docs/test-parallel.mdx
+++ b/nodejs/docs/test-parallel.mdx
@@ -5,6 +5,7 @@ title: "Parallelism"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-parameterize.mdx b/nodejs/docs/test-parameterize.mdx
index 69eca6dcb0e..39f3af53b8c 100644
--- a/nodejs/docs/test-parameterize.mdx
+++ b/nodejs/docs/test-parameterize.mdx
@@ -5,6 +5,7 @@ title: "Parameterize tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-projects.mdx b/nodejs/docs/test-projects.mdx
index 1f1456ab125..0c18a730e13 100644
--- a/nodejs/docs/test-projects.mdx
+++ b/nodejs/docs/test-projects.mdx
@@ -5,6 +5,7 @@ title: "Projects"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-reporters.mdx b/nodejs/docs/test-reporters.mdx
index fbf782ca202..51d5174dfa0 100644
--- a/nodejs/docs/test-reporters.mdx
+++ b/nodejs/docs/test-reporters.mdx
@@ -5,6 +5,7 @@ title: "Reporters"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-retries.mdx b/nodejs/docs/test-retries.mdx
index 72f33d8b90a..c669ed024b3 100644
--- a/nodejs/docs/test-retries.mdx
+++ b/nodejs/docs/test-retries.mdx
@@ -5,6 +5,7 @@ title: "Retries"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-sharding.mdx b/nodejs/docs/test-sharding.mdx
index 80cf9156145..d20f8c0a79a 100644
--- a/nodejs/docs/test-sharding.mdx
+++ b/nodejs/docs/test-sharding.mdx
@@ -5,6 +5,7 @@ title: "Sharding"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-snapshots.mdx b/nodejs/docs/test-snapshots.mdx
index 1fbe962cc2c..e3c1304744e 100644
--- a/nodejs/docs/test-snapshots.mdx
+++ b/nodejs/docs/test-snapshots.mdx
@@ -5,6 +5,7 @@ title: "Visual comparisons"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-timeouts.mdx b/nodejs/docs/test-timeouts.mdx
index 8489d564ed3..8be9ee55a6c 100644
--- a/nodejs/docs/test-timeouts.mdx
+++ b/nodejs/docs/test-timeouts.mdx
@@ -5,6 +5,7 @@ title: "Timeouts"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright Test has multiple configurable timeouts for various tasks.
diff --git a/nodejs/docs/test-typescript.mdx b/nodejs/docs/test-typescript.mdx
index 16aa54788e9..14b3ce1d8bd 100644
--- a/nodejs/docs/test-typescript.mdx
+++ b/nodejs/docs/test-typescript.mdx
@@ -5,6 +5,7 @@ title: "TypeScript"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-ui-mode.mdx b/nodejs/docs/test-ui-mode.mdx
index 1f08808162a..3b9ecf1efc9 100644
--- a/nodejs/docs/test-ui-mode.mdx
+++ b/nodejs/docs/test-ui-mode.mdx
@@ -5,6 +5,7 @@ title: "UI Mode"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/test-use-options.mdx b/nodejs/docs/test-use-options.mdx
index a5b69e9f8d1..4840d67a296 100644
--- a/nodejs/docs/test-use-options.mdx
+++ b/nodejs/docs/test-use-options.mdx
@@ -5,6 +5,7 @@ title: "Test use options"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/test-webserver.mdx b/nodejs/docs/test-webserver.mdx
index db68d7d3c82..d267f90feae 100644
--- a/nodejs/docs/test-webserver.mdx
+++ b/nodejs/docs/test-webserver.mdx
@@ -5,6 +5,7 @@ title: "Web server"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/testing-library.mdx b/nodejs/docs/testing-library.mdx
index ce3104e4065..fc64e811ee8 100644
--- a/nodejs/docs/testing-library.mdx
+++ b/nodejs/docs/testing-library.mdx
@@ -5,6 +5,7 @@ title: "Migrating from Testing Library"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Migration principles
diff --git a/nodejs/docs/touch-events.mdx b/nodejs/docs/touch-events.mdx
index 512594c7863..3f6444539e4 100644
--- a/nodejs/docs/touch-events.mdx
+++ b/nodejs/docs/touch-events.mdx
@@ -5,6 +5,7 @@ title: "Touch events (legacy)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/trace-viewer-intro.mdx b/nodejs/docs/trace-viewer-intro.mdx
index 427b8d9f738..d40c1866eb7 100644
--- a/nodejs/docs/trace-viewer-intro.mdx
+++ b/nodejs/docs/trace-viewer-intro.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/trace-viewer.mdx b/nodejs/docs/trace-viewer.mdx
index ec1c1203ce3..a49c77d8f10 100644
--- a/nodejs/docs/trace-viewer.mdx
+++ b/nodejs/docs/trace-viewer.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/nodejs/docs/videos.mdx b/nodejs/docs/videos.mdx
index 6c9aac0f9eb..97f36629f14 100644
--- a/nodejs/docs/videos.mdx
+++ b/nodejs/docs/videos.mdx
@@ -5,6 +5,7 @@ title: "Videos"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/webview2.mdx b/nodejs/docs/webview2.mdx
index 88f8b4d7f47..08057683c7a 100644
--- a/nodejs/docs/webview2.mdx
+++ b/nodejs/docs/webview2.mdx
@@ -5,6 +5,7 @@ title: "WebView2"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docs/writing-tests.mdx b/nodejs/docs/writing-tests.mdx
index 0fd26a9e68b..13ff0fa89e7 100644
--- a/nodejs/docs/writing-tests.mdx
+++ b/nodejs/docs/writing-tests.mdx
@@ -5,6 +5,7 @@ title: "Writing tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/nodejs/docusaurus.config.ts b/nodejs/docusaurus.config.ts
index 6be3bc0286f..dda2ba3fe0d 100644
--- a/nodejs/docusaurus.config.ts
+++ b/nodejs/docusaurus.config.ts
@@ -34,6 +34,15 @@ let plugins = [
}),
],
require.resolve("@docusaurus/plugin-content-pages"),
+ [
+ require.resolve('@docusaurus/plugin-ideal-image'),
+ {
+ max: 1024,
+ min: 640,
+ steps: 4,
+ disableInDev: false
+ }
+ ],
];
if (isProd) {
diff --git a/package-lock.json b/package-lock.json
index 6e2f0d418d2..c912bce76c8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
"dependencies": {
"@docusaurus/core": "3.8.1",
"@docusaurus/plugin-content-docs": "3.8.1",
+ "@docusaurus/plugin-ideal-image": "3.8.1",
"@docusaurus/preset-classic": "3.8.1",
"@docusaurus/types": "3.8.1",
"clsx": "^2.1.1",
@@ -3428,6 +3429,22 @@
"node": ">=18.0"
}
},
+ "node_modules/@docusaurus/lqip-loader": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.8.1.tgz",
+ "integrity": "sha512-wSc/TDw6TjKle9MnFO4yqbc9120GIt6YIMT5obqThGcDcBXtkwUsSnw0ghEk22VXqAsgAxD/cGCp6O0SegRtYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/logger": "3.8.1",
+ "file-loader": "^6.2.0",
+ "lodash": "^4.17.21",
+ "sharp": "^0.32.3",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
"node_modules/@docusaurus/mdx-loader": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz",
@@ -3683,6 +3700,36 @@
"react-dom": "^18.0.0 || ^19.0.0"
}
},
+ "node_modules/@docusaurus/plugin-ideal-image": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.8.1.tgz",
+ "integrity": "sha512-Y+ts2dAvBFqLjt5VjpEn15Ct4D93RyZXcpdU3gtrrQETg2V2aSRP4jOXexoUzJACIOG5IWjEXCUeaoVT9o7GFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.8.1",
+ "@docusaurus/lqip-loader": "3.8.1",
+ "@docusaurus/responsive-loader": "^1.7.0",
+ "@docusaurus/theme-translations": "3.8.1",
+ "@docusaurus/types": "3.8.1",
+ "@docusaurus/utils-validation": "3.8.1",
+ "sharp": "^0.32.3",
+ "tslib": "^2.6.0",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "jimp": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "jimp": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@docusaurus/plugin-sitemap": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz",
@@ -3760,6 +3807,30 @@
"react-dom": "^18.0.0 || ^19.0.0"
}
},
+ "node_modules/@docusaurus/responsive-loader": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.1.tgz",
+ "integrity": "sha512-jAebZ43f8GVpZSrijLGHVVp7Y0OMIPRaL+HhiIWQ+f/b72lTsKLkSkOVHEzvd2psNJ9lsoiM3gt6akpak6508w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "loader-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "jimp": "*",
+ "sharp": "*"
+ },
+ "peerDependenciesMeta": {
+ "jimp": {
+ "optional": true
+ },
+ "sharp": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@docusaurus/theme-classic": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz",
@@ -6288,7 +6359,6 @@
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
"integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
- "dev": true,
"license": "Apache-2.0"
},
"node_modules/babel-loader": {
@@ -6384,7 +6454,6 @@
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz",
"integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==",
- "dev": true,
"license": "Apache-2.0",
"optional": true
},
@@ -6392,7 +6461,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.2.tgz",
"integrity": "sha512-S5mmkMesiduMqnz51Bfh0Et9EX0aTCJxhsI4bvzFFLs8Z1AV8RDHadfY5CyLwdoLHgXbNBEN1gQcbEtGwuvixw==",
- "dev": true,
"license": "Apache-2.0",
"optional": true,
"dependencies": {
@@ -6416,7 +6484,6 @@
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz",
"integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==",
- "dev": true,
"license": "Apache-2.0",
"optional": true,
"engines": {
@@ -6427,7 +6494,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
"integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
- "dev": true,
"license": "Apache-2.0",
"optional": true,
"dependencies": {
@@ -6438,7 +6504,6 @@
"version": "2.6.5",
"resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz",
"integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==",
- "dev": true,
"license": "Apache-2.0",
"optional": true,
"dependencies": {
@@ -6457,6 +6522,26 @@
}
}
},
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/basic-auth": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
@@ -6505,6 +6590,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
"node_modules/body-parser": {
"version": "1.20.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
@@ -6640,6 +6736,30 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@@ -6934,6 +7054,12 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "license": "ISC"
+ },
"node_modules/chrome-trace-event": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
@@ -7110,6 +7236,19 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -7126,6 +7265,16 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
"node_modules/colord": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
@@ -8184,7 +8333,6 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
"integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
- "devOptional": true,
"license": "Apache-2.0",
"engines": {
"node": ">=8"
@@ -8371,9 +8519,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.194",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.194.tgz",
- "integrity": "sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==",
+ "version": "1.5.193",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.193.tgz",
+ "integrity": "sha512-eePuBZXM9OVCwfYUhd2OzESeNGnWmLyeu0XAEjf7xjijNjHFdeJSzuRUGN4ueT2tEYo5YqjHramKEFxz67p3XA==",
"license": "ISC"
},
"node_modules/emoji-regex": {
@@ -8419,7 +8567,6 @@
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
"dependencies": {
"once": "^1.4.0"
}
@@ -8832,6 +8979,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "license": "(MIT OR WTFPL)",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/express": {
"version": "4.21.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
@@ -8980,7 +9136,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/fast-glob": {
@@ -9334,6 +9489,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "license": "MIT"
+ },
"node_modules/fs-extra": {
"version": "11.2.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
@@ -9470,6 +9631,12 @@
"node": ">= 14"
}
},
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
+ "license": "MIT"
+ },
"node_modules/github-slugger": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
@@ -10310,6 +10477,26 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -13694,6 +13881,12 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "license": "MIT"
+ },
"node_modules/mrmime": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
@@ -13738,6 +13931,12 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/napi-build-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
+ "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
+ "license": "MIT"
+ },
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -13770,6 +13969,24 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/node-abi": {
+ "version": "3.75.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz",
+ "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==",
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+ "license": "MIT"
+ },
"node_modules/node-emoji": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz",
@@ -15956,6 +16173,60 @@
"postcss": "^8.4.31"
}
},
+ "node_modules/prebuild-install": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
+ "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^2.0.0",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/tar-fs": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
+ "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
+ "license": "MIT",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/pretty-error": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
@@ -16108,7 +16379,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "dev": true,
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -17380,6 +17650,29 @@
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
},
+ "node_modules/sharp": {
+ "version": "0.32.6",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.2",
+ "node-addon-api": "^6.1.0",
+ "prebuild-install": "^7.1.1",
+ "semver": "^7.5.4",
+ "simple-get": "^4.0.1",
+ "tar-fs": "^3.0.4",
+ "tunnel-agent": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -17429,6 +17722,66 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "license": "MIT"
+ },
"node_modules/sirv": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
@@ -17674,7 +18027,6 @@
"version": "2.22.0",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz",
"integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"fast-fifo": "^1.3.2",
@@ -17977,7 +18329,6 @@
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.9.tgz",
"integrity": "sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"pump": "^3.0.0",
@@ -17992,7 +18343,6 @@
"version": "3.1.7",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"b4a": "^1.6.4",
@@ -18131,7 +18481,6 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
"integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
- "dev": true,
"license": "Apache-2.0",
"dependencies": {
"b4a": "^1.6.4"
@@ -18223,6 +18572,18 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
},
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/type-fest": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
diff --git a/package.json b/package.json
index 56cd40e9ce1..24d231a4db5 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"dependencies": {
"@docusaurus/core": "3.8.1",
"@docusaurus/plugin-content-docs": "3.8.1",
+ "@docusaurus/plugin-ideal-image": "3.8.1",
"@docusaurus/preset-classic": "3.8.1",
"@docusaurus/types": "3.8.1",
"clsx": "^2.1.1",
@@ -72,4 +73,4 @@
"rimraf": "^6.0.1",
"typescript": "^5.7.3"
}
-}
+}
\ No newline at end of file
diff --git a/python/docs/actionability.mdx b/python/docs/actionability.mdx
index fb99122e471..25e11bb11c3 100644
--- a/python/docs/actionability.mdx
+++ b/python/docs/actionability.mdx
@@ -5,6 +5,7 @@ title: "Auto-waiting"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/api-testing.mdx b/python/docs/api-testing.mdx
index 7e85be1d45b..d8d01a10e77 100644
--- a/python/docs/api-testing.mdx
+++ b/python/docs/api-testing.mdx
@@ -5,6 +5,7 @@ title: "API testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/api/class-accessibility.mdx b/python/docs/api/class-accessibility.mdx
index 99816e181ec..65d0b8bd920 100644
--- a/python/docs/api/class-accessibility.mdx
+++ b/python/docs/api/class-accessibility.mdx
@@ -5,6 +5,7 @@ title: "Accessibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
:::warning[Deprecated]
diff --git a/python/docs/api/class-apirequest.mdx b/python/docs/api/class-apirequest.mdx
index bc8ff32e1a1..1aca54a8756 100644
--- a/python/docs/api/class-apirequest.mdx
+++ b/python/docs/api/class-apirequest.mdx
@@ -5,6 +5,7 @@ title: "APIRequest"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Exposes API that can be used for the Web API testing. This class is used for creating [APIRequestContext] instance which in turn can be used for sending web requests. An instance of this class can be obtained via [playwright.request](/api/class-playwright.mdx#playwright-request). For more information see [APIRequestContext].
diff --git a/python/docs/api/class-apirequestcontext.mdx b/python/docs/api/class-apirequestcontext.mdx
index ae545e9920b..7ddd1d11124 100644
--- a/python/docs/api/class-apirequestcontext.mdx
+++ b/python/docs/api/class-apirequestcontext.mdx
@@ -5,6 +5,7 @@ title: "APIRequestContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
This API is used for the Web API testing. You can use it to trigger API endpoints, configure micro-services, prepare environment or the service to your e2e test.
diff --git a/python/docs/api/class-apiresponse.mdx b/python/docs/api/class-apiresponse.mdx
index 55e1dc1f8e3..ed8442f0682 100644
--- a/python/docs/api/class-apiresponse.mdx
+++ b/python/docs/api/class-apiresponse.mdx
@@ -5,6 +5,7 @@ title: "APIResponse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[APIResponse] class represents responses returned by [api_request_context.get()](/api/class-apirequestcontext.mdx#api-request-context-get) and similar methods.
diff --git a/python/docs/api/class-apiresponseassertions.mdx b/python/docs/api/class-apiresponseassertions.mdx
index ee3282a9682..03d8af7a0aa 100644
--- a/python/docs/api/class-apiresponseassertions.mdx
+++ b/python/docs/api/class-apiresponseassertions.mdx
@@ -5,6 +5,7 @@ title: "APIResponseAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [APIResponseAssertions] class provides assertion methods that can be used to make assertions about the [APIResponse] in the tests.
diff --git a/python/docs/api/class-browser.mdx b/python/docs/api/class-browser.mdx
index 7eaa1495251..ec14e0ad221 100644
--- a/python/docs/api/class-browser.mdx
+++ b/python/docs/api/class-browser.mdx
@@ -5,6 +5,7 @@ title: "Browser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
A Browser is created via [browser_type.launch()](/api/class-browsertype.mdx#browser-type-launch). An example of using a [Browser] to create a [Page]:
diff --git a/python/docs/api/class-browsercontext.mdx b/python/docs/api/class-browsercontext.mdx
index 315b94e9313..12325e44e6f 100644
--- a/python/docs/api/class-browsercontext.mdx
+++ b/python/docs/api/class-browsercontext.mdx
@@ -5,6 +5,7 @@ title: "BrowserContext"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserContexts provide a way to operate multiple independent browser sessions.
diff --git a/python/docs/api/class-browsertype.mdx b/python/docs/api/class-browsertype.mdx
index 34ce34080fd..08a909f3d43 100644
--- a/python/docs/api/class-browsertype.mdx
+++ b/python/docs/api/class-browsertype.mdx
@@ -5,6 +5,7 @@ title: "BrowserType"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
BrowserType provides methods to launch a specific browser instance or connect to an existing one. The following is a typical example of using Playwright to drive automation:
diff --git a/python/docs/api/class-cdpsession.mdx b/python/docs/api/class-cdpsession.mdx
index c9a4ff6dae0..03ef6d2532b 100644
--- a/python/docs/api/class-cdpsession.mdx
+++ b/python/docs/api/class-cdpsession.mdx
@@ -5,6 +5,7 @@ title: "CDPSession"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The `CDPSession` instances are used to talk raw Chrome Devtools Protocol:
diff --git a/python/docs/api/class-clock.mdx b/python/docs/api/class-clock.mdx
index bce83b3aab9..5eddfbf456c 100644
--- a/python/docs/api/class-clock.mdx
+++ b/python/docs/api/class-clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Accurately simulating time-dependent behavior is essential for verifying the correctness of applications. Learn more about [clock emulation](../clock.mdx).
diff --git a/python/docs/api/class-consolemessage.mdx b/python/docs/api/class-consolemessage.mdx
index c59988a3847..7582d15d1f4 100644
--- a/python/docs/api/class-consolemessage.mdx
+++ b/python/docs/api/class-consolemessage.mdx
@@ -5,6 +5,7 @@ title: "ConsoleMessage"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[ConsoleMessage] objects are dispatched by page via the [page.on("console")](/api/class-page.mdx#page-event-console) event. For each console message logged in the page there will be corresponding event in the Playwright context.
diff --git a/python/docs/api/class-dialog.mdx b/python/docs/api/class-dialog.mdx
index 42f2736e568..e90458e3167 100644
--- a/python/docs/api/class-dialog.mdx
+++ b/python/docs/api/class-dialog.mdx
@@ -5,6 +5,7 @@ title: "Dialog"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Dialog] objects are dispatched by page via the [page.on("dialog")](/api/class-page.mdx#page-event-dialog) event.
diff --git a/python/docs/api/class-download.mdx b/python/docs/api/class-download.mdx
index 8c5089e052c..5d954176d1a 100644
--- a/python/docs/api/class-download.mdx
+++ b/python/docs/api/class-download.mdx
@@ -5,6 +5,7 @@ title: "Download"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Download] objects are dispatched by page via the [page.on("download")](/api/class-page.mdx#page-event-download) event.
diff --git a/python/docs/api/class-elementhandle.mdx b/python/docs/api/class-elementhandle.mdx
index 140ffd377a2..b268ba1da91 100644
--- a/python/docs/api/class-elementhandle.mdx
+++ b/python/docs/api/class-elementhandle.mdx
@@ -5,6 +5,7 @@ title: "ElementHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [JSHandle]
diff --git a/python/docs/api/class-error.mdx b/python/docs/api/class-error.mdx
index 7afaa2c2102..fe5887318ab 100644
--- a/python/docs/api/class-error.mdx
+++ b/python/docs/api/class-error.mdx
@@ -5,6 +5,7 @@ title: "Error"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [Exception]
diff --git a/python/docs/api/class-filechooser.mdx b/python/docs/api/class-filechooser.mdx
index 686484d1323..0f802243a24 100644
--- a/python/docs/api/class-filechooser.mdx
+++ b/python/docs/api/class-filechooser.mdx
@@ -5,6 +5,7 @@ title: "FileChooser"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[FileChooser] objects are dispatched by the page in the [page.on("filechooser")](/api/class-page.mdx#page-event-file-chooser) event.
diff --git a/python/docs/api/class-frame.mdx b/python/docs/api/class-frame.mdx
index efffa94f093..b2553eddbff 100644
--- a/python/docs/api/class-frame.mdx
+++ b/python/docs/api/class-frame.mdx
@@ -5,6 +5,7 @@ title: "Frame"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
At every point of time, page exposes its current frame tree via the [page.main_frame](/api/class-page.mdx#page-main-frame) and [frame.child_frames](/api/class-frame.mdx#frame-child-frames) methods.
diff --git a/python/docs/api/class-framelocator.mdx b/python/docs/api/class-framelocator.mdx
index 6c8a9e9b184..0f8466fe30d 100644
--- a/python/docs/api/class-framelocator.mdx
+++ b/python/docs/api/class-framelocator.mdx
@@ -5,6 +5,7 @@ title: "FrameLocator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
FrameLocator represents a view to the `iframe` on the page. It captures the logic sufficient to retrieve the `iframe` and locate elements in that iframe. FrameLocator can be created with either [locator.content_frame](/api/class-locator.mdx#locator-content-frame), [page.frame_locator()](/api/class-page.mdx#page-frame-locator) or [locator.frame_locator()](/api/class-locator.mdx#locator-frame-locator) method.
diff --git a/python/docs/api/class-jshandle.mdx b/python/docs/api/class-jshandle.mdx
index fb7c05dd4b0..16d2048fe4b 100644
--- a/python/docs/api/class-jshandle.mdx
+++ b/python/docs/api/class-jshandle.mdx
@@ -5,6 +5,7 @@ title: "JSHandle"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
JSHandle represents an in-page JavaScript object. JSHandles can be created with the [page.evaluate_handle()](/api/class-page.mdx#page-evaluate-handle) method.
diff --git a/python/docs/api/class-keyboard.mdx b/python/docs/api/class-keyboard.mdx
index 081287e132d..75a3f8d9166 100644
--- a/python/docs/api/class-keyboard.mdx
+++ b/python/docs/api/class-keyboard.mdx
@@ -5,6 +5,7 @@ title: "Keyboard"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Keyboard provides an api for managing a virtual keyboard. The high level api is [keyboard.type()](/api/class-keyboard.mdx#keyboard-type), which takes raw characters and generates proper `keydown`, `keypress`/`input`, and `keyup` events on your page.
diff --git a/python/docs/api/class-locator.mdx b/python/docs/api/class-locator.mdx
index 65f0f774aea..bb2976d3c48 100644
--- a/python/docs/api/class-locator.mdx
+++ b/python/docs/api/class-locator.mdx
@@ -5,6 +5,7 @@ title: "Locator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Locators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent a way to find element(s) on the page at any moment. A locator can be created with the [page.locator()](/api/class-page.mdx#page-locator) method.
diff --git a/python/docs/api/class-locatorassertions.mdx b/python/docs/api/class-locatorassertions.mdx
index 038085b15ca..f918e2147c0 100644
--- a/python/docs/api/class-locatorassertions.mdx
+++ b/python/docs/api/class-locatorassertions.mdx
@@ -5,6 +5,7 @@ title: "LocatorAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [LocatorAssertions] class provides assertion methods that can be used to make assertions about the [Locator] state in the tests.
diff --git a/python/docs/api/class-mouse.mdx b/python/docs/api/class-mouse.mdx
index 48a001261bd..56fe66fd9ff 100644
--- a/python/docs/api/class-mouse.mdx
+++ b/python/docs/api/class-mouse.mdx
@@ -5,6 +5,7 @@ title: "Mouse"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.
diff --git a/python/docs/api/class-page.mdx b/python/docs/api/class-page.mdx
index 1b44d8dcb6e..c266d79388f 100644
--- a/python/docs/api/class-page.mdx
+++ b/python/docs/api/class-page.mdx
@@ -5,6 +5,7 @@ title: "Page"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Page provides methods to interact with a single tab in a [Browser], or an [extension background page](https://developer.chrome.com/extensions/background_pages) in Chromium. One [Browser] instance might have multiple [Page] instances.
diff --git a/python/docs/api/class-pageassertions.mdx b/python/docs/api/class-pageassertions.mdx
index c4ccdb63773..94f14471ed4 100644
--- a/python/docs/api/class-pageassertions.mdx
+++ b/python/docs/api/class-pageassertions.mdx
@@ -5,6 +5,7 @@ title: "PageAssertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [PageAssertions] class provides assertion methods that can be used to make assertions about the [Page] state in the tests.
diff --git a/python/docs/api/class-playwright.mdx b/python/docs/api/class-playwright.mdx
index 34e089eedde..de7f24ef3f4 100644
--- a/python/docs/api/class-playwright.mdx
+++ b/python/docs/api/class-playwright.mdx
@@ -5,6 +5,7 @@ title: "Playwright"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Playwright module provides a method to launch a browser instance. The following is a typical example of using Playwright to drive automation:
diff --git a/python/docs/api/class-request.mdx b/python/docs/api/class-request.mdx
index 98610ce4a86..1c85734a622 100644
--- a/python/docs/api/class-request.mdx
+++ b/python/docs/api/class-request.mdx
@@ -5,6 +5,7 @@ title: "Request"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever the page sends a request for a network resource the following sequence of events are emitted by [Page]:
diff --git a/python/docs/api/class-response.mdx b/python/docs/api/class-response.mdx
index 415c87769a6..2aaa41f43e2 100644
--- a/python/docs/api/class-response.mdx
+++ b/python/docs/api/class-response.mdx
@@ -5,6 +5,7 @@ title: "Response"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[Response] class represents responses which are received by page.
diff --git a/python/docs/api/class-route.mdx b/python/docs/api/class-route.mdx
index eb4f23c7b3d..9de5bcee50b 100644
--- a/python/docs/api/class-route.mdx
+++ b/python/docs/api/class-route.mdx
@@ -5,6 +5,7 @@ title: "Route"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a network route is set up with [page.route()](/api/class-page.mdx#page-route) or [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route), the `Route` object allows to handle the route.
diff --git a/python/docs/api/class-selectors.mdx b/python/docs/api/class-selectors.mdx
index fd640114f3c..18af6b334de 100644
--- a/python/docs/api/class-selectors.mdx
+++ b/python/docs/api/class-selectors.mdx
@@ -5,6 +5,7 @@ title: "Selectors"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Selectors can be used to install custom selector engines. See [extensibility](../extensibility.mdx) for more information.
diff --git a/python/docs/api/class-timeouterror.mdx b/python/docs/api/class-timeouterror.mdx
index 813d2b1fb7f..857c1fdf088 100644
--- a/python/docs/api/class-timeouterror.mdx
+++ b/python/docs/api/class-timeouterror.mdx
@@ -5,6 +5,7 @@ title: "TimeoutError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
* extends: [Error]
diff --git a/python/docs/api/class-touchscreen.mdx b/python/docs/api/class-touchscreen.mdx
index 91aa8b53b0e..1c413ca227d 100644
--- a/python/docs/api/class-touchscreen.mdx
+++ b/python/docs/api/class-touchscreen.mdx
@@ -5,6 +5,7 @@ title: "Touchscreen"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Touchscreen class operates in main-frame CSS pixels relative to the top-left corner of the viewport. Methods on the touchscreen can only be used in browser contexts that have been initialized with `hasTouch` set to true.
diff --git a/python/docs/api/class-tracing.mdx b/python/docs/api/class-tracing.mdx
index e81235ccc09..a07e89c645a 100644
--- a/python/docs/api/class-tracing.mdx
+++ b/python/docs/api/class-tracing.mdx
@@ -5,6 +5,7 @@ title: "Tracing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
API for collecting and saving Playwright traces. Playwright traces can be opened in [Trace Viewer](../trace-viewer.mdx) after Playwright script runs.
diff --git a/python/docs/api/class-video.mdx b/python/docs/api/class-video.mdx
index 616fbab6943..29e36dbcf35 100644
--- a/python/docs/api/class-video.mdx
+++ b/python/docs/api/class-video.mdx
@@ -5,6 +5,7 @@ title: "Video"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
When browser context is created with the `recordVideo` option, each page has a video object associated with it.
diff --git a/python/docs/api/class-weberror.mdx b/python/docs/api/class-weberror.mdx
index d5e3a5ba047..12df8589282 100644
--- a/python/docs/api/class-weberror.mdx
+++ b/python/docs/api/class-weberror.mdx
@@ -5,6 +5,7 @@ title: "WebError"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
[WebError] class represents an unhandled exception thrown in the page. It is dispatched via the [browser_context.on("weberror")](/api/class-browsercontext.mdx#browser-context-event-web-error) event.
diff --git a/python/docs/api/class-websocket.mdx b/python/docs/api/class-websocket.mdx
index 7a7feca871e..8af12b5b3a9 100644
--- a/python/docs/api/class-websocket.mdx
+++ b/python/docs/api/class-websocket.mdx
@@ -5,6 +5,7 @@ title: "WebSocket"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The [WebSocket] class represents WebSocket connections within a page. It provides the ability to inspect and manipulate the data being transmitted and received.
diff --git a/python/docs/api/class-websocketroute.mdx b/python/docs/api/class-websocketroute.mdx
index 4bbf1e75a35..a19c343ff50 100644
--- a/python/docs/api/class-websocketroute.mdx
+++ b/python/docs/api/class-websocketroute.mdx
@@ -5,6 +5,7 @@ title: "WebSocketRoute"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
Whenever a [`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) route is set up with [page.route_web_socket()](/api/class-page.mdx#page-route-web-socket) or [browser_context.route_web_socket()](/api/class-browsercontext.mdx#browser-context-route-web-socket), the `WebSocketRoute` object allows to handle the WebSocket, like an actual server would do.
diff --git a/python/docs/api/class-worker.mdx b/python/docs/api/class-worker.mdx
index e628e7adecb..e8669406024 100644
--- a/python/docs/api/class-worker.mdx
+++ b/python/docs/api/class-worker.mdx
@@ -5,6 +5,7 @@ title: "Worker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
The Worker class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). `worker` event is emitted on the page object to signal a worker creation. `close` event is emitted on the worker object when the worker is gone.
diff --git a/python/docs/aria-snapshots.mdx b/python/docs/aria-snapshots.mdx
index a4243ddf0dd..8878f8a0163 100644
--- a/python/docs/aria-snapshots.mdx
+++ b/python/docs/aria-snapshots.mdx
@@ -5,6 +5,7 @@ title: "Snapshot testing"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/python/docs/auth.mdx b/python/docs/auth.mdx
index 8e07a25a9ba..25ef3b6938c 100644
--- a/python/docs/auth.mdx
+++ b/python/docs/auth.mdx
@@ -5,6 +5,7 @@ title: "Authentication"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/browser-contexts.mdx b/python/docs/browser-contexts.mdx
index acca34dd20b..5089593fc15 100644
--- a/python/docs/browser-contexts.mdx
+++ b/python/docs/browser-contexts.mdx
@@ -5,6 +5,7 @@ title: "Isolation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/browsers.mdx b/python/docs/browsers.mdx
index 114c202d486..3c9256471e4 100644
--- a/python/docs/browsers.mdx
+++ b/python/docs/browsers.mdx
@@ -5,6 +5,7 @@ title: "Browsers"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/chrome-extensions.mdx b/python/docs/chrome-extensions.mdx
index 6ce0d59914a..0f2578c2182 100644
--- a/python/docs/chrome-extensions.mdx
+++ b/python/docs/chrome-extensions.mdx
@@ -5,6 +5,7 @@ title: "Chrome extensions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/ci-intro.mdx b/python/docs/ci-intro.mdx
index 568d68045e9..046b5560acb 100644
--- a/python/docs/ci-intro.mdx
+++ b/python/docs/ci-intro.mdx
@@ -5,6 +5,7 @@ title: "Setting up CI"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/ci.mdx b/python/docs/ci.mdx
index 550abf77b3d..33ff25c48fb 100644
--- a/python/docs/ci.mdx
+++ b/python/docs/ci.mdx
@@ -5,6 +5,7 @@ title: "Continuous Integration"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/clock.mdx b/python/docs/clock.mdx
index 987d7f07e59..66d99e87181 100644
--- a/python/docs/clock.mdx
+++ b/python/docs/clock.mdx
@@ -5,6 +5,7 @@ title: "Clock"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/python/docs/codegen-intro.mdx b/python/docs/codegen-intro.mdx
index c01974226c2..fe51684102d 100644
--- a/python/docs/codegen-intro.mdx
+++ b/python/docs/codegen-intro.mdx
@@ -5,6 +5,7 @@ title: "Generating tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/codegen.mdx b/python/docs/codegen.mdx
index 991da16486e..3f037f761c2 100644
--- a/python/docs/codegen.mdx
+++ b/python/docs/codegen.mdx
@@ -5,6 +5,7 @@ title: "Test generator"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/python/docs/debug.mdx b/python/docs/debug.mdx
index 54a4cd5f75a..bc9bbbd987e 100644
--- a/python/docs/debug.mdx
+++ b/python/docs/debug.mdx
@@ -5,6 +5,7 @@ title: "Debugging Tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Playwright Inspector
diff --git a/python/docs/dialogs.mdx b/python/docs/dialogs.mdx
index 32baf022d05..50ea679eaa2 100644
--- a/python/docs/dialogs.mdx
+++ b/python/docs/dialogs.mdx
@@ -5,6 +5,7 @@ title: "Dialogs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/docker.mdx b/python/docs/docker.mdx
index df01fc55d97..b2b430b4a04 100644
--- a/python/docs/docker.mdx
+++ b/python/docs/docker.mdx
@@ -5,6 +5,7 @@ title: "Docker"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/downloads.mdx b/python/docs/downloads.mdx
index 6c37ed79047..e88652a7151 100644
--- a/python/docs/downloads.mdx
+++ b/python/docs/downloads.mdx
@@ -5,6 +5,7 @@ title: "Downloads"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/emulation.mdx b/python/docs/emulation.mdx
index 6be2000b0f6..7badd034ff9 100644
--- a/python/docs/emulation.mdx
+++ b/python/docs/emulation.mdx
@@ -5,6 +5,7 @@ title: "Emulation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/evaluating.mdx b/python/docs/evaluating.mdx
index 15db7a8fc3b..6adeeca259e 100644
--- a/python/docs/evaluating.mdx
+++ b/python/docs/evaluating.mdx
@@ -5,6 +5,7 @@ title: "Evaluating JavaScript"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/events.mdx b/python/docs/events.mdx
index 4b28448bdc9..c311ff40c9a 100644
--- a/python/docs/events.mdx
+++ b/python/docs/events.mdx
@@ -5,6 +5,7 @@ title: "Events"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/extensibility.mdx b/python/docs/extensibility.mdx
index 5cf8ddd901f..6ccaa5ec357 100644
--- a/python/docs/extensibility.mdx
+++ b/python/docs/extensibility.mdx
@@ -5,6 +5,7 @@ title: "Extensibility"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Custom selector engines
diff --git a/python/docs/frames.mdx b/python/docs/frames.mdx
index 7b8edd275e8..5b69af2fbf9 100644
--- a/python/docs/frames.mdx
+++ b/python/docs/frames.mdx
@@ -5,6 +5,7 @@ title: "Frames"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/handles.mdx b/python/docs/handles.mdx
index 225213bfe06..f7d456f46de 100644
--- a/python/docs/handles.mdx
+++ b/python/docs/handles.mdx
@@ -5,6 +5,7 @@ title: "Handles"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/input.mdx b/python/docs/input.mdx
index c057eddb31d..bc89cfbd838 100644
--- a/python/docs/input.mdx
+++ b/python/docs/input.mdx
@@ -5,6 +5,7 @@ title: "Actions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/intro.mdx b/python/docs/intro.mdx
index b0422d42dbd..8787a409323 100644
--- a/python/docs/intro.mdx
+++ b/python/docs/intro.mdx
@@ -5,6 +5,7 @@ title: "Installation"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/languages.mdx b/python/docs/languages.mdx
index 880e457cb39..4e49c07dd46 100644
--- a/python/docs/languages.mdx
+++ b/python/docs/languages.mdx
@@ -5,6 +5,7 @@ title: "Supported languages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/library.mdx b/python/docs/library.mdx
index 6cd17df8fd7..c6af81b8610 100644
--- a/python/docs/library.mdx
+++ b/python/docs/library.mdx
@@ -5,6 +5,7 @@ title: "Getting started - Library"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Installation
diff --git a/python/docs/locators.mdx b/python/docs/locators.mdx
index c4d8263f35e..0326b44caaf 100644
--- a/python/docs/locators.mdx
+++ b/python/docs/locators.mdx
@@ -5,6 +5,7 @@ title: "Locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/mock.mdx b/python/docs/mock.mdx
index 8b5dec87626..8a08803b7cb 100644
--- a/python/docs/mock.mdx
+++ b/python/docs/mock.mdx
@@ -5,6 +5,7 @@ title: "Mock APIs"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/navigations.mdx b/python/docs/navigations.mdx
index 8a63f3d4ef5..3638c259b94 100644
--- a/python/docs/navigations.mdx
+++ b/python/docs/navigations.mdx
@@ -5,6 +5,7 @@ title: "Navigations"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/network.mdx b/python/docs/network.mdx
index 0171c3e2dce..0d9fd64c55f 100644
--- a/python/docs/network.mdx
+++ b/python/docs/network.mdx
@@ -5,6 +5,7 @@ title: "Network"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/other-locators.mdx b/python/docs/other-locators.mdx
index 9a869eb8bd6..a7d4f5bd78b 100644
--- a/python/docs/other-locators.mdx
+++ b/python/docs/other-locators.mdx
@@ -5,6 +5,7 @@ title: "Other locators"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/pages.mdx b/python/docs/pages.mdx
index 67697213609..f4f020b337a 100644
--- a/python/docs/pages.mdx
+++ b/python/docs/pages.mdx
@@ -5,6 +5,7 @@ title: "Pages"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Pages
diff --git a/python/docs/pom.mdx b/python/docs/pom.mdx
index 7ac51b989a4..2784b23fbe8 100644
--- a/python/docs/pom.mdx
+++ b/python/docs/pom.mdx
@@ -5,6 +5,7 @@ title: "Page object models"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/release-notes.mdx b/python/docs/release-notes.mdx
index b36c4373571..7a6484ba355 100644
--- a/python/docs/release-notes.mdx
+++ b/python/docs/release-notes.mdx
@@ -6,6 +6,7 @@ toc_max_heading_level: 2
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Version 1.54
diff --git a/python/docs/running-tests.mdx b/python/docs/running-tests.mdx
index 19d9e44c500..12785f08e3f 100644
--- a/python/docs/running-tests.mdx
+++ b/python/docs/running-tests.mdx
@@ -5,6 +5,7 @@ title: "Running and debugging tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/screenshots.mdx b/python/docs/screenshots.mdx
index 7d53b59454e..cdc96b1cfee 100644
--- a/python/docs/screenshots.mdx
+++ b/python/docs/screenshots.mdx
@@ -5,6 +5,7 @@ title: "Screenshots"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/selenium-grid.mdx b/python/docs/selenium-grid.mdx
index f0b3ed5947c..51953bee4f4 100644
--- a/python/docs/selenium-grid.mdx
+++ b/python/docs/selenium-grid.mdx
@@ -5,6 +5,7 @@ title: "Selenium Grid (experimental)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/test-assertions.mdx b/python/docs/test-assertions.mdx
index d83220d49ae..7d7c5369fac 100644
--- a/python/docs/test-assertions.mdx
+++ b/python/docs/test-assertions.mdx
@@ -5,6 +5,7 @@ title: "Assertions"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## List of assertions
diff --git a/python/docs/test-runners.mdx b/python/docs/test-runners.mdx
index 532d630fc1a..878eb506cf6 100644
--- a/python/docs/test-runners.mdx
+++ b/python/docs/test-runners.mdx
@@ -5,6 +5,7 @@ title: "Pytest Plugin Reference"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/touch-events.mdx b/python/docs/touch-events.mdx
index a024dee6caf..f6bd40ea3ef 100644
--- a/python/docs/touch-events.mdx
+++ b/python/docs/touch-events.mdx
@@ -5,6 +5,7 @@ title: "Touch events (legacy)"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/trace-viewer-intro.mdx b/python/docs/trace-viewer-intro.mdx
index 84c6920f141..e4cc5056fd9 100644
--- a/python/docs/trace-viewer-intro.mdx
+++ b/python/docs/trace-viewer-intro.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/trace-viewer.mdx b/python/docs/trace-viewer.mdx
index 01b762bad76..37823d0bbf5 100644
--- a/python/docs/trace-viewer.mdx
+++ b/python/docs/trace-viewer.mdx
@@ -5,6 +5,7 @@ title: "Trace viewer"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
import LiteYouTube from '@site/src/components/LiteYouTube';
diff --git a/python/docs/videos.mdx b/python/docs/videos.mdx
index 9c671d9501b..b9ac7c9c403 100644
--- a/python/docs/videos.mdx
+++ b/python/docs/videos.mdx
@@ -5,6 +5,7 @@ title: "Videos"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/webview2.mdx b/python/docs/webview2.mdx
index ded4e5dcca1..4d78a9e7bba 100644
--- a/python/docs/webview2.mdx
+++ b/python/docs/webview2.mdx
@@ -5,6 +5,7 @@ title: "WebView2"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docs/writing-tests.mdx b/python/docs/writing-tests.mdx
index 9aff4344ac0..fff7b161a88 100644
--- a/python/docs/writing-tests.mdx
+++ b/python/docs/writing-tests.mdx
@@ -5,6 +5,7 @@ title: "Writing tests"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
## Introduction
diff --git a/python/docusaurus.config.ts b/python/docusaurus.config.ts
index 1bb4a0e504c..a6ca1ca4b36 100644
--- a/python/docusaurus.config.ts
+++ b/python/docusaurus.config.ts
@@ -34,6 +34,15 @@ let plugins = [
}),
],
require.resolve("@docusaurus/plugin-content-pages"),
+ [
+ require.resolve('@docusaurus/plugin-ideal-image'),
+ {
+ max: 1024,
+ min: 640,
+ steps: 4,
+ disableInDev: false
+ }
+ ],
];
if (isProd) {
diff --git a/src/generator.js b/src/generator.js
index 3676fa01ca8..5f3932fe5b8 100644
--- a/src/generator.js
+++ b/src/generator.js
@@ -146,6 +146,7 @@ title: "${this.formatter.rewriteClassTitle?.(clazz.name) || clazz.name}"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';
`});
if (clazz.deprecated) {
result.push({
@@ -431,9 +432,8 @@ ${this.documentation.renderLinksInText(member.discouraged)}
* @param {string} content
*/
rewriteImageLinks(content) {
- // use optimised instead: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-ideal-image
return content.replaceAll(/!\[(.*)\]\((\.\/images\/.*)\)/g, (match, alt, link) => {
- return `})`;
+ return ``;
});
}
@@ -450,7 +450,8 @@ ${this.documentation.renderLinksInText(member.discouraged)}
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-import HTMLCard from '@site/src/components/HTMLCard';`);
+import HTMLCard from '@site/src/components/HTMLCard';
+import ProgressiveImage from '@theme/ProgressiveImage';`);
writeFileSyncCached(path.join(this.outDir, outName), this.rewriteVersion(this.mdxLinks(output)));
}
diff --git a/src/theme/ProgressiveImage/index.tsx b/src/theme/ProgressiveImage/index.tsx
new file mode 100644
index 00000000000..36c25a3910e
--- /dev/null
+++ b/src/theme/ProgressiveImage/index.tsx
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React from "react";
+import Image from "@theme-original/IdealImageLegacy";
+
+function shouldAutoDownload() {
+ return true;
+}
+
+// This is duplicated from plugin-ideal-image in order to always enable automatic download
+// image prop is injected by the plugin-ideal-image Webpack plugin
+export default function ProgressiveImage({ image: { preSrc, src }, alt }) {
+ return (
+ ({
+ ...image,
+ src: image.path,
+ }))}
+ shouldAutoDownload={shouldAutoDownload}
+ />
+ );
+}