Title: [242653] trunk/Tools
Revision
242653
Author
[email protected]
Date
2019-03-08 12:52:56 -0800 (Fri, 08 Mar 2019)

Log Message

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):

Modified Paths

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']
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to