Skip to content

Commit c57fd22

Browse files
authored
fix(webkit): unflake Page.setContent (#786)
1 parent 2bf88fd commit c57fd22

File tree

2 files changed

+8
-22
lines changed

2 files changed

+8
-22
lines changed

src/webkit/wkPage.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ export class WKPage implements PageDelegate {
8484
this._workers.setSession(session);
8585
}
8686

87-
async initialize(session: WKSession, pagePausedOnStart: boolean) {
87+
async initialize(session: WKSession) {
8888
this._setSession(session);
8989
await Promise.all([
9090
this._initializePageProxySession(),
91-
this._initializeSession(this._session, ({frameTree}) => this._handleFrameTree(frameTree, pagePausedOnStart)),
91+
this._initializeSession(this._session, ({frameTree}) => this._handleFrameTree(frameTree)),
9292
]);
9393
}
9494

@@ -240,26 +240,14 @@ export class WKPage implements PageDelegate {
240240
this._page._frameManager.frameLifecycleEvent(frameId, event);
241241
}
242242

243-
private _handleFrameTree(frameTree: Protocol.Page.FrameResourceTree, pagePausedOnStart: boolean) {
244-
const frame = this._onFrameAttached(frameTree.frame.id, frameTree.frame.parentId || null);
243+
private _handleFrameTree(frameTree: Protocol.Page.FrameResourceTree) {
244+
this._onFrameAttached(frameTree.frame.id, frameTree.frame.parentId || null);
245245
this._onFrameNavigated(frameTree.frame, true);
246246

247-
if (!pagePausedOnStart) {
248-
frame._utilityContext().then(async context => {
249-
const readyState = await context.evaluate(() => document.readyState).catch(e => 'loading');
250-
if (frame.isDetached())
251-
return;
252-
if (readyState === 'interactive' || readyState === 'complete')
253-
this._page._frameManager.frameLifecycleEvent(frame._id, 'domcontentloaded');
254-
if (readyState === 'complete')
255-
this._page._frameManager.frameLifecycleEvent(frame._id, 'load');
256-
});
257-
}
258-
259247
if (!frameTree.childFrames)
260248
return;
261249
for (const child of frameTree.childFrames)
262-
this._handleFrameTree(child, pagePausedOnStart);
250+
this._handleFrameTree(child);
263251
}
264252

265253
_onFrameAttached(frameId: string, parentFrameId: string | null): frames.Frame {

src/webkit/wkPageProxy.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,8 @@ export class WKPageProxy {
9797
}
9898

9999
onPopupCreated(popupPageProxy: WKPageProxy) {
100-
const wkPage = this._wkPage;
101-
if (!wkPage || !wkPage._page.listenerCount(Events.Page.Popup))
102-
return;
103-
popupPageProxy.page().then(page => wkPage._page.emit(Events.Page.Popup, page));
100+
if (this._wkPage)
101+
popupPageProxy.page().then(page => this._wkPage!._page.emit(Events.Page.Popup, page));
104102
}
105103

106104
private async _initializeWKPage(): Promise<Page> {
@@ -114,7 +112,7 @@ export class WKPageProxy {
114112
}
115113
assert(session, 'One non-provisional target session must exist');
116114
this._wkPage = new WKPage(this._browserContext, this._pageProxySession);
117-
await this._wkPage.initialize(session!, this._pagePausedOnStart);
115+
await this._wkPage.initialize(session!);
118116
if (this._pagePausedOnStart) {
119117
this._resumeTarget(session!.sessionId);
120118
this._pagePausedOnStart = false;

0 commit comments

Comments
 (0)