14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)from telemetry.core import browser
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)from telemetry.core.backends.chrome import cros_browser_backend
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class CrOSBrowserWithOOBE(browser.Browser):
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  """Cros-specific browser."""
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  def __init__(self, backend, platform_backend, archive_path,
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci               append_to_existing_wpr, make_javascript_deterministic,
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci               credentials_path):
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    assert isinstance(backend, cros_browser_backend.CrOSBrowserBackend)
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    super(CrOSBrowserWithOOBE, self).__init__(backend,
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                              platform_backend,
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                              archive_path,
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                              append_to_existing_wpr,
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                              make_javascript_deterministic,
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                              credentials_path)
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  @property
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  def oobe(self):
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    """The login webui (also serves as ui for screenlock and
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    out-of-box-experience).
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    """
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    return self._browser_backend.oobe
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  @property
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def oobe_exists(self):
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    """True if the login/oobe/screenlock webui exists. This is more lightweight
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    than accessing the oobe property.
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    """
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    return self._browser_backend.oobe_exists
35