OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 from telemetry.core import exceptions | 5 from telemetry.core import exceptions |
6 from telemetry.core import util | 6 from telemetry.core import util |
7 | 7 |
8 def _TabNotOobeScreen(browser_backend): | 8 def _WebContentsNotOobe(browser_backend): |
9 """Returns true if we're still on the oobe login screen. As a side-effect, | 9 """Returns true if we're still on the oobe login screen. As a side-effect, |
10 clicks the ok button on the user image selection screen""" | 10 clicks the ok button on the user image selection screen.""" |
11 tab = browser_backend.tab_list_backend.Get(0, None) | 11 oobe = browser_backend.misc_web_contents_backend.GetOobe() |
12 if not (tab and tab.url and tab.url == 'chrome://oobe/login'): | 12 if oobe is None: |
13 return True | 13 return True |
14 try: | 14 try: |
15 tab.ExecuteJavaScript(""" | 15 oobe.EvaluateJavaScript(""" |
16 var ok = document.getElementById("ok-button"); | 16 var ok = document.getElementById("ok-button"); |
17 if (ok) { | 17 if (ok) { |
18 ok.click(); | 18 ok.click(); |
19 } | 19 } |
20 """) | 20 """) |
21 except (exceptions.TabCrashException): | 21 except (exceptions.TabCrashException): |
22 pass | 22 pass |
23 return False | 23 return False |
24 | 24 |
25 def _StartupWindow(browser_backend): | 25 def _StartupWindow(browser_backend): |
26 """Closes the startup window, which is an extension on official builds, | 26 """Closes the startup window, which is an extension on official builds, |
27 and a webpage on chromiumos""" | 27 and a webpage on chromiumos""" |
28 startup_window_ext_id = 'honijodknafkokifofgiaalefdiedpko' | 28 startup_window_ext_id = 'honijodknafkokifofgiaalefdiedpko' |
29 return (browser_backend.extension_dict_backend[startup_window_ext_id] | 29 return (browser_backend.extension_dict_backend[startup_window_ext_id] |
30 if startup_window_ext_id in browser_backend.extension_dict_backend | 30 if startup_window_ext_id in browser_backend.extension_dict_backend |
31 else browser_backend.tab_list_backend.Get(0, None)) | 31 else browser_backend.tab_list_backend.Get(0, None)) |
32 | 32 |
33 def NavigateLogin(browser_backend): | 33 def NavigateLogin(browser_backend): |
34 """Navigates through login screen""" | 34 """Navigates through oobe login screen""" |
35 # Wait for login screen to disappear. | 35 # Wait to connect to oobe. |
36 util.WaitFor(lambda: _TabNotOobeScreen(browser_backend), 20) | 36 misc_wc = browser_backend.misc_web_contents_backend |
| 37 util.WaitFor(lambda: misc_wc.GetOobe(), # pylint: disable=W0108 |
| 38 10) |
| 39 # Dismiss the user image selection screen. |
| 40 util.WaitFor(lambda: _WebContentsNotOobe(browser_backend), 15) |
37 | 41 |
38 # Wait for the startup window, then close it. | 42 # Wait for the startup window, then close it. |
39 util.WaitFor(lambda: _StartupWindow(browser_backend) is not None, 20) | 43 util.WaitFor(lambda: _StartupWindow(browser_backend) is not None, 20) |
40 _StartupWindow(browser_backend).Close() | 44 _StartupWindow(browser_backend).Close() |
OLD | NEW |