@checkly/playwright-core 1.48.22 → 1.51.11-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +60 -48
- package/bin/reinstall_chrome_beta_linux.sh +10 -8
- package/bin/reinstall_chrome_stable_linux.sh +10 -8
- package/bin/reinstall_msedge_beta_linux.sh +17 -9
- package/bin/reinstall_msedge_dev_linux.sh +17 -9
- package/bin/reinstall_msedge_stable_linux.sh +17 -9
- package/browsers.json +33 -12
- package/index.js +0 -1
- package/lib/androidServerImpl.js +5 -5
- package/lib/browserServerImpl.js +18 -9
- package/lib/checkly/secretsFilter.js +1 -1
- package/lib/cli/driver.js +6 -6
- package/lib/cli/program.js +38 -43
- package/lib/cli/programWithTestStub.js +2 -1
- package/lib/client/android.js +37 -58
- package/lib/client/artifact.js +4 -7
- package/lib/client/browser.js +10 -15
- package/lib/client/browserContext.js +69 -62
- package/lib/client/browserType.js +30 -64
- package/lib/client/channelOwner.js +53 -68
- package/lib/client/clientHelper.js +4 -6
- package/lib/client/clientInstrumentation.js +2 -0
- package/lib/client/clientStackTrace.js +65 -0
- package/lib/client/connection.js +48 -41
- package/lib/client/consoleMessage.js +4 -7
- package/lib/client/electron.js +10 -10
- package/lib/client/elementHandle.js +32 -33
- package/lib/client/errors.js +2 -2
- package/lib/client/eventEmitter.js +5 -8
- package/lib/client/fetch.js +61 -62
- package/lib/client/fileUtils.js +31 -0
- package/lib/client/frame.js +22 -23
- package/lib/client/harRouter.js +7 -9
- package/lib/client/jsHandle.js +3 -4
- package/lib/client/localUtils.js +24 -0
- package/lib/client/locator.js +27 -13
- package/lib/client/network.js +44 -37
- package/lib/client/page.js +50 -41
- package/lib/client/platform.js +71 -0
- package/lib/client/playwright.js +21 -1
- package/lib/client/selectors.js +8 -2
- package/lib/client/stream.js +2 -21
- package/lib/client/timeoutSettings.js +65 -0
- package/lib/client/tracing.js +29 -7
- package/lib/client/video.js +2 -2
- package/lib/client/waiter.js +19 -16
- package/lib/client/webSocket.js +106 -0
- package/lib/client/worker.js +4 -4
- package/lib/client/writableStream.js +2 -21
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/generated/recorderSource.js +7 -0
- package/lib/generated/webSocketMockSource.js +1 -1
- package/lib/inProcessFactory.js +8 -3
- package/lib/outofprocess.js +12 -8
- package/lib/protocol/debug.js +1 -1
- package/lib/protocol/validator.js +77 -11
- package/lib/protocol/validatorPrimitives.js +1 -2
- package/lib/remote/playwrightConnection.js +21 -12
- package/lib/remote/playwrightServer.js +22 -8
- package/lib/server/android/android.js +17 -14
- package/lib/server/android/backendAdb.js +14 -14
- package/lib/server/artifact.js +3 -3
- package/lib/server/bidi/bidiBrowser.js +11 -8
- package/lib/server/bidi/bidiChromium.js +5 -4
- package/lib/server/bidi/bidiConnection.js +1 -3
- package/lib/server/bidi/bidiExecutionContext.js +71 -25
- package/lib/server/bidi/bidiFirefox.js +4 -3
- package/lib/server/bidi/bidiInput.js +11 -12
- package/lib/server/bidi/bidiNetworkManager.js +11 -12
- package/lib/server/bidi/bidiOverCdp.js +2 -2
- package/lib/server/bidi/bidiPage.js +39 -66
- package/lib/server/bidi/third_party/bidiKeyboard.js +9 -7
- package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
- package/lib/server/browser.js +2 -2
- package/lib/server/browserContext.js +60 -55
- package/lib/server/browserType.js +22 -18
- package/lib/server/callLog.js +79 -0
- package/lib/server/chromium/chromium.js +20 -16
- package/lib/server/chromium/chromiumSwitches.js +32 -9
- package/lib/server/chromium/crBrowser.js +25 -24
- package/lib/server/chromium/crConnection.js +2 -2
- package/lib/server/chromium/crCoverage.js +1 -1
- package/lib/server/chromium/crDevTools.js +1 -1
- package/lib/server/chromium/crDragDrop.js +1 -1
- package/lib/server/chromium/crExecutionContext.js +26 -35
- package/lib/server/chromium/crInput.js +17 -6
- package/lib/server/chromium/crNetworkManager.js +3 -3
- package/lib/server/chromium/crPage.js +43 -55
- package/lib/server/chromium/crPdf.js +1 -1
- package/lib/server/chromium/crProtocolHelper.js +3 -3
- package/lib/server/chromium/crServiceWorker.js +2 -2
- package/lib/server/chromium/videoRecorder.js +2 -2
- package/lib/server/clock.js +1 -1
- package/lib/server/codegen/csharp.js +21 -16
- package/lib/server/codegen/java.js +17 -9
- package/lib/server/codegen/javascript.js +37 -7
- package/lib/server/codegen/jsonl.js +1 -1
- package/lib/server/codegen/languages.js +2 -2
- package/lib/server/codegen/python.js +14 -17
- package/lib/server/debugController.js +23 -45
- package/lib/server/debugger.js +1 -1
- package/lib/server/deviceDescriptors.js +1 -1
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dispatchers/androidDispatcher.js +14 -3
- package/lib/server/dispatchers/artifactDispatcher.js +3 -3
- package/lib/server/dispatchers/browserContextDispatcher.js +21 -32
- package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
- package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
- package/lib/server/dispatchers/debugControllerDispatcher.js +5 -3
- package/lib/server/dispatchers/dispatcher.js +27 -25
- package/lib/server/dispatchers/electronDispatcher.js +3 -3
- package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
- package/lib/server/dispatchers/frameDispatcher.js +9 -3
- package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
- package/lib/server/dispatchers/localUtilsDispatcher.js +25 -291
- package/lib/server/dispatchers/networkDispatchers.js +3 -3
- package/lib/server/dispatchers/pageDispatcher.js +10 -8
- package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
- package/lib/server/dispatchers/streamDispatcher.js +4 -3
- package/lib/server/dispatchers/tracingDispatcher.js +10 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +18 -18
- package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
- package/lib/server/dom.js +102 -48
- package/lib/server/download.js +1 -1
- package/lib/server/electron/electron.js +17 -16
- package/lib/server/errors.js +1 -1
- package/lib/server/fetch.js +49 -33
- package/lib/server/fileUploadUtils.js +7 -4
- package/lib/server/firefox/ffBrowser.js +17 -9
- package/lib/server/firefox/ffConnection.js +1 -1
- package/lib/server/firefox/ffExecutionContext.js +25 -29
- package/lib/server/firefox/ffInput.js +15 -4
- package/lib/server/firefox/ffNetworkManager.js +3 -3
- package/lib/server/firefox/ffPage.js +29 -50
- package/lib/server/firefox/firefox.js +7 -9
- package/lib/server/frameSelectors.js +1 -1
- package/lib/server/frames.js +65 -55
- package/lib/server/har/harRecorder.js +4 -4
- package/lib/server/har/harTracer.js +8 -9
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +2 -2
- package/lib/server/index.js +1 -14
- package/lib/server/input.js +3 -4
- package/lib/server/instrumentation.js +2 -2
- package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
- package/lib/server/javascript.js +26 -33
- package/lib/server/launchApp.js +7 -7
- package/lib/server/localUtils.js +203 -0
- package/lib/server/network.js +5 -5
- package/lib/server/page.js +76 -37
- package/lib/server/pipeTransport.js +1 -1
- package/lib/server/playwright.js +5 -5
- package/lib/server/progress.js +1 -4
- package/lib/server/protocolError.js +1 -1
- package/lib/server/recorder/chat.js +177 -0
- package/lib/server/recorder/codeGenerator.js +154 -0
- package/lib/server/recorder/contextRecorder.js +9 -18
- package/lib/server/recorder/csharp.js +311 -0
- package/lib/server/recorder/java.js +249 -0
- package/lib/server/recorder/javascript.js +230 -0
- package/lib/server/recorder/jsonl.js +48 -0
- package/lib/server/recorder/language.js +45 -0
- package/lib/server/recorder/python.js +276 -0
- package/lib/server/recorder/recorderActions.js +6 -0
- package/lib/server/recorder/recorderApp.js +25 -28
- package/lib/server/recorder/recorderCollection.js +9 -21
- package/lib/server/recorder/recorderInTraceViewer.js +1 -1
- package/lib/server/recorder/recorderRunner.js +7 -3
- package/lib/server/recorder/recorderUtils.js +5 -28
- package/lib/server/recorder/throttledFile.js +3 -4
- package/lib/server/recorder/utils.js +46 -0
- package/lib/server/recorder.js +83 -43
- package/lib/server/registry/browserFetcher.js +10 -8
- package/lib/server/registry/dependencies.js +20 -20
- package/lib/server/registry/index.js +215 -61
- package/lib/server/registry/nativeDeps.js +10 -4
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
- package/lib/server/screenshotter.js +1 -1
- package/lib/server/selectors.js +3 -3
- package/lib/server/socksClientCertificatesInterceptor.js +8 -8
- package/lib/server/socksInterceptor.js +8 -5
- package/lib/server/storageScript.js +160 -0
- package/lib/server/timeoutSettings.js +74 -0
- package/lib/server/trace/recorder/snapshotter.js +10 -20
- package/lib/server/trace/recorder/snapshotterInjected.js +26 -1
- package/lib/server/trace/recorder/tracing.js +108 -45
- package/lib/server/trace/test/inMemorySnapshotter.js +6 -6
- package/lib/server/trace/viewer/traceViewer.js +21 -7
- package/lib/server/transport.js +3 -2
- package/lib/server/utils/ascii.js +31 -0
- package/lib/server/utils/comparators.js +159 -0
- package/lib/server/utils/crypto.js +171 -0
- package/lib/server/utils/debug.js +38 -0
- package/lib/server/utils/debugLogger.js +93 -0
- package/lib/server/utils/env.js +53 -0
- package/lib/server/utils/eventsHelper.js +38 -0
- package/lib/server/utils/expectUtils.js +33 -0
- package/lib/server/utils/fileUtils.js +204 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +145 -0
- package/lib/server/utils/httpServer.js +233 -0
- package/lib/server/utils/image_tools/colorUtils.js +98 -0
- package/lib/server/utils/image_tools/compare.js +108 -0
- package/lib/server/utils/image_tools/imageChannel.js +70 -0
- package/lib/server/utils/image_tools/stats.js +102 -0
- package/lib/server/utils/linuxUtils.js +58 -0
- package/lib/server/utils/network.js +160 -0
- package/lib/server/utils/nodePlatform.js +140 -0
- package/lib/server/utils/pipeTransport.js +82 -0
- package/lib/server/utils/processLauncher.js +248 -0
- package/lib/server/utils/profiler.js +52 -0
- package/lib/server/utils/socksProxy.js +570 -0
- package/lib/server/utils/spawnAsync.js +45 -0
- package/lib/server/utils/task.js +58 -0
- package/lib/server/utils/userAgent.js +91 -0
- package/lib/server/utils/wsServer.js +128 -0
- package/lib/server/utils/zipFile.js +75 -0
- package/lib/server/utils/zones.js +54 -0
- package/lib/server/webkit/webkit.js +4 -4
- package/lib/server/webkit/wkBrowser.js +10 -10
- package/lib/server/webkit/wkConnection.js +1 -1
- package/lib/server/webkit/wkExecutionContext.js +26 -30
- package/lib/server/webkit/wkInput.js +17 -7
- package/lib/server/webkit/wkInterceptableRequest.js +2 -2
- package/lib/server/webkit/wkPage.js +80 -66
- package/lib/server/webkit/wkProvisionalPage.js +1 -1
- package/lib/server/webkit/wkWorkers.js +2 -2
- package/lib/utils/fileUtils.js +1 -1
- package/lib/utils/glob.js +84 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
- package/lib/utils/isomorphic/assert.js +25 -0
- package/lib/utils/isomorphic/colors.js +65 -0
- package/lib/utils/isomorphic/cssParser.js +5 -5
- package/lib/utils/isomorphic/headers.js +52 -0
- package/lib/utils/isomorphic/locatorGenerators.js +38 -8
- package/lib/utils/isomorphic/locatorParser.js +19 -13
- package/lib/utils/isomorphic/manualPromise.js +107 -0
- package/lib/utils/isomorphic/mimeType.js +11 -3
- package/lib/utils/isomorphic/multimap.js +73 -0
- package/lib/utils/isomorphic/rtti.js +41 -0
- package/lib/utils/isomorphic/semaphore.js +51 -0
- package/lib/utils/isomorphic/stackTrace.js +169 -0
- package/lib/utils/isomorphic/stringUtils.js +31 -1
- package/lib/utils/isomorphic/time.js +25 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/traceUtils.js +23 -0
- package/lib/utils/isomorphic/types.js +5 -0
- package/lib/utils/isomorphic/urlMatch.js +7 -5
- package/lib/utils/mimeType.js +30 -0
- package/lib/utils/stackTrace.js +1 -1
- package/lib/utils.js +447 -0
- package/lib/utilsBundle.js +4 -29
- package/lib/utilsBundleImpl/index.js +188 -33
- package/lib/vite/htmlReport/index.html +20 -17
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
- package/lib/vite/recorder/assets/{index-BW-aOBcL.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +1 -0
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +235 -0
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +25 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +1 -0
- package/lib/vite/traceViewer/{embedded.BkvOrz5Z.js → embedded.DpNPH6mk.js} +2 -2
- package/lib/vite/traceViewer/embedded.html +6 -6
- package/lib/vite/traceViewer/index.CuE3SYGw.js +2 -0
- package/lib/vite/traceViewer/index.html +27 -9
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +1 -0
- package/lib/vite/traceViewer/{recorder.DNMfnSiu.js → recorder.BD-uZJs7.js} +2 -2
- package/lib/vite/traceViewer/recorder.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.CAYqod-m.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +8 -7
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +1 -0
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +820 -153
- package/types/types.d.ts +285 -82
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/vite/recorder/assets/codeMirrorModule-d0KhC1qL.js +0 -24
- package/lib/vite/recorder/assets/index-Bxxcmxlu.js +0 -42
- package/lib/vite/traceViewer/assets/codeMirrorModule-pBPtArIT.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-tzBrK1V4.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-BuJ3wAX_.js +0 -64
- package/lib/vite/traceViewer/assets/inspectorTab-Soeeuvzv.js +0 -64
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DdmJ9AJV.js +0 -9
- package/lib/vite/traceViewer/assets/workbench-lypYlf00.js +0 -9
- package/lib/vite/traceViewer/embedded.DInvAijy.js +0 -2
- package/lib/vite/traceViewer/index.Dha3cgqs.js +0 -2
- package/lib/vite/traceViewer/index._Iolt-uE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DLjBDrQR.css +0 -1
- package/lib/vite/traceViewer/recorder.DTSaNaly.js +0 -2
- package/lib/vite/traceViewer/uiMode.BM7yhjzl.js +0 -5
- package/lib/vite/traceViewer/uiMode.Cr1tvTWS.js +0 -5
- package/lib/vite/traceViewer/workbench.DlsCx8k5.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{embedded.w7WN2u1R.css → embedded.mLhjB5IF.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{recorder.B_SY1GJM.css → recorder.tn0RQdqM.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
package/lib/client/waiter.js
CHANGED
|
@@ -4,9 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Waiter = void 0;
|
|
7
|
-
var _stackTrace = require("../utils/stackTrace");
|
|
8
7
|
var _errors = require("./errors");
|
|
9
|
-
var
|
|
8
|
+
var _stackTrace = require("../utils/isomorphic/stackTrace");
|
|
10
9
|
/**
|
|
11
10
|
* Copyright (c) Microsoft Corporation.
|
|
12
11
|
*
|
|
@@ -32,8 +31,10 @@ class Waiter {
|
|
|
32
31
|
this._channelOwner = void 0;
|
|
33
32
|
this._waitId = void 0;
|
|
34
33
|
this._error = void 0;
|
|
35
|
-
this.
|
|
34
|
+
this._savedZone = void 0;
|
|
35
|
+
this._waitId = channelOwner._platform.createGuid();
|
|
36
36
|
this._channelOwner = channelOwner;
|
|
37
|
+
this._savedZone = channelOwner._platform.zones.current().pop();
|
|
37
38
|
this._channelOwner._channel.waitForEventInfo({
|
|
38
39
|
info: {
|
|
39
40
|
waitId: this._waitId,
|
|
@@ -58,14 +59,14 @@ class Waiter {
|
|
|
58
59
|
const {
|
|
59
60
|
promise,
|
|
60
61
|
dispose
|
|
61
|
-
} = waitForEvent(emitter, event, predicate);
|
|
62
|
+
} = waitForEvent(emitter, event, this._savedZone, predicate);
|
|
62
63
|
return await this.waitForPromise(promise, dispose);
|
|
63
64
|
}
|
|
64
65
|
rejectOnEvent(emitter, event, error, predicate) {
|
|
65
66
|
const {
|
|
66
67
|
promise,
|
|
67
68
|
dispose
|
|
68
|
-
} = waitForEvent(emitter, event, predicate);
|
|
69
|
+
} = waitForEvent(emitter, event, this._savedZone, predicate);
|
|
69
70
|
this._rejectOn(promise.then(() => {
|
|
70
71
|
throw typeof error === 'function' ? error() : error;
|
|
71
72
|
}), dispose);
|
|
@@ -109,8 +110,8 @@ class Waiter {
|
|
|
109
110
|
phase: 'log',
|
|
110
111
|
message: s
|
|
111
112
|
}
|
|
112
|
-
})
|
|
113
|
-
}, true);
|
|
113
|
+
});
|
|
114
|
+
}, true).catch(() => {});
|
|
114
115
|
}
|
|
115
116
|
_rejectOn(promise, dispose) {
|
|
116
117
|
this._failures.push(promise);
|
|
@@ -118,18 +119,20 @@ class Waiter {
|
|
|
118
119
|
}
|
|
119
120
|
}
|
|
120
121
|
exports.Waiter = Waiter;
|
|
121
|
-
function waitForEvent(emitter, event, predicate) {
|
|
122
|
+
function waitForEvent(emitter, event, savedZone, predicate) {
|
|
122
123
|
let listener;
|
|
123
124
|
const promise = new Promise((resolve, reject) => {
|
|
124
125
|
listener = async eventArg => {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
126
|
+
await savedZone.run(async () => {
|
|
127
|
+
try {
|
|
128
|
+
if (predicate && !(await predicate(eventArg))) return;
|
|
129
|
+
emitter.removeListener(event, listener);
|
|
130
|
+
resolve(eventArg);
|
|
131
|
+
} catch (e) {
|
|
132
|
+
emitter.removeListener(event, listener);
|
|
133
|
+
reject(e);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
133
136
|
};
|
|
134
137
|
emitter.addListener(event, listener);
|
|
135
138
|
});
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.connectOverWebSocket = connectOverWebSocket;
|
|
7
|
+
var _connection = require("./connection");
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) Microsoft Corporation.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
async function connectOverWebSocket(parentConnection, params) {
|
|
25
|
+
const localUtils = parentConnection.localUtils();
|
|
26
|
+
const transport = localUtils ? new JsonPipeTransport(localUtils) : new WebSocketTransport();
|
|
27
|
+
const connectHeaders = await transport.connect(params);
|
|
28
|
+
const connection = new _connection.Connection(parentConnection._platform, localUtils, parentConnection._instrumentation, connectHeaders);
|
|
29
|
+
connection.markAsRemote();
|
|
30
|
+
connection.on('close', () => transport.close());
|
|
31
|
+
let closeError;
|
|
32
|
+
const onTransportClosed = reason => {
|
|
33
|
+
connection.close(reason || closeError);
|
|
34
|
+
};
|
|
35
|
+
transport.onClose(reason => onTransportClosed(reason));
|
|
36
|
+
connection.onmessage = message => transport.send(message).catch(() => onTransportClosed());
|
|
37
|
+
transport.onMessage(message => {
|
|
38
|
+
try {
|
|
39
|
+
connection.dispatch(message);
|
|
40
|
+
} catch (e) {
|
|
41
|
+
closeError = String(e);
|
|
42
|
+
transport.close().catch(() => {});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return connection;
|
|
46
|
+
}
|
|
47
|
+
class JsonPipeTransport {
|
|
48
|
+
constructor(owner) {
|
|
49
|
+
this._pipe = void 0;
|
|
50
|
+
this._owner = void 0;
|
|
51
|
+
this._owner = owner;
|
|
52
|
+
}
|
|
53
|
+
async connect(params) {
|
|
54
|
+
const {
|
|
55
|
+
pipe,
|
|
56
|
+
headers: connectHeaders
|
|
57
|
+
} = await this._owner._wrapApiCall(async () => {
|
|
58
|
+
return await this._owner._channel.connect(params);
|
|
59
|
+
}, /* isInternal */true);
|
|
60
|
+
this._pipe = pipe;
|
|
61
|
+
return connectHeaders;
|
|
62
|
+
}
|
|
63
|
+
async send(message) {
|
|
64
|
+
await this._owner._wrapApiCall(async () => {
|
|
65
|
+
await this._pipe.send({
|
|
66
|
+
message
|
|
67
|
+
});
|
|
68
|
+
}, /* isInternal */true);
|
|
69
|
+
}
|
|
70
|
+
onMessage(callback) {
|
|
71
|
+
this._pipe.on('message', ({
|
|
72
|
+
message
|
|
73
|
+
}) => callback(message));
|
|
74
|
+
}
|
|
75
|
+
onClose(callback) {
|
|
76
|
+
this._pipe.on('closed', ({
|
|
77
|
+
reason
|
|
78
|
+
}) => callback(reason));
|
|
79
|
+
}
|
|
80
|
+
async close() {
|
|
81
|
+
await this._owner._wrapApiCall(async () => {
|
|
82
|
+
await this._pipe.close().catch(() => {});
|
|
83
|
+
}, /* isInternal */true);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
class WebSocketTransport {
|
|
87
|
+
constructor() {
|
|
88
|
+
this._ws = void 0;
|
|
89
|
+
}
|
|
90
|
+
async connect(params) {
|
|
91
|
+
this._ws = new window.WebSocket(params.wsEndpoint);
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
async send(message) {
|
|
95
|
+
this._ws.send(JSON.stringify(message));
|
|
96
|
+
}
|
|
97
|
+
onMessage(callback) {
|
|
98
|
+
this._ws.addEventListener('message', event => callback(JSON.parse(event.data)));
|
|
99
|
+
}
|
|
100
|
+
onClose(callback) {
|
|
101
|
+
this._ws.addEventListener('close', () => callback());
|
|
102
|
+
}
|
|
103
|
+
async close() {
|
|
104
|
+
this._ws.close();
|
|
105
|
+
}
|
|
106
|
+
}
|
package/lib/client/worker.js
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Worker = void 0;
|
|
7
|
-
var _events = require("./events");
|
|
8
7
|
var _channelOwner = require("./channelOwner");
|
|
9
|
-
var _jsHandle = require("./jsHandle");
|
|
10
|
-
var _utils = require("../utils");
|
|
11
8
|
var _errors = require("./errors");
|
|
9
|
+
var _events = require("./events");
|
|
10
|
+
var _jsHandle = require("./jsHandle");
|
|
11
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -35,7 +35,7 @@ class Worker extends _channelOwner.ChannelOwner {
|
|
|
35
35
|
// Set for web workers.
|
|
36
36
|
this._context = void 0;
|
|
37
37
|
// Set for service workers.
|
|
38
|
-
this._closedScope = new
|
|
38
|
+
this._closedScope = new _manualPromise.LongStandingScope();
|
|
39
39
|
this._channel.on('close', () => {
|
|
40
40
|
if (this._page) this._page._workers.delete(this);
|
|
41
41
|
if (this._context) this._context._serviceWorkers.delete(this);
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WritableStream = void 0;
|
|
7
|
-
var _stream = require("stream");
|
|
8
7
|
var _channelOwner = require("./channelOwner");
|
|
9
8
|
/**
|
|
10
9
|
* Copyright (c) Microsoft Corporation.
|
|
@@ -30,25 +29,7 @@ class WritableStream extends _channelOwner.ChannelOwner {
|
|
|
30
29
|
super(parent, type, guid, initializer);
|
|
31
30
|
}
|
|
32
31
|
stream() {
|
|
33
|
-
return
|
|
32
|
+
return this._platform.streamWritable(this._channel);
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
|
-
exports.WritableStream = WritableStream;
|
|
37
|
-
class WritableStreamImpl extends _stream.Writable {
|
|
38
|
-
constructor(channel) {
|
|
39
|
-
super();
|
|
40
|
-
this._channel = void 0;
|
|
41
|
-
this._channel = channel;
|
|
42
|
-
}
|
|
43
|
-
async _write(chunk, encoding, callback) {
|
|
44
|
-
const error = await this._channel.write({
|
|
45
|
-
binary: typeof chunk === 'string' ? Buffer.from(chunk) : chunk
|
|
46
|
-
}).catch(e => e);
|
|
47
|
-
callback(error || null);
|
|
48
|
-
}
|
|
49
|
-
async _final(callback) {
|
|
50
|
-
// Stream might be destroyed after the connection was closed.
|
|
51
|
-
const error = await this._channel.close().catch(e => e);
|
|
52
|
-
callback(error || null);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
35
|
+
exports.WritableStream = WritableStream;
|