@mablhq/mabl-cli 1.48.1 → 1.48.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browserEngines/browserEngines.js +2 -0
- package/browserEngines/chromiumBrowserEngine.js +1 -1
- package/browserEngines/firefoxBrowserEngine.js +14 -4
- package/browserEngines/webkitBrowerEngine.js +39 -0
- package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxBrowserDelegate.js +2 -45
- package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxElementHandleDelegate.js +2 -56
- package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxFrameDelegate.js +2 -5
- package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxPageDelegate.js +2 -70
- package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractBrowserDelegate.js +50 -0
- package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractElementHandleDelegate.js +61 -0
- package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractFrameDelegate.js +10 -0
- package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractPageDelegate.js +75 -0
- package/browserLauncher/playwrightBrowserLauncher/playwrightBrowser.js +3 -0
- package/browserLauncher/playwrightBrowserLauncher/playwrightBrowserLauncher.js +2 -0
- package/browserLauncher/playwrightBrowserLauncher/webkit/webkitBrowserDelegate.js +11 -0
- package/browserLauncher/playwrightBrowserLauncher/webkit/webkitElementHandleDelegate.js +7 -0
- package/browserLauncher/playwrightBrowserLauncher/webkit/webkitFrameDelegate.js +10 -0
- package/browserLauncher/playwrightBrowserLauncher/webkit/webkitPageDelegate.js +15 -0
- package/commands/browserTypes.js +5 -0
- package/commands/tests/testsUtil.js +1 -1
- package/execution/index.js +1 -1
- package/http/requestInterceptor.js +6 -2
- package/mablscriptFind/index.js +1 -1
- package/observers/mockObserver.js +3 -0
- package/package.json +3 -3
- package/resources/mablFind.js +1 -1
- package/util/browserTestUtils.js +4 -5
|
@@ -5,10 +5,12 @@ const browserTypes_1 = require("../commands/browserTypes");
|
|
|
5
5
|
const chromiumBrowserEngine_1 = require("./chromiumBrowserEngine");
|
|
6
6
|
const firefoxBrowserEngine_1 = require("./firefoxBrowserEngine");
|
|
7
7
|
const unsupportedBrowserEngine_1 = require("./unsupportedBrowserEngine");
|
|
8
|
+
const webkitBrowerEngine_1 = require("./webkitBrowerEngine");
|
|
8
9
|
exports.BrowserTypeToBrowserEngine = {
|
|
9
10
|
[browserTypes_1.BrowserType.Chrome]: new chromiumBrowserEngine_1.ChromiumBrowserEngine(),
|
|
10
11
|
[browserTypes_1.BrowserType.Edge]: new chromiumBrowserEngine_1.ChromiumBrowserEngine(),
|
|
11
12
|
[browserTypes_1.BrowserType.Firefox]: new firefoxBrowserEngine_1.FirefoxBrowserEngine(),
|
|
12
13
|
[browserTypes_1.BrowserType.Safari]: new unsupportedBrowserEngine_1.UnsupportedBrowserEngine(),
|
|
14
|
+
[browserTypes_1.BrowserType.Webkit]: new webkitBrowerEngine_1.WebkitBrowserEngine(),
|
|
13
15
|
};
|
|
14
16
|
exports.DefaultBrowserEngine = exports.BrowserTypeToBrowserEngine[browserTypes_1.BrowserType.Chrome];
|
|
@@ -127,7 +127,7 @@ class ChromiumBrowserEngine {
|
|
|
127
127
|
retries: 5,
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
-
generateChromiumPreferencesFile(windowPlacement) {
|
|
130
|
+
generateChromiumPreferencesFile(windowPlacement, _proxyInfo) {
|
|
131
131
|
const preferences = {
|
|
132
132
|
download: {
|
|
133
133
|
open_pdf_in_system_reader: true,
|
|
@@ -49,12 +49,21 @@ class FirefoxBrowserEngine {
|
|
|
49
49
|
defaultDeviceDescriptor: (0, mobileEmulationUtil_1.getDeviceDescriptorForEmulation)(options.emulationConfig),
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
prepareBrowserPreferencesDirectory(_windowPlacement) {
|
|
52
|
+
prepareBrowserPreferencesDirectory(_windowPlacement, proxyInfo) {
|
|
53
|
+
const customPreferences = {};
|
|
54
|
+
if (proxyInfo === null || proxyInfo === void 0 ? void 0 : proxyInfo.pacProxy) {
|
|
55
|
+
customPreferences['network.proxy.autoconfig_url'] = proxyInfo === null || proxyInfo === void 0 ? void 0 : proxyInfo.pacProxy;
|
|
56
|
+
customPreferences['network.proxy.type'] = 2;
|
|
57
|
+
}
|
|
58
|
+
else if (proxyInfo === null || proxyInfo === void 0 ? void 0 : proxyInfo.socksProxy) {
|
|
59
|
+
customPreferences['network.proxy.socks'] = proxyInfo === null || proxyInfo === void 0 ? void 0 : proxyInfo.socksProxy;
|
|
60
|
+
customPreferences['network.proxy.type'] = 1;
|
|
61
|
+
}
|
|
53
62
|
return (0, async_retry_1.default)(() => {
|
|
54
63
|
const preferenceFileName = 'user.js';
|
|
55
64
|
const tempBrowserPreferencesDirectory = (0, browserEngine_1.getTempBrowserPrefDirectory)(this.name());
|
|
56
65
|
const prefFilePath = path_1.default.normalize(`${tempBrowserPreferencesDirectory}/${preferenceFileName}`);
|
|
57
|
-
fs.writeFileSync(prefFilePath, this.generatePreferencesInfo());
|
|
66
|
+
fs.writeFileSync(prefFilePath, this.generatePreferencesInfo(customPreferences));
|
|
58
67
|
return tempBrowserPreferencesDirectory;
|
|
59
68
|
}, {
|
|
60
69
|
retries: 5,
|
|
@@ -63,9 +72,10 @@ class FirefoxBrowserEngine {
|
|
|
63
72
|
findBrowserExecutable() {
|
|
64
73
|
return Promise.resolve('');
|
|
65
74
|
}
|
|
66
|
-
generatePreferencesInfo() {
|
|
75
|
+
generatePreferencesInfo(customPrefs = {}) {
|
|
67
76
|
const lines = [];
|
|
68
|
-
|
|
77
|
+
const prefs = { ...this.getFirefoxUserPrefs(), ...customPrefs };
|
|
78
|
+
for (const [name, value] of Object.entries(prefs)) {
|
|
69
79
|
lines.push(`user_pref(${JSON.stringify(name)}, ${JSON.stringify(value)});`);
|
|
70
80
|
}
|
|
71
81
|
return lines.join('\n');
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WebkitBrowserEngine = void 0;
|
|
7
|
+
const mobileEmulationUtil_1 = require("../commands/tests/mobileEmulationUtil");
|
|
8
|
+
const browserEngine_1 = require("./browserEngine");
|
|
9
|
+
const async_retry_1 = __importDefault(require("async-retry"));
|
|
10
|
+
class WebkitBrowserEngine {
|
|
11
|
+
name() {
|
|
12
|
+
return 'webkit';
|
|
13
|
+
}
|
|
14
|
+
getBrowserLaunchOptions(options) {
|
|
15
|
+
return {
|
|
16
|
+
commandLineArgs: [],
|
|
17
|
+
ignoreCommandLineDefaultArgs: [],
|
|
18
|
+
defaultDeviceDescriptor: (0, mobileEmulationUtil_1.getDeviceDescriptorForEmulation)(options.emulationConfig),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
getExecutionEngineBrowserLaunchOptions(options, _proxyInfo) {
|
|
22
|
+
return {
|
|
23
|
+
commandLineArgs: [],
|
|
24
|
+
defaultDeviceDescriptor: (0, mobileEmulationUtil_1.getDeviceDescriptorForEmulation)(options.emulationConfig),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
prepareBrowserPreferencesDirectory(_windowPlacement) {
|
|
28
|
+
return (0, async_retry_1.default)(() => {
|
|
29
|
+
const tempBrowserPreferencesDirectory = (0, browserEngine_1.getTempBrowserPrefDirectory)(this.name());
|
|
30
|
+
return tempBrowserPreferencesDirectory;
|
|
31
|
+
}, {
|
|
32
|
+
retries: 5,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
findBrowserExecutable() {
|
|
36
|
+
return Promise.resolve('');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.WebkitBrowserEngine = WebkitBrowserEngine;
|
|
@@ -1,54 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.FirefoxBrowserDelegate = void 0;
|
|
27
|
-
const playwright = __importStar(require("@playwright/test"));
|
|
28
4
|
const firefoxPageDelegate_1 = require("./firefoxPageDelegate");
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.context = context;
|
|
32
|
-
const contextImpl = playwright._toImpl(context);
|
|
33
|
-
this._browser = contextImpl._browser;
|
|
34
|
-
}
|
|
35
|
-
setDownloadBehavior(_downloadDirectory) {
|
|
36
|
-
return Promise.resolve();
|
|
37
|
-
}
|
|
38
|
-
getCDPSession() {
|
|
39
|
-
return this._browser._connection;
|
|
40
|
-
}
|
|
41
|
-
getBrowser() {
|
|
42
|
-
return this._browser;
|
|
43
|
-
}
|
|
5
|
+
const nonChromiumAbstractBrowserDelegate_1 = require("../nonChromium/nonChromiumAbstractBrowserDelegate");
|
|
6
|
+
class FirefoxBrowserDelegate extends nonChromiumAbstractBrowserDelegate_1.NonChromiumAbstractBrowserDelegate {
|
|
44
7
|
createPageDelegate(page) {
|
|
45
8
|
return new firefoxPageDelegate_1.FirefoxPageDelegate(page);
|
|
46
9
|
}
|
|
47
|
-
downloadsUsingGuids() {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
supportsTracing() {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
10
|
}
|
|
54
11
|
exports.FirefoxBrowserDelegate = FirefoxBrowserDelegate;
|
|
@@ -1,61 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.FirefoxElementHandleDelegate = void 0;
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
class FirefoxElementHandleDelegate {
|
|
30
|
-
constructor(elementHandle) {
|
|
31
|
-
this.elementHandle = elementHandle;
|
|
32
|
-
try {
|
|
33
|
-
this.elementImpl = playwright._toImpl(elementHandle);
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
getElementImpl() {
|
|
39
|
-
return this.elementImpl;
|
|
40
|
-
}
|
|
41
|
-
checkCDPSession() {
|
|
42
|
-
var _a, _b, _c;
|
|
43
|
-
if (this.elementImpl === undefined) {
|
|
44
|
-
(0, logUtils_1.logInternal)(`Unable to get the Element's internal implementation. Some functionality, such as getting the clickable point or element highlighting might not work.`);
|
|
45
|
-
}
|
|
46
|
-
else if (this.getCDPSession() === undefined) {
|
|
47
|
-
const undefinedField = ((_b = (_a = this.elementImpl) === null || _a === void 0 ? void 0 : _a._context) === null || _b === void 0 ? void 0 : _b._delegate) !== undefined
|
|
48
|
-
? '_client'
|
|
49
|
-
: ((_c = this.elementImpl) === null || _c === void 0 ? void 0 : _c._context) !== undefined
|
|
50
|
-
? '_delegate'
|
|
51
|
-
: '_context';
|
|
52
|
-
(0, logUtils_1.logInternal)(`Unable to get the CDP Session of the element handle. ${undefinedField} is undefined. Some functionality, such as element highlighting will not work.`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
getCDPSession() {
|
|
56
|
-
var _a, _b, _c;
|
|
57
|
-
this.checkCDPSession();
|
|
58
|
-
return (_c = (_b = (_a = this.elementImpl) === null || _a === void 0 ? void 0 : _a._context) === null || _b === void 0 ? void 0 : _b._delegate) === null || _c === void 0 ? void 0 : _c._session;
|
|
59
|
-
}
|
|
4
|
+
const nonChromiumAbstractElementHandleDelegate_1 = require("../nonChromium/nonChromiumAbstractElementHandleDelegate");
|
|
5
|
+
class FirefoxElementHandleDelegate extends nonChromiumAbstractElementHandleDelegate_1.NonChromiumAbstractElementHandleDelegate {
|
|
60
6
|
}
|
|
61
7
|
exports.FirefoxElementHandleDelegate = FirefoxElementHandleDelegate;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FirefoxFrameDelegate = void 0;
|
|
4
|
+
const nonChromiumAbstractFrameDelegate_1 = require("../nonChromium/nonChromiumAbstractFrameDelegate");
|
|
4
5
|
const playwrightFrame_1 = require("../playwrightFrame");
|
|
5
|
-
class FirefoxFrameDelegate {
|
|
6
|
-
constructor(parentPageDelegate, frame) {
|
|
7
|
-
this.parentPageDelegate = parentPageDelegate;
|
|
8
|
-
this.frame = frame;
|
|
9
|
-
}
|
|
6
|
+
class FirefoxFrameDelegate extends nonChromiumAbstractFrameDelegate_1.NonChromiumAbstractFrameDelegate {
|
|
10
7
|
async addBindingToSecondaryWorld(binding) {
|
|
11
8
|
var _a;
|
|
12
9
|
const pageImpl = this.parentPageDelegate.pageImpl;
|
|
@@ -1,83 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.FirefoxPageDelegate = void 0;
|
|
27
|
-
const playwright = __importStar(require("@playwright/test"));
|
|
28
4
|
const firefoxElementHandleDelegate_1 = require("./firefoxElementHandleDelegate");
|
|
29
|
-
const logUtils_1 = require("../../../util/logUtils");
|
|
30
5
|
const firefoxFrameDelegate_1 = require("./firefoxFrameDelegate");
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.page = page;
|
|
34
|
-
this.pageImpl = playwright._toImpl(page);
|
|
35
|
-
}
|
|
36
|
-
setFocusEmulationEnabled(_enabled) {
|
|
37
|
-
return Promise.resolve();
|
|
38
|
-
}
|
|
39
|
-
waitForInitialization() {
|
|
40
|
-
return Promise.resolve();
|
|
41
|
-
}
|
|
42
|
-
getBrowserBounds() {
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
setBrowserBounds(_width, _height) {
|
|
46
|
-
return Promise.resolve();
|
|
47
|
-
}
|
|
48
|
-
getTargetId() {
|
|
49
|
-
return this.page.mainFrame()._id;
|
|
50
|
-
}
|
|
51
|
-
createCDPSession() {
|
|
52
|
-
var _a;
|
|
53
|
-
return Promise.resolve((_a = this.pageImpl._delegate) === null || _a === void 0 ? void 0 : _a._session);
|
|
54
|
-
}
|
|
55
|
-
makeCDPCall(method, paramArgs) {
|
|
56
|
-
return this.getCDPSession().send(method, paramArgs);
|
|
57
|
-
}
|
|
6
|
+
const nonChromiumAbstractPageDelegate_1 = require("../nonChromium/nonChromiumAbstractPageDelegate");
|
|
7
|
+
class FirefoxPageDelegate extends nonChromiumAbstractPageDelegate_1.NonChromiumAbstractPageDelegate {
|
|
58
8
|
createElementHandleDelegate(element) {
|
|
59
9
|
return new firefoxElementHandleDelegate_1.FirefoxElementHandleDelegate(element);
|
|
60
10
|
}
|
|
61
|
-
getCDPSession() {
|
|
62
|
-
var _a, _b;
|
|
63
|
-
this.checkCDPSession();
|
|
64
|
-
return (_b = (_a = this.pageImpl) === null || _a === void 0 ? void 0 : _a._delegate) === null || _b === void 0 ? void 0 : _b._session;
|
|
65
|
-
}
|
|
66
|
-
checkCDPSession() {
|
|
67
|
-
var _a, _b, _c, _d;
|
|
68
|
-
if (((_b = (_a = this.pageImpl) === null || _a === void 0 ? void 0 : _a._delegate) === null || _b === void 0 ? void 0 : _b._session) === undefined) {
|
|
69
|
-
const undefinedField = ((_d = (_c = this.pageImpl) === null || _c === void 0 ? void 0 : _c._delegate) === null || _d === void 0 ? void 0 : _d._session) !== undefined
|
|
70
|
-
? '_session'
|
|
71
|
-
: '_delegate';
|
|
72
|
-
(0, logUtils_1.logInternal)(`Unable to get the CDP Session of the page (${undefinedField} is undefined).
|
|
73
|
-
Creating a fallback session. Some functionality might not work as expected.`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
11
|
createFrameDelegate(frame) {
|
|
77
12
|
return new firefoxFrameDelegate_1.FirefoxFrameDelegate(this, frame);
|
|
78
13
|
}
|
|
79
|
-
enableScreencastMode() {
|
|
80
|
-
return Promise.resolve();
|
|
81
|
-
}
|
|
82
14
|
}
|
|
83
15
|
exports.FirefoxPageDelegate = FirefoxPageDelegate;
|
package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractBrowserDelegate.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.NonChromiumAbstractBrowserDelegate = void 0;
|
|
27
|
+
const playwright = __importStar(require("@playwright/test"));
|
|
28
|
+
class NonChromiumAbstractBrowserDelegate {
|
|
29
|
+
constructor(context) {
|
|
30
|
+
this.context = context;
|
|
31
|
+
const contextImpl = playwright._toImpl(context);
|
|
32
|
+
this._browser = contextImpl._browser;
|
|
33
|
+
}
|
|
34
|
+
setDownloadBehavior(_downloadDirectory) {
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
}
|
|
37
|
+
getCDPSession() {
|
|
38
|
+
return this._browser._connection;
|
|
39
|
+
}
|
|
40
|
+
getBrowser() {
|
|
41
|
+
return this._browser;
|
|
42
|
+
}
|
|
43
|
+
downloadsUsingGuids() {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
supportsTracing() {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.NonChromiumAbstractBrowserDelegate = NonChromiumAbstractBrowserDelegate;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.NonChromiumAbstractElementHandleDelegate = void 0;
|
|
27
|
+
const playwright = __importStar(require("@playwright/test"));
|
|
28
|
+
const logUtils_1 = require("../../../util/logUtils");
|
|
29
|
+
class NonChromiumAbstractElementHandleDelegate {
|
|
30
|
+
constructor(elementHandle) {
|
|
31
|
+
this.elementHandle = elementHandle;
|
|
32
|
+
try {
|
|
33
|
+
this.elementImpl = playwright._toImpl(elementHandle);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getElementImpl() {
|
|
39
|
+
return this.elementImpl;
|
|
40
|
+
}
|
|
41
|
+
checkCDPSession() {
|
|
42
|
+
var _a, _b, _c;
|
|
43
|
+
if (this.elementImpl === undefined) {
|
|
44
|
+
(0, logUtils_1.logInternal)(`Unable to get the Element's internal implementation. Some functionality, such as getting the clickable point or element highlighting might not work.`);
|
|
45
|
+
}
|
|
46
|
+
else if (this.getCDPSession() === undefined) {
|
|
47
|
+
const undefinedField = ((_b = (_a = this.elementImpl) === null || _a === void 0 ? void 0 : _a._context) === null || _b === void 0 ? void 0 : _b._delegate) !== undefined
|
|
48
|
+
? '_client'
|
|
49
|
+
: ((_c = this.elementImpl) === null || _c === void 0 ? void 0 : _c._context) !== undefined
|
|
50
|
+
? '_delegate'
|
|
51
|
+
: '_context';
|
|
52
|
+
(0, logUtils_1.logInternal)(`Unable to get the CDP Session of the element handle. ${undefinedField} is undefined. Some functionality, such as element highlighting will not work.`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
getCDPSession() {
|
|
56
|
+
var _a, _b, _c;
|
|
57
|
+
this.checkCDPSession();
|
|
58
|
+
return (_c = (_b = (_a = this.elementImpl) === null || _a === void 0 ? void 0 : _a._context) === null || _b === void 0 ? void 0 : _b._delegate) === null || _c === void 0 ? void 0 : _c._session;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.NonChromiumAbstractElementHandleDelegate = NonChromiumAbstractElementHandleDelegate;
|
package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractFrameDelegate.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NonChromiumAbstractFrameDelegate = void 0;
|
|
4
|
+
class NonChromiumAbstractFrameDelegate {
|
|
5
|
+
constructor(parentPageDelegate, frame) {
|
|
6
|
+
this.parentPageDelegate = parentPageDelegate;
|
|
7
|
+
this.frame = frame;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.NonChromiumAbstractFrameDelegate = NonChromiumAbstractFrameDelegate;
|
package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractPageDelegate.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.NonChromiumAbstractPageDelegate = void 0;
|
|
27
|
+
const playwright = __importStar(require("@playwright/test"));
|
|
28
|
+
const logUtils_1 = require("../../../util/logUtils");
|
|
29
|
+
class NonChromiumAbstractPageDelegate {
|
|
30
|
+
constructor(page) {
|
|
31
|
+
this.page = page;
|
|
32
|
+
this.pageImpl = playwright._toImpl(page);
|
|
33
|
+
}
|
|
34
|
+
setFocusEmulationEnabled(_enabled) {
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
}
|
|
37
|
+
waitForInitialization() {
|
|
38
|
+
return Promise.resolve();
|
|
39
|
+
}
|
|
40
|
+
getBrowserBounds() {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
setBrowserBounds(_width, _height) {
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
getTargetId() {
|
|
47
|
+
return this.page.mainFrame()._id;
|
|
48
|
+
}
|
|
49
|
+
createCDPSession() {
|
|
50
|
+
var _a;
|
|
51
|
+
return Promise.resolve((_a = this.pageImpl._delegate) === null || _a === void 0 ? void 0 : _a._session);
|
|
52
|
+
}
|
|
53
|
+
makeCDPCall(method, paramArgs) {
|
|
54
|
+
return this.getCDPSession().send(method, paramArgs);
|
|
55
|
+
}
|
|
56
|
+
getCDPSession() {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
this.checkCDPSession();
|
|
59
|
+
return (_b = (_a = this.pageImpl) === null || _a === void 0 ? void 0 : _a._delegate) === null || _b === void 0 ? void 0 : _b._session;
|
|
60
|
+
}
|
|
61
|
+
checkCDPSession() {
|
|
62
|
+
var _a, _b, _c, _d;
|
|
63
|
+
if (((_b = (_a = this.pageImpl) === null || _a === void 0 ? void 0 : _a._delegate) === null || _b === void 0 ? void 0 : _b._session) === undefined) {
|
|
64
|
+
const undefinedField = ((_d = (_c = this.pageImpl) === null || _c === void 0 ? void 0 : _c._delegate) === null || _d === void 0 ? void 0 : _d._session) !== undefined
|
|
65
|
+
? '_session'
|
|
66
|
+
: '_delegate';
|
|
67
|
+
(0, logUtils_1.logInternal)(`Unable to get the CDP Session of the page (${undefinedField} is undefined).
|
|
68
|
+
Creating a fallback session. Some functionality might not work as expected.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
enableScreencastMode() {
|
|
72
|
+
return Promise.resolve();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.NonChromiumAbstractPageDelegate = NonChromiumAbstractPageDelegate;
|
|
@@ -36,6 +36,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
36
36
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
37
37
|
const firefoxBrowserDelegate_1 = require("./firefox/firefoxBrowserDelegate");
|
|
38
38
|
const chromiumBrowserDelegate_1 = require("./chromium/chromiumBrowserDelegate");
|
|
39
|
+
const webkitBrowserDelegate_1 = require("./webkit/webkitBrowserDelegate");
|
|
39
40
|
class PlaywrightBrowser extends events_1.default {
|
|
40
41
|
constructor(defaultContext, downloadDirectory, browserWSEndpoint, browserDelegate, preferenceDirectory, disableFocusEmulation) {
|
|
41
42
|
super();
|
|
@@ -168,6 +169,8 @@ function getBrowserDelegate(browserType, browserContext) {
|
|
|
168
169
|
return new chromiumBrowserDelegate_1.ChromiumBrowserDelegate(browserContext);
|
|
169
170
|
case playwright.firefox:
|
|
170
171
|
return new firefoxBrowserDelegate_1.FirefoxBrowserDelegate(browserContext);
|
|
172
|
+
case playwright.webkit:
|
|
173
|
+
return new webkitBrowserDelegate_1.WebkitBrowserDelegate(browserContext);
|
|
171
174
|
default:
|
|
172
175
|
throw new Error(`Unsupported browser type: ${browserType}`);
|
|
173
176
|
}
|
|
@@ -66,6 +66,8 @@ function getPlaywrightBrowserType(browserType) {
|
|
|
66
66
|
return test_1.chromium;
|
|
67
67
|
case browserTypes_1.BrowserType.Firefox:
|
|
68
68
|
return test_1.firefox;
|
|
69
|
+
case browserTypes_1.BrowserType.Webkit:
|
|
70
|
+
return test_1.webkit;
|
|
69
71
|
default:
|
|
70
72
|
throw new Error(`Unsupported browser type: ${browserType}`);
|
|
71
73
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebkitBrowserDelegate = void 0;
|
|
4
|
+
const webkitPageDelegate_1 = require("./webkitPageDelegate");
|
|
5
|
+
const nonChromiumAbstractBrowserDelegate_1 = require("../nonChromium/nonChromiumAbstractBrowserDelegate");
|
|
6
|
+
class WebkitBrowserDelegate extends nonChromiumAbstractBrowserDelegate_1.NonChromiumAbstractBrowserDelegate {
|
|
7
|
+
createPageDelegate(page) {
|
|
8
|
+
return new webkitPageDelegate_1.WebkitPageDelegate(page);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.WebkitBrowserDelegate = WebkitBrowserDelegate;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebkitElementHandleDelegate = void 0;
|
|
4
|
+
const nonChromiumAbstractElementHandleDelegate_1 = require("../nonChromium/nonChromiumAbstractElementHandleDelegate");
|
|
5
|
+
class WebkitElementHandleDelegate extends nonChromiumAbstractElementHandleDelegate_1.NonChromiumAbstractElementHandleDelegate {
|
|
6
|
+
}
|
|
7
|
+
exports.WebkitElementHandleDelegate = WebkitElementHandleDelegate;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebkitFrameDelegate = void 0;
|
|
4
|
+
const nonChromiumAbstractFrameDelegate_1 = require("../nonChromium/nonChromiumAbstractFrameDelegate");
|
|
5
|
+
class WebkitFrameDelegate extends nonChromiumAbstractFrameDelegate_1.NonChromiumAbstractFrameDelegate {
|
|
6
|
+
addBindingToSecondaryWorld(_binding) {
|
|
7
|
+
return Promise.resolve();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.WebkitFrameDelegate = WebkitFrameDelegate;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebkitPageDelegate = void 0;
|
|
4
|
+
const webkitElementHandleDelegate_1 = require("./webkitElementHandleDelegate");
|
|
5
|
+
const webkitFrameDelegate_1 = require("./webkitFrameDelegate");
|
|
6
|
+
const nonChromiumAbstractPageDelegate_1 = require("../nonChromium/nonChromiumAbstractPageDelegate");
|
|
7
|
+
class WebkitPageDelegate extends nonChromiumAbstractPageDelegate_1.NonChromiumAbstractPageDelegate {
|
|
8
|
+
createElementHandleDelegate(element) {
|
|
9
|
+
return new webkitElementHandleDelegate_1.WebkitElementHandleDelegate(element);
|
|
10
|
+
}
|
|
11
|
+
createFrameDelegate(frame) {
|
|
12
|
+
return new webkitFrameDelegate_1.WebkitFrameDelegate(this, frame);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.WebkitPageDelegate = WebkitPageDelegate;
|
package/commands/browserTypes.js
CHANGED
|
@@ -8,6 +8,7 @@ var BrowserType;
|
|
|
8
8
|
BrowserType["Firefox"] = "firefox";
|
|
9
9
|
BrowserType["InternetExplorer"] = "internet_explorer";
|
|
10
10
|
BrowserType["Safari"] = "safari";
|
|
11
|
+
BrowserType["Webkit"] = "webkit";
|
|
11
12
|
})(BrowserType = exports.BrowserType || (exports.BrowserType = {}));
|
|
12
13
|
exports.SupportedBrowserTypeProperties = {
|
|
13
14
|
chrome: { browserName: 'chrome', browserReleaseChannel: 'chrome' },
|
|
@@ -17,5 +18,9 @@ exports.SupportedBrowserTypeProperties = {
|
|
|
17
18
|
browserName: 'safari',
|
|
18
19
|
browserReleaseChannel: 'webkit',
|
|
19
20
|
},
|
|
21
|
+
webkit: {
|
|
22
|
+
browserName: 'webkit',
|
|
23
|
+
browserReleaseChannel: 'webkit',
|
|
24
|
+
},
|
|
20
25
|
};
|
|
21
26
|
exports.DefaultBrowserProperties = exports.SupportedBrowserTypeProperties.chrome;
|
|
@@ -125,7 +125,7 @@ async function createBrowser(engine, options) {
|
|
|
125
125
|
}
|
|
126
126
|
exports.createBrowser = createBrowser;
|
|
127
127
|
async function createBrowserForExecutionEngine(engine, proxyInfo, options) {
|
|
128
|
-
const userDataDir = await engine.prepareBrowserPreferencesDirectory();
|
|
128
|
+
const userDataDir = await engine.prepareBrowserPreferencesDirectory(undefined, proxyInfo);
|
|
129
129
|
const launchOptions = engine.getExecutionEngineBrowserLaunchOptions(options, proxyInfo);
|
|
130
130
|
const maybeBrowser = await maybeLaunchBrowser({
|
|
131
131
|
...options,
|