Skip to content

Commit 1aee8df

Browse files
authored
feat(rpc): align types/guids in the protocol with their pdl definition (#3079)
This makes the protocol self-explanatory, and avoids silly conversions in codegenerators, e.g. cdpSession <-> CDPSession.
1 parent f50f228 commit 1aee8df

22 files changed

+108
-110
lines changed

src/rpc/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { Transport } from './transport';
2727
connection.onmessage = message => transport.send(JSON.stringify(message));
2828
transport.onmessage = message => connection.dispatch(JSON.parse(message));
2929

30-
const playwright = await connection.waitForObjectWithKnownName('playwright');
30+
const playwright = await connection.waitForObjectWithKnownName('Playwright');
3131
const browser = await playwright.chromium.launch({ headless: false });
3232
const page = await browser.newPage();
3333
await page.goto('https://example.com');

src/rpc/client/connection.ts

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -134,25 +134,16 @@ export class Connection {
134134
let result: ChannelOwner<any, any>;
135135
initializer = this._replaceGuidsWithChannels(initializer);
136136
switch (type) {
137-
case 'bindingCall':
137+
case 'BindingCall':
138138
result = new BindingCall(parent, type, guid, initializer);
139139
break;
140-
case 'browser':
140+
case 'Browser':
141141
if ((parent as BrowserType).name() === 'chromium')
142142
result = new ChromiumBrowser(parent, type, guid, initializer);
143143
else
144144
result = new Browser(parent, type, guid, initializer);
145145
break;
146-
case 'browserServer':
147-
result = new BrowserServer(parent, type, guid, initializer);
148-
break;
149-
case 'browserType':
150-
result = new BrowserType(parent, type, guid, initializer);
151-
break;
152-
case 'cdpSession':
153-
result = new CDPSession(parent, type, guid, initializer);
154-
break;
155-
case 'context':
146+
case 'BrowserContext':
156147
let browserName = '';
157148
if (parent instanceof Electron) {
158149
// Launching electron produces Electron parent for BrowserContext.
@@ -169,52 +160,61 @@ export class Connection {
169160
else
170161
result = new BrowserContext(parent, type, guid, initializer, browserName);
171162
break;
172-
case 'consoleMessage':
163+
case 'BrowserServer':
164+
result = new BrowserServer(parent, type, guid, initializer);
165+
break;
166+
case 'BrowserType':
167+
result = new BrowserType(parent, type, guid, initializer);
168+
break;
169+
case 'CDPSession':
170+
result = new CDPSession(parent, type, guid, initializer);
171+
break;
172+
case 'ConsoleMessage':
173173
result = new ConsoleMessage(parent, type, guid, initializer);
174174
break;
175-
case 'dialog':
175+
case 'Dialog':
176176
result = new Dialog(parent, type, guid, initializer);
177177
break;
178-
case 'download':
178+
case 'Download':
179179
result = new Download(parent, type, guid, initializer);
180180
break;
181-
case 'electron':
181+
case 'Electron':
182182
result = new Electron(parent, type, guid, initializer);
183183
break;
184-
case 'electronApplication':
184+
case 'ElectronApplication':
185185
result = new ElectronApplication(parent, type, guid, initializer);
186186
break;
187-
case 'elementHandle':
187+
case 'ElementHandle':
188188
result = new ElementHandle(parent, type, guid, initializer);
189189
break;
190-
case 'frame':
190+
case 'Frame':
191191
result = new Frame(parent, type, guid, initializer);
192192
break;
193-
case 'jsHandle':
193+
case 'JSHandle':
194194
result = new JSHandle(parent, type, guid, initializer);
195195
break;
196-
case 'page':
196+
case 'Page':
197197
result = new Page(parent, type, guid, initializer);
198198
break;
199-
case 'playwright':
199+
case 'Playwright':
200200
result = new Playwright(parent, type, guid, initializer);
201201
break;
202-
case 'request':
202+
case 'Request':
203203
result = new Request(parent, type, guid, initializer);
204204
break;
205-
case 'stream':
205+
case 'Stream':
206206
result = new Stream(parent, type, guid, initializer);
207207
break;
208-
case 'response':
208+
case 'Response':
209209
result = new Response(parent, type, guid, initializer);
210210
break;
211-
case 'route':
211+
case 'Route':
212212
result = new Route(parent, type, guid, initializer);
213213
break;
214-
case 'selectors':
214+
case 'Selectors':
215215
result = new Selectors(parent, type, guid, initializer);
216216
break;
217-
case 'worker':
217+
case 'Worker':
218218
result = new Worker(parent, type, guid, initializer);
219219
break;
220220
default:

src/rpc/server/browserContextDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class BrowserContextDispatcher extends Dispatcher<BrowserContext, Browser
3030
private _context: BrowserContextBase;
3131

3232
constructor(scope: DispatcherScope, context: BrowserContextBase) {
33-
super(scope, context, 'context', {}, true);
33+
super(scope, context, 'BrowserContext', {}, true);
3434
this._context = context;
3535

3636
for (const page of context.pages())

src/rpc/server/browserDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { headersArrayToObject } from '../serializers';
2727

2828
export class BrowserDispatcher extends Dispatcher<Browser, BrowserInitializer> implements BrowserChannel {
2929
constructor(scope: DispatcherScope, browser: BrowserBase) {
30-
super(scope, browser, 'browser', {}, true);
30+
super(scope, browser, 'Browser', {}, true);
3131
browser.on(Events.Browser.Disconnected, () => {
3232
this._dispatchEvent('close');
3333
this._dispose();

src/rpc/server/browserServerDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { Events } from '../../events';
2121

2222
export class BrowserServerDispatcher extends Dispatcher<BrowserServer, BrowserServerInitializer> implements BrowserServerChannel {
2323
constructor(scope: DispatcherScope, browserServer: BrowserServer) {
24-
super(scope, browserServer, 'browserServer', {
24+
super(scope, browserServer, 'BrowserServer', {
2525
wsEndpoint: browserServer.wsEndpoint(),
2626
pid: browserServer.process().pid
2727
});

src/rpc/server/browserTypeDispatcher.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ import { headersArrayToObject, envArrayToObject } from '../serializers';
2727

2828
export class BrowserTypeDispatcher extends Dispatcher<BrowserType, BrowserTypeInitializer> implements BrowserTypeChannel {
2929
constructor(scope: DispatcherScope, browserType: BrowserTypeBase) {
30-
super(scope, browserType, 'browserType', {
30+
super(scope, browserType, 'BrowserType', {
3131
executablePath: browserType.executablePath(),
3232
name: browserType.name()
33-
}, true, browserType.name());
33+
}, true);
3434
}
3535

3636
async launch(params: BrowserTypeLaunchParams): Promise<{ browser: BrowserChannel }> {

src/rpc/server/cdpSessionDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { serializeResult, parseArgument } from './jsHandleDispatcher';
2121

2222
export class CDPSessionDispatcher extends Dispatcher<CRSession, CDPSessionInitializer> implements CDPSessionChannel {
2323
constructor(scope: DispatcherScope, crSession: CRSession) {
24-
super(scope, crSession, 'cdpSession', {}, true);
24+
super(scope, crSession, 'CDPSession', {}, true);
2525
crSession._eventListener = (method, cdpParams) => {
2626
const params = cdpParams ? serializeResult(cdpParams) : undefined;
2727
this._dispatchEvent('event', { method, params });

src/rpc/server/consoleMessageDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { createHandle } from './elementHandlerDispatcher';
2121

2222
export class ConsoleMessageDispatcher extends Dispatcher<ConsoleMessage, ConsoleMessageInitializer> implements ConsoleMessageChannel {
2323
constructor(scope: DispatcherScope, message: ConsoleMessage) {
24-
super(scope, message, 'consoleMessage', {
24+
super(scope, message, 'ConsoleMessage', {
2525
type: message.type(),
2626
text: message.text(),
2727
args: message.args().map(a => createHandle(scope, a)),

src/rpc/server/dialogDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { Dispatcher, DispatcherScope } from './dispatcher';
2020

2121
export class DialogDispatcher extends Dispatcher<Dialog, DialogInitializer> implements DialogChannel {
2222
constructor(scope: DispatcherScope, dialog: Dialog) {
23-
super(scope, dialog, 'dialog', {
23+
super(scope, dialog, 'Dialog', {
2424
type: dialog.type(),
2525
message: dialog.message(),
2626
defaultValue: dialog.defaultValue(),

src/rpc/server/downloadDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { StreamDispatcher } from './streamDispatcher';
2121

2222
export class DownloadDispatcher extends Dispatcher<Download, DownloadInitializer> implements DownloadChannel {
2323
constructor(scope: DispatcherScope, download: Download) {
24-
super(scope, download, 'download', {
24+
super(scope, download, 'Download', {
2525
url: download.url(),
2626
suggestedFilename: download.suggestedFilename(),
2727
});

0 commit comments

Comments
 (0)