123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.createInProcessPlaywright = createInProcessPlaywright;
- var _server = require("./server");
- var _connection = require("./client/connection");
- var _browserServerImpl = require("./browserServerImpl");
- var _androidServerImpl = require("./androidServerImpl");
- /**
- * Copyright (c) Microsoft Corporation.
- *
- * Licensed under the Apache License, Version 2.0 (the 'License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- function createInProcessPlaywright() {
- const playwright = (0, _server.createPlaywright)({
- sdkLanguage: process.env.PW_LANG_NAME || 'javascript'
- });
- const clientConnection = new _connection.Connection(undefined, undefined);
- clientConnection.useRawBuffers();
- const dispatcherConnection = new _server.DispatcherConnection(true /* local */);
- // Dispatch synchronously at first.
- dispatcherConnection.onmessage = message => clientConnection.dispatch(message);
- clientConnection.onmessage = message => dispatcherConnection.dispatch(message);
- const rootScope = new _server.RootDispatcher(dispatcherConnection);
- // Initialize Playwright channel.
- new _server.PlaywrightDispatcher(rootScope, playwright);
- const playwrightAPI = clientConnection.getObjectWithKnownName('Playwright');
- playwrightAPI.chromium._serverLauncher = new _browserServerImpl.BrowserServerLauncherImpl('chromium');
- playwrightAPI.firefox._serverLauncher = new _browserServerImpl.BrowserServerLauncherImpl('firefox');
- playwrightAPI.webkit._serverLauncher = new _browserServerImpl.BrowserServerLauncherImpl('webkit');
- playwrightAPI._android._serverLauncher = new _androidServerImpl.AndroidServerLauncherImpl();
- // Switch to async dispatch after we got Playwright object.
- dispatcherConnection.onmessage = message => setImmediate(() => clientConnection.dispatch(message));
- clientConnection.onmessage = message => setImmediate(() => dispatcherConnection.dispatch(message));
- clientConnection.toImpl = x => x ? dispatcherConnection._dispatchers.get(x._guid)._object : dispatcherConnection._dispatchers.get('');
- playwrightAPI._toImpl = clientConnection.toImpl;
- return playwrightAPI;
- }
|