@@ -85,7 +85,7 @@ export class Firefox implements BrowserType {
85
85
return browserContext ;
86
86
}
87
87
88
- private async _launchServer ( options : LaunchOptions = { } , connectionType : LaunchType , userDataDir ?: string , port ?: number ) : Promise < { browserServer : BrowserServer , transport ?: ConnectionTransport } > {
88
+ private async _launchServer ( options : LaunchOptions = { } , launchType : LaunchType , userDataDir ?: string , port ?: number ) : Promise < { browserServer : BrowserServer , transport ?: ConnectionTransport } > {
89
89
const {
90
90
ignoreDefaultArgs = false ,
91
91
args = [ ] ,
@@ -107,9 +107,9 @@ export class Firefox implements BrowserType {
107
107
}
108
108
109
109
if ( ! ignoreDefaultArgs )
110
- firefoxArguments . push ( ...this . _defaultArgs ( options , userDataDir ! , port || 0 ) ) ;
110
+ firefoxArguments . push ( ...this . _defaultArgs ( options , launchType , userDataDir ! , port || 0 ) ) ;
111
111
else if ( Array . isArray ( ignoreDefaultArgs ) )
112
- firefoxArguments . push ( ...this . _defaultArgs ( options , userDataDir ! , port || 0 ) . filter ( arg => ! ignoreDefaultArgs . includes ( arg ) ) ) ;
112
+ firefoxArguments . push ( ...this . _defaultArgs ( options , launchType , userDataDir ! , port || 0 ) . filter ( arg => ! ignoreDefaultArgs . includes ( arg ) ) ) ;
113
113
else
114
114
firefoxArguments . push ( ...args ) ;
115
115
@@ -155,8 +155,8 @@ export class Firefox implements BrowserType {
155
155
const timeoutError = new TimeoutError ( `Timed out after ${ timeout } ms while trying to connect to Firefox!` ) ;
156
156
const match = await waitForLine ( launchedProcess , launchedProcess . stdout , / ^ J u g g l e r l i s t e n i n g o n ( w s : \/ \/ .* ) $ / , timeout , timeoutError ) ;
157
157
const browserWSEndpoint = match [ 1 ] ;
158
- browserServer = new BrowserServer ( launchedProcess , gracefullyClose , connectionType === 'server' ? browserWSEndpoint : null ) ;
159
- return { browserServer, transport : connectionType === 'server' ? undefined : new platform . WebSocketTransport ( browserWSEndpoint ) } ;
158
+ browserServer = new BrowserServer ( launchedProcess , gracefullyClose , launchType === 'server' ? browserWSEndpoint : null ) ;
159
+ return { browserServer, transport : launchType === 'server' ? undefined : new platform . WebSocketTransport ( browserWSEndpoint ) } ;
160
160
}
161
161
162
162
async connect ( options : ConnectOptions ) : Promise < FFBrowser > {
@@ -176,7 +176,7 @@ export class Firefox implements BrowserType {
176
176
return { TimeoutError } ;
177
177
}
178
178
179
- private _defaultArgs ( options : BrowserArgOptions = { } , userDataDir : string , port : number ) : string [ ] {
179
+ private _defaultArgs ( options : BrowserArgOptions = { } , launchType : LaunchType , userDataDir : string , port : number ) : string [ ] {
180
180
const {
181
181
devtools = false ,
182
182
headless = ! devtools ,
@@ -189,6 +189,8 @@ export class Firefox implements BrowserType {
189
189
throw new Error ( 'Pass userDataDir parameter instead of specifying -profile argument' ) ;
190
190
if ( args . find ( arg => arg . startsWith ( '-juggler' ) ) )
191
191
throw new Error ( 'Use the port parameter instead of -juggler argument' ) ;
192
+ if ( launchType !== 'persistent' && args . find ( arg => ! arg . startsWith ( '-' ) ) )
193
+ throw new Error ( 'Arguments can not specify page to be opened' ) ;
192
194
193
195
const firefoxArguments = [ '-no-remote' ] ;
194
196
if ( headless ) {
0 commit comments