New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

playwright-core

Package Overview
Dependencies
Maintainers
1
Versions
4784
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

playwright-core - npm Package Compare versions

Comparing version 0.11.1-next.1583541572382 to 0.11.1-next.1583543158962

13

lib/firefox/ffBrowser.d.ts

@@ -33,3 +33,3 @@ /**

private _eventListeners;
static connect(transport: ConnectionTransport, slowMo?: number): Promise<FFBrowser>;
static connect(transport: ConnectionTransport, attachToDefaultContext: boolean, slowMo?: number): Promise<FFBrowser>;
constructor(connection: FFConnection);

@@ -44,6 +44,4 @@ isConnected(): boolean;

_allTargets(): Target[];
_onTargetCreated(payload: Protocol.Target.targetCreatedPayload): Promise<void>;
_onTargetDestroyed(payload: Protocol.Target.targetDestroyedPayload): void;
_onTargetInfoChanged(payload: Protocol.Target.targetInfoChangedPayload): void;
_onAttachedToTarget(payload: Protocol.Target.attachedToTargetPayload): Promise<void>;
_onDetachedFromTarget(payload: Protocol.Browser.detachedFromTargetPayload): void;
_onAttachedToTarget(payload: Protocol.Browser.attachedToTargetPayload): Promise<void>;
close(): Promise<void>;

@@ -57,8 +55,7 @@ _setDebugFunction(debugFunction: (message: string) => void): void;

private readonly _context;
private readonly _connection;
private readonly _targetId;
private readonly _type;
_url: string;
private readonly _openerId;
constructor(connection: any, browser: FFBrowser, context: FFBrowserContext, targetId: string, type: 'page' | 'browser', url: string, openerId: string | undefined);
private _session?;
constructor(browser: FFBrowser, context: FFBrowserContext, type: 'page' | 'browser', url: string, openerId: string | undefined);
_didClose(): void;

@@ -65,0 +62,0 @@ opener(): Target | null;

@@ -30,2 +30,3 @@ "use strict";

const ffPage_1 = require("./ffPage");
const kAttachedToTarget = Symbol('kAttachedToTarget');
class FFBrowser extends platform.EventEmitter {

@@ -44,12 +45,10 @@ constructor(connection) {

this._eventListeners = [
helper_1.helper.addEventListener(this._connection, 'Target.targetCreated', this._onTargetCreated.bind(this)),
helper_1.helper.addEventListener(this._connection, 'Target.targetDestroyed', this._onTargetDestroyed.bind(this)),
helper_1.helper.addEventListener(this._connection, 'Target.targetInfoChanged', this._onTargetInfoChanged.bind(this)),
helper_1.helper.addEventListener(this._connection, 'Target.attachedToTarget', this._onAttachedToTarget.bind(this)),
helper_1.helper.addEventListener(this._connection, 'Browser.attachedToTarget', this._onAttachedToTarget.bind(this)),
helper_1.helper.addEventListener(this._connection, 'Browser.detachedFromTarget', this._onDetachedFromTarget.bind(this)),
];
}
static async connect(transport, slowMo) {
static async connect(transport, attachToDefaultContext, slowMo) {
const connection = new ffConnection_1.FFConnection(transport_1.SlowMoTransport.wrap(transport, slowMo));
const browser = new FFBrowser(connection);
await connection.send('Target.enable');
await connection.send('Browser.enable', { attachToDefaultContext });
return browser;

@@ -82,3 +81,3 @@ }

}
const { browserContextId } = await this._connection.send('Target.createBrowserContext', {
const { browserContextId } = await this._connection.send('Browser.createBrowserContext', {
userAgent: options.userAgent,

@@ -111,3 +110,3 @@ bypassCSP: options.bypassCSP,

const targetPromise = new Promise(x => resolve = x);
this.on('targetchanged', check);
this.on(kAttachedToTarget, check);
try {

@@ -119,3 +118,3 @@ if (!timeout)

finally {
this.removeListener('targetchanged', check);
this.removeListener(kAttachedToTarget, check);
}

@@ -130,9 +129,3 @@ function check(target) {

}
async _onTargetCreated(payload) {
const { targetId, url, browserContextId, openerId, type } = payload;
const context = browserContextId ? this._contexts.get(browserContextId) : this._defaultContext;
const target = new Target(this._connection, this, context, targetId, type, url, openerId);
this._targets.set(targetId, target);
}
_onTargetDestroyed(payload) {
_onDetachedFromTarget(payload) {
const { targetId } = payload;

@@ -143,13 +136,11 @@ const target = this._targets.get(targetId);

}
_onTargetInfoChanged(payload) {
const { targetId, url } = payload;
const target = this._targets.get(targetId);
target._url = url;
}
async _onAttachedToTarget(payload) {
const { targetId } = payload.targetInfo;
const target = this._targets.get(targetId);
target._initPagePromise(this._connection.getSession(payload.sessionId));
const { targetId, browserContextId, openerId, type } = payload.targetInfo;
const context = browserContextId ? this._contexts.get(browserContextId) : this._defaultContext;
const target = new Target(this, context, type, '', openerId);
this._targets.set(targetId, target);
target._initPagePromise(this._connection.createSession(payload.sessionId, type));
const pageEvent = new page_1.PageEvent(target.pageOrError());
target.context().emit(events_1.Events.BrowserContext.Page, pageEvent);
this.emit(kAttachedToTarget, target);
const opener = target.opener();

@@ -175,8 +166,6 @@ if (!opener)

class Target {
constructor(connection, browser, context, targetId, type, url, openerId) {
constructor(browser, context, type, url, openerId) {
this._ffPage = null;
this._browser = browser;
this._context = context;
this._connection = connection;
this._targetId = targetId;
this._type = type;

@@ -187,2 +176,4 @@ this._url = url;

_didClose() {
if (this._session)
this._session.dispose();
if (this._ffPage)

@@ -206,7 +197,6 @@ this._ffPage.didClose();

throw new Error(`Cannot create page for "${this._type}" target`);
if (!this._pagePromise)
await this._connection.send('Target.attachToTarget', { targetId: this._targetId });
return this._pagePromise;
}
_initPagePromise(session) {
this._session = session;
this._pagePromise = new Promise(async (f) => {

@@ -279,3 +269,3 @@ this._ffPage = new ffPage_1.FFPage(session, this._context, async () => {

browserContext_1.assertBrowserContextIsNotOwned(this);
const { targetId } = await this._browser._connection.send('Target.newPage', {
const { targetId } = await this._browser._connection.send('Browser.newPage', {
browserContextId: this._browserContextId || undefined

@@ -360,3 +350,3 @@ });

helper_1.assert(this._browserContextId, 'Non-incognito profiles cannot be closed!');
await this._browser._connection.send('Target.removeBrowserContext', { browserContextId: this._browserContextId });
await this._browser._connection.send('Browser.removeBrowserContext', { browserContextId: this._browserContextId });
this._browser._contexts.delete(this._browserContextId);

@@ -363,0 +353,0 @@ this._didCloseInternal();

@@ -28,3 +28,3 @@ /**

private _transport;
private _sessions;
readonly _sessions: Map<string, FFSession>;
_debugProtocol: (message: string) => void;

@@ -38,4 +38,2 @@ _closed: boolean;

constructor(transport: ConnectionTransport);
static fromSession(session: FFSession): FFConnection;
session(sessionId: string): FFSession | null;
send<T extends keyof Protocol.CommandParameters>(method: T, params?: Protocol.CommandParameters[T]): Promise<Protocol.CommandReturnValues[T]>;

@@ -47,3 +45,3 @@ nextMessageId(): number;

close(): void;
getSession(sessionId: string): FFSession | null;
createSession(sessionId: string, type: string): FFSession;
}

@@ -77,3 +75,3 @@ export declare const FFSessionEvents: {

}): void;
_onClosed(): void;
dispose(): void;
}

@@ -44,8 +44,2 @@ "use strict";

}
static fromSession(session) {
return session._connection;
}
session(sessionId) {
return this._sessions.get(sessionId) || null;
}
async send(method, params) {

@@ -71,14 +65,2 @@ const id = this.nextMessageId();

return;
if (object.method === 'Target.attachedToTarget') {
const sessionId = object.params.sessionId;
const session = new FFSession(this, object.params.targetInfo.type, sessionId, message => this._rawSend({ ...message, sessionId }));
this._sessions.set(sessionId, session);
}
else if (object.method === 'Target.detachedFromTarget') {
const session = this._sessions.get(object.params.sessionId);
if (session) {
session._onClosed();
this._sessions.delete(object.params.sessionId);
}
}
if (object.sessionId) {

@@ -112,3 +94,3 @@ const session = this._sessions.get(object.sessionId);

for (const session of this._sessions.values())
session._onClosed();
session.dispose();
this._sessions.clear();

@@ -121,4 +103,6 @@ Promise.resolve().then(() => this.emit(exports.ConnectionEvents.Disconnected));

}
getSession(sessionId) {
return this._sessions.get(sessionId) || null;
createSession(sessionId, type) {
const session = new FFSession(this, type, sessionId, message => this._rawSend({ ...message, sessionId }));
this._sessions.set(sessionId, session);
return session;
}

@@ -168,3 +152,3 @@ }

}
_onClosed() {
dispose() {
for (const callback of this._callbacks.values())

@@ -174,2 +158,3 @@ callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));

this._disposed = true;
this._connection._sessions.delete(this._sessionId);
Promise.resolve().then(() => this.emit(exports.FFSessionEvents.Disconnected));

@@ -176,0 +161,0 @@ }

@@ -192,3 +192,3 @@ "use strict";

return;
worker.session._onClosed();
worker.session.dispose();
this._workers.delete(workerId);

@@ -195,0 +195,0 @@ this._page._removeWorker(workerId);

export declare module Protocol {
module Browser {
type TargetInfo = {
type: ("page");
targetId: string;
browserContextId?: string;
openerId?: string;
};
type CookieOptions = {

@@ -26,2 +32,47 @@ name: string;

};
type attachedToTargetPayload = {
sessionId: string;
targetInfo: {
type: ("page");
targetId: string;
browserContextId?: string;
openerId?: string;
};
};
type detachedFromTargetPayload = {
sessionId: string;
targetId: string;
};
type enableParameters = {
attachToDefaultContext: boolean;
};
type enableReturnValue = void;
type createBrowserContextParameters = {
removeOnDetach?: boolean;
userAgent?: string;
bypassCSP?: boolean;
javaScriptDisabled?: boolean;
viewport?: {
viewportSize: {
width: number;
height: number;
};
deviceScaleFactor: number;
isMobile: boolean;
hasTouch: boolean;
};
};
type createBrowserContextReturnValue = {
browserContextId: string;
};
type removeBrowserContextParameters = {
browserContextId: string;
};
type removeBrowserContextReturnValue = void;
type newPageParameters = {
browserContextId?: string;
};
type newPageReturnValue = {
targetId: string;
};
type closeParameters = void;

@@ -106,85 +157,2 @@ type closeReturnValue = void;

}
module Target {
type TargetInfo = {
type: ("page" | "browser");
targetId: string;
browserContextId?: string;
url: string;
openerId?: string;
};
type attachedToTargetPayload = {
sessionId: string;
targetInfo: {
type: ("page" | "browser");
targetId: string;
browserContextId?: string;
url: string;
openerId?: string;
};
};
type detachedFromTargetPayload = {
sessionId: string;
};
type targetCreatedPayload = {
type: ("page" | "browser");
targetId: string;
browserContextId?: string;
url: string;
openerId?: string;
};
type targetDestroyedPayload = {
type: ("page" | "browser");
targetId: string;
browserContextId?: string;
url: string;
openerId?: string;
};
type targetInfoChangedPayload = {
type: ("page" | "browser");
targetId: string;
browserContextId?: string;
url: string;
openerId?: string;
};
type enableParameters = void;
type enableReturnValue = void;
type attachToTargetParameters = {
targetId: string;
};
type attachToTargetReturnValue = {
sessionId: string;
};
type newPageParameters = {
browserContextId?: string;
};
type newPageReturnValue = {
targetId: string;
};
type createBrowserContextParameters = {
removeOnDetach?: boolean;
userAgent?: string;
bypassCSP?: boolean;
javaScriptDisabled?: boolean;
viewport?: {
viewportSize: {
width: number;
height: number;
};
deviceScaleFactor: number;
isMobile: boolean;
hasTouch: boolean;
};
};
type createBrowserContextReturnValue = {
browserContextId: string;
};
type removeBrowserContextParameters = {
browserContextId: string;
};
type removeBrowserContextReturnValue = void;
type getBrowserContextsParameters = void;
type getBrowserContextsReturnValue = {
browserContextIds: string[];
};
}
module Page {

@@ -827,7 +795,4 @@ type DOMPoint = {

interface Events {
"Target.attachedToTarget": Target.attachedToTargetPayload;
"Target.detachedFromTarget": Target.detachedFromTargetPayload;
"Target.targetCreated": Target.targetCreatedPayload;
"Target.targetDestroyed": Target.targetDestroyedPayload;
"Target.targetInfoChanged": Target.targetInfoChangedPayload;
"Browser.attachedToTarget": Browser.attachedToTargetPayload;
"Browser.detachedFromTarget": Browser.detachedFromTargetPayload;
"Page.ready": Page.readyPayload;

@@ -860,2 +825,6 @@ "Page.crashed": Page.crashedPayload;

interface CommandParameters {
"Browser.enable": Browser.enableParameters;
"Browser.createBrowserContext": Browser.createBrowserContextParameters;
"Browser.removeBrowserContext": Browser.removeBrowserContextParameters;
"Browser.newPage": Browser.newPageParameters;
"Browser.close": Browser.closeParameters;

@@ -872,8 +841,2 @@ "Browser.getInfo": Browser.getInfoParameters;

"Browser.getCookies": Browser.getCookiesParameters;
"Target.enable": Target.enableParameters;
"Target.attachToTarget": Target.attachToTargetParameters;
"Target.newPage": Target.newPageParameters;
"Target.createBrowserContext": Target.createBrowserContextParameters;
"Target.removeBrowserContext": Target.removeBrowserContextParameters;
"Target.getBrowserContexts": Target.getBrowserContextsParameters;
"Page.close": Page.closeParameters;

@@ -918,2 +881,6 @@ "Page.setFileInputFiles": Page.setFileInputFilesParameters;

interface CommandReturnValues {
"Browser.enable": Browser.enableReturnValue;
"Browser.createBrowserContext": Browser.createBrowserContextReturnValue;
"Browser.removeBrowserContext": Browser.removeBrowserContextReturnValue;
"Browser.newPage": Browser.newPageReturnValue;
"Browser.close": Browser.closeReturnValue;

@@ -930,8 +897,2 @@ "Browser.getInfo": Browser.getInfoReturnValue;

"Browser.getCookies": Browser.getCookiesReturnValue;
"Target.enable": Target.enableReturnValue;
"Target.attachToTarget": Target.attachToTargetReturnValue;
"Target.newPage": Target.newPageReturnValue;
"Target.createBrowserContext": Target.createBrowserContextReturnValue;
"Target.removeBrowserContext": Target.removeBrowserContextReturnValue;
"Target.getBrowserContexts": Target.getBrowserContextsReturnValue;
"Page.close": Page.closeReturnValue;

@@ -938,0 +899,0 @@ "Page.setFileInputFiles": Page.setFileInputFilesReturnValue;

@@ -56,3 +56,3 @@ "use strict";

const browser = await platform.connectToWebsocket(browserServer.wsEndpoint(), transport => {
return ffBrowser_1.FFBrowser.connect(transport, options && options.slowMo);
return ffBrowser_1.FFBrowser.connect(transport, false, options && options.slowMo);
});

@@ -71,3 +71,3 @@ // Hack: for typical launch scenario, ensure that close waits for actual process termination.

const browser = await platform.connectToWebsocket(browserServer.wsEndpoint(), transport => {
return ffBrowser_1.FFBrowser.connect(transport);
return ffBrowser_1.FFBrowser.connect(transport, true);
});

@@ -139,3 +139,3 @@ await helper_1.helper.waitWithTimeout(browser._waitForTarget(t => t.type() === 'page'), 'first page', timeout);

return await platform.connectToWebsocket(options.wsEndpoint, transport => {
return ffBrowser_1.FFBrowser.connect(transport, options.slowMo);
return ffBrowser_1.FFBrowser.connect(transport, false, options.slowMo);
});

@@ -142,0 +142,0 @@ }

@@ -39,3 +39,3 @@ "use strict";

return await platform.connectToWebsocket(url, transport => {
return ffBrowser_1.FFBrowser.connect(transport);
return ffBrowser_1.FFBrowser.connect(transport, false);
});

@@ -42,0 +42,0 @@ }

@@ -47,3 +47,2 @@ /**

private _initialized;
private readonly _sessions;
constructor(browserContext: WKBrowserContext, pageProxySession: WKSession, opener: WKPage | null);

@@ -50,0 +49,0 @@ _initializedPage(): Page | undefined;

@@ -35,3 +35,2 @@ "use strict";

const BINDING_CALL_MESSAGE = '__playwright_binding_call__';
const isPovisionalSymbol = Symbol('isPovisional');
class WKPage {

@@ -45,4 +44,2 @@ constructor(browserContext, pageProxySession, opener) {

this._initialized = false;
// TODO: we should be able to just use |this._session| and |this._provisionalPage|.
this._sessions = new Map();
this._pageProxySession = pageProxySession;

@@ -141,10 +138,7 @@ this._opener = opener;

const { oldTargetId, newTargetId } = event;
const newSession = this._sessions.get(newTargetId);
helper_1.assert(newSession, 'Unknown new target: ' + newTargetId);
const oldSession = this._sessions.get(oldTargetId);
helper_1.assert(oldSession, 'Unknown old target: ' + oldTargetId);
oldSession.errorText = 'Target was swapped out.';
newSession[isPovisionalSymbol] = undefined;
helper_1.assert(this._provisionalPage);
helper_1.assert(this._provisionalPage._session === newSession);
helper_1.assert(this._provisionalPage._session.sessionId === newTargetId, 'Unknown new target: ' + newTargetId);
helper_1.assert(this._session.sessionId === oldTargetId, 'Unknown old target: ' + oldTargetId);
this._session.errorText = 'Target was swapped out.';
const newSession = this._provisionalPage._session;
this._provisionalPage.commit();

@@ -157,13 +151,12 @@ this._provisionalPage.dispose();

const { targetId, crashed } = event;
const session = this._sessions.get(targetId);
helper_1.assert(session, 'Unknown target destroyed: ' + targetId);
session.dispose();
this._sessions.delete(targetId);
if (this._provisionalPage && this._provisionalPage._session === session) {
if (this._provisionalPage && this._provisionalPage._session.sessionId === targetId) {
this._provisionalPage._session.dispose();
this._provisionalPage.dispose();
this._provisionalPage = null;
return;
}
if (this._session === session && crashed)
this.didClose(crashed);
else if (this._session.sessionId === targetId) {
this._session.dispose();
if (crashed)
this.didClose(crashed);
}
}

@@ -180,6 +173,6 @@ didClose(crashed) {

helper_1.helper.removeEventListeners(this._eventListeners);
for (const session of this._sessions.values())
session.dispose();
this._sessions.clear();
if (this._session)
this._session.dispose();
if (this._provisionalPage) {
this._provisionalPage._session.dispose();
this._provisionalPage.dispose();

@@ -214,3 +207,2 @@ this._provisionalPage = null;

helper_1.assert(targetInfo.type === 'page', 'Only page targets are expected in WebKit, received: ' + targetInfo.type);
this._sessions.set(targetInfo.targetId, session);
if (!this._initialized) {

@@ -237,3 +229,2 @@ helper_1.assert(!targetInfo.isProvisional);

helper_1.assert(targetInfo.isProvisional);
session[isPovisionalSymbol] = true;
helper_1.assert(!this._provisionalPage);

@@ -250,5 +241,8 @@ this._provisionalPage = new wkProvisionalPage_1.WKProvisionalPage(session, this);

const { targetId, message } = event;
const session = this._sessions.get(targetId);
helper_1.assert(session, 'Unknown target: ' + targetId);
session.dispatchMessage(JSON.parse(message));
if (this._provisionalPage && this._provisionalPage._session.sessionId === targetId)
this._provisionalPage._session.dispatchMessage(JSON.parse(message));
else if (this._session.sessionId === targetId)
this._session.dispatchMessage(JSON.parse(message));
else
throw new Error('Unknown target: ' + targetId);
}

@@ -255,0 +249,0 @@ _addSessionListeners() {

{
"name": "playwright-core",
"version": "0.11.1-next.1583541572382",
"version": "0.11.1-next.1583543158962",
"description": "A high-level API to automate web browsers",

@@ -12,3 +12,3 @@ "repository": "github:Microsoft/playwright",

"chromium_revision": "747023",
"firefox_revision": "1039",
"firefox_revision": "1040",
"webkit_revision": "1168"

@@ -15,0 +15,0 @@ },

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc