<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[287289] trunk/Tools</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/287289">287289</a></dd>
<dt>Author</dt> <dd>dewei_zhu@apple.com</dd>
<dt>Date</dt> <dd>2021-12-20 17:19:32 -0800 (Mon, 20 Dec 2021)</dd>
</dl>
<h3>Log Message</h3>
<pre>'run-benchmark' should launch browsers in a relative clean state.
https://bugs.webkit.org/show_bug.cgi?id=234107
Reviewed by Stephanie Lewis.
Add code to ensure Chrome and Firefox launches in a relative clean state.
Refactor browser drivers for macOS Chrome and Firefox to share more code.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
Added '--no-first-run', '--no-default-browser-check', '--disable-extensions' flags.
(OSXChromeDriverBase):
(OSXChromeDriverBase.launch_url):
(OSXChromeDriverBase.launch_driver):
(OSXChromeDriverBase._create_chrome_options):
(OSXChromeDriverBase._window_size_arg):
(OSXChromeDriverBase._set_chrome_binary_location):
(OSXChromeDriver):
(OSXChromeDriver._set_chrome_binary_location):
(OSXChromeCanaryDriver._set_chrome_binary_location):
(OSXChromeDriver.launch_url): Deleted.
(OSXChromeDriver.launch_driver): Deleted.
(OSXChromeCanaryDriver.launch_url): Deleted.
(OSXChromeCanaryDriver.launch_driver): Deleted.
(create_args): Deleted.
(create_chrome_options): Deleted.
(create_window_size_arg): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
Added code to use profiles to suppress default browser check and privacy notice tab.
(OSXFirefoxDriverBase):
(OSXFirefoxDriverBase.__init__):
(OSXFirefoxDriverBase.prepare_env):
(OSXFirefoxDriverBase.restore_env):
(OSXFirefoxDriverBase.launch_url):
(OSXFirefoxDriverBase.launch_driver):
(OSXFirefoxDriverBase._setup_temporary_profile_directory):
(OSXFirefoxDriverBase._teardown_temporary_profile_directory):
(OSXFirefoxDriverBase._set_firefox_binary_location):
(OSXFirefoxDriver):
(OSXFirefoxDriver._set_firefox_binary_location):
(OSXFirefoxNightlyDriver):
(OSXFirefoxNightlyDriver._set_firefox_binary_location):
(OSXFirefoxDriver.launch_url): Deleted.
(OSXFirefoxDriver.launch_driver): Deleted.
(OSXFirefoxNightlyDriver.launch_url): Deleted.
(OSXFirefoxNightlyDriver.launch_driver): Deleted.
(create_args): Deleted.
* Scripts/webkitpy/benchmark_runner/data/firefox_profile/user.js: Added user preferences
so that Firefox can be launched without checking default browser and privacy notice.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_chrome_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_firefox_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li>trunk/Tools/Scripts/webkitpy/benchmark_runner/data/firefox_profile/</li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdatafirefox_profileuserjs">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/firefox_profile/user.js</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (287288 => 287289)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog 2021-12-21 00:33:43 UTC (rev 287288)
+++ trunk/Tools/ChangeLog 2021-12-21 01:19:32 UTC (rev 287289)
</span><span class="lines">@@ -1,3 +1,54 @@
</span><ins>+2021-12-20 Dewei Zhu <dewei_zhu@apple.com>
+
+ 'run-benchmark' should launch browsers in a relative clean state.
+ https://bugs.webkit.org/show_bug.cgi?id=234107
+
+ Reviewed by Stephanie Lewis.
+
+ Add code to ensure Chrome and Firefox launches in a relative clean state.
+ Refactor browser drivers for macOS Chrome and Firefox to share more code.
+
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
+ Added '--no-first-run', '--no-default-browser-check', '--disable-extensions' flags.
+ (OSXChromeDriverBase):
+ (OSXChromeDriverBase.launch_url):
+ (OSXChromeDriverBase.launch_driver):
+ (OSXChromeDriverBase._create_chrome_options):
+ (OSXChromeDriverBase._window_size_arg):
+ (OSXChromeDriverBase._set_chrome_binary_location):
+ (OSXChromeDriver):
+ (OSXChromeDriver._set_chrome_binary_location):
+ (OSXChromeCanaryDriver._set_chrome_binary_location):
+ (OSXChromeDriver.launch_url): Deleted.
+ (OSXChromeDriver.launch_driver): Deleted.
+ (OSXChromeCanaryDriver.launch_url): Deleted.
+ (OSXChromeCanaryDriver.launch_driver): Deleted.
+ (create_args): Deleted.
+ (create_chrome_options): Deleted.
+ (create_window_size_arg): Deleted.
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
+ Added code to use profiles to suppress default browser check and privacy notice tab.
+ (OSXFirefoxDriverBase):
+ (OSXFirefoxDriverBase.__init__):
+ (OSXFirefoxDriverBase.prepare_env):
+ (OSXFirefoxDriverBase.restore_env):
+ (OSXFirefoxDriverBase.launch_url):
+ (OSXFirefoxDriverBase.launch_driver):
+ (OSXFirefoxDriverBase._setup_temporary_profile_directory):
+ (OSXFirefoxDriverBase._teardown_temporary_profile_directory):
+ (OSXFirefoxDriverBase._set_firefox_binary_location):
+ (OSXFirefoxDriver):
+ (OSXFirefoxDriver._set_firefox_binary_location):
+ (OSXFirefoxNightlyDriver):
+ (OSXFirefoxNightlyDriver._set_firefox_binary_location):
+ (OSXFirefoxDriver.launch_url): Deleted.
+ (OSXFirefoxDriver.launch_driver): Deleted.
+ (OSXFirefoxNightlyDriver.launch_url): Deleted.
+ (OSXFirefoxNightlyDriver.launch_driver): Deleted.
+ (create_args): Deleted.
+ * Scripts/webkitpy/benchmark_runner/data/firefox_profile/user.js: Added user preferences
+ so that Firefox can be launched without checking default browser and privacy notice.
+
</ins><span class="cx"> 2021-12-20 J Pascoe <j_pascoe@apple.com>
</span><span class="cx">
</span><span class="cx"> [WebAuthn] Add option to change requestWebAuthenticationNoGesture delegate for api tests.
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_chrome_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py (287288 => 287289)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py 2021-12-21 00:33:43 UTC (rev 287288)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py 2021-12-21 01:19:32 UTC (rev 287289)
</span><span class="lines">@@ -9,30 +9,55 @@
</span><span class="cx"> _log = logging.getLogger(__name__)
</span><span class="cx">
</span><span class="cx">
</span><del>-class OSXChromeDriver(OSXBrowserDriver):
- process_name = 'Google Chrome'
- browser_name = 'chrome'
- app_name = 'Google Chrome.app'
- bundle_id = 'com.google.Chrome'
</del><ins>+class OSXChromeDriverBase(OSXBrowserDriver):
+ app_name = None
</ins><span class="cx">
</span><span class="cx"> def launch_url(self, url, options, browser_build_path, browser_path):
</span><span class="cx"> # FIXME: handle self._browser_path.
</span><del>- args_with_url = self._insert_url(create_args(), 2, url)
</del><ins>+ args_with_url = ['--args', '--homepage', url, self._window_size_arg(), '--no-first-run',
+ '--no-default-browser-check', '--disable-extensions']
</ins><span class="cx"> self._launch_process(build_dir=browser_build_path, app_name=self.app_name, url=url, args=args_with_url)
</span><span class="cx">
</span><span class="cx"> def launch_driver(self, url, options, browser_build_path):
</span><span class="cx"> from selenium import webdriver
</span><del>- chrome_options = create_chrome_options()
- if browser_build_path:
- app_path = os.path.join(browser_build_path, self.app_name)
- binary_path = os.path.join(app_path, "Contents/MacOS", self.process_name)
- chrome_options.binary_location = binary_path
</del><ins>+ chrome_options = self._create_chrome_options(browser_build_path)
</ins><span class="cx"> driver_executable = self.webdriver_binary_path
</span><span class="cx"> driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=driver_executable)
</span><span class="cx"> self._launch_webdriver(url=url, driver=driver)
</span><span class="cx"> return driver
</span><span class="cx">
</span><ins>+ def _create_chrome_options(self, browser_build_path):
+ from selenium.webdriver.chrome.options import Options
+ chrome_options = Options()
+ chrome_options.add_argument("--disable-web-security")
+ chrome_options.add_argument("--user-data-dir")
+ chrome_options.add_argument("--disable-extensions")
+ chrome_options.add_argument(self._window_size_arg())
+ self._set_chrome_binary_location(chrome_options, browser_build_path)
+ return chrome_options
</ins><span class="cx">
</span><ins>+ def _window_size_arg(self):
+ screen_size = self._screen_size()
+ return '--window-size={width},{height}'.format(width=int(screen_size.width), height=int(screen_size.height))
+
+ def _set_chrome_binary_location(self, options, browser_build_path):
+ pass
+
+
+class OSXChromeDriver(OSXChromeDriverBase):
+ process_name = 'Google Chrome'
+ browser_name = 'chrome'
+ app_name = 'Google Chrome.app'
+ bundle_id = 'com.google.Chrome'
+
+ def _set_chrome_binary_location(self, options, browser_build_path):
+ if not browser_build_path:
+ return
+ app_path = os.path.join(browser_build_path, self.app_name)
+ binary_path = os.path.join(app_path, "Contents/MacOS", self.process_name)
+ options.binary_location = binary_path
+
+
</ins><span class="cx"> class OSXChromeCanaryDriver(OSXBrowserDriver):
</span><span class="cx"> process_name = 'Google Chrome Canary'
</span><span class="cx"> browser_name = 'chrome-canary'
</span><span class="lines">@@ -39,40 +64,9 @@
</span><span class="cx"> app_name = 'Google Chrome Canary.app'
</span><span class="cx"> bundle_id = 'com.google.Chrome.canary'
</span><span class="cx">
</span><del>- def launch_url(self, url, options, browser_build_path, browser_path):
- # FIXME: handle self._browser_path.
- args_with_url = self._insert_url(create_args(), 2, url)
- self._launch_process(build_dir=browser_build_path, app_name=self.app_name, url=url, args=args_with_url)
-
- def launch_driver(self, url, options, browser_build_path):
- from selenium import webdriver
- chrome_options = create_chrome_options()
</del><ins>+ def _set_chrome_binary_location(self, options, browser_build_path):
</ins><span class="cx"> if not browser_build_path:
</span><span class="cx"> browser_build_path = '/Applications/'
</span><span class="cx"> app_path = os.path.join(browser_build_path, self.app_name)
</span><span class="cx"> binary_path = os.path.join(app_path, "Contents/MacOS", self.process_name)
</span><del>- chrome_options.binary_location = binary_path
- driver_executable = self.webdriver_binary_path
- driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=driver_executable)
- self._launch_webdriver(url=url, driver=driver)
- return driver
-
-
-def create_args():
- args = ['--args', '--homepage', create_window_size_arg()]
- return args
-
-
-def create_chrome_options():
- from selenium.webdriver.chrome.options import Options
- chrome_options = Options()
- chrome_options.add_argument("--disable-web-security")
- chrome_options.add_argument("--user-data-dir")
- chrome_options.add_argument("--disable-extensions")
- chrome_options.add_argument(create_window_size_arg())
- return chrome_options
-
-
-def create_window_size_arg():
- window_size_arg = '--window-size={width},{height}'.format(width=int(OSXBrowserDriver._screen_size().width), height=int(OSXBrowserDriver._screen_size().height))
- return window_size_arg
</del><ins>+ options.binary_location = binary_path
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_firefox_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py (287288 => 287289)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py 2021-12-21 00:33:43 UTC (rev 287288)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py 2021-12-21 01:19:32 UTC (rev 287289)
</span><span class="lines">@@ -2,22 +2,38 @@
</span><span class="cx">
</span><span class="cx"> import logging
</span><span class="cx"> import os
</span><ins>+import shutil
+import tempfile
</ins><span class="cx">
</span><span class="cx"> from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> _log = logging.getLogger(__name__)
</span><ins>+test_profile_directory = os.path.join(os.path.dirname(__file__), '../data/firefox_profile/')
</ins><span class="cx">
</span><span class="cx">
</span><del>-class OSXFirefoxDriver(OSXBrowserDriver):
- process_name = 'firefox'
- browser_name = 'firefox'
- app_name = 'Firefox.app'
- bundle_id = 'org.mozilla.firefox'
</del><ins>+class OSXFirefoxDriverBase(OSXBrowserDriver):
+ app_name = None
</ins><span class="cx">
</span><ins>+ def __init__(self, *args, **kwargs):
+ super(OSXFirefoxDriverBase, self).__init__(*args, **kwargs)
+ self._profile_directory = None
+
+ def prepare_env(self, config):
+ super(OSXFirefoxDriverBase, self).prepare_env(config)
+ self._setup_temporary_profile_directory()
+
+ def restore_env(self):
+ super(OSXFirefoxDriverBase, self).restore_env()
+ self._teardown_temporary_profile_directory()
+
</ins><span class="cx"> def launch_url(self, url, options, browser_build_path, browser_path):
</span><span class="cx"> # FIXME: handle self._browser_path.
</span><del>- args_with_url = self._insert_url(create_args(), 0, url)
</del><ins>+ screen_size = self._screen_size()
+ args_with_url = ['--args', '-width', str(int(screen_size.width)), '-height', str(int(screen_size.height))]
+ if self._profile_directory and os.path.exists(self._profile_directory):
+ args_with_url.extend(['--profile', self._profile_directory])
+ args_with_url.append(url)
</ins><span class="cx"> self._launch_process(build_dir=browser_build_path, app_name=self.app_name, url=url, args=args_with_url)
</span><span class="cx">
</span><span class="cx"> def launch_driver(self, url, options, browser_build_path):
</span><span class="lines">@@ -24,43 +40,47 @@
</span><span class="cx"> from selenium import webdriver
</span><span class="cx"> from selenium.webdriver.firefox.options import Options
</span><span class="cx"> firefox_options = Options()
</span><del>- if browser_build_path:
- app_path = os.path.join(browser_build_path, self.app_name)
- binary_path = os.path.join(app_path, "Contents/MacOS", self.process_name)
- firefox_options.binary_location = binary_path
</del><ins>+ self._set_firefox_binary_location(options, browser_build_path)
</ins><span class="cx"> driver_executable = self.webdriver_binary_path
</span><span class="cx"> driver = webdriver.Firefox(firefox_options=firefox_options, executable_path=driver_executable)
</span><span class="cx"> self._launch_webdriver(url=url, driver=driver)
</span><span class="cx"> return driver
</span><span class="cx">
</span><ins>+ def _setup_temporary_profile_directory(self):
+ self._profile_directory = os.path.join(tempfile.mkdtemp(), 'firefox_profile')
+ shutil.copytree(test_profile_directory, self._profile_directory)
</ins><span class="cx">
</span><del>-class OSXFirefoxNightlyDriver(OSXBrowserDriver):
</del><ins>+ def _teardown_temporary_profile_directory(self):
+ if self._profile_directory and os.path.exists(self._profile_directory):
+ shutil.rmtree(os.path.dirname(self._profile_directory))
+
+ def _set_firefox_binary_location(self, options, browser_build_path):
+ pass
+
+
+class OSXFirefoxDriver(OSXFirefoxDriverBase):
</ins><span class="cx"> process_name = 'firefox'
</span><ins>+ browser_name = 'firefox'
+ app_name = 'Firefox.app'
+ bundle_id = 'org.mozilla.firefox'
+
+ def _set_firefox_binary_location(self, options, browser_build_path):
+ if not browser_build_path:
+ return
+ app_path = os.path.join(browser_build_path, self.app_name)
+ binary_path = os.path.join(app_path, "Contents/MacOS", self.process_name)
+ options.binary_location = binary_path
+
+
+class OSXFirefoxNightlyDriver(OSXFirefoxDriverBase):
+ process_name = 'firefox'
</ins><span class="cx"> browser_name = 'firefox-nightly'
</span><span class="cx"> app_name = 'FirefoxNightly.app'
</span><span class="cx"> bundle_id = 'org.mozilla.firefox'
</span><span class="cx">
</span><del>-
- def launch_url(self, url, options, browser_build_path, browser_path):
- # FIXME: handle self._browser_path.
- args_with_url = self._insert_url(create_args(), 0, url)
- self._launch_process(build_dir=browser_build_path, app_name=self.app_name, url=url, args=args_with_url)
-
- def launch_driver(self, url, options, browser_build_path):
- from selenium import webdriver
- from selenium.webdriver.firefox.options import Options
- firefox_options = Options()
</del><ins>+ def _set_firefox_binary_location(self, options, browser_build_path):
</ins><span class="cx"> if not browser_build_path:
</span><span class="cx"> browser_build_path = '/Applications/'
</span><span class="cx"> app_path = os.path.join(browser_build_path, self.app_name)
</span><span class="cx"> binary_path = os.path.join(app_path, "Contents/MacOS", self.process_name)
</span><del>- firefox_options.binary_location = binary_path
- driver_executable = self.webdriver_binary_path
- driver = webdriver.Firefox(firefox_options=firefox_options, executable_path=driver_executable)
- self._launch_webdriver(url=url, driver=driver)
- return driver
-
-
-def create_args():
- args = ['--args', '-width', str(int(OSXBrowserDriver._screen_size().width)), '-height', str(int(OSXBrowserDriver._screen_size().height))]
- return args
</del><ins>+ options.binary_location = binary_path
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdatafirefox_profileuserjs"></a>
<div class="addfile"><h4>Added: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/firefox_profile/user.js (0 => 287289)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/firefox_profile/user.js (rev 0)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/firefox_profile/user.js 2021-12-21 01:19:32 UTC (rev 287289)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+user_pref("browser.shell.checkDefaultBrowser", false);
+user_pref("browser.startup.couldRestoreSession.count", -1);
+user_pref("browser.webapps.checkForUpdates", 0);
+user_pref("startup.homepage_welcome_url", "");
+user_pref("startup.homepage_welcome_url.additional", "");
+user_pref("app.update.checkInstallTime", false);
+user_pref("app.update.disabledForTesting", true);
+user_pref("extensions.update.enabled", false);
+user_pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true);
</ins><span class="cx">\ No newline at end of file
</span></span></pre>
</div>
</div>
</body>
</html>