playwright-core 1.54.0-alpha-2025-06-23 → 1.54.0-alpha-2025-06-25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +3 -3
- package/browsers.json +4 -4
- package/lib/cli/programWithTestStub.js +1 -1
- package/lib/client/elementHandle.js +0 -4
- package/lib/client/locator.js +2 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/protocol/validator.js +6 -4
- package/lib/remote/playwrightServer.js +5 -9
- package/lib/server/android/android.js +2 -2
- package/lib/server/bidi/bidiPage.js +2 -2
- package/lib/server/browser.js +1 -1
- package/lib/server/browserContext.js +3 -3
- package/lib/server/browserType.js +3 -3
- package/lib/server/chromium/chromium.js +7 -9
- package/lib/server/chromium/crPage.js +2 -3
- package/lib/server/chromium/videoRecorder.js +1 -1
- package/lib/server/dispatchers/elementHandlerDispatcher.js +0 -3
- package/lib/server/dispatchers/frameDispatcher.js +3 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +2 -3
- package/lib/server/dom.js +20 -50
- package/lib/server/electron/electron.js +1 -1
- package/lib/server/fetch.js +1 -1
- package/lib/server/firefox/ffPage.js +2 -2
- package/lib/server/frames.js +77 -58
- package/lib/server/input.js +11 -11
- package/lib/server/page.js +5 -8
- package/lib/server/progress.js +41 -21
- package/lib/server/recorder/recorderApp.js +1 -1
- package/lib/server/registry/index.js +1 -1
- package/lib/server/registry/oopDownloadBrowserMain.js +1 -1
- package/lib/server/screenshotter.js +1 -1
- package/lib/server/trace/viewer/traceViewer.js +1 -1
- package/lib/server/transport.js +0 -2
- package/lib/server/utils/network.js +13 -14
- package/lib/server/webkit/wkPage.js +1 -1
- package/lib/utils/isomorphic/protocolMetainfo.js +1 -1
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/vite/traceViewer/assets/{codeMirrorModule--amfWN3K.js → codeMirrorModule-KhY1IY1h.js} +1 -1
- package/lib/vite/traceViewer/assets/{defaultSettingsView-BFAIqAv2.js → defaultSettingsView-h9mbAVJF.js} +45 -45
- package/lib/vite/traceViewer/{index.amRtOpxT.js → index.Ckw7w8kC.js} +1 -1
- package/lib/vite/traceViewer/index.html +2 -2
- package/lib/vite/traceViewer/uiMode.html +2 -2
- package/lib/vite/traceViewer/{uiMode.hufuL2u6.js → uiMode.wzqlDRzc.js} +1 -1
- package/package.json +1 -1
|
@@ -55,7 +55,6 @@ function httpRequest(params, onResponse, onError) {
|
|
|
55
55
|
};
|
|
56
56
|
if (params.rejectUnauthorized !== void 0)
|
|
57
57
|
options.rejectUnauthorized = params.rejectUnauthorized;
|
|
58
|
-
const timeout = params.timeout ?? NET_DEFAULT_TIMEOUT;
|
|
59
58
|
const proxyURL = (0, import_utilsBundle.getProxyForUrl)(params.url);
|
|
60
59
|
if (proxyURL) {
|
|
61
60
|
const parsedProxyURL = import_url.default.parse(proxyURL);
|
|
@@ -73,33 +72,31 @@ function httpRequest(params, onResponse, onError) {
|
|
|
73
72
|
options.rejectUnauthorized = false;
|
|
74
73
|
}
|
|
75
74
|
}
|
|
75
|
+
let cancelRequest;
|
|
76
76
|
const requestCallback = (res) => {
|
|
77
77
|
const statusCode = res.statusCode || 0;
|
|
78
78
|
if (statusCode >= 300 && statusCode < 400 && res.headers.location) {
|
|
79
79
|
request.destroy();
|
|
80
|
-
httpRequest({ ...params, url: new URL(res.headers.location, params.url).toString() }, onResponse, onError);
|
|
80
|
+
cancelRequest = httpRequest({ ...params, url: new URL(res.headers.location, params.url).toString() }, onResponse, onError).cancel;
|
|
81
81
|
} else {
|
|
82
82
|
onResponse(res);
|
|
83
83
|
}
|
|
84
84
|
};
|
|
85
85
|
const request = options.protocol === "https:" ? import_https.default.request(options, requestCallback) : import_http.default.request(options, requestCallback);
|
|
86
86
|
request.on("error", onError);
|
|
87
|
-
if (
|
|
88
|
-
|
|
89
|
-
onError(new Error(`Request to ${params.url} timed out after ${
|
|
87
|
+
if (params.socketTimeout !== void 0) {
|
|
88
|
+
request.setTimeout(params.socketTimeout, () => {
|
|
89
|
+
onError(new Error(`Request to ${params.url} timed out after ${params.socketTimeout}ms`));
|
|
90
90
|
request.abort();
|
|
91
|
-
};
|
|
92
|
-
if (timeout <= 0) {
|
|
93
|
-
rejectOnTimeout();
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
request.setTimeout(timeout, rejectOnTimeout);
|
|
91
|
+
});
|
|
97
92
|
}
|
|
93
|
+
cancelRequest = (e) => request.destroy(e);
|
|
98
94
|
request.end(params.data);
|
|
95
|
+
return { cancel: (e) => cancelRequest(e) };
|
|
99
96
|
}
|
|
100
|
-
function fetchData(params, onError) {
|
|
101
|
-
|
|
102
|
-
httpRequest(params, async (response) => {
|
|
97
|
+
function fetchData(progress, params, onError) {
|
|
98
|
+
const promise = new Promise((resolve, reject) => {
|
|
99
|
+
const { cancel } = httpRequest(params, async (response) => {
|
|
103
100
|
if (response.statusCode !== 200) {
|
|
104
101
|
const error = onError ? await onError(params, response) : new Error(`fetch failed: server returned code ${response.statusCode}. URL: ${params.url}`);
|
|
105
102
|
reject(error);
|
|
@@ -110,7 +107,9 @@ function fetchData(params, onError) {
|
|
|
110
107
|
response.on("error", (error) => reject(error));
|
|
111
108
|
response.on("end", () => resolve(body));
|
|
112
109
|
}, reject);
|
|
110
|
+
progress?.cleanupWhenAborted(cancel);
|
|
113
111
|
});
|
|
112
|
+
return progress ? progress.race(promise) : promise;
|
|
114
113
|
}
|
|
115
114
|
function shouldBypassProxy(url2, bypass) {
|
|
116
115
|
if (!bypass)
|
|
@@ -795,7 +795,7 @@ class WKPage {
|
|
|
795
795
|
const omitDeviceScaleFactor = scale === "css";
|
|
796
796
|
this.validateScreenshotDimension(rect.width, omitDeviceScaleFactor);
|
|
797
797
|
this.validateScreenshotDimension(rect.height, omitDeviceScaleFactor);
|
|
798
|
-
const result = await this._session.send("Page.snapshotRect", { ...rect, coordinateSystem: documentRect ? "Page" : "Viewport", omitDeviceScaleFactor });
|
|
798
|
+
const result = await progress.race(this._session.send("Page.snapshotRect", { ...rect, coordinateSystem: documentRect ? "Page" : "Viewport", omitDeviceScaleFactor }));
|
|
799
799
|
const prefix = "data:image/png;base64,";
|
|
800
800
|
let buffer = Buffer.from(result.dataURL.substr(prefix.length), "base64");
|
|
801
801
|
if (format === "jpeg")
|
|
@@ -159,6 +159,7 @@ const methodMetainfo = /* @__PURE__ */ new Map([
|
|
|
159
159
|
["Frame.fill", { title: 'Fill "{value}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
|
|
160
160
|
["Frame.focus", { title: "Focus", slowMo: true, snapshot: true }],
|
|
161
161
|
["Frame.frameElement", { internal: true }],
|
|
162
|
+
["Frame.generateLocatorString", { internal: true }],
|
|
162
163
|
["Frame.highlight", { internal: true }],
|
|
163
164
|
["Frame.getAttribute", { internal: true, snapshot: true }],
|
|
164
165
|
["Frame.goto", { title: 'Navigate to "{url}"', slowMo: true, snapshot: true }],
|
|
@@ -212,7 +213,6 @@ const methodMetainfo = /* @__PURE__ */ new Map([
|
|
|
212
213
|
["ElementHandle.dispatchEvent", { title: "Dispatch event", slowMo: true, snapshot: true }],
|
|
213
214
|
["ElementHandle.fill", { title: 'Fill "{value}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
|
|
214
215
|
["ElementHandle.focus", { title: "Focus", slowMo: true, snapshot: true }],
|
|
215
|
-
["ElementHandle.generateLocatorString", { internal: true }],
|
|
216
216
|
["ElementHandle.getAttribute", { internal: true }],
|
|
217
217
|
["ElementHandle.hover", { title: "Hover", slowMo: true, snapshot: true, pausesBeforeInput: true }],
|
|
218
218
|
["ElementHandle.innerHTML", { title: "Get HTML", snapshot: true }],
|