Skip to content

Commit 19048b3

Browse files
Tentative support for Firefox
1 parent 8801213 commit 19048b3

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

src/ProcessManager/FirefoxManager.php

+19-9
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
namespace Symfony\Component\Panther\ProcessManager;
1515

16+
use Facebook\WebDriver\Firefox\FirefoxOptions;
1617
use Facebook\WebDriver\Remote\DesiredCapabilities;
1718
use Facebook\WebDriver\Remote\RemoteWebDriver;
1819
use Facebook\WebDriver\WebDriver;
@@ -52,20 +53,17 @@ public function start(): WebDriver
5253
$this->waitUntilReady($this->process, $url.$this->options['path'], 'firefox');
5354
}
5455

55-
$firefoxOptions = [];
56-
if (isset($_SERVER['PANTHER_FIREFOX_BINARY'])) {
57-
$firefoxOptions['binary'] = $_SERVER['PANTHER_FIREFOX_BINARY'];
58-
}
59-
if ($this->arguments) {
60-
$firefoxOptions['args'] = $this->arguments;
61-
}
62-
6356
$capabilities = DesiredCapabilities::firefox();
64-
$capabilities->setCapability('moz:firefoxOptions', $firefoxOptions);
6557

6658
foreach ($this->options['capabilities'] as $capability => $value) {
6759
$capabilities->setCapability($capability, $value);
6860
}
61+
$firefoxOptions = $capabilities->getCapability(FirefoxOptions::CAPABILITY);
62+
63+
// if (isset($_SERVER['PANTHER_FIREFOX_BINARY'])) {
64+
// $firefoxOptions['binary'] = $_SERVER['PANTHER_FIREFOX_BINARY'];
65+
// }
66+
$firefoxOptions->addArguments($this->arguments);
6967

7068
return RemoteWebDriver::create($url, $capabilities, $this->options['connection_timeout_in_ms'] ?? null, $this->options['request_timeout_in_ms'] ?? null);
7169
}
@@ -113,12 +111,24 @@ private function getDefaultArguments(): array
113111

114112
private function getDefaultOptions(): array
115113
{
114+
$firefoxOptions = new FirefoxOptions();
115+
116+
// TODO: make this work - not sure why it doesn't :)
117+
$firefoxOptions->setPreference('devtools.netmonitor.enabled', true);
118+
$firefoxOptions->setPreference('devtools.netmonitor.har.enableAutoExportToFile', true);
119+
$firefoxOptions->setPreference('devtools.netmonitor.har.forceExport', true);
120+
$firefoxOptions->setPreference('devtools.netmonitor.har.defaultLogDir', '/tmp/panther-firefox/');
121+
116122
return [
117123
'scheme' => 'http',
118124
'host' => '127.0.0.1',
119125
'port' => 4444,
120126
'path' => '/status',
121127
'capabilities' => [],
128+
'capabilities' => [
129+
'acceptInsecureCerts' => true,
130+
FirefoxOptions::CAPABILITY => $firefoxOptions,
131+
],
122132
];
123133
}
124134
}

0 commit comments

Comments
 (0)