https://bugs.webkit.org/show_bug.cgi?id=144038
[WebKit-https.git] / Tools / Scripts / webkitpy / benchmark_runner / browser_driver / osx_chrome_driver.py
1 #!/usr/bin/env python
2
3 import logging
4 import os
5 import subprocess
6 import time
7
8 # We assume that this handle can only be used when the platform is OSX
9 from AppKit import NSRunningApplication
10 from browser_driver import BrowserDriver
11
12
13 _log = logging.getLogger(__name__)
14
15
16 class OSXChromeDriver(BrowserDriver):
17
18     def prepareEnv(self):
19         self.closeBrowsers()
20         self.chromePreferences = []
21
22     def launchUrl(self, url, browserBuildPath=None):
23         _log.info('Launching chrome: %s with url: %s' % (os.path.join(browserBuildPath, 'Google Chrome.app'), url))
24         # FIXME: May need to be modified for develop build, such as setting up libraries
25         subprocess.Popen(['open', '-a', os.path.join(browserBuildPath, 'Google Chrome.app'), '--args', '--homepage', url] + self.chromePreferences).communicate()
26
27     def closeBrowsers(self):
28         _log.info('Closing all existing chrome processes')
29         chromes = NSRunningApplication.runningApplicationsWithBundleIdentifier_('com.google.Chrome')
30         for chrome in chromes:
31             chrome.terminate()