Diff
Modified: trunk/Tools/ChangeLog (185482 => 185483)
--- trunk/Tools/ChangeLog 2015-06-12 01:46:42 UTC (rev 185482)
+++ trunk/Tools/ChangeLog 2015-06-12 02:16:28 UTC (rev 185483)
@@ -1,3 +1,26 @@
+2015-06-11 Dewei Zhu <[email protected]>
+
+ Move cursor to corner and fix safari window size before running benchmark
+ https://bugs.webkit.org/show_bug.cgi?id=145858
+
+ Reviewed by Ryosuke Niwa
+
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
+ (OSXBrowserDriver.prepareEnv):
+ (OSXBrowserDriver):
+ (OSXBrowserDriver.moveCursor):
+ (OSXBrowserDriver.getScreenSize):
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
+ (OSXChromeDriver.launchUrl):
+ (OSXChromeCanaryDriver.launchUrl):
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
+ (OSXFirefoxDriver.launchUrl):
+ (OSXFirefoxNightlyDriver.launchUrl):
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
+ (OSXSafariDriver.prepareEnv):
+ (OSXSafariDriver):
+ (OSXSafariDriver.maximizeWindow):
+
2015-06-11 Daniel Bates <[email protected]>
[iOS] Cannot run run-webkit-tests with public SDK; LayoutTestRelay fails to build
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py (185482 => 185483)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py 2015-06-12 01:46:42 UTC (rev 185482)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py 2015-06-12 02:16:28 UTC (rev 185483)
@@ -4,6 +4,12 @@
import subprocess
from AppKit import NSRunningApplication
+from AppKit import NSScreen
+from Quartz.CoreGraphics import CGEventCreateMouseEvent
+from Quartz.CoreGraphics import CGEventPost
+from Quartz.CoreGraphics import kCGEventMouseMoved
+from Quartz.CoreGraphics import kCGHIDEventTap
+from Quartz.CoreGraphics import kCGMouseButtonLeft
from browser_driver import BrowserDriver
@@ -15,6 +21,7 @@
def prepareEnv(self):
self.closeBrowsers()
+ self.moveCursor(0, 0)
def closeBrowsers(self):
self.terminateProcesses(self.bundleIdentifier)
@@ -43,3 +50,12 @@
process = subprocess.Popen(args, env=env)
subprocess.Popen(["/usr/bin/caffeinate", "-disw", str(process.pid)])
return process
+
+ @classmethod
+ def moveCursor(cls, x, y):
+ moveEvent = CGEventCreateMouseEvent(None, kCGEventMouseMoved, (x, y), kCGMouseButtonLeft)
+ CGEventPost(kCGHIDEventTap, moveEvent)
+
+ @classmethod
+ def screenSize(cls):
+ return NSScreen.mainScreen().frame().size
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py (185482 => 185483)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py 2015-06-12 01:46:42 UTC (rev 185482)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py 2015-06-12 02:16:28 UTC (rev 185483)
@@ -15,11 +15,11 @@
bundleIdentifier = 'com.google.Chrome'
def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='Google Chrome.app', url="" args=['--args', '--homepage', url])
+ self.launchProcess(buildDir=browserBuildPath, appName='Google Chrome.app', url="" args=['--args', '--homepage', url, '--window-size={width},{height}'.format(width=int(self.screenSize().width), height=int(self.screenSize().height))])
class OSXChromeCanaryDriver(OSXBrowserDriver):
bundleIdentifier = 'com.google.Chrome.canary'
def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='Google Chrome Canary.app', url="" args=['--args', '--homepage', url])
+ self.launchProcess(buildDir=browserBuildPath, appName='Google Chrome Canary.app', url="" args=['--args', '--homepage', url, '--window-size={width},{height}'.format(width=int(self.screenSize().width), height=int(self.screenSize().height))])
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py (185482 => 185483)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py 2015-06-12 01:46:42 UTC (rev 185482)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py 2015-06-12 02:16:28 UTC (rev 185483)
@@ -15,11 +15,11 @@
bundleIdentifier = 'org.mozilla.firefox'
def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='Firefox.app', url="" args=[url])
+ self.launchProcess(buildDir=browserBuildPath, appName='Firefox.app', url="" args=[url, '--args', '-width', str(int(self.screenSize().width)), '-height', str(int(self.screenSize().height))])
class OSXFirefoxNightlyDriver(OSXBrowserDriver):
bundleIdentifier = 'org.mozilla.nightly'
def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='FirefoxNightly.app', url="" args=[url])
+ self.launchProcess(buildDir=browserBuildPath, appName='FirefoxNightly.app', url="" args=[url, '--args', '-width', str(int(self.screenSize().width)), '-height', str(int(self.screenSize().height))])
Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py (185482 => 185483)
--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py 2015-06-12 01:46:42 UTC (rev 185482)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py 2015-06-12 02:16:28 UTC (rev 185483)
@@ -2,6 +2,7 @@
import logging
import os
+import re
import subprocess
import time
@@ -16,10 +17,11 @@
bundleIdentifier = 'com.apple.Safari'
def prepareEnv(self):
+ super(OSXSafariDriver, self).closeBrowsers()
self.safariProcess = None
- self.closeBrowsers()
forceRemove(os.path.join(os.path.expanduser('~'), 'Library/Saved Application State/com.apple.Safari.savedState'))
forceRemove(os.path.join(os.path.expanduser('~'), 'Library/Safari/LastSession.plist'))
+ self.maximizeWindow()
self.safariPreferences = ["-HomePage", "about:blank", "-WarnAboutFraudulentWebsites", "0", "-ExtensionsEnabled", "0", "-ShowStatusBar", "0", "-NewWindowBehavior", "1", "-NewTabBehavior", "1"]
def launchUrl(self, url, browserBuildPath):
@@ -46,3 +48,10 @@
super(OSXSafariDriver, self).closeBrowsers()
if self.safariProcess and self.safariProcess.returncode:
sys.exit('Browser crashed with exitcode %d' % self._process.returncode)
+
+ @classmethod
+ def maximizeWindow(cls):
+ try:
+ subprocess.check_call(['/usr/bin/defaults', 'write', 'com.apple.Safari', 'NSWindow Frame BrowserWindowFrame', ' '.join(['0', '0', str(cls.screenSize().width), str(cls.screenSize().height)] * 2)])
+ except Exception as error:
+ _log.error('Reset safari window size failed - Error: {}'.format(error))