Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / backends / chrome / misc_web_contents_backend.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 from telemetry.core import exceptions
6 from telemetry.core.backends.chrome import inspector_backend_list
7 from telemetry.core.backends.chrome import oobe
8
9
10 class MiscWebContentsBackend(inspector_backend_list.InspectorBackendList):
11   """A dynamic sequence of web contents not related to tabs and extensions.
12
13   Provides acccess to chrome://oobe/login page.
14   """
15
16   def __init__(self, browser_backend):
17     super(MiscWebContentsBackend, self).__init__(
18         browser_backend, backend_wrapper=oobe.Oobe)
19
20   @property
21   def oobe_exists(self):
22     """Lightweight property to determine if the oobe webui is visible."""
23     try:
24       return bool(len(self))
25     except (exceptions.BrowserGoneException,
26             exceptions.BrowserConnectionGoneException,
27             exceptions.TabCrashException):
28       return False
29
30   def GetOobe(self):
31     if not len(self):
32       return None
33     return self[0]
34
35   def ShouldIncludeContext(self, context):
36     return context.get('url').startswith('chrome://oobe')