Index: tools/telemetry/telemetry/core/browser_info.py |
diff --git a/tools/telemetry/telemetry/core/browser_info.py b/tools/telemetry/telemetry/core/browser_info.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2e4cf49df4007624dc5c243ed0fcac774e54310f |
--- /dev/null |
+++ b/tools/telemetry/telemetry/core/browser_info.py |
@@ -0,0 +1,38 @@ |
+# Copyright (c) 2014 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. |
+ |
+_check_webgl_supported_script = """ |
+(function () { |
+ var c = document.createElement('canvas'); |
+ var gl = c.getContext('webgl'); |
+ if (gl == null) { |
+ gl = c.getContext("experimental-webgl"); |
+ if (gl == null) { |
+ return false; |
+ } |
+ } |
+ return true; |
+})(); |
+""" |
+ |
+class BrowserInfo(object): |
+ """A wrapper around browser object that allows looking up infos of the |
+ browser. |
+ """ |
+ def __init__(self, browser): |
+ self._browser = browser |
+ |
+ def HasWebGLSupport(self): |
+ result = False |
+ # If no tab is opened, open one and close it after evaluate |
+ # _check_webgl_supported_script |
+ if len(self._browser.tabs) == 0 and self._browser.supports_tab_control: |
+ self._browser.tabs.New() |
+ tab = self._browser.tabs[0] |
+ result = tab.EvaluateJavaScript(_check_webgl_supported_script) |
+ tab.Close() |
+ elif len(self._browser.tabs) > 0: |
+ tab = self._browser.tabs[0] |
+ result = tab.EvaluateJavaScript(_check_webgl_supported_script) |
+ return result |