browser(firefox): fix screencast in first window on mac headful (#3826)

* browser(firefox): fix screencast in first window on mac headful

* Revert only
This commit is contained in:
Yury Semikhatsky 2020-09-10 00:40:56 -07:00 committed by GitHub
parent 559f30d50e
commit d64d0025a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 2 deletions

View file

@ -1,2 +1,2 @@
1171 1172
Changed: aslushnikov@gmail.com Wed Sep 9 09:33:56 PDT 2020 Changed: yurys@chromium.org Wed Sep 9 23:06:13 PDT 2020

View file

@ -196,6 +196,11 @@ class TargetRegistry {
const browserContext = this._userContextIdToBrowserContext.get(userContextId); const browserContext = this._userContextIdToBrowserContext.get(userContextId);
if (browserContext && browserContext.defaultViewportSize) if (browserContext && browserContext.defaultViewportSize)
setViewportSizeForBrowser(browserContext.defaultViewportSize, tab.linkedBrowser, window); setViewportSizeForBrowser(browserContext.defaultViewportSize, tab.linkedBrowser, window);
const linkedBrowser = tab.linkedBrowser;
const target = this._browserToTarget.get(linkedBrowser);
if (target)
target._pageWindowReadyCallback();
}; };
const onTabCloseListener = event => { const onTabCloseListener = event => {
@ -320,6 +325,7 @@ class TargetRegistry {
}); });
if (browserContext && browserContext.defaultViewportSize) if (browserContext && browserContext.defaultViewportSize)
setViewportSizeForBrowser(browserContext.defaultViewportSize, browser, window); setViewportSizeForBrowser(browserContext.defaultViewportSize, browser, window);
target._pageWindowReadyCallback();
browser.focus(); browser.focus();
if (browserContext.settings.timezoneId) { if (browserContext.settings.timezoneId) {
if (await target.hasFailedToOverrideTimezone()) if (await target.hasFailedToOverrideTimezone())
@ -376,6 +382,7 @@ class PageTarget {
browserContext._firstPageCallback(); browserContext._firstPageCallback();
this._registry._browserToTarget.set(this._linkedBrowser, this); this._registry._browserToTarget.set(this._linkedBrowser, this);
this._registry._browserBrowsingContextToTarget.set(this._linkedBrowser.browsingContext, this); this._registry._browserBrowsingContextToTarget.set(this._linkedBrowser.browsingContext, this);
this._pageWindowReady = new Promise(r => this._pageWindowReadyCallback = r);
} }
linkedBrowser() { linkedBrowser() {

View file

@ -137,6 +137,10 @@ class PageHandler {
const options = this._pageTarget.browserContext().screencastOptions; const options = this._pageTarget.browserContext().screencastOptions;
if (options) { if (options) {
const file = OS.Path.join(options.dir, helper.generateId() + '.webm'); const file = OS.Path.join(options.dir, helper.generateId() + '.webm');
// On Mac the window may not yet be visible when TargetCreated and its
// NSWindow.windowNumber may be -1, so we wait until the window is known
// to be initialized and visible.
await this._pageTarget._pageWindowReady;
await this.startVideoRecording(Object.assign({file}, options)); await this.startVideoRecording(Object.assign({file}, options));
} }
} }