chore: for not use Node's events in client (#34791)
This commit is contained in:
parent
6833b664e3
commit
4a9b336168
|
@ -14,8 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
import { EventEmitter } from './eventEmitter';
|
||||
import { BrowserContext, prepareBrowserContextParams } from './browserContext';
|
||||
import { ChannelOwner } from './channelOwner';
|
||||
import { TargetClosedError, isTargetClosedError } from './errors';
|
||||
|
|
|
@ -14,8 +14,6 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
|
||||
import { Browser } from './browser';
|
||||
import { BrowserContext, prepareBrowserContextParams } from './browserContext';
|
||||
import { ChannelOwner } from './channelOwner';
|
||||
|
@ -101,7 +99,7 @@ export class BrowserType extends ChannelOwner<channels.BrowserTypeChannel> imple
|
|||
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
||||
env: options.env ? envObjectToArray(options.env) : undefined,
|
||||
channel: options.channel,
|
||||
userDataDir: (path.isAbsolute(userDataDir) || !userDataDir) ? userDataDir : path.resolve(userDataDir),
|
||||
userDataDir: (this._platform.path().isAbsolute(userDataDir) || !userDataDir) ? userDataDir : this._platform.path().resolve(userDataDir),
|
||||
};
|
||||
return await this._wrapApiCall(async () => {
|
||||
const result = await this._channel.launchPersistentContext(persistentParams);
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
import { EventEmitter } from './eventEmitter';
|
||||
import { Android, AndroidDevice, AndroidSocket } from './android';
|
||||
import { Artifact } from './artifact';
|
||||
import { Browser } from './browser';
|
||||
|
|
|
@ -22,8 +22,6 @@
|
|||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import { EventEmitter as OriginalEventEmitter } from 'events';
|
||||
|
||||
import { isUnderTest } from '../utils/isomorphic/debug';
|
||||
|
||||
import type { EventEmitter as EventEmitterType } from 'events';
|
||||
|
@ -32,6 +30,12 @@ type EventType = string | symbol;
|
|||
type Listener = (...args: any[]) => any;
|
||||
type EventMap = Record<EventType, Listener | Listener[]>;
|
||||
|
||||
let defaultMaxListenersProvider = () => 10;
|
||||
|
||||
export function setDefaultMaxListenersProvider(provider: () => number) {
|
||||
defaultMaxListenersProvider = provider;
|
||||
}
|
||||
|
||||
export class EventEmitter implements EventEmitterType {
|
||||
|
||||
private _events: EventMap | undefined = undefined;
|
||||
|
@ -58,7 +62,7 @@ export class EventEmitter implements EventEmitterType {
|
|||
}
|
||||
|
||||
getMaxListeners(): number {
|
||||
return this._maxListeners === undefined ? OriginalEventEmitter.defaultMaxListeners : this._maxListeners;
|
||||
return this._maxListeners === undefined ? defaultMaxListenersProvider() : this._maxListeners;
|
||||
}
|
||||
|
||||
emit(type: EventType, ...args: any[]): boolean {
|
||||
|
|
|
@ -15,8 +15,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
import { EventEmitter } from './eventEmitter';
|
||||
import { ChannelOwner } from './channelOwner';
|
||||
import { addSourceUrlToScript } from './clientHelper';
|
||||
import { ElementHandle, convertInputFiles, convertSelectOptionValues } from './elementHandle';
|
||||
|
|
|
@ -14,8 +14,6 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { URLSearchParams } from 'url';
|
||||
|
||||
import { ChannelOwner } from './channelOwner';
|
||||
import { isTargetClosedError } from './errors';
|
||||
import { Events } from './events';
|
||||
|
|
|
@ -799,7 +799,7 @@ export class Page extends ChannelOwner<channels.PageChannel> implements api.Page
|
|||
}
|
||||
|
||||
async pause(_options?: { __testHookKeepTestTimeout: boolean }) {
|
||||
if (require('inspector').url())
|
||||
if (this._platform.isDebuggerAttached())
|
||||
return;
|
||||
const defaultNavigationTimeout = this._browserContext._timeoutSettings.defaultNavigationTimeout();
|
||||
const defaultTimeout = this._browserContext._timeoutSettings.defaultTimeout();
|
||||
|
|
|
@ -42,6 +42,7 @@ export type Platform = {
|
|||
createGuid: () => string;
|
||||
fs: () => typeof fs;
|
||||
inspectCustom: symbol | undefined;
|
||||
isDebuggerAttached(): boolean;
|
||||
isLogEnabled(name: 'api' | 'channel'): boolean;
|
||||
log(name: 'api' | 'channel', message: string | Error | object): void;
|
||||
path: () => typeof path;
|
||||
|
@ -70,6 +71,7 @@ export const webPlatform: Platform = {
|
|||
|
||||
inspectCustom: undefined,
|
||||
|
||||
isDebuggerAttached: () => false,
|
||||
|
||||
isLogEnabled(name: 'api' | 'channel') {
|
||||
return false;
|
||||
|
@ -105,6 +107,8 @@ export const emptyPlatform: Platform = {
|
|||
|
||||
inspectCustom: undefined,
|
||||
|
||||
isDebuggerAttached: () => false,
|
||||
|
||||
isLogEnabled(name: 'api' | 'channel') {
|
||||
return false;
|
||||
},
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
import * as path from 'path';
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
import { AndroidServerLauncherImpl } from './androidServerImpl';
|
||||
import { BrowserServerLauncherImpl } from './browserServerImpl';
|
||||
|
@ -25,6 +26,7 @@ import { setDebugMode } from './utils/isomorphic/debug';
|
|||
import { getFromENV } from './server/utils/env';
|
||||
import { nodePlatform } from './server/utils/nodePlatform';
|
||||
import { setPlatformForSelectors } from './client/selectors';
|
||||
import { setDefaultMaxListenersProvider } from './client/eventEmitter';
|
||||
|
||||
import type { Playwright as PlaywrightAPI } from './client/playwright';
|
||||
import type { Language } from './utils';
|
||||
|
@ -35,6 +37,7 @@ export function createInProcessPlaywright(platform: Platform): PlaywrightAPI {
|
|||
const playwright = createPlaywright({ sdkLanguage: (process.env.PW_LANG_NAME as Language | undefined) || 'javascript' });
|
||||
setDebugMode(getFromENV('PWDEBUG') || '');
|
||||
setPlatformForSelectors(nodePlatform);
|
||||
setDefaultMaxListenersProvider(() => EventEmitter.defaultMaxListeners);
|
||||
|
||||
setLibraryStackPrefix(path.join(__dirname, '..'));
|
||||
|
||||
|
|
|
@ -67,6 +67,8 @@ export const nodePlatform: Platform = {
|
|||
|
||||
inspectCustom: util.inspect.custom,
|
||||
|
||||
isDebuggerAttached: () => !!require('inspector').url(),
|
||||
|
||||
isLogEnabled(name: 'api' | 'channel') {
|
||||
return debugLogger.isEnabled(name);
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue