Skip to content

Commit dcb1798

Browse files
dgozmanaslushnikov
authored andcommitted
fix(websocket): remove "skip frames" logic (#4435)
This optimization turned out to be racy, so better remove it for now.
1 parent 3c9a6c4 commit dcb1798

File tree

7 files changed

+0
-38
lines changed

7 files changed

+0
-38
lines changed

src/client/page.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -579,17 +579,13 @@ export class Page extends ChannelOwner<channels.PageChannel, channels.PageInitia
579579
on(event: string | symbol, listener: Listener): this {
580580
if (event === Events.Page.FileChooser && !this.listenerCount(event))
581581
this._channel.setFileChooserInterceptedNoReply({ intercepted: true });
582-
if (event === Events.Page.WebSocket && !this.listenerCount(event))
583-
this._channel.setWebSocketFramesReportingEnabledNoReply({ enabled: true });
584582
super.on(event, listener);
585583
return this;
586584
}
587585

588586
addListener(event: string | symbol, listener: Listener): this {
589587
if (event === Events.Page.FileChooser && !this.listenerCount(event))
590588
this._channel.setFileChooserInterceptedNoReply({ intercepted: true });
591-
if (event === Events.Page.WebSocket && !this.listenerCount(event))
592-
this._channel.setWebSocketFramesReportingEnabledNoReply({ enabled: true });
593589
super.addListener(event, listener);
594590
return this;
595591
}
@@ -598,19 +594,13 @@ export class Page extends ChannelOwner<channels.PageChannel, channels.PageInitia
598594
super.off(event, listener);
599595
if (event === Events.Page.FileChooser && !this.listenerCount(event))
600596
this._channel.setFileChooserInterceptedNoReply({ intercepted: false });
601-
// Note: we do not stop reporting web socket frames, since
602-
// user might not listen to 'websocket' anymore, but still have
603-
// a functioning WebSocket object.
604597
return this;
605598
}
606599

607600
removeListener(event: string | symbol, listener: Listener): this {
608601
super.removeListener(event, listener);
609602
if (event === Events.Page.FileChooser && !this.listenerCount(event))
610603
this._channel.setFileChooserInterceptedNoReply({ intercepted: false });
611-
// Note: we do not stop reporting web socket frames, since
612-
// user might not listen to 'websocket' anymore, but still have
613-
// a functioning WebSocket object.
614604
return this;
615605
}
616606

src/dispatchers/pageDispatcher.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,6 @@ export class PageDispatcher extends Dispatcher<Page, channels.PageInitializer> i
158158
await this._page._setFileChooserIntercepted(params.intercepted);
159159
}
160160

161-
async setWebSocketFramesReportingEnabledNoReply(params: channels.PageSetWebSocketFramesReportingEnabledNoReplyParams): Promise<void> {
162-
this._page._setWebSocketFramesReportingEnabled(params.enabled);
163-
}
164-
165161
async keyboardDown(params: channels.PageKeyboardDownParams): Promise<void> {
166162
await this._page.keyboard.down(params.key);
167163
}

src/protocol/channels.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,6 @@ export interface PageChannel extends Channel {
728728
setDefaultNavigationTimeoutNoReply(params: PageSetDefaultNavigationTimeoutNoReplyParams, metadata?: Metadata): Promise<PageSetDefaultNavigationTimeoutNoReplyResult>;
729729
setDefaultTimeoutNoReply(params: PageSetDefaultTimeoutNoReplyParams, metadata?: Metadata): Promise<PageSetDefaultTimeoutNoReplyResult>;
730730
setFileChooserInterceptedNoReply(params: PageSetFileChooserInterceptedNoReplyParams, metadata?: Metadata): Promise<PageSetFileChooserInterceptedNoReplyResult>;
731-
setWebSocketFramesReportingEnabledNoReply(params: PageSetWebSocketFramesReportingEnabledNoReplyParams, metadata?: Metadata): Promise<PageSetWebSocketFramesReportingEnabledNoReplyResult>;
732731
addInitScript(params: PageAddInitScriptParams, metadata?: Metadata): Promise<PageAddInitScriptResult>;
733732
close(params: PageCloseParams, metadata?: Metadata): Promise<PageCloseResult>;
734733
emulateMedia(params: PageEmulateMediaParams, metadata?: Metadata): Promise<PageEmulateMediaResult>;
@@ -840,13 +839,6 @@ export type PageSetFileChooserInterceptedNoReplyOptions = {
840839

841840
};
842841
export type PageSetFileChooserInterceptedNoReplyResult = void;
843-
export type PageSetWebSocketFramesReportingEnabledNoReplyParams = {
844-
enabled: boolean,
845-
};
846-
export type PageSetWebSocketFramesReportingEnabledNoReplyOptions = {
847-
848-
};
849-
export type PageSetWebSocketFramesReportingEnabledNoReplyResult = void;
850842
export type PageAddInitScriptParams = {
851843
source: string,
852844
};

src/protocol/protocol.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -625,10 +625,6 @@ Page:
625625
parameters:
626626
intercepted: boolean
627627

628-
setWebSocketFramesReportingEnabledNoReply:
629-
parameters:
630-
enabled: boolean
631-
632628
addInitScript:
633629
parameters:
634630
source: string

src/protocol/validator.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,6 @@ export function createScheme(tChannel: (name: string) => Validator): Scheme {
330330
scheme.PageSetFileChooserInterceptedNoReplyParams = tObject({
331331
intercepted: tBoolean,
332332
});
333-
scheme.PageSetWebSocketFramesReportingEnabledNoReplyParams = tObject({
334-
enabled: tBoolean,
335-
});
336333
scheme.PageAddInitScriptParams = tObject({
337334
source: tString,
338335
});

src/server/frames.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -359,16 +359,12 @@ export class FrameManager {
359359
}
360360

361361
onWebSocketFrameSent(requestId: string, opcode: number, data: string) {
362-
if (!this._page._webSocketFramesReportingEnabled)
363-
return;
364362
const ws = this._webSockets.get(requestId);
365363
if (ws)
366364
ws.frameSent(opcode, data);
367365
}
368366

369367
webSocketFrameReceived(requestId: string, opcode: number, data: string) {
370-
if (!this._page._webSocketFramesReportingEnabled)
371-
return;
372368
const ws = this._webSockets.get(requestId);
373369
if (ws)
374370
ws.frameReceived(opcode, data);

src/server/page.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ export class Page extends EventEmitter {
145145
_ownedContext: BrowserContext | undefined;
146146
readonly selectors: Selectors;
147147
_video: Video | null = null;
148-
_webSocketFramesReportingEnabled = false;
149148

150149
constructor(delegate: PageDelegate, browserContext: BrowserContext) {
151150
super();
@@ -420,10 +419,6 @@ export class Page extends EventEmitter {
420419
await this._delegate.setFileChooserIntercepted(enabled);
421420
}
422421

423-
_setWebSocketFramesReportingEnabled(enabled: boolean) {
424-
this._webSocketFramesReportingEnabled = enabled;
425-
}
426-
427422
videoStarted(video: Video) {
428423
this._video = video;
429424
this.emit(Page.Events.VideoStarted, video);

0 commit comments

Comments
 (0)