@remotion/renderer 4.0.536 → 4.0.538
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/aac-priming.d.ts +2 -1
- package/dist/assets/apply-tone-frequency.d.ts +2 -1
- package/dist/assets/apply-tone-frequency.js +8 -1
- package/dist/assets/calculate-asset-positions.js +2 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +2 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts +3 -2
- package/dist/assets/get-audio-channels.d.ts +3 -2
- package/dist/assets/inline-audio-mixing.d.ts +2 -1
- package/dist/assets/types.d.ts +2 -1
- package/dist/browser/Browser.d.ts +5 -5
- package/dist/browser/Browser.js +74 -65
- package/dist/browser/BrowserFetcher.d.ts +7 -5
- package/dist/browser/BrowserPage.d.ts +4 -4
- package/dist/browser/BrowserPage.js +222 -226
- package/dist/browser/BrowserRunner.d.ts +2 -1
- package/dist/browser/Connection.js +109 -96
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/ConsoleMessage.js +16 -9
- package/dist/browser/DOMWorld.d.ts +1 -1
- package/dist/browser/DOMWorld.js +91 -77
- package/dist/browser/Errors.js +4 -2
- package/dist/browser/EventEmitter.js +1 -2
- package/dist/browser/ExecutionContext.js +120 -117
- package/dist/browser/FrameManager.js +244 -249
- package/dist/browser/HTTPRequest.js +22 -11
- package/dist/browser/HTTPResponse.js +16 -3
- package/dist/browser/JSHandle.js +30 -17
- package/dist/browser/LifecycleWatcher.js +128 -122
- package/dist/browser/NetworkEventManager.js +40 -31
- package/dist/browser/NetworkManager.js +203 -210
- package/dist/browser/NodeWebSocketTransport.js +0 -3
- package/dist/browser/Target.d.ts +1 -1
- package/dist/browser/Target.js +39 -32
- package/dist/browser/TaskQueue.js +18 -5
- package/dist/browser/TimeoutSettings.js +25 -12
- package/dist/browser/browser-download-progress-bar.d.ts +2 -1
- package/dist/browser/get-chrome-download-url.d.ts +3 -2
- package/dist/browser/handle-failed-resource.d.ts +2 -1
- package/dist/call-ffmpeg.d.ts +7 -6
- package/dist/can-concat-seamlessly.d.ts +4 -2
- package/dist/can-use-parallel-encoding.d.ts +2 -1
- package/dist/check-version-requirements.d.ts +2 -1
- package/dist/client.d.ts +302 -280
- package/dist/client.js +2 -2
- package/dist/codec-supports-media.d.ts +4 -3
- package/dist/codec.d.ts +1 -1
- package/dist/collect-assets.d.ts +1 -1
- package/dist/combine-audio.d.ts +4 -2
- package/dist/combine-chunks.d.ts +2 -1
- package/dist/combine-video-streams.d.ts +4 -2
- package/dist/compositor/compositor.d.ts +4 -3
- package/dist/compositor/get-executable-path.d.ts +4 -4
- package/dist/compress-audio.d.ts +4 -2
- package/dist/create-audio.d.ts +4 -2
- package/dist/create-silent-audio.d.ts +2 -1
- package/dist/crf.d.ts +6 -4
- package/dist/cycle-browser-tabs.d.ts +2 -1
- package/dist/ensure-browser.d.ts +1 -52
- package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
- package/dist/error-handling/handle-javascript-exception.js +0 -5
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.js +0 -4
- package/dist/error-handling.js +1 -1
- package/dist/esm/client.mjs +306 -238
- package/dist/esm/index.mjs +108 -88
- package/dist/extract-audio.d.ts +3 -2
- package/dist/ffmpeg-args.d.ts +12 -6
- package/dist/finalize-fast-start.d.ts +2 -1
- package/dist/get-browser-instance.d.ts +6 -4
- package/dist/get-codec-name.d.ts +6 -3
- package/dist/get-compositions.d.ts +2 -1
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-concurrency.js +1 -1
- package/dist/get-duration-from-frame-range.d.ts +1 -1
- package/dist/get-extension-from-codec.d.ts +2 -1
- package/dist/get-frame-padded-index.d.ts +2 -1
- package/dist/get-local-browser-executable.d.ts +4 -2
- package/dist/get-port.d.ts +1 -1
- package/dist/get-prores-profile-name.d.ts +3 -1
- package/dist/get-silent-parts.d.ts +5 -4
- package/dist/get-video-metadata.d.ts +4 -3
- package/dist/get-video-threads-flag.d.ts +2 -1
- package/dist/goto-page-or-throw.d.ts +1 -1
- package/dist/guess-extension-for-media.d.ts +2 -1
- package/dist/image-format.d.ts +6 -5
- package/dist/index.d.ts +213 -440
- package/dist/index.js +18 -18
- package/dist/is-audio-codec.d.ts +2 -1
- package/dist/log-level.d.ts +2 -2
- package/dist/logger.d.ts +6 -6
- package/dist/make-page.d.ts +5 -3
- package/dist/memory/from-macos-sysctl.d.ts +2 -1
- package/dist/memory/from-proc-meminfo.d.ts +2 -1
- package/dist/memory/get-available-memory.d.ts +2 -1
- package/dist/merge-inline-audio-tracks.d.ts +2 -1
- package/dist/mux-video-and-audio.d.ts +5 -3
- package/dist/offthread-video-server.d.ts +2 -1
- package/dist/offthread-video-server.js +6 -4
- package/dist/open-browser.d.ts +2 -2
- package/dist/options/allow-html-in-canvas.js +1 -2
- package/dist/options/api-key.d.ts +1 -1
- package/dist/options/api-key.js +1 -3
- package/dist/options/ask-ai.js +1 -1
- package/dist/options/audio-bitrate.js +1 -9
- package/dist/options/audio-codec.d.ts +23 -20
- package/dist/options/beep-on-finish.js +1 -1
- package/dist/options/benchmark-concurrencies.js +1 -2
- package/dist/options/binaries-directory.d.ts +1 -1
- package/dist/options/binaries-directory.js +1 -9
- package/dist/options/browser-executable.d.ts +1 -1
- package/dist/options/browser-executable.js +1 -1
- package/dist/options/browser.js +1 -2
- package/dist/options/bundle-cache.js +1 -2
- package/dist/options/canvas-tabs.js +1 -1
- package/dist/options/chrome-mode.d.ts +4 -4
- package/dist/options/chrome-mode.js +1 -6
- package/dist/options/color-space.d.ts +9 -5
- package/dist/options/color-space.js +1 -8
- package/dist/options/concurrency.d.ts +1 -1
- package/dist/options/concurrency.js +1 -5
- package/dist/options/config.js +1 -1
- package/dist/options/crf.js +1 -1
- package/dist/options/cross-site-isolation.js +1 -2
- package/dist/options/dark-mode.js +1 -2
- package/dist/options/default-coding-agent.d.ts +2 -2
- package/dist/options/default-coding-agent.js +1 -2
- package/dist/options/default-editor.d.ts +4 -4
- package/dist/options/default-editor.js +1 -3
- package/dist/options/default-premount-in-seconds.js +1 -1
- package/dist/options/delete-after.d.ts +1 -1
- package/dist/options/delete-after.js +1 -11
- package/dist/options/disable-shared-memory-capture.js +1 -3
- package/dist/options/disable-web-security.d.ts +1 -1
- package/dist/options/disable-web-security.js +1 -1
- package/dist/options/disallow-parallel-encoding.js +1 -1
- package/dist/options/enable-cancellation.js +1 -2
- package/dist/options/enable-lambda-insights.js +1 -2
- package/dist/options/enable-multiprocess-on-linux.js +1 -13
- package/dist/options/encoding-buffer-size.d.ts +4 -2
- package/dist/options/encoding-buffer-size.js +1 -3
- package/dist/options/encoding-max-rate.d.ts +1 -1
- package/dist/options/encoding-max-rate.js +1 -3
- package/dist/options/enforce-audio.js +1 -15
- package/dist/options/env-file.js +1 -3
- package/dist/options/every-nth-frame.d.ts +1 -1
- package/dist/options/every-nth-frame.js +1 -6
- package/dist/options/experimental-keep-audio-context-alive.js +1 -3
- package/dist/options/folder-expiry.d.ts +1 -1
- package/dist/options/folder-expiry.js +1 -4
- package/dist/options/for-seamless-aac-concatenation.js +1 -3
- package/dist/options/force-new-studio.js +1 -1
- package/dist/options/frames.d.ts +1 -1
- package/dist/options/frames.js +1 -4
- package/dist/options/gl.d.ts +6 -6
- package/dist/options/gl.js +3 -28
- package/dist/options/gop-size.js +1 -3
- package/dist/options/hardware-acceleration.d.ts +3 -3
- package/dist/options/headless.js +1 -1
- package/dist/options/ignore-certificate-errors.d.ts +1 -1
- package/dist/options/ignore-certificate-errors.js +1 -1
- package/dist/options/image-sequence-pattern.js +1 -5
- package/dist/options/image-sequence.js +1 -1
- package/dist/options/index.d.ts +91 -72
- package/dist/options/index.js +2 -0
- package/dist/options/interactivity.js +1 -1
- package/dist/options/ipv4.js +1 -1
- package/dist/options/is-production.d.ts +1 -1
- package/dist/options/is-production.js +1 -4
- package/dist/options/jpeg-quality.d.ts +1 -1
- package/dist/options/jpeg-quality.js +1 -4
- package/dist/options/keyboard-shortcuts.js +1 -1
- package/dist/options/latency-hint.d.ts +1 -1
- package/dist/options/latency-hint.js +1 -10
- package/dist/options/license-key.d.ts +1 -1
- package/dist/options/license-key.js +1 -2
- package/dist/options/log-level.d.ts +4 -3
- package/dist/options/log-level.js +1 -16
- package/dist/options/metadata.js +2 -7
- package/dist/options/mute.js +1 -1
- package/dist/options/no-open.js +1 -1
- package/dist/options/number-of-gif-loops.d.ts +1 -1
- package/dist/options/number-of-gif-loops.js +1 -13
- package/dist/options/number-of-shared-audio-tags.js +1 -1
- package/dist/options/offthreadvideo-cache-size.d.ts +1 -1
- package/dist/options/offthreadvideo-cache-size.js +1 -11
- package/dist/options/offthreadvideo-threads.d.ts +1 -1
- package/dist/options/offthreadvideo-threads.js +1 -2
- package/dist/options/on-browser-download.d.ts +1 -1
- package/dist/options/on-browser-download.js +1 -2
- package/dist/options/options-map.d.ts +180 -180
- package/dist/options/out-dir.d.ts +1 -1
- package/dist/options/out-dir.js +1 -4
- package/dist/options/override-duration.js +1 -1
- package/dist/options/override-fps.js +1 -1
- package/dist/options/override-height.js +1 -1
- package/dist/options/override-width.js +1 -1
- package/dist/options/overwrite.js +1 -5
- package/dist/options/package-manager.d.ts +1 -1
- package/dist/options/package-manager.js +1 -12
- package/dist/options/pixel-format.d.ts +6 -5
- package/dist/options/pixel-format.js +1 -2
- package/dist/options/port.js +1 -1
- package/dist/options/prefer-lossless.d.ts +1 -1
- package/dist/options/prefer-lossless.js +1 -4
- package/dist/options/{experimental-tracks.d.ts → preserve-pitch-on-playback.d.ts} +3 -3
- package/dist/options/preserve-pitch-on-playback.js +36 -0
- package/dist/options/preview-sample-rate.js +1 -3
- package/dist/options/props.js +1 -5
- package/dist/options/prores-profile.d.ts +2 -2
- package/dist/options/prores-profile.js +1 -5
- package/dist/options/public-dir.d.ts +1 -1
- package/dist/options/public-dir.js +1 -2
- package/dist/options/public-license-key.d.ts +1 -1
- package/dist/options/public-license-key.js +1 -3
- package/dist/options/public-path.d.ts +1 -1
- package/dist/options/public-path.js +1 -5
- package/dist/options/repro.d.ts +3 -1
- package/dist/options/repro.js +1 -1
- package/dist/options/rspack.js +1 -1
- package/dist/options/runs.js +1 -3
- package/dist/options/sample-rate.d.ts +2 -2
- package/dist/options/sample-rate.js +1 -2
- package/dist/options/scale.js +1 -5
- package/dist/options/sequence-activity-limit.js +1 -4
- package/dist/options/show-layer-frame-numbers.js +1 -3
- package/dist/options/show-premounting.js +1 -2
- package/dist/options/skip-skills.js +1 -1
- package/dist/options/still-frame.d.ts +1 -1
- package/dist/options/still-frame.js +1 -3
- package/dist/options/still-image-format.d.ts +3 -2
- package/dist/options/still-image-format.js +1 -2
- package/dist/options/timeout.d.ts +1 -1
- package/dist/options/timeout.js +1 -4
- package/dist/options/user-agent.d.ts +1 -1
- package/dist/options/user-agent.js +1 -1
- package/dist/options/version-flag.js +1 -1
- package/dist/options/video-bitrate.js +1 -7
- package/dist/options/video-cache-size.d.ts +1 -1
- package/dist/options/video-cache-size.js +1 -7
- package/dist/options/video-codec.d.ts +9 -7
- package/dist/options/video-codec.js +1 -1
- package/dist/options/video-image-format.d.ts +6 -5
- package/dist/options/video-image-format.js +1 -6
- package/dist/options/webhook-custom-data.d.ts +1 -1
- package/dist/options/webhook-custom-data.js +1 -1
- package/dist/options/webpack-poll.js +1 -1
- package/dist/options/x264-preset.d.ts +8 -7
- package/dist/options/x264-preset.js +1 -23
- package/dist/p-limit.d.ts +1 -1
- package/dist/pixel-format.d.ts +4 -3
- package/dist/pool.js +0 -2
- package/dist/port-config.d.ts +6 -5
- package/dist/prespawn-ffmpeg.d.ts +1 -1
- package/dist/print-useful-error-message.d.ts +2 -1
- package/dist/probe-encoder.d.ts +8 -5
- package/dist/probe-shared-memory-capture.d.ts +4 -2
- package/dist/prores-profile.d.ts +4 -2
- package/dist/puppeteer-evaluate.d.ts +2 -2
- package/dist/puppeteer-screenshot.d.ts +4 -3
- package/dist/pure.d.ts +12 -15
- package/dist/remotion-shared-memory.d.ts +1 -1
- package/dist/remotion-shared-memory.js +199 -187
- package/dist/render-frame-and-retry-target-close.d.ts +10 -10
- package/dist/render-frame-with-option-to-reject.d.ts +7 -5
- package/dist/render-frame-with-option-to-reject.js +1 -5
- package/dist/render-frame.d.ts +8 -6
- package/dist/render-frames.d.ts +1 -40
- package/dist/render-has-audio.d.ts +3 -2
- package/dist/replace-browser.d.ts +2 -1
- package/dist/repro.d.ts +1 -1
- package/dist/screenshot-task.d.ts +4 -3
- package/dist/seek-to-frame.d.ts +3 -2
- package/dist/select-composition.d.ts +1 -20
- 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 +2 -1
- package/dist/serve-static.js +4 -4
- package/dist/set-props-and-env.js +2 -6
- package/dist/stringify-ffmpeg-filter.d.ts +2 -1
- package/dist/stringify-ffmpeg-filter.js +20 -2
- package/dist/take-frame.d.ts +1 -1
- package/dist/test-gpu.d.ts +4 -2
- package/dist/validate-even-dimensions-with-codec.d.ts +4 -2
- package/dist/validate-ffmpeg-override.d.ts +1 -1
- package/dist/validate-number-of-gif-loops.d.ts +2 -1
- package/dist/validate-output-filename.d.ts +4 -2
- package/package.json +16 -16
- package/dist/options/experimental-sequence-activity-limit.d.ts +0 -19
- package/dist/options/experimental-sequence-activity-limit.js +0 -40
- package/dist/options/experimental-sequence-activity.d.ts +0 -19
- package/dist/options/experimental-sequence-activity.js +0 -38
- package/dist/options/experimental-tracks.js +0 -43
|
@@ -14,6 +14,18 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
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");
|
|
20
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
|
+
};
|
|
22
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
23
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
24
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
25
|
+
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");
|
|
26
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
27
|
+
};
|
|
28
|
+
var _FrameManager_instances, _FrameManager_page, _FrameManager_networkManager, _FrameManager_frames, _FrameManager_contextIdToContext, _FrameManager_isolatedWorlds, _FrameManager_mainFrame, _FrameManager_client, _FrameManager_onAttachedToTarget, _FrameManager_onDetachedFromTarget, _FrameManager_onLifecycleEvent, _FrameManager_onFrameStartedLoading, _FrameManager_onFrameStoppedLoading, _FrameManager_handleFrameTree, _FrameManager_onFrameAttached, _FrameManager_onFrameNavigated, _FrameManager_onFrameNavigatedWithinDocument, _FrameManager_onFrameDetached, _FrameManager_onExecutionContextCreated, _FrameManager_onExecutionContextDestroyed, _FrameManager_onExecutionContextsCleared, _FrameManager_removeFramesRecursively, _Frame_parentFrame, _Frame_url, _Frame_client;
|
|
17
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
30
|
exports.Frame = exports.FrameManager = exports.FrameManagerEmittedEvents = void 0;
|
|
19
31
|
const assert_1 = require("./assert");
|
|
@@ -36,67 +48,68 @@ exports.FrameManagerEmittedEvents = {
|
|
|
36
48
|
ExecutionContextDestroyed: Symbol('FrameManager.ExecutionContextDestroyed'),
|
|
37
49
|
};
|
|
38
50
|
class FrameManager extends EventEmitter_1.EventEmitter {
|
|
39
|
-
#page;
|
|
40
|
-
#networkManager;
|
|
41
|
-
#frames = new Map();
|
|
42
|
-
#contextIdToContext = new Map();
|
|
43
|
-
#isolatedWorlds = new Set();
|
|
44
|
-
#mainFrame;
|
|
45
|
-
#client;
|
|
46
51
|
get _client() {
|
|
47
|
-
return this
|
|
52
|
+
return __classPrivateFieldGet(this, _FrameManager_client, "f");
|
|
48
53
|
}
|
|
49
54
|
constructor(client, page, indent, logLevel) {
|
|
50
55
|
super();
|
|
51
|
-
this
|
|
52
|
-
this
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
_FrameManager_instances.add(this);
|
|
57
|
+
_FrameManager_page.set(this, void 0);
|
|
58
|
+
_FrameManager_networkManager.set(this, void 0);
|
|
59
|
+
_FrameManager_frames.set(this, new Map());
|
|
60
|
+
_FrameManager_contextIdToContext.set(this, new Map());
|
|
61
|
+
_FrameManager_isolatedWorlds.set(this, new Set());
|
|
62
|
+
_FrameManager_mainFrame.set(this, void 0);
|
|
63
|
+
_FrameManager_client.set(this, void 0);
|
|
64
|
+
__classPrivateFieldSet(this, _FrameManager_client, client, "f");
|
|
65
|
+
__classPrivateFieldSet(this, _FrameManager_page, page, "f");
|
|
66
|
+
__classPrivateFieldSet(this, _FrameManager_networkManager, new NetworkManager_1.NetworkManager(client, this, indent, logLevel), "f");
|
|
67
|
+
this.setupEventListeners(__classPrivateFieldGet(this, _FrameManager_client, "f"));
|
|
55
68
|
}
|
|
56
69
|
setupEventListeners(session) {
|
|
57
70
|
session.on('Page.frameAttached', (event) => {
|
|
58
|
-
this
|
|
71
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameAttached).call(this, session, event.frameId, event.parentFrameId);
|
|
59
72
|
});
|
|
60
73
|
session.on('Page.frameNavigated', (event) => {
|
|
61
|
-
this
|
|
74
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameNavigated).call(this, event.frame);
|
|
62
75
|
});
|
|
63
76
|
session.on('Page.navigatedWithinDocument', (event) => {
|
|
64
|
-
this
|
|
77
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameNavigatedWithinDocument).call(this, event.frameId, event.url);
|
|
65
78
|
});
|
|
66
79
|
session.on('Page.frameDetached', (event) => {
|
|
67
|
-
this
|
|
80
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameDetached).call(this, event.frameId, event.reason);
|
|
68
81
|
});
|
|
69
82
|
session.on('Page.frameStartedLoading', (event) => {
|
|
70
|
-
this
|
|
83
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameStartedLoading).call(this, event.frameId);
|
|
71
84
|
});
|
|
72
85
|
session.on('Page.frameStoppedLoading', (event) => {
|
|
73
|
-
this
|
|
86
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameStoppedLoading).call(this, event.frameId);
|
|
74
87
|
});
|
|
75
88
|
session.on('Runtime.executionContextCreated', (event) => {
|
|
76
|
-
this
|
|
89
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onExecutionContextCreated).call(this, event.context, session);
|
|
77
90
|
});
|
|
78
91
|
session.on('Runtime.executionContextDestroyed', (event) => {
|
|
79
|
-
this
|
|
92
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onExecutionContextDestroyed).call(this, event.executionContextId, session);
|
|
80
93
|
});
|
|
81
94
|
session.on('Runtime.executionContextsCleared', () => {
|
|
82
|
-
this
|
|
95
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onExecutionContextsCleared).call(this, session);
|
|
83
96
|
});
|
|
84
97
|
session.on('Page.lifecycleEvent', (event) => {
|
|
85
|
-
this
|
|
98
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onLifecycleEvent).call(this, event);
|
|
86
99
|
});
|
|
87
100
|
session.on('Target.attachedToTarget', (event) => {
|
|
88
|
-
this
|
|
101
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onAttachedToTarget).call(this, event);
|
|
89
102
|
});
|
|
90
103
|
session.on('Target.detachedFromTarget', (event) => {
|
|
91
|
-
this
|
|
104
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onDetachedFromTarget).call(this, event);
|
|
92
105
|
});
|
|
93
106
|
}
|
|
94
|
-
async initialize(client = this
|
|
107
|
+
async initialize(client = __classPrivateFieldGet(this, _FrameManager_client, "f")) {
|
|
95
108
|
try {
|
|
96
109
|
const result = await Promise.all([
|
|
97
110
|
client.send('Page.enable'),
|
|
98
111
|
client.send('Page.getFrameTree'),
|
|
99
|
-
client === this
|
|
112
|
+
client === __classPrivateFieldGet(this, _FrameManager_client, "f")
|
|
100
113
|
? Promise.resolve()
|
|
101
114
|
: client.send('Target.setAutoAttach', {
|
|
102
115
|
autoAttach: true,
|
|
@@ -105,14 +118,14 @@ class FrameManager extends EventEmitter_1.EventEmitter {
|
|
|
105
118
|
}),
|
|
106
119
|
]);
|
|
107
120
|
const { value: { frameTree }, } = result[1];
|
|
108
|
-
this
|
|
121
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_handleFrameTree).call(this, client, frameTree);
|
|
109
122
|
await Promise.all([
|
|
110
123
|
client.send('Page.setLifecycleEventsEnabled', { enabled: true }),
|
|
111
124
|
client.send('Runtime.enable').then(() => {
|
|
112
125
|
return this._ensureIsolatedWorld(client, UTILITY_WORLD_NAME);
|
|
113
126
|
}),
|
|
114
|
-
client === this
|
|
115
|
-
? this
|
|
127
|
+
client === __classPrivateFieldGet(this, _FrameManager_client, "f")
|
|
128
|
+
? __classPrivateFieldGet(this, _FrameManager_networkManager, "f").initialize()
|
|
116
129
|
: Promise.resolve(),
|
|
117
130
|
]);
|
|
118
131
|
}
|
|
@@ -125,13 +138,13 @@ class FrameManager extends EventEmitter_1.EventEmitter {
|
|
|
125
138
|
}
|
|
126
139
|
}
|
|
127
140
|
networkManager() {
|
|
128
|
-
return this
|
|
141
|
+
return __classPrivateFieldGet(this, _FrameManager_networkManager, "f");
|
|
129
142
|
}
|
|
130
143
|
async navigateFrame(frame, url, timeout, options = {}) {
|
|
131
144
|
const { referer = undefined, waitUntil = 'load' } = options;
|
|
132
145
|
const watcher = new LifecycleWatcher_1.LifecycleWatcher(this, frame, waitUntil, timeout);
|
|
133
146
|
let error = await Promise.race([
|
|
134
|
-
navigate(this
|
|
147
|
+
navigate(__classPrivateFieldGet(this, _FrameManager_client, "f"), url, referer, frame._id),
|
|
135
148
|
watcher.timeoutOrTerminationPromise(),
|
|
136
149
|
]);
|
|
137
150
|
if (!error) {
|
|
@@ -165,134 +178,25 @@ class FrameManager extends EventEmitter_1.EventEmitter {
|
|
|
165
178
|
}
|
|
166
179
|
}
|
|
167
180
|
}
|
|
168
|
-
async #onAttachedToTarget(event) {
|
|
169
|
-
if (event.targetInfo.type !== 'iframe') {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
const frame = this.#frames.get(event.targetInfo.targetId);
|
|
173
|
-
const connection = Connection_1.Connection.fromSession(this.#client);
|
|
174
|
-
(0, assert_1.assert)(connection);
|
|
175
|
-
const session = connection.session(event.sessionId);
|
|
176
|
-
(0, assert_1.assert)(session);
|
|
177
|
-
if (frame) {
|
|
178
|
-
frame._updateClient(session);
|
|
179
|
-
}
|
|
180
|
-
this.setupEventListeners(session);
|
|
181
|
-
await this.initialize(session);
|
|
182
|
-
}
|
|
183
|
-
#onDetachedFromTarget(event) {
|
|
184
|
-
if (!event.targetId) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
const frame = this.#frames.get(event.targetId);
|
|
188
|
-
if (frame === null || frame === void 0 ? void 0 : frame.isOOPFrame()) {
|
|
189
|
-
// When an OOP iframe is removed from the page, it
|
|
190
|
-
// will only get a Target.detachedFromTarget event.
|
|
191
|
-
this.#removeFramesRecursively(frame);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
#onLifecycleEvent(event) {
|
|
195
|
-
const frame = this.#frames.get(event.frameId);
|
|
196
|
-
if (!frame) {
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
frame._onLifecycleEvent(event.loaderId, event.name);
|
|
200
|
-
this.emit(exports.FrameManagerEmittedEvents.LifecycleEvent, frame);
|
|
201
|
-
}
|
|
202
|
-
#onFrameStartedLoading(frameId) {
|
|
203
|
-
const frame = this.#frames.get(frameId);
|
|
204
|
-
if (!frame) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
frame._onLoadingStarted();
|
|
208
|
-
}
|
|
209
|
-
#onFrameStoppedLoading(frameId) {
|
|
210
|
-
const frame = this.#frames.get(frameId);
|
|
211
|
-
if (!frame) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
frame._onLoadingStopped();
|
|
215
|
-
this.emit(exports.FrameManagerEmittedEvents.LifecycleEvent, frame);
|
|
216
|
-
}
|
|
217
|
-
#handleFrameTree(session, frameTree) {
|
|
218
|
-
if (frameTree.frame.parentId) {
|
|
219
|
-
this.#onFrameAttached(session, frameTree.frame.id, frameTree.frame.parentId);
|
|
220
|
-
}
|
|
221
|
-
this.#onFrameNavigated(frameTree.frame);
|
|
222
|
-
if (!frameTree.childFrames) {
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
for (const child of frameTree.childFrames) {
|
|
226
|
-
this.#handleFrameTree(session, child);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
181
|
page() {
|
|
230
|
-
return this
|
|
182
|
+
return __classPrivateFieldGet(this, _FrameManager_page, "f");
|
|
231
183
|
}
|
|
232
184
|
mainFrame() {
|
|
233
|
-
(0, assert_1.assert)(this
|
|
234
|
-
return this
|
|
185
|
+
(0, assert_1.assert)(__classPrivateFieldGet(this, _FrameManager_mainFrame, "f"), 'Requesting main frame too early!');
|
|
186
|
+
return __classPrivateFieldGet(this, _FrameManager_mainFrame, "f");
|
|
235
187
|
}
|
|
236
188
|
frames() {
|
|
237
|
-
return Array.from(this
|
|
189
|
+
return Array.from(__classPrivateFieldGet(this, _FrameManager_frames, "f").values());
|
|
238
190
|
}
|
|
239
191
|
frame(frameId) {
|
|
240
|
-
return this
|
|
241
|
-
}
|
|
242
|
-
#onFrameAttached(session, frameId, parentFrameId) {
|
|
243
|
-
if (this.#frames.has(frameId)) {
|
|
244
|
-
const _frame = this.#frames.get(frameId);
|
|
245
|
-
if (session && _frame.isOOPFrame()) {
|
|
246
|
-
// If an OOP iframes becomes a normal iframe again
|
|
247
|
-
// it is first attached to the parent page before
|
|
248
|
-
// the target is removed.
|
|
249
|
-
_frame._updateClient(session);
|
|
250
|
-
}
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
(0, assert_1.assert)(parentFrameId);
|
|
254
|
-
const parentFrame = this.#frames.get(parentFrameId);
|
|
255
|
-
(0, assert_1.assert)(parentFrame);
|
|
256
|
-
const frame = new Frame(this, parentFrame, frameId, session);
|
|
257
|
-
this.#frames.set(frame._id, frame);
|
|
258
|
-
}
|
|
259
|
-
#onFrameNavigated(framePayload) {
|
|
260
|
-
const isMainFrame = !framePayload.parentId;
|
|
261
|
-
let frame = isMainFrame
|
|
262
|
-
? this.#mainFrame
|
|
263
|
-
: this.#frames.get(framePayload.id);
|
|
264
|
-
(0, assert_1.assert)(isMainFrame || frame, 'We either navigate top level or have old version of the navigated frame');
|
|
265
|
-
// Detach all child frames first.
|
|
266
|
-
if (frame) {
|
|
267
|
-
for (const child of frame.childFrames()) {
|
|
268
|
-
this.#removeFramesRecursively(child);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
// Update or create main frame.
|
|
272
|
-
if (isMainFrame) {
|
|
273
|
-
if (frame) {
|
|
274
|
-
// Update frame id to retain frame identity on cross-process navigation.
|
|
275
|
-
this.#frames.delete(frame._id);
|
|
276
|
-
frame._id = framePayload.id;
|
|
277
|
-
}
|
|
278
|
-
else {
|
|
279
|
-
// Initial main frame navigation.
|
|
280
|
-
frame = new Frame(this, null, framePayload.id, this.#client);
|
|
281
|
-
}
|
|
282
|
-
this.#frames.set(framePayload.id, frame);
|
|
283
|
-
this.#mainFrame = frame;
|
|
284
|
-
}
|
|
285
|
-
// Update frame payload.
|
|
286
|
-
(0, assert_1.assert)(frame);
|
|
287
|
-
frame._navigated(framePayload);
|
|
288
|
-
this.emit(exports.FrameManagerEmittedEvents.FrameNavigated, frame);
|
|
192
|
+
return __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId) || null;
|
|
289
193
|
}
|
|
290
194
|
async _ensureIsolatedWorld(session, name) {
|
|
291
195
|
const key = `${session.id()}:${name}`;
|
|
292
|
-
if (this
|
|
196
|
+
if (__classPrivateFieldGet(this, _FrameManager_isolatedWorlds, "f").has(key)) {
|
|
293
197
|
return;
|
|
294
198
|
}
|
|
295
|
-
this
|
|
199
|
+
__classPrivateFieldGet(this, _FrameManager_isolatedWorlds, "f").add(key);
|
|
296
200
|
await session.send('Page.addScriptToEvaluateOnNewDocument', {
|
|
297
201
|
source: `//# sourceURL=${ExecutionContext_1.EVALUATION_SCRIPT_URL}`,
|
|
298
202
|
worldName: name,
|
|
@@ -312,135 +216,225 @@ class FrameManager extends EventEmitter_1.EventEmitter {
|
|
|
312
216
|
.catch(() => undefined);
|
|
313
217
|
}));
|
|
314
218
|
}
|
|
315
|
-
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
219
|
+
executionContextById(contextId, session = __classPrivateFieldGet(this, _FrameManager_client, "f")) {
|
|
220
|
+
const key = `${session.id()}:${contextId}`;
|
|
221
|
+
const context = __classPrivateFieldGet(this, _FrameManager_contextIdToContext, "f").get(key);
|
|
222
|
+
(0, assert_1.assert)(context, 'INTERNAL ERROR: missing context with id = ' + contextId);
|
|
223
|
+
return context;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.FrameManager = FrameManager;
|
|
227
|
+
_FrameManager_page = new WeakMap(), _FrameManager_networkManager = new WeakMap(), _FrameManager_frames = new WeakMap(), _FrameManager_contextIdToContext = new WeakMap(), _FrameManager_isolatedWorlds = new WeakMap(), _FrameManager_mainFrame = new WeakMap(), _FrameManager_client = new WeakMap(), _FrameManager_instances = new WeakSet(), _FrameManager_onAttachedToTarget = async function _FrameManager_onAttachedToTarget(event) {
|
|
228
|
+
if (event.targetInfo.type !== 'iframe') {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(event.targetInfo.targetId);
|
|
232
|
+
const connection = Connection_1.Connection.fromSession(__classPrivateFieldGet(this, _FrameManager_client, "f"));
|
|
233
|
+
(0, assert_1.assert)(connection);
|
|
234
|
+
const session = connection.session(event.sessionId);
|
|
235
|
+
(0, assert_1.assert)(session);
|
|
236
|
+
if (frame) {
|
|
237
|
+
frame._updateClient(session);
|
|
238
|
+
}
|
|
239
|
+
this.setupEventListeners(session);
|
|
240
|
+
await this.initialize(session);
|
|
241
|
+
}, _FrameManager_onDetachedFromTarget = function _FrameManager_onDetachedFromTarget(event) {
|
|
242
|
+
if (!event.targetId) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(event.targetId);
|
|
246
|
+
if (frame === null || frame === void 0 ? void 0 : frame.isOOPFrame()) {
|
|
247
|
+
// When an OOP iframe is removed from the page, it
|
|
248
|
+
// will only get a Target.detachedFromTarget event.
|
|
249
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_removeFramesRecursively).call(this, frame);
|
|
250
|
+
}
|
|
251
|
+
}, _FrameManager_onLifecycleEvent = function _FrameManager_onLifecycleEvent(event) {
|
|
252
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(event.frameId);
|
|
253
|
+
if (!frame) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
frame._onLifecycleEvent(event.loaderId, event.name);
|
|
257
|
+
this.emit(exports.FrameManagerEmittedEvents.LifecycleEvent, frame);
|
|
258
|
+
}, _FrameManager_onFrameStartedLoading = function _FrameManager_onFrameStartedLoading(frameId) {
|
|
259
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId);
|
|
260
|
+
if (!frame) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
frame._onLoadingStarted();
|
|
264
|
+
}, _FrameManager_onFrameStoppedLoading = function _FrameManager_onFrameStoppedLoading(frameId) {
|
|
265
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId);
|
|
266
|
+
if (!frame) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
frame._onLoadingStopped();
|
|
270
|
+
this.emit(exports.FrameManagerEmittedEvents.LifecycleEvent, frame);
|
|
271
|
+
}, _FrameManager_handleFrameTree = function _FrameManager_handleFrameTree(session, frameTree) {
|
|
272
|
+
if (frameTree.frame.parentId) {
|
|
273
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameAttached).call(this, session, frameTree.frame.id, frameTree.frame.parentId);
|
|
274
|
+
}
|
|
275
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_onFrameNavigated).call(this, frameTree.frame);
|
|
276
|
+
if (!frameTree.childFrames) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
for (const child of frameTree.childFrames) {
|
|
280
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_handleFrameTree).call(this, session, child);
|
|
281
|
+
}
|
|
282
|
+
}, _FrameManager_onFrameAttached = function _FrameManager_onFrameAttached(session, frameId, parentFrameId) {
|
|
283
|
+
if (__classPrivateFieldGet(this, _FrameManager_frames, "f").has(frameId)) {
|
|
284
|
+
const _frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId);
|
|
285
|
+
if (session && _frame.isOOPFrame()) {
|
|
286
|
+
// If an OOP iframes becomes a normal iframe again
|
|
287
|
+
// it is first attached to the parent page before
|
|
288
|
+
// the target is removed.
|
|
289
|
+
_frame._updateClient(session);
|
|
333
290
|
}
|
|
334
|
-
|
|
335
|
-
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
(0, assert_1.assert)(parentFrameId);
|
|
294
|
+
const parentFrame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(parentFrameId);
|
|
295
|
+
(0, assert_1.assert)(parentFrame);
|
|
296
|
+
const frame = new Frame(this, parentFrame, frameId, session);
|
|
297
|
+
__classPrivateFieldGet(this, _FrameManager_frames, "f").set(frame._id, frame);
|
|
298
|
+
}, _FrameManager_onFrameNavigated = function _FrameManager_onFrameNavigated(framePayload) {
|
|
299
|
+
const isMainFrame = !framePayload.parentId;
|
|
300
|
+
let frame = isMainFrame
|
|
301
|
+
? __classPrivateFieldGet(this, _FrameManager_mainFrame, "f")
|
|
302
|
+
: __classPrivateFieldGet(this, _FrameManager_frames, "f").get(framePayload.id);
|
|
303
|
+
(0, assert_1.assert)(isMainFrame || frame, 'We either navigate top level or have old version of the navigated frame');
|
|
304
|
+
// Detach all child frames first.
|
|
305
|
+
if (frame) {
|
|
306
|
+
for (const child of frame.childFrames()) {
|
|
307
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_removeFramesRecursively).call(this, child);
|
|
336
308
|
}
|
|
337
309
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
const frameId = auxData === null || auxData === void 0 ? void 0 : auxData.frameId;
|
|
341
|
-
const frame = typeof frameId === 'string' ? this.#frames.get(frameId) : undefined;
|
|
342
|
-
let world;
|
|
310
|
+
// Update or create main frame.
|
|
311
|
+
if (isMainFrame) {
|
|
343
312
|
if (frame) {
|
|
344
|
-
//
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
else if (contextPayload.name === UTILITY_WORLD_NAME &&
|
|
352
|
-
!frame._secondaryWorld._hasContext()) {
|
|
353
|
-
// In case of multiple sessions to the same target, there's a race between
|
|
354
|
-
// connections so we might end up creating multiple isolated worlds.
|
|
355
|
-
// We can use either.
|
|
356
|
-
world = frame._secondaryWorld;
|
|
357
|
-
}
|
|
313
|
+
// Update frame id to retain frame identity on cross-process navigation.
|
|
314
|
+
__classPrivateFieldGet(this, _FrameManager_frames, "f").delete(frame._id);
|
|
315
|
+
frame._id = framePayload.id;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
// Initial main frame navigation.
|
|
319
|
+
frame = new Frame(this, null, framePayload.id, __classPrivateFieldGet(this, _FrameManager_client, "f"));
|
|
358
320
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
321
|
+
__classPrivateFieldGet(this, _FrameManager_frames, "f").set(framePayload.id, frame);
|
|
322
|
+
__classPrivateFieldSet(this, _FrameManager_mainFrame, frame, "f");
|
|
323
|
+
}
|
|
324
|
+
// Update frame payload.
|
|
325
|
+
(0, assert_1.assert)(frame);
|
|
326
|
+
frame._navigated(framePayload);
|
|
327
|
+
this.emit(exports.FrameManagerEmittedEvents.FrameNavigated, frame);
|
|
328
|
+
}, _FrameManager_onFrameNavigatedWithinDocument = function _FrameManager_onFrameNavigatedWithinDocument(frameId, url) {
|
|
329
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId);
|
|
330
|
+
if (!frame) {
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
frame._navigatedWithinDocument(url);
|
|
334
|
+
this.emit(exports.FrameManagerEmittedEvents.FrameNavigatedWithinDocument, frame);
|
|
335
|
+
this.emit(exports.FrameManagerEmittedEvents.FrameNavigated, frame);
|
|
336
|
+
}, _FrameManager_onFrameDetached = function _FrameManager_onFrameDetached(frameId, reason) {
|
|
337
|
+
const frame = __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId);
|
|
338
|
+
if (reason === 'remove') {
|
|
339
|
+
// Only remove the frame if the reason for the detached event is
|
|
340
|
+
// an actual removement of the frame.
|
|
341
|
+
// For frames that become OOP iframes, the reason would be 'swap'.
|
|
342
|
+
if (frame) {
|
|
343
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_removeFramesRecursively).call(this, frame);
|
|
362
344
|
}
|
|
363
|
-
const key = `${session.id()}:${contextPayload.id}`;
|
|
364
|
-
this.#contextIdToContext.set(key, context);
|
|
365
345
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
346
|
+
else if (reason === 'swap') {
|
|
347
|
+
this.emit(exports.FrameManagerEmittedEvents.FrameSwapped, frame);
|
|
348
|
+
}
|
|
349
|
+
}, _FrameManager_onExecutionContextCreated = function _FrameManager_onExecutionContextCreated(contextPayload, session) {
|
|
350
|
+
const auxData = contextPayload.auxData;
|
|
351
|
+
const frameId = auxData === null || auxData === void 0 ? void 0 : auxData.frameId;
|
|
352
|
+
const frame = typeof frameId === 'string' ? __classPrivateFieldGet(this, _FrameManager_frames, "f").get(frameId) : undefined;
|
|
353
|
+
let world;
|
|
354
|
+
if (frame) {
|
|
355
|
+
// Only care about execution contexts created for the current session.
|
|
356
|
+
if (frame._client() !== session) {
|
|
370
357
|
return;
|
|
371
358
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
context._world._setContext(null);
|
|
359
|
+
if (contextPayload.auxData && Boolean(contextPayload.auxData.isDefault)) {
|
|
360
|
+
world = frame._mainWorld;
|
|
375
361
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
//
|
|
380
|
-
//
|
|
381
|
-
|
|
382
|
-
continue;
|
|
383
|
-
}
|
|
384
|
-
if (context._world) {
|
|
385
|
-
context._world._setContext(null);
|
|
386
|
-
}
|
|
387
|
-
this.#contextIdToContext.delete(key);
|
|
362
|
+
else if (contextPayload.name === UTILITY_WORLD_NAME &&
|
|
363
|
+
!frame._secondaryWorld._hasContext()) {
|
|
364
|
+
// In case of multiple sessions to the same target, there's a race between
|
|
365
|
+
// connections so we might end up creating multiple isolated worlds.
|
|
366
|
+
// We can use either.
|
|
367
|
+
world = frame._secondaryWorld;
|
|
388
368
|
}
|
|
389
369
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
370
|
+
const context = new ExecutionContext_1.ExecutionContext((frame === null || frame === void 0 ? void 0 : frame._client()) || __classPrivateFieldGet(this, _FrameManager_client, "f"), contextPayload, world);
|
|
371
|
+
if (world) {
|
|
372
|
+
world._setContext(context);
|
|
373
|
+
}
|
|
374
|
+
const key = `${session.id()}:${contextPayload.id}`;
|
|
375
|
+
__classPrivateFieldGet(this, _FrameManager_contextIdToContext, "f").set(key, context);
|
|
376
|
+
}, _FrameManager_onExecutionContextDestroyed = function _FrameManager_onExecutionContextDestroyed(executionContextId, session) {
|
|
377
|
+
const key = `${session.id()}:${executionContextId}`;
|
|
378
|
+
const context = __classPrivateFieldGet(this, _FrameManager_contextIdToContext, "f").get(key);
|
|
379
|
+
if (!context) {
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
__classPrivateFieldGet(this, _FrameManager_contextIdToContext, "f").delete(key);
|
|
383
|
+
if (context._world) {
|
|
384
|
+
context._world._setContext(null);
|
|
385
|
+
}
|
|
386
|
+
}, _FrameManager_onExecutionContextsCleared = function _FrameManager_onExecutionContextsCleared(session) {
|
|
387
|
+
for (const [key, context] of __classPrivateFieldGet(this, _FrameManager_contextIdToContext, "f").entries()) {
|
|
388
|
+
// Make sure to only clear execution contexts that belong
|
|
389
|
+
// to the current session.
|
|
390
|
+
if (context._client !== session) {
|
|
391
|
+
continue;
|
|
399
392
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
393
|
+
if (context._world) {
|
|
394
|
+
context._world._setContext(null);
|
|
395
|
+
}
|
|
396
|
+
__classPrivateFieldGet(this, _FrameManager_contextIdToContext, "f").delete(key);
|
|
403
397
|
}
|
|
404
|
-
}
|
|
405
|
-
|
|
398
|
+
}, _FrameManager_removeFramesRecursively = function _FrameManager_removeFramesRecursively(frame) {
|
|
399
|
+
for (const child of frame.childFrames()) {
|
|
400
|
+
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_removeFramesRecursively).call(this, child);
|
|
401
|
+
}
|
|
402
|
+
frame._detach();
|
|
403
|
+
__classPrivateFieldGet(this, _FrameManager_frames, "f").delete(frame._id);
|
|
404
|
+
this.emit(exports.FrameManagerEmittedEvents.FrameDetached, frame);
|
|
405
|
+
};
|
|
406
406
|
class Frame {
|
|
407
|
-
#parentFrame;
|
|
408
|
-
#url = '';
|
|
409
|
-
#client;
|
|
410
|
-
_frameManager;
|
|
411
|
-
_id;
|
|
412
|
-
_loaderId = '';
|
|
413
|
-
_name;
|
|
414
|
-
_hasStartedLoading = false;
|
|
415
|
-
_lifecycleEvents = new Set();
|
|
416
|
-
_mainWorld;
|
|
417
|
-
_secondaryWorld;
|
|
418
|
-
_childFrames;
|
|
419
407
|
constructor(frameManager, parentFrame, frameId, client) {
|
|
408
|
+
_Frame_parentFrame.set(this, void 0);
|
|
409
|
+
_Frame_url.set(this, '');
|
|
410
|
+
_Frame_client.set(this, void 0);
|
|
411
|
+
this._loaderId = '';
|
|
412
|
+
this._hasStartedLoading = false;
|
|
413
|
+
this._lifecycleEvents = new Set();
|
|
420
414
|
this._frameManager = frameManager;
|
|
421
|
-
this
|
|
422
|
-
this
|
|
415
|
+
__classPrivateFieldSet(this, _Frame_parentFrame, parentFrame !== null && parentFrame !== void 0 ? parentFrame : null, "f");
|
|
416
|
+
__classPrivateFieldSet(this, _Frame_url, '', "f");
|
|
423
417
|
this._id = frameId;
|
|
424
418
|
this._loaderId = '';
|
|
425
419
|
this._childFrames = new Set();
|
|
426
|
-
if (this
|
|
427
|
-
this
|
|
420
|
+
if (__classPrivateFieldGet(this, _Frame_parentFrame, "f")) {
|
|
421
|
+
__classPrivateFieldGet(this, _Frame_parentFrame, "f")._childFrames.add(this);
|
|
428
422
|
}
|
|
429
423
|
this._updateClient(client);
|
|
430
424
|
}
|
|
431
425
|
_updateClient(client) {
|
|
432
|
-
this
|
|
426
|
+
__classPrivateFieldSet(this, _Frame_client, client, "f");
|
|
433
427
|
this._mainWorld = new DOMWorld_1.DOMWorld(this);
|
|
434
428
|
this._secondaryWorld = new DOMWorld_1.DOMWorld(this);
|
|
435
429
|
}
|
|
436
430
|
isOOPFrame() {
|
|
437
|
-
return this
|
|
431
|
+
return __classPrivateFieldGet(this, _Frame_client, "f") !== this._frameManager._client;
|
|
438
432
|
}
|
|
439
433
|
goto(url, timeout, options = {}) {
|
|
440
434
|
return this._frameManager.navigateFrame(this, url, timeout, options);
|
|
441
435
|
}
|
|
442
436
|
_client() {
|
|
443
|
-
return this
|
|
437
|
+
return __classPrivateFieldGet(this, _Frame_client, "f");
|
|
444
438
|
}
|
|
445
439
|
/**
|
|
446
440
|
* @returns a promise that resolves to the frame's default execution context.
|
|
@@ -455,17 +449,17 @@ class Frame {
|
|
|
455
449
|
return this._mainWorld.evaluate(pageFunction, ...args);
|
|
456
450
|
}
|
|
457
451
|
url() {
|
|
458
|
-
return this
|
|
452
|
+
return __classPrivateFieldGet(this, _Frame_url, "f");
|
|
459
453
|
}
|
|
460
454
|
childFrames() {
|
|
461
455
|
return Array.from(this._childFrames);
|
|
462
456
|
}
|
|
463
457
|
_navigated(framePayload) {
|
|
464
458
|
this._name = framePayload.name;
|
|
465
|
-
this
|
|
459
|
+
__classPrivateFieldSet(this, _Frame_url, `${framePayload.url}${framePayload.urlFragment || ''}`, "f");
|
|
466
460
|
}
|
|
467
461
|
_navigatedWithinDocument(url) {
|
|
468
|
-
this
|
|
462
|
+
__classPrivateFieldSet(this, _Frame_url, url, "f");
|
|
469
463
|
}
|
|
470
464
|
_onLifecycleEvent(loaderId, name) {
|
|
471
465
|
if (name === 'init') {
|
|
@@ -483,10 +477,11 @@ class Frame {
|
|
|
483
477
|
_detach() {
|
|
484
478
|
this._mainWorld._detach();
|
|
485
479
|
this._secondaryWorld._detach();
|
|
486
|
-
if (this
|
|
487
|
-
this
|
|
480
|
+
if (__classPrivateFieldGet(this, _Frame_parentFrame, "f")) {
|
|
481
|
+
__classPrivateFieldGet(this, _Frame_parentFrame, "f")._childFrames.delete(this);
|
|
488
482
|
}
|
|
489
|
-
this
|
|
483
|
+
__classPrivateFieldSet(this, _Frame_parentFrame, null, "f");
|
|
490
484
|
}
|
|
491
485
|
}
|
|
492
486
|
exports.Frame = Frame;
|
|
487
|
+
_Frame_parentFrame = new WeakMap(), _Frame_url = new WeakMap(), _Frame_client = new WeakMap();
|