@remotion/renderer 4.0.405 → 4.0.407
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/dist/assets/apply-tone-frequency.d.ts +1 -2
- package/dist/assets/convert-assets-to-file-urls.d.ts +1 -2
- package/dist/assets/download-and-map-assets-to-file.d.ts +2 -3
- package/dist/assets/download-and-map-assets-to-file.js +1 -0
- package/dist/assets/download-file.d.ts +1 -0
- package/dist/assets/download-file.js +16 -1
- package/dist/assets/download-map.d.ts +1 -0
- package/dist/assets/download-map.js +2 -0
- package/dist/assets/get-audio-channels.d.ts +2 -3
- package/dist/assets/inline-audio-mixing.d.ts +1 -2
- package/dist/browser/Browser.d.ts +5 -5
- package/dist/browser/Browser.js +65 -74
- package/dist/browser/BrowserFetcher.d.ts +3 -5
- package/dist/browser/BrowserFetcher.js +1 -0
- package/dist/browser/BrowserPage.d.ts +4 -4
- package/dist/browser/BrowserPage.js +223 -218
- package/dist/browser/BrowserRunner.d.ts +1 -2
- package/dist/browser/Connection.js +99 -112
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/ConsoleMessage.js +9 -16
- package/dist/browser/DOMWorld.d.ts +1 -1
- package/dist/browser/DOMWorld.js +75 -89
- package/dist/browser/Errors.js +2 -4
- package/dist/browser/EventEmitter.js +2 -1
- package/dist/browser/ExecutionContext.js +117 -120
- package/dist/browser/FrameManager.js +249 -244
- package/dist/browser/HTTPRequest.js +11 -22
- package/dist/browser/HTTPResponse.js +3 -16
- package/dist/browser/JSHandle.js +17 -30
- package/dist/browser/LifecycleWatcher.js +122 -128
- package/dist/browser/NetworkEventManager.js +31 -40
- package/dist/browser/NetworkManager.js +210 -203
- package/dist/browser/NodeWebSocketTransport.js +3 -0
- package/dist/browser/Target.d.ts +1 -1
- package/dist/browser/Target.js +32 -39
- package/dist/browser/TaskQueue.js +5 -18
- package/dist/browser/TimeoutSettings.js +12 -25
- package/dist/browser/browser-download-progress-bar.d.ts +1 -2
- package/dist/browser/handle-failed-resource.d.ts +1 -2
- package/dist/browser/handle-failed-resource.js +4 -3
- package/dist/call-ffmpeg.d.ts +4 -5
- package/dist/can-concat-seamlessly.d.ts +2 -4
- package/dist/can-use-parallel-encoding.d.ts +1 -2
- package/dist/check-version-requirements.d.ts +1 -2
- package/dist/client.d.ts +181 -181
- package/dist/codec-supports-media.d.ts +3 -4
- package/dist/collect-assets.d.ts +1 -1
- package/dist/combine-audio.d.ts +2 -4
- package/dist/combine-chunks.d.ts +1 -2
- package/dist/combine-video-streams.d.ts +2 -4
- package/dist/compositor/compositor.d.ts +2 -3
- package/dist/compositor/get-executable-path.d.ts +3 -3
- package/dist/compress-audio.d.ts +2 -4
- package/dist/create-audio.d.ts +2 -4
- package/dist/create-silent-audio.d.ts +1 -2
- package/dist/crf.d.ts +4 -6
- package/dist/cycle-browser-tabs.d.ts +1 -2
- package/dist/ensure-browser.d.ts +44 -1
- package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
- package/dist/error-handling/handle-javascript-exception.js +7 -1
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.js +4 -0
- package/dist/error-handling.js +1 -1
- package/dist/esm/client.mjs +7 -2
- package/dist/esm/index.mjs +28 -4
- package/dist/extract-audio.d.ts +2 -3
- package/dist/ffmpeg-args.d.ts +6 -12
- package/dist/get-browser-instance.d.ts +4 -6
- package/dist/get-codec-name.d.ts +3 -6
- package/dist/get-compositions.d.ts +1 -1
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-extension-from-codec.d.ts +2 -3
- package/dist/get-frame-padded-index.d.ts +1 -2
- package/dist/get-local-browser-executable.d.ts +2 -4
- package/dist/get-prores-profile-name.d.ts +1 -3
- package/dist/get-silent-parts.d.ts +4 -5
- package/dist/get-video-metadata.d.ts +3 -4
- package/dist/get-video-threads-flag.d.ts +1 -2
- package/dist/goto-page-or-throw.d.ts +1 -1
- package/dist/guess-extension-for-media.d.ts +2 -3
- package/dist/image-format.d.ts +2 -3
- package/dist/index.d.ts +173 -172
- package/dist/index.js +16 -16
- package/dist/is-audio-codec.d.ts +1 -2
- package/dist/log-level.d.ts +1 -1
- package/dist/logger.d.ts +6 -6
- package/dist/make-page.d.ts +2 -4
- package/dist/memory/from-proc-meminfo.d.ts +1 -2
- package/dist/memory/get-available-memory.d.ts +1 -2
- package/dist/mime-types.js +2 -1
- package/dist/mux-video-and-audio.d.ts +2 -3
- package/dist/offthread-video-server.d.ts +1 -2
- package/dist/offthread-video-server.js +4 -6
- package/dist/open-browser.d.ts +1 -1
- package/dist/open-browser.js +6 -5
- package/dist/options/api-key.js +3 -1
- package/dist/options/audio-bitrate.js +9 -1
- package/dist/options/audio-codec.d.ts +10 -13
- package/dist/options/beep-on-finish.js +1 -1
- package/dist/options/binaries-directory.js +9 -1
- package/dist/options/chrome-mode.d.ts +3 -3
- package/dist/options/chrome-mode.js +6 -1
- package/dist/options/color-space.d.ts +5 -9
- package/dist/options/color-space.js +7 -1
- package/dist/options/crf.js +1 -1
- package/dist/options/cross-site-isolation.js +2 -1
- package/dist/options/dark-mode.js +2 -1
- package/dist/options/delete-after.js +11 -1
- package/dist/options/disallow-parallel-encoding.js +1 -1
- package/dist/options/enable-lambda-insights.js +2 -1
- package/dist/options/enable-multiprocess-on-linux.js +13 -1
- package/dist/options/encoding-buffer-size.js +3 -1
- package/dist/options/encoding-max-rate.js +3 -1
- package/dist/options/enforce-audio.js +1 -1
- package/dist/options/folder-expiry.js +4 -1
- package/dist/options/for-seamless-aac-concatenation.js +3 -1
- package/dist/options/gl.d.ts +6 -6
- package/dist/options/gl.js +28 -2
- package/dist/options/hardware-acceleration.d.ts +2 -2
- package/dist/options/headless.js +4 -1
- package/dist/options/image-sequence-pattern.js +5 -1
- package/dist/options/index.d.ts +25 -25
- package/dist/options/jpeg-quality.js +1 -1
- package/dist/options/latency-hint.js +10 -1
- package/dist/options/license-key.js +2 -1
- package/dist/options/log-level.d.ts +3 -4
- package/dist/options/log-level.js +16 -1
- package/dist/options/metadata.js +7 -2
- package/dist/options/mute.js +1 -1
- package/dist/options/number-of-gif-loops.js +13 -1
- package/dist/options/offthreadvideo-cache-size.js +11 -1
- package/dist/options/offthreadvideo-threads.js +2 -1
- package/dist/options/on-browser-download.js +2 -1
- package/dist/options/options-map.d.ts +93 -93
- package/dist/options/overwrite.js +5 -1
- package/dist/options/prefer-lossless.js +4 -1
- package/dist/options/public-dir.js +2 -1
- package/dist/options/public-license-key.js +3 -1
- package/dist/options/public-path.js +7 -1
- package/dist/options/repro.js +1 -1
- package/dist/options/scale.js +5 -1
- package/dist/options/timeout.js +4 -1
- package/dist/options/video-bitrate.js +7 -1
- package/dist/options/video-cache-size.js +8 -1
- package/dist/options/video-codec.d.ts +6 -6
- package/dist/options/video-codec.js +1 -1
- package/dist/options/webhook-custom-data.js +1 -1
- package/dist/options/x264-preset.d.ts +5 -6
- package/dist/options/x264-preset.js +23 -1
- package/dist/p-limit.d.ts +1 -1
- package/dist/pixel-format.d.ts +2 -3
- package/dist/pool.js +2 -0
- package/dist/port-config.d.ts +5 -6
- package/dist/prespawn-ffmpeg.js +5 -4
- package/dist/prestitcher-memory-usage.d.ts +1 -2
- package/dist/print-useful-error-message.d.ts +1 -2
- package/dist/prores-profile.d.ts +2 -4
- package/dist/puppeteer-evaluate.d.ts +2 -2
- package/dist/puppeteer-screenshot.d.ts +3 -4
- package/dist/pure.d.ts +5 -5
- package/dist/render-frame-and-retry-target-close.d.ts +8 -8
- package/dist/render-frame-with-option-to-reject.d.ts +4 -6
- package/dist/render-frame.d.ts +8 -8
- package/dist/render-has-audio.d.ts +2 -3
- package/dist/render-media.js +2 -1
- package/dist/replace-browser.d.ts +1 -2
- package/dist/repro.d.ts +1 -1
- package/dist/screenshot-task.d.ts +3 -4
- package/dist/seek-to-frame.d.ts +2 -3
- package/dist/serve-handler/index.d.ts +1 -1
- package/dist/serve-handler/range-parser.d.ts +2 -2
- package/dist/serve-static.d.ts +1 -2
- package/dist/set-props-and-env.js +3 -1
- package/dist/stringify-ffmpeg-filter.d.ts +1 -2
- package/dist/take-frame.d.ts +1 -2
- package/dist/test-gpu.d.ts +2 -4
- package/dist/validate-even-dimensions-with-codec.d.ts +2 -4
- package/dist/validate-ffmpeg-override.d.ts +1 -1
- package/dist/validate-number-of-gif-loops.d.ts +1 -2
- package/dist/validate-output-filename.d.ts +2 -4
- package/package.json +16 -14
|
@@ -14,18 +14,6 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
18
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
19
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
20
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
21
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
22
|
-
};
|
|
23
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
24
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
25
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
26
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
27
|
-
};
|
|
28
|
-
var _NetworkManager_instances, _NetworkManager_client, _NetworkManager_frameManager, _NetworkManager_networkEventManager, _NetworkManager_indent, _NetworkManager_logLevel, _NetworkManager_onRequestWillBeSent, _NetworkManager_onRequestPaused, _NetworkManager_patchRequestEventHeaders, _NetworkManager_onRequest, _NetworkManager_onRequestServedFromCache, _NetworkManager_handleRequestRedirect, _NetworkManager_emitResponseEvent, _NetworkManager_onResponseReceived, _NetworkManager_onResponseReceivedExtraInfo, _NetworkManager_forgetRequest, _NetworkManager_onLoadingFinished, _NetworkManager_emitLoadingFinished, _NetworkManager_onLoadingFailed, _NetworkManager_emitLoadingFailed;
|
|
29
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
18
|
exports.NetworkManager = exports.NetworkManagerEmittedEvents = void 0;
|
|
31
19
|
const EventEmitter_1 = require("./EventEmitter");
|
|
@@ -37,210 +25,229 @@ exports.NetworkManagerEmittedEvents = {
|
|
|
37
25
|
Request: Symbol('NetworkManager.Request'),
|
|
38
26
|
};
|
|
39
27
|
class NetworkManager extends EventEmitter_1.EventEmitter {
|
|
28
|
+
#client;
|
|
29
|
+
#frameManager;
|
|
30
|
+
#networkEventManager = new NetworkEventManager_1.NetworkEventManager();
|
|
31
|
+
#indent;
|
|
32
|
+
#logLevel;
|
|
40
33
|
constructor(client, frameManager, indent, logLevel) {
|
|
41
34
|
super();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
__classPrivateFieldGet(this, _NetworkManager_client, "f").on('Network.requestWillBeSent', __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onRequestWillBeSent).bind(this));
|
|
54
|
-
__classPrivateFieldGet(this, _NetworkManager_client, "f").on('Network.requestServedFromCache', __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onRequestServedFromCache).bind(this));
|
|
55
|
-
__classPrivateFieldGet(this, _NetworkManager_client, "f").on('Network.responseReceived', __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onResponseReceived).bind(this));
|
|
56
|
-
__classPrivateFieldGet(this, _NetworkManager_client, "f").on('Network.loadingFinished', __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onLoadingFinished).bind(this));
|
|
57
|
-
__classPrivateFieldGet(this, _NetworkManager_client, "f").on('Network.loadingFailed', __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onLoadingFailed).bind(this));
|
|
58
|
-
__classPrivateFieldGet(this, _NetworkManager_client, "f").on('Network.responseReceivedExtraInfo', __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onResponseReceivedExtraInfo).bind(this));
|
|
35
|
+
this.#client = client;
|
|
36
|
+
this.#frameManager = frameManager;
|
|
37
|
+
this.#indent = indent;
|
|
38
|
+
this.#logLevel = logLevel;
|
|
39
|
+
this.#client.on('Fetch.requestPaused', this.#onRequestPaused.bind(this));
|
|
40
|
+
this.#client.on('Network.requestWillBeSent', this.#onRequestWillBeSent.bind(this));
|
|
41
|
+
this.#client.on('Network.requestServedFromCache', this.#onRequestServedFromCache.bind(this));
|
|
42
|
+
this.#client.on('Network.responseReceived', this.#onResponseReceived.bind(this));
|
|
43
|
+
this.#client.on('Network.loadingFinished', this.#onLoadingFinished.bind(this));
|
|
44
|
+
this.#client.on('Network.loadingFailed', this.#onLoadingFailed.bind(this));
|
|
45
|
+
this.#client.on('Network.responseReceivedExtraInfo', this.#onResponseReceivedExtraInfo.bind(this));
|
|
59
46
|
}
|
|
60
47
|
async initialize() {
|
|
61
|
-
await
|
|
48
|
+
await this.#client.send('Network.enable');
|
|
49
|
+
}
|
|
50
|
+
#onRequestWillBeSent(event) {
|
|
51
|
+
this.#onRequest(event, undefined);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* CDP may send a Fetch.requestPaused without or before a
|
|
55
|
+
* Network.requestWillBeSent
|
|
56
|
+
*
|
|
57
|
+
* CDP may send multiple Fetch.requestPaused
|
|
58
|
+
* for the same Network.requestWillBeSent.
|
|
59
|
+
*/
|
|
60
|
+
#onRequestPaused(event) {
|
|
61
|
+
const { networkId: networkRequestId, requestId: fetchRequestId } = event;
|
|
62
|
+
if (!networkRequestId) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const requestWillBeSentEvent = (() => {
|
|
66
|
+
const _requestWillBeSentEvent = this.#networkEventManager.getRequestWillBeSent(networkRequestId);
|
|
67
|
+
// redirect requests have the same `requestId`,
|
|
68
|
+
if (_requestWillBeSentEvent &&
|
|
69
|
+
(_requestWillBeSentEvent.request.url !== event.request.url ||
|
|
70
|
+
_requestWillBeSentEvent.request.method !== event.request.method)) {
|
|
71
|
+
this.#networkEventManager.forgetRequestWillBeSent(networkRequestId);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
return _requestWillBeSentEvent;
|
|
75
|
+
})();
|
|
76
|
+
if (requestWillBeSentEvent) {
|
|
77
|
+
this.#patchRequestEventHeaders(requestWillBeSentEvent, event);
|
|
78
|
+
this.#onRequest(requestWillBeSentEvent, fetchRequestId);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.#networkEventManager.storeRequestPaused(networkRequestId, event);
|
|
82
|
+
}
|
|
62
83
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
84
|
+
#patchRequestEventHeaders(requestWillBeSentEvent, requestPausedEvent) {
|
|
85
|
+
requestWillBeSentEvent.request.headers = {
|
|
86
|
+
...requestWillBeSentEvent.request.headers,
|
|
87
|
+
// includes extra headers, like: Accept, Origin
|
|
88
|
+
...requestPausedEvent.request.headers,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
#onRequest(event, fetchRequestId) {
|
|
92
|
+
if (event.redirectResponse) {
|
|
93
|
+
// We want to emit a response and requestfinished for the
|
|
94
|
+
// redirectResponse, but we can't do so unless we have a
|
|
95
|
+
// responseExtraInfo ready to pair it up with. If we don't have any
|
|
96
|
+
// responseExtraInfos saved in our queue, they we have to wait until
|
|
97
|
+
// the next one to emit response and requestfinished, *and* we should
|
|
98
|
+
// also wait to emit this Request too because it should come after the
|
|
99
|
+
// response/requestfinished.
|
|
100
|
+
let redirectResponseExtraInfo = null;
|
|
101
|
+
if (event.redirectHasExtraInfo) {
|
|
102
|
+
redirectResponseExtraInfo = this.#networkEventManager
|
|
103
|
+
.getResponseExtraInfo(event.requestId)
|
|
104
|
+
.shift();
|
|
105
|
+
if (!redirectResponseExtraInfo) {
|
|
106
|
+
this.#networkEventManager.queueRedirectInfo(event.requestId, {
|
|
107
|
+
event,
|
|
108
|
+
fetchRequestId,
|
|
109
|
+
});
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const _request = this.#networkEventManager.getRequest(event.requestId);
|
|
114
|
+
// If we connect late to the target, we could have missed the
|
|
115
|
+
// requestWillBeSent event.
|
|
116
|
+
if (_request) {
|
|
117
|
+
this.#handleRequestRedirect(_request, event.redirectResponse, redirectResponseExtraInfo);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const frame = event.frameId
|
|
121
|
+
? this.#frameManager.frame(event.frameId)
|
|
122
|
+
: null;
|
|
123
|
+
const request = new HTTPRequest_1.HTTPRequest(frame, event);
|
|
124
|
+
this.#networkEventManager.storeRequest(event.requestId, request);
|
|
125
|
+
this.emit(exports.NetworkManagerEmittedEvents.Request, request);
|
|
126
|
+
}
|
|
127
|
+
#onRequestServedFromCache(event) {
|
|
128
|
+
const request = this.#networkEventManager.getRequest(event.requestId);
|
|
129
|
+
if (request) {
|
|
130
|
+
request._fromMemoryCache = true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
#handleRequestRedirect(request, responsePayload, extraInfo) {
|
|
134
|
+
const response = new HTTPResponse_1.HTTPResponse(responsePayload, extraInfo);
|
|
135
|
+
request._response = response;
|
|
136
|
+
this.#forgetRequest(request, false);
|
|
137
|
+
}
|
|
138
|
+
#emitResponseEvent(responseReceived, extraInfo) {
|
|
139
|
+
const request = this.#networkEventManager.getRequest(responseReceived.requestId);
|
|
140
|
+
// FileUpload sends a response without a matching request.
|
|
141
|
+
if (!request) {
|
|
79
142
|
return;
|
|
80
143
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
}, _NetworkManager_patchRequestEventHeaders = function _NetworkManager_patchRequestEventHeaders(requestWillBeSentEvent, requestPausedEvent) {
|
|
91
|
-
requestWillBeSentEvent.request.headers = {
|
|
92
|
-
...requestWillBeSentEvent.request.headers,
|
|
93
|
-
// includes extra headers, like: Accept, Origin
|
|
94
|
-
...requestPausedEvent.request.headers,
|
|
95
|
-
};
|
|
96
|
-
}, _NetworkManager_onRequest = function _NetworkManager_onRequest(event, fetchRequestId) {
|
|
97
|
-
if (event.redirectResponse) {
|
|
98
|
-
// We want to emit a response and requestfinished for the
|
|
99
|
-
// redirectResponse, but we can't do so unless we have a
|
|
100
|
-
// responseExtraInfo ready to pair it up with. If we don't have any
|
|
101
|
-
// responseExtraInfos saved in our queue, they we have to wait until
|
|
102
|
-
// the next one to emit response and requestfinished, *and* we should
|
|
103
|
-
// also wait to emit this Request too because it should come after the
|
|
104
|
-
// response/requestfinished.
|
|
105
|
-
let redirectResponseExtraInfo = null;
|
|
106
|
-
if (event.redirectHasExtraInfo) {
|
|
107
|
-
redirectResponseExtraInfo = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f")
|
|
144
|
+
const response = new HTTPResponse_1.HTTPResponse(responseReceived.response, extraInfo);
|
|
145
|
+
request._response = response;
|
|
146
|
+
}
|
|
147
|
+
#onResponseReceived(event) {
|
|
148
|
+
const request = this.#networkEventManager.getRequest(event.requestId);
|
|
149
|
+
let extraInfo = null;
|
|
150
|
+
if (request && !request._fromMemoryCache && event.hasExtraInfo) {
|
|
151
|
+
extraInfo = this.#networkEventManager
|
|
108
152
|
.getResponseExtraInfo(event.requestId)
|
|
109
153
|
.shift();
|
|
110
|
-
if (!
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
154
|
+
if (!extraInfo) {
|
|
155
|
+
// Wait until we get the corresponding ExtraInfo event.
|
|
156
|
+
this.#networkEventManager.queueEventGroup(event.requestId, {
|
|
157
|
+
responseReceivedEvent: event,
|
|
114
158
|
});
|
|
115
159
|
return;
|
|
116
160
|
}
|
|
117
161
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
162
|
+
this.#emitResponseEvent(event, extraInfo);
|
|
163
|
+
}
|
|
164
|
+
#onResponseReceivedExtraInfo(event) {
|
|
165
|
+
// We may have skipped a redirect response/request pair due to waiting for
|
|
166
|
+
// this ExtraInfo event. If so, continue that work now that we have the
|
|
167
|
+
// request.
|
|
168
|
+
const redirectInfo = this.#networkEventManager.takeQueuedRedirectInfo(event.requestId);
|
|
169
|
+
if (redirectInfo) {
|
|
170
|
+
this.#networkEventManager
|
|
171
|
+
.getResponseExtraInfo(event.requestId)
|
|
172
|
+
.push(event);
|
|
173
|
+
this.#onRequest(redirectInfo.event, redirectInfo.fetchRequestId);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
// We may have skipped response and loading events because we didn't have
|
|
177
|
+
// this ExtraInfo event yet. If so, emit those events now.
|
|
178
|
+
const queuedEvents = this.#networkEventManager.getQueuedEventGroup(event.requestId);
|
|
179
|
+
if (queuedEvents) {
|
|
180
|
+
this.#networkEventManager.forgetQueuedEventGroup(event.requestId);
|
|
181
|
+
this.#emitResponseEvent(queuedEvents.responseReceivedEvent, event);
|
|
182
|
+
if (queuedEvents.loadingFinishedEvent) {
|
|
183
|
+
this.#emitLoadingFinished(queuedEvents.loadingFinishedEvent);
|
|
184
|
+
}
|
|
185
|
+
if (queuedEvents.loadingFailedEvent) {
|
|
186
|
+
this.#emitLoadingFailed(queuedEvents.loadingFailedEvent);
|
|
187
|
+
}
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
// Wait until we get another event that can use this ExtraInfo event.
|
|
191
|
+
this.#networkEventManager.getResponseExtraInfo(event.requestId).push(event);
|
|
192
|
+
}
|
|
193
|
+
#forgetRequest(request, events) {
|
|
194
|
+
const requestId = request._requestId;
|
|
195
|
+
this.#networkEventManager.forgetRequest(requestId);
|
|
196
|
+
if (events) {
|
|
197
|
+
this.#networkEventManager.forget(requestId);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
#onLoadingFinished(event) {
|
|
201
|
+
// If the response event for this request is still waiting on a
|
|
202
|
+
// corresponding ExtraInfo event, then wait to emit this event too.
|
|
203
|
+
const queuedEvents = this.#networkEventManager.getQueuedEventGroup(event.requestId);
|
|
204
|
+
if (queuedEvents) {
|
|
205
|
+
queuedEvents.loadingFinishedEvent = event;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
this.#emitLoadingFinished(event);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
#emitLoadingFinished(event) {
|
|
212
|
+
const request = this.#networkEventManager.getRequest(event.requestId);
|
|
213
|
+
// For certain requestIds we never receive requestWillBeSent event.
|
|
214
|
+
// @see https://crbug.com/750469
|
|
215
|
+
if (!request) {
|
|
160
216
|
return;
|
|
161
217
|
}
|
|
218
|
+
this.#forgetRequest(request, true);
|
|
219
|
+
}
|
|
220
|
+
#onLoadingFailed(event) {
|
|
221
|
+
// If the response event for this request is still waiting on a
|
|
222
|
+
// corresponding ExtraInfo event, then wait to emit this event too.
|
|
223
|
+
const queuedEvents = this.#networkEventManager.getQueuedEventGroup(event.requestId);
|
|
224
|
+
if (queuedEvents) {
|
|
225
|
+
queuedEvents.loadingFailedEvent = event;
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
this.#emitLoadingFailed(event);
|
|
229
|
+
}
|
|
162
230
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_emitLoadingFailed).call(this, queuedEvents.loadingFailedEvent);
|
|
187
|
-
}
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
// Wait until we get another event that can use this ExtraInfo event.
|
|
191
|
-
__classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getResponseExtraInfo(event.requestId).push(event);
|
|
192
|
-
}, _NetworkManager_forgetRequest = function _NetworkManager_forgetRequest(request, events) {
|
|
193
|
-
const requestId = request._requestId;
|
|
194
|
-
__classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").forgetRequest(requestId);
|
|
195
|
-
if (events) {
|
|
196
|
-
__classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").forget(requestId);
|
|
197
|
-
}
|
|
198
|
-
}, _NetworkManager_onLoadingFinished = function _NetworkManager_onLoadingFinished(event) {
|
|
199
|
-
// If the response event for this request is still waiting on a
|
|
200
|
-
// corresponding ExtraInfo event, then wait to emit this event too.
|
|
201
|
-
const queuedEvents = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getQueuedEventGroup(event.requestId);
|
|
202
|
-
if (queuedEvents) {
|
|
203
|
-
queuedEvents.loadingFinishedEvent = event;
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_emitLoadingFinished).call(this, event);
|
|
207
|
-
}
|
|
208
|
-
}, _NetworkManager_emitLoadingFinished = function _NetworkManager_emitLoadingFinished(event) {
|
|
209
|
-
const request = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getRequest(event.requestId);
|
|
210
|
-
// For certain requestIds we never receive requestWillBeSent event.
|
|
211
|
-
// @see https://crbug.com/750469
|
|
212
|
-
if (!request) {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
|
|
216
|
-
}, _NetworkManager_onLoadingFailed = function _NetworkManager_onLoadingFailed(event) {
|
|
217
|
-
// If the response event for this request is still waiting on a
|
|
218
|
-
// corresponding ExtraInfo event, then wait to emit this event too.
|
|
219
|
-
const queuedEvents = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getQueuedEventGroup(event.requestId);
|
|
220
|
-
if (queuedEvents) {
|
|
221
|
-
queuedEvents.loadingFailedEvent = event;
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_emitLoadingFailed).call(this, event);
|
|
225
|
-
}
|
|
226
|
-
}, _NetworkManager_emitLoadingFailed = function _NetworkManager_emitLoadingFailed(event) {
|
|
227
|
-
const request = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getRequest(event.requestId);
|
|
228
|
-
// For certain requestIds we never receive requestWillBeSent event.
|
|
229
|
-
// @see https://crbug.com/750469
|
|
230
|
-
if (!request) {
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
if (event.canceled) {
|
|
234
|
-
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
const extraInfo = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getResponseExtraInfo(event.requestId);
|
|
238
|
-
(0, handle_failed_resource_1.handleFailedResource)({
|
|
239
|
-
extraInfo,
|
|
240
|
-
event,
|
|
241
|
-
indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"),
|
|
242
|
-
logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f"),
|
|
243
|
-
request,
|
|
244
|
-
});
|
|
245
|
-
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
|
|
246
|
-
};
|
|
231
|
+
#emitLoadingFailed(event) {
|
|
232
|
+
const request = this.#networkEventManager.getRequest(event.requestId);
|
|
233
|
+
// For certain requestIds we never receive requestWillBeSent event.
|
|
234
|
+
// @see https://crbug.com/750469
|
|
235
|
+
if (!request) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (event.canceled) {
|
|
239
|
+
this.#forgetRequest(request, true);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const extraInfo = this.#networkEventManager.getResponseExtraInfo(event.requestId);
|
|
243
|
+
(0, handle_failed_resource_1.handleFailedResource)({
|
|
244
|
+
extraInfo,
|
|
245
|
+
event,
|
|
246
|
+
indent: this.#indent,
|
|
247
|
+
logLevel: this.#logLevel,
|
|
248
|
+
request,
|
|
249
|
+
});
|
|
250
|
+
this.#forgetRequest(request, true);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
exports.NetworkManager = NetworkManager;
|
package/dist/browser/Target.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare class Target {
|
|
|
38
38
|
/**
|
|
39
39
|
* If the target is not of type `"page"` or `"background_page"`, returns `null`.
|
|
40
40
|
*/
|
|
41
|
-
page({ sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog
|
|
41
|
+
page({ sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog }: {
|
|
42
42
|
sourceMapGetter: SourceMapGetter;
|
|
43
43
|
logLevel: LogLevel;
|
|
44
44
|
indent: boolean;
|
package/dist/browser/Target.js
CHANGED
|
@@ -14,18 +14,6 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
18
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
19
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
20
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
21
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
22
|
-
};
|
|
23
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
24
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
25
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
26
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
27
|
-
};
|
|
28
|
-
var _Target_browserContext, _Target_targetInfo, _Target_sessionFactory, _Target_defaultViewport, _Target_pagePromise;
|
|
29
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
18
|
exports.Target = void 0;
|
|
31
19
|
const BrowserPage_1 = require("./BrowserPage");
|
|
@@ -35,17 +23,23 @@ const isPagetTarget = (target) => {
|
|
|
35
23
|
target.type === 'webview');
|
|
36
24
|
};
|
|
37
25
|
class Target {
|
|
26
|
+
#browserContext;
|
|
27
|
+
#targetInfo;
|
|
28
|
+
#sessionFactory;
|
|
29
|
+
#defaultViewport;
|
|
30
|
+
#pagePromise;
|
|
31
|
+
_initializedPromise;
|
|
32
|
+
_initializedCallback;
|
|
33
|
+
_isClosedPromise;
|
|
34
|
+
_closedCallback;
|
|
35
|
+
_isInitialized;
|
|
36
|
+
_targetId;
|
|
38
37
|
constructor(targetInfo, browserContext, sessionFactory, defaultViewport) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_Target_sessionFactory.set(this, void 0);
|
|
42
|
-
_Target_defaultViewport.set(this, void 0);
|
|
43
|
-
_Target_pagePromise.set(this, void 0);
|
|
44
|
-
__classPrivateFieldSet(this, _Target_targetInfo, targetInfo, "f");
|
|
45
|
-
__classPrivateFieldSet(this, _Target_browserContext, browserContext, "f");
|
|
38
|
+
this.#targetInfo = targetInfo;
|
|
39
|
+
this.#browserContext = browserContext;
|
|
46
40
|
this._targetId = targetInfo.targetId;
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
this.#sessionFactory = sessionFactory;
|
|
42
|
+
this.#defaultViewport = defaultViewport;
|
|
49
43
|
this._initializedPromise = new Promise((fulfill) => {
|
|
50
44
|
this._initializedCallback = fulfill;
|
|
51
45
|
}).then((success) => {
|
|
@@ -53,7 +47,7 @@ class Target {
|
|
|
53
47
|
return false;
|
|
54
48
|
}
|
|
55
49
|
const opener = this.opener();
|
|
56
|
-
if (!opener || !
|
|
50
|
+
if (!opener || !opener.#pagePromise || this.type() !== 'page') {
|
|
57
51
|
return true;
|
|
58
52
|
}
|
|
59
53
|
return true;
|
|
@@ -62,7 +56,7 @@ class Target {
|
|
|
62
56
|
this._closedCallback = fulfill;
|
|
63
57
|
});
|
|
64
58
|
this._isInitialized =
|
|
65
|
-
!isPagetTarget(
|
|
59
|
+
!isPagetTarget(this.#targetInfo) || this.#targetInfo.url !== '';
|
|
66
60
|
if (this._isInitialized) {
|
|
67
61
|
this._initializedCallback(true);
|
|
68
62
|
}
|
|
@@ -71,23 +65,23 @@ class Target {
|
|
|
71
65
|
* Creates a Chrome Devtools Protocol session attached to the target.
|
|
72
66
|
*/
|
|
73
67
|
createCDPSession() {
|
|
74
|
-
return
|
|
68
|
+
return this.#sessionFactory();
|
|
75
69
|
}
|
|
76
70
|
_getTargetInfo() {
|
|
77
|
-
return
|
|
71
|
+
return this.#targetInfo;
|
|
78
72
|
}
|
|
79
73
|
/**
|
|
80
74
|
* If the target is not of type `"page"` or `"background_page"`, returns `null`.
|
|
81
75
|
*/
|
|
82
76
|
async page({ sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog, }) {
|
|
83
77
|
var _a;
|
|
84
|
-
if (isPagetTarget(
|
|
85
|
-
|
|
78
|
+
if (isPagetTarget(this.#targetInfo) && !this.#pagePromise) {
|
|
79
|
+
this.#pagePromise = this.#sessionFactory().then((client) => {
|
|
86
80
|
var _a;
|
|
87
81
|
return BrowserPage_1.Page._create({
|
|
88
82
|
client,
|
|
89
83
|
target: this,
|
|
90
|
-
defaultViewport: (_a =
|
|
84
|
+
defaultViewport: (_a = this.#defaultViewport) !== null && _a !== void 0 ? _a : null,
|
|
91
85
|
browser: this.browser(),
|
|
92
86
|
sourceMapGetter,
|
|
93
87
|
logLevel,
|
|
@@ -96,16 +90,16 @@ class Target {
|
|
|
96
90
|
onBrowserLog,
|
|
97
91
|
onLog,
|
|
98
92
|
});
|
|
99
|
-
})
|
|
93
|
+
});
|
|
100
94
|
}
|
|
101
|
-
return (_a = (await
|
|
95
|
+
return (_a = (await this.#pagePromise)) !== null && _a !== void 0 ? _a : null;
|
|
102
96
|
}
|
|
103
97
|
async expectPage() {
|
|
104
98
|
var _a;
|
|
105
|
-
return (_a = (await
|
|
99
|
+
return (_a = (await this.#pagePromise)) !== null && _a !== void 0 ? _a : null;
|
|
106
100
|
}
|
|
107
101
|
url() {
|
|
108
|
-
return
|
|
102
|
+
return this.#targetInfo.url;
|
|
109
103
|
}
|
|
110
104
|
/**
|
|
111
105
|
* Identifies what kind of target this is.
|
|
@@ -115,7 +109,7 @@ class Target {
|
|
|
115
109
|
* See {@link https://developer.chrome.com/extensions/background_pages | docs} for more info about background pages.
|
|
116
110
|
*/
|
|
117
111
|
type() {
|
|
118
|
-
const { type } =
|
|
112
|
+
const { type } = this.#targetInfo;
|
|
119
113
|
if (type === 'page' ||
|
|
120
114
|
type === 'background_page' ||
|
|
121
115
|
type === 'service_worker' ||
|
|
@@ -130,32 +124,31 @@ class Target {
|
|
|
130
124
|
* Get the browser the target belongs to.
|
|
131
125
|
*/
|
|
132
126
|
browser() {
|
|
133
|
-
return
|
|
127
|
+
return this.#browserContext.browser();
|
|
134
128
|
}
|
|
135
129
|
/**
|
|
136
130
|
* Get the browser context the target belongs to.
|
|
137
131
|
*/
|
|
138
132
|
browserContext() {
|
|
139
|
-
return
|
|
133
|
+
return this.#browserContext;
|
|
140
134
|
}
|
|
141
135
|
/**
|
|
142
136
|
* Get the target that opened this target. Top-level targets return `null`.
|
|
143
137
|
*/
|
|
144
138
|
opener() {
|
|
145
|
-
const { openerId } =
|
|
139
|
+
const { openerId } = this.#targetInfo;
|
|
146
140
|
if (!openerId) {
|
|
147
141
|
return;
|
|
148
142
|
}
|
|
149
143
|
return this.browser()._targets.get(openerId);
|
|
150
144
|
}
|
|
151
145
|
_targetInfoChanged(targetInfo) {
|
|
152
|
-
|
|
146
|
+
this.#targetInfo = targetInfo;
|
|
153
147
|
if (!this._isInitialized &&
|
|
154
|
-
(!isPagetTarget(
|
|
148
|
+
(!isPagetTarget(this.#targetInfo) || this.#targetInfo.url !== '')) {
|
|
155
149
|
this._isInitialized = true;
|
|
156
150
|
this._initializedCallback(true);
|
|
157
151
|
}
|
|
158
152
|
}
|
|
159
153
|
}
|
|
160
154
|
exports.Target = Target;
|
|
161
|
-
_Target_browserContext = new WeakMap(), _Target_targetInfo = new WeakMap(), _Target_sessionFactory = new WeakMap(), _Target_defaultViewport = new WeakMap(), _Target_pagePromise = new WeakMap();
|