Skip to content

Commit 99658c2

Browse files
authored
feat(bringToFront): enable on all browsers (#3052)
1 parent a03f1dd commit 99658c2

File tree

12 files changed

+67
-1
lines changed

12 files changed

+67
-1
lines changed

browsers.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
{
99
"name": "firefox",
10-
"revision": "1128"
10+
"revision": "1134"
1111
},
1212
{
1313
"name": "webkit",

docs/api.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,7 @@ page.removeListener('request', logRequest);
702702
- [page.addInitScript(script[, arg])](#pageaddinitscriptscript-arg)
703703
- [page.addScriptTag(options)](#pageaddscripttagoptions)
704704
- [page.addStyleTag(options)](#pageaddstyletagoptions)
705+
- [page.bringToFront()](#pagebringtofront)
705706
- [page.check(selector, [options])](#pagecheckselector-options)
706707
- [page.click(selector[, options])](#pageclickselector-options)
707708
- [page.close([options])](#pagecloseoptions)
@@ -1007,6 +1008,14 @@ Adds a `<link rel="stylesheet">` tag into the page with the desired url or a `<s
10071008

10081009
Shortcut for [page.mainFrame().addStyleTag(options)](#frameaddstyletagoptions).
10091010

1011+
1012+
#### page.bringToFront()
1013+
1014+
- returns: <[Promise]>
1015+
1016+
Brings page to front (activates tab).
1017+
1018+
10101019
#### page.check(selector, [options])
10111020
- `selector` <[string]> A selector to search for checkbox or radio button to check. If there are multiple elements satisfying the selector, the first will be checked. See [working with selectors](#working-with-selectors) for more details.
10121021
- `options` <[Object]>

src/chromium/crPage.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ export class CRPage implements PageDelegate {
143143
await this._mainFrameSession._updateViewport();
144144
}
145145

146+
async bringToFront(): Promise<void> {
147+
await this._mainFrameSession._client.send('Page.bringToFront');
148+
}
149+
146150
async updateEmulateMedia(): Promise<void> {
147151
await this._forAllFrameSessions(frame => frame._updateEmulateMedia());
148152
}

src/firefox/ffPage.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,10 @@ export class FFPage implements PageDelegate {
286286
});
287287
}
288288

289+
async bringToFront(): Promise<void> {
290+
await this._session.send('Page.bringToFront', {});
291+
}
292+
289293
async updateEmulateMedia(): Promise<void> {
290294
const colorScheme = this._page._state.colorScheme || this._browserContext._options.colorScheme || 'light';
291295
await this._session.send('Page.setEmulatedMedia', {

src/firefox/protocol.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,9 @@ export module Protocol {
409409
}|null;
410410
};
411411
export type setViewportSizeReturnValue = void;
412+
export type bringToFrontParameters = {
413+
};
414+
export type bringToFrontReturnValue = void;
412415
export type setEmulatedMediaParameters = {
413416
type?: ("screen"|"print"|"");
414417
colorScheme?: ("dark"|"light"|"no-preference");
@@ -963,6 +966,7 @@ export module Protocol {
963966
"Page.setFileInputFiles": Page.setFileInputFilesParameters;
964967
"Page.addBinding": Page.addBindingParameters;
965968
"Page.setViewportSize": Page.setViewportSizeParameters;
969+
"Page.bringToFront": Page.bringToFrontParameters;
966970
"Page.setEmulatedMedia": Page.setEmulatedMediaParameters;
967971
"Page.setCacheDisabled": Page.setCacheDisabledParameters;
968972
"Page.describeNode": Page.describeNodeParameters;
@@ -1033,6 +1037,7 @@ export module Protocol {
10331037
"Page.setFileInputFiles": Page.setFileInputFilesReturnValue;
10341038
"Page.addBinding": Page.addBindingReturnValue;
10351039
"Page.setViewportSize": Page.setViewportSizeReturnValue;
1040+
"Page.bringToFront": Page.bringToFrontReturnValue;
10361041
"Page.setEmulatedMedia": Page.setEmulatedMediaReturnValue;
10371042
"Page.setCacheDisabled": Page.setCacheDisabledReturnValue;
10381043
"Page.describeNode": Page.describeNodeReturnValue;

src/page.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export interface PageDelegate {
5353
updateEmulateMedia(): Promise<void>;
5454
updateRequestInterception(): Promise<void>;
5555
setFileChooserIntercepted(enabled: boolean): Promise<void>;
56+
bringToFront(): Promise<void>;
5657

5758
canScreenshotOutsideViewport(): boolean;
5859
resetViewport(): Promise<void>; // Only called if canScreenshotOutsideViewport() returns false.
@@ -403,6 +404,10 @@ export class Page extends EventEmitter {
403404
return this._state.viewportSize;
404405
}
405406

407+
async bringToFront(): Promise<void> {
408+
await this._delegate.bringToFront();
409+
}
410+
406411
async evaluate<R, Arg>(pageFunction: js.Func1<Arg, R>, arg: Arg): Promise<R>;
407412
async evaluate<R>(pageFunction: js.Func1<void, R>, arg?: any): Promise<R>;
408413
async evaluate<R, Arg>(pageFunction: js.Func1<Arg, R>, arg: Arg): Promise<R> {

src/rpc/channels.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,7 @@ export interface PageChannel extends Channel {
544544
crStopJSCoverage(params?: PageCrStopJSCoverageParams): Promise<PageCrStopJSCoverageResult>;
545545
crStartCSSCoverage(params: PageCrStartCSSCoverageParams): Promise<PageCrStartCSSCoverageResult>;
546546
crStopCSSCoverage(params?: PageCrStopCSSCoverageParams): Promise<PageCrStopCSSCoverageResult>;
547+
bringToFront(params?: PageBringToFrontParams): Promise<PageBringToFrontResult>;
547548
}
548549
export type PageBindingCallEvent = {
549550
binding: BindingCallChannel,
@@ -798,6 +799,8 @@ export type PageCrStopCSSCoverageResult = {
798799
}[],
799800
}[],
800801
};
802+
export type PageBringToFrontParams = {};
803+
export type PageBringToFrontResult = void;
801804

802805
// ----------- Frame -----------
803806
export type FrameInitializer = {

src/rpc/client/page.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,12 @@ export class Page extends ChannelOwner<PageChannel, PageInitializer> {
414414
return this._attributeToPage(() => this._mainFrame.title());
415415
}
416416

417+
async bringToFront(): Promise<void> {
418+
return this._wrapApiCall('page.bringToFront', async () => {
419+
await this._channel.bringToFront();
420+
});
421+
}
422+
417423
async close(options: { runBeforeUnload?: boolean } = {runBeforeUnload: undefined}) {
418424
return this._wrapApiCall('page.close', async () => {
419425
await this._channel.close(options);

src/rpc/protocol.pdl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,8 @@ interface Page
718718
start: number
719719
end: number
720720

721+
command bringToFront
722+
721723
interface Frame
722724
initializer
723725
url: string

src/rpc/server/pageDispatcher.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ export class PageDispatcher extends Dispatcher<Page, PageInitializer> implements
195195
return { pdf: buffer.toString('base64') };
196196
}
197197

198+
async bringToFront(): Promise<void> {
199+
await this._page.bringToFront();
200+
}
201+
198202
async crStartJSCoverage(params: types.JSCoverageOptions): Promise<void> {
199203
const coverage = this._page.coverage as CRCoverage;
200204
await coverage.startJSCoverage(params);

0 commit comments

Comments
 (0)