Diff
Modified: trunk/Tools/ChangeLog (242652 => 242653)
--- trunk/Tools/ChangeLog 2019-03-08 19:54:02 UTC (rev 242652)
+++ trunk/Tools/ChangeLog 2019-03-08 20:52:56 UTC (rev 242653)
@@ -1,3 +1,31 @@
+2019-03-08 Stephanie Lewis <[email protected]>
+
+ Ensure old tab state is cleared between iterations of run-benchmark
+ https://bugs.webkit.org/show_bug.cgi?id=195393
+ <rdar://problem/46885583>
+
+ Reviewed by Dewei Zhu.
+
+ a) ensure the default to restore state is not set
+ b) terminate Safari correctly
+ c) Set the system default to ignore Persistent State in Safari
+
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
+ (OSXBrowserDriver): fix terminate processes to call terminate before killing.
+ (OSXBrowserDriver.prepare_env):
+ (OSXBrowserDriver.restore_env):
+ (OSXBrowserDriver.close_browsers):
+ (OSXBrowserDriver._terminate_processes):
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: add bundle id
+ (OSXChromeDriver):
+ (OSXChromeCanaryDriver):
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: ditto
+ (OSXFirefoxDriver):
+ (OSXFirefoxNightlyDriver):
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: add preferences to not restore state, bundle id
+ (OSXSafariDriver):
+ (OSXSafariDriver.prepare_env):
+
2019-03-08 Diego Pino Garcia <[email protected]>
[GTK] Several InputMethodFilter tests are failing
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py (242652 => 242653)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py 2019-03-08 19:54:02 UTC (rev 242652)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py 2019-03-08 20:52:56 UTC (rev 242653)
@@ -2,6 +2,7 @@
import logging
import os
import subprocess
+import time
from browser_driver import BrowserDriver
from webkitpy.benchmark_runner.utils import write_defaults
@@ -13,6 +14,7 @@
class OSXBrowserDriver(BrowserDriver):
process_name = None
platform = 'osx'
+ bundle_id = None
def prepare_env(self, config):
self.close_browsers()
@@ -20,15 +22,15 @@
CGWarpMouseCursorPosition((10, 0))
self.updated_dock_animation_defaults = write_defaults('com.apple.dock', 'launchanim', False)
if self.updated_dock_animation_defaults:
- self._terminate_processes('Dock')
+ self._terminate_processes('Dock', 'com.apple.dock')
def restore_env(self):
if self.updated_dock_animation_defaults:
write_defaults('com.apple.dock', 'launchanim', True)
- self._terminate_processes('Dock')
+ self._terminate_processes('Dock', 'com.apple.dock')
def close_browsers(self):
- self._terminate_processes(self.process_name)
+ self._terminate_processes(self.process_name, self.bundle_id)
@classmethod
def _launch_process(cls, build_dir, app_name, url, args):
@@ -52,9 +54,16 @@
driver.get(url)
@classmethod
- def _terminate_processes(cls, process_name):
+ def _terminate_processes(cls, process_name, bundle_id):
+ from AppKit import NSRunningApplication
_log.info('Closing all processes with name %s' % process_name)
- subprocess.call(['/usr/bin/killall', process_name])
+ for app in NSRunningApplication.runningApplicationsWithBundleIdentifier_(bundle_id):
+ app.terminate()
+ # Give the app time to close
+ time.sleep(2)
+ if not app.isTerminated():
+ _log.error("Terminate failed. Killing.")
+ subprocess.call(['/usr/bin/killall', process_name])
@classmethod
def _launch_process_with_caffeinate(cls, args, env=None):
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py (242652 => 242653)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py 2019-03-08 19:54:02 UTC (rev 242652)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py 2019-03-08 20:52:56 UTC (rev 242653)
@@ -13,6 +13,7 @@
process_name = 'Google Chrome'
browser_name = 'chrome'
app_name = 'Google Chrome.app'
+ bundle_id = 'com.google.Chrome'
def launch_url(self, url, options, browser_build_path, browser_path):
# FIXME: handle self._browser_path.
@@ -37,6 +38,7 @@
process_name = 'Google Chrome Canary'
browser_name = 'chrome-canary'
app_name = 'Google Chrome Canary.app'
+ bundle_id = 'com.google.Chrome.canary'
def launch_url(self, url, options, browser_build_path, browser_path):
# FIXME: handle self._browser_path.
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py (242652 => 242653)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py 2019-03-08 19:54:02 UTC (rev 242652)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py 2019-03-08 20:52:56 UTC (rev 242653)
@@ -13,6 +13,7 @@
process_name = 'firefox'
browser_name = 'firefox'
app_name = 'Firefox.app'
+ bundle_id = 'org.mozilla.firefox'
def launch_url(self, url, options, browser_build_path, browser_path):
# FIXME: handle self._browser_path.
@@ -38,7 +39,9 @@
process_name = 'firefox'
browser_name = 'firefox-nightly'
app_name = 'FirefoxNightly.app'
+ bundle_id = 'org.mozilla.firefox'
+
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)
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py (242652 => 242653)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py 2019-03-08 19:54:02 UTC (rev 242652)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py 2019-03-08 20:52:56 UTC (rev 242653)
@@ -15,14 +15,13 @@
class OSXSafariDriver(OSXBrowserDriver):
process_name = 'Safari'
browser_name = 'safari'
+ bundle_id = 'com.apple.Safari'
def prepare_env(self, config):
self._safari_process = None
+ self._safari_preferences = ["-HomePage", "about:blank", "-WarnAboutFraudulentWebsites", "0", "-ExtensionsEnabled", "0", "-ShowStatusBar", "0", "-NewWindowBehavior", "1", "-NewTabBehavior", "1", "-AlwaysRestoreSessionAtLaunch", "0", "-ApplePersistenceIgnoreStateQuietly", "1"]
super(OSXSafariDriver, self).prepare_env(config)
- force_remove(os.path.join(os.path.expanduser('~'), 'Library/Saved Application State/com.apple.Safari.savedState'))
- force_remove(os.path.join(os.path.expanduser('~'), 'Library/Safari/LastSession.plist'))
self._maximize_window()
- self._safari_preferences = ["-HomePage", "about:blank", "-WarnAboutFraudulentWebsites", "0", "-ExtensionsEnabled", "0", "-ShowStatusBar", "0", "-NewWindowBehavior", "1", "-NewTabBehavior", "1"]
def launch_url(self, url, options, browser_build_path, browser_path):
args = ['/Applications/Safari.app/Contents/MacOS/Safari']