File tree Expand file tree Collapse file tree 10 files changed +22
-15
lines changed
packages/playwright-core/src Expand file tree Collapse file tree 10 files changed +22
-15
lines changed Original file line number Diff line number Diff line change 1414 * limitations under the License.
1515 */
1616
17- import { EventEmitter } from 'events' ;
18-
17+ import { EventEmitter } from './eventEmitter' ;
1918import { BrowserContext , prepareBrowserContextParams } from './browserContext' ;
2019import { ChannelOwner } from './channelOwner' ;
2120import { TargetClosedError , isTargetClosedError } from './errors' ;
Original file line number Diff line number Diff line change 1414 * limitations under the License.
1515 */
1616
17- import path from 'path' ;
18-
1917import { Browser } from './browser' ;
2018import { BrowserContext , prepareBrowserContextParams } from './browserContext' ;
2119import { ChannelOwner } from './channelOwner' ;
@@ -101,7 +99,7 @@ export class BrowserType extends ChannelOwner<channels.BrowserTypeChannel> imple
10199 ignoreAllDefaultArgs : ! ! options . ignoreDefaultArgs && ! Array . isArray ( options . ignoreDefaultArgs ) ,
102100 env : options . env ? envObjectToArray ( options . env ) : undefined ,
103101 channel : options . channel ,
104- userDataDir : ( path . isAbsolute ( userDataDir ) || ! userDataDir ) ? userDataDir : path . resolve ( userDataDir ) ,
102+ userDataDir : ( this . _platform . path ( ) . isAbsolute ( userDataDir ) || ! userDataDir ) ? userDataDir : this . _platform . path ( ) . resolve ( userDataDir ) ,
105103 } ;
106104 return await this . _wrapApiCall ( async ( ) => {
107105 const result = await this . _channel . launchPersistentContext ( persistentParams ) ;
Original file line number Diff line number Diff line change 1414 * limitations under the License.
1515 */
1616
17- import { EventEmitter } from 'events' ;
1817
18+ import { EventEmitter } from './eventEmitter' ;
1919import { Android , AndroidDevice , AndroidSocket } from './android' ;
2020import { Artifact } from './artifact' ;
2121import { Browser } from './browser' ;
Original file line number Diff line number Diff line change 2222 * USE OR OTHER DEALINGS IN THE SOFTWARE.
2323 */
2424
25- import { EventEmitter as OriginalEventEmitter } from 'events' ;
26-
2725import { isUnderTest } from '../utils/isomorphic/debug' ;
2826
2927import type { EventEmitter as EventEmitterType } from 'events' ;
@@ -32,6 +30,12 @@ type EventType = string | symbol;
3230type Listener = ( ...args : any [ ] ) => any ;
3331type EventMap = Record < EventType , Listener | Listener [ ] > ;
3432
33+ let defaultMaxListenersProvider = ( ) => 10 ;
34+
35+ export function setDefaultMaxListenersProvider ( provider : ( ) => number ) {
36+ defaultMaxListenersProvider = provider ;
37+ }
38+
3539export class EventEmitter implements EventEmitterType {
3640
3741 private _events : EventMap | undefined = undefined ;
@@ -58,7 +62,7 @@ export class EventEmitter implements EventEmitterType {
5862 }
5963
6064 getMaxListeners ( ) : number {
61- return this . _maxListeners === undefined ? OriginalEventEmitter . defaultMaxListeners : this . _maxListeners ;
65+ return this . _maxListeners === undefined ? defaultMaxListenersProvider ( ) : this . _maxListeners ;
6266 }
6367
6468 emit ( type : EventType , ...args : any [ ] ) : boolean {
Original file line number Diff line number Diff line change 1515 * limitations under the License.
1616 */
1717
18- import { EventEmitter } from 'events' ;
19-
18+ import { EventEmitter } from './eventEmitter' ;
2019import { ChannelOwner } from './channelOwner' ;
2120import { addSourceUrlToScript } from './clientHelper' ;
2221import { ElementHandle , convertInputFiles , convertSelectOptionValues } from './elementHandle' ;
Original file line number Diff line number Diff line change 1414 * limitations under the License.
1515 */
1616
17- import { URLSearchParams } from 'url' ;
18-
1917import { ChannelOwner } from './channelOwner' ;
2018import { isTargetClosedError } from './errors' ;
2119import { Events } from './events' ;
Original file line number Diff line number Diff line change @@ -799,7 +799,7 @@ export class Page extends ChannelOwner<channels.PageChannel> implements api.Page
799799 }
800800
801801 async pause ( _options ?: { __testHookKeepTestTimeout : boolean } ) {
802- if ( require ( 'inspector' ) . url ( ) )
802+ if ( this . _platform . isDebuggerAttached ( ) )
803803 return ;
804804 const defaultNavigationTimeout = this . _browserContext . _timeoutSettings . defaultNavigationTimeout ( ) ;
805805 const defaultTimeout = this . _browserContext . _timeoutSettings . defaultTimeout ( ) ;
Original file line number Diff line number Diff line change @@ -42,6 +42,7 @@ export type Platform = {
4242 createGuid : ( ) => string ;
4343 fs : ( ) => typeof fs ;
4444 inspectCustom : symbol | undefined ;
45+ isDebuggerAttached ( ) : boolean ;
4546 isLogEnabled ( name : 'api' | 'channel' ) : boolean ;
4647 log ( name : 'api' | 'channel' , message : string | Error | object ) : void ;
4748 path : ( ) => typeof path ;
@@ -70,6 +71,7 @@ export const webPlatform: Platform = {
7071
7172 inspectCustom : undefined ,
7273
74+ isDebuggerAttached : ( ) => false ,
7375
7476 isLogEnabled ( name : 'api' | 'channel' ) {
7577 return false ;
@@ -105,6 +107,8 @@ export const emptyPlatform: Platform = {
105107
106108 inspectCustom : undefined ,
107109
110+ isDebuggerAttached : ( ) => false ,
111+
108112 isLogEnabled ( name : 'api' | 'channel' ) {
109113 return false ;
110114 } ,
Original file line number Diff line number Diff line change 1414 * limitations under the License.
1515 */
1616
17- import path from 'path' ;
17+ import * as path from 'path' ;
18+ import { EventEmitter } from 'events' ;
1819
1920import { AndroidServerLauncherImpl } from './androidServerImpl' ;
2021import { BrowserServerLauncherImpl } from './browserServerImpl' ;
@@ -25,6 +26,7 @@ import { setDebugMode } from './utils/isomorphic/debug';
2526import { getFromENV } from './server/utils/env' ;
2627import { nodePlatform } from './server/utils/nodePlatform' ;
2728import { setPlatformForSelectors } from './client/selectors' ;
29+ import { setDefaultMaxListenersProvider } from './client/eventEmitter' ;
2830
2931import type { Playwright as PlaywrightAPI } from './client/playwright' ;
3032import type { Language } from './utils' ;
@@ -35,6 +37,7 @@ export function createInProcessPlaywright(platform: Platform): PlaywrightAPI {
3537 const playwright = createPlaywright ( { sdkLanguage : ( process . env . PW_LANG_NAME as Language | undefined ) || 'javascript' } ) ;
3638 setDebugMode ( getFromENV ( 'PWDEBUG' ) || '' ) ;
3739 setPlatformForSelectors ( nodePlatform ) ;
40+ setDefaultMaxListenersProvider ( ( ) => EventEmitter . defaultMaxListeners ) ;
3841
3942 setLibraryStackPrefix ( path . join ( __dirname , '..' ) ) ;
4043
Original file line number Diff line number Diff line change @@ -67,6 +67,8 @@ export const nodePlatform: Platform = {
6767
6868 inspectCustom : util . inspect . custom ,
6969
70+ isDebuggerAttached : ( ) => ! ! require ( 'inspector' ) . url ( ) ,
71+
7072 isLogEnabled ( name : 'api' | 'channel' ) {
7173 return debugLogger . isEnabled ( name ) ;
7274 } ,
You can’t perform that action at this time.
0 commit comments