Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Unified Diff: tools/telemetry/telemetry/core/backends/webdriver/webdriver_ie_backend.py

Issue 23572025: [telemetry] Add webdriver_ie_backend. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/backends/webdriver/webdriver_ie_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/webdriver/webdriver_ie_backend.py b/tools/telemetry/telemetry/core/backends/webdriver/webdriver_ie_backend.py
new file mode 100644
index 0000000000000000000000000000000000000000..f744dcae4c77def04c6c517fe578390fb4fcf283
--- /dev/null
+++ b/tools/telemetry/telemetry/core/backends/webdriver/webdriver_ie_backend.py
@@ -0,0 +1,43 @@
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+import re
+import urllib2
+
+from telemetry.core.backends.webdriver import webdriver_browser_backend
+
+class WebDriverIEBackend(webdriver_browser_backend.WebDriverBrowserBackend):
+ # For unsupported functions. pylint: disable=W0223
+
+ def __init__(self, platform_backend, driver_creator, options):
+ super(WebDriverIEBackend, self).__init__(
+ driver_creator=driver_creator,
+ supports_extensions=False,
+ options=options)
+ self._platform_backend = platform_backend
+
+ def GetProcessName(self, cmd_line):
+ if re.search('SCODEF:\d+ CREDAT:\d+', cmd_line, re.IGNORECASE):
+ return 'Content'
+ else:
+ return 'Manager'
+
+ @property
+ def pid(self):
+ for pi in self._platform_backend.GetSystemProcessInfo():
+ if (pi['ParentProcessId'] == self.driver.iedriver.process.pid and
+ pi['Name'].lower() == 'iexplore.exe'):
+ return pi['ProcessId']
+ return None
+
+ def Close(self):
+ try:
+ super(WebDriverIEBackend, self).Close()
+ except urllib2.URLError:
+ # CTRL + C makes IEDriverServer exits while leaving IE still running.
+ for pi in self._platform_backend.GetSystemProcessInfo():
+ if (pi['ParentProcessId'] == self.driver.iedriver.process.pid):
+ self._platform_backend.KillProcess(pi['ProcessId'], True)
+
+ def IsBrowserRunning(self):
+ return self.pid is not None

Powered by Google App Engine
This is Rietveld 408576698