telemetry.core.platform
index
telemetry/core/platform.py

# Copyright 2012 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.

 
Modules
       
telemetry.core.discover
telemetry.core.local_server
telemetry.core.memory_cache_http_server
telemetry.core.network_controller
os
telemetry.internal.platform.platform_backend
logging
telemetry.core.tracing_controller
telemetry.core.util

 
Classes
       
__builtin__.object
Platform

 
class Platform(__builtin__.object)
    The platform that the target browser is running on.
 
Provides a limited interface to interact with the platform itself, where
possible. It's important to note that platforms may not provide a specific
API, so check with IsFooBar() for availability.
 
  Methods defined here:
CanCaptureVideo(self)
Returns a bool indicating whether the platform supports video capture.
CanFlushIndividualFilesFromSystemCache(self)
Returns true if the disk cache can be flushed for specific files.
CanLaunchApplication(self, application)
Returns whether the platform can launch the given application.
CanMeasurePerApplicationPower(self)
Returns True if the power monitor can measure power for the target
application in isolation. False if power measurement is for full system
energy consumption.
CanMonitorNetworkData(self)
Returns true if network data can be retrieved, false otherwise.
CanMonitorPower(self)
Returns True iff power can be monitored asynchronously via
StartMonitoringPower() and StopMonitoringPower().
CanMonitorThermalThrottling(self)
Platforms may be able to detect thermal throttling.
 
Some fan-less computers go into a reduced performance mode when their heat
exceeds a certain threshold. Performance tests in particular should use this
API to detect if this has happened and interpret results accordingly.
CanTakeScreenshot(self)
CooperativelyShutdown(self, proc, app_name)
Cooperatively shut down the given process from subprocess.Popen.
 
Currently this is only implemented on Windows. See
crbug.com/424024 for background on why it was added.
 
Args:
  proc: a process object returned from subprocess.Popen.
  app_name: on Windows, is the prefix of the application's window
      class name that should be searched for. This helps ensure
      that only the application's windows are closed.
 
Returns True if it is believed the attempt succeeded.
FlushDnsCache(self)
Flushes the OS's DNS cache completely.
 
This function may require root or administrator access.
FlushEntireSystemCache(self)
Flushes the OS's file cache completely.
 
This function may require root or administrator access.
FlushSystemCacheForDirectory(self, directory)
Flushes the OS's file cache for the specified directory.
 
This function does not require root or administrator access.
GetArchName(self)
Returns a string description of the Platform architecture.
 
Examples: x86_64 (posix), AMD64 (win), armeabi-v7a, x86
GetDeviceTypeName(self)
Returns a string description of the Platform device, or None.
 
Examples: Nexus 7, Nexus 6, Desktop
GetNetworkData(self, browser)
Get current network data.
Returns:
  Tuple of (sent_data, received_data) in kb if data can be found,
  None otherwise.
GetOSName(self)
Returns a string description of the Platform OS.
 
Examples: WIN, MAC, LINUX, CHROMEOS
GetOSVersionName(self)
Returns a logically sortable, string-like description of the Platform OS
version.
 
Examples: VISTA, WIN7, LION, MOUNTAINLION
GetOSVersionNumber(self)
Returns an integer description of the Platform OS major version.
 
Examples: On Mac, 13 for Mavericks, 14 for Yosemite.
HasBeenThermallyThrottled(self)
Returns True if the device has been thermally throttled.
InstallApplication(self, application)
Installs the given application.
IsApplicationRunning(self, application)
Returns whether an application is currently running.
IsCooperativeShutdownSupported(self)
Indicates whether CooperativelyShutdown, below, is supported.
It is not necessary to implement it on all platforms.
IsMonitoringPower(self)
Returns true if power is currently being monitored, false otherwise.
IsThermallyThrottled(self)
Returns True if the device is currently thermally throttled.
LaunchApplication(self, application, parameters=None, elevate_privilege=False)
"Launches the given |application| with a list of |parameters| on the OS.
 
Set |elevate_privilege| to launch the application with root or admin rights.
 
Returns:
  A popen style process handle for host platforms.
SetHTTPServerDirectories(self, paths)
Returns True if the HTTP server was started, False otherwise.
StartLocalServer(self, server)
Starts a LocalServer and associates it with this platform.
|server.Close()| should be called manually to close the started server.
StartMonitoringPower(self, browser)
Starts monitoring power utilization statistics.
 
Args:
  browser: The browser to monitor.
StartVideoCapture(self, min_bitrate_mbps)
Starts capturing video.
 
Outer framing may be included (from the OS, browser window, and webcam).
 
Args:
  min_bitrate_mbps: The minimum capture bitrate in MegaBits Per Second.
      The platform is free to deliver a higher bitrate if it can do so
      without increasing overhead.
 
Raises:
  ValueError if the required |min_bitrate_mbps| can't be achieved.
StopAllLocalServers(self)
StopMonitoringPower(self)
Stops monitoring power utilization and returns stats
 
Returns:
  None if power measurement failed for some reason, otherwise a dict of
  power utilization statistics containing: {
    # An identifier for the data provider. Allows to evaluate the precision
    # of the data. Example values: monsoon, powermetrics, ds2784
    'identifier': identifier,
 
    # The instantaneous power (voltage * current) reading in milliwatts at
    # each sample.
    'power_samples_mw':  [mw0, mw1, ..., mwN],
 
    # The full system energy consumption during the sampling period in
    # milliwatt hours. May be estimated by integrating power samples or may
    # be exact on supported hardware.
    'energy_consumption_mwh': mwh,
 
    # The target application's energy consumption during the sampling period
    # in milliwatt hours. Should be returned iff
    # CanMeasurePerApplicationPower() return true.
    'application_energy_consumption_mwh': mwh,
 
    # A platform-specific dictionary of additional details about the
    # utilization of individual hardware components.
    component_utilization: {
      ...
    }
    # Platform-specific data not attributed to any particular hardware
    # component.
    platform_info: {
 
      # Device-specific onboard temperature sensor.
      'average_temperature_c': c,
 
       ...
    }
 
  }
StopVideoCapture(self)
Stops capturing video.
 
Returns:
  A telemetry.core.video.Video object.
TakeScreenshot(self, file_path)
Takes a screenshot of the platform and save to |file_path|.
 
Note that this method may not be supported on all platform, so check with
CanTakeScreenshot before calling this.
 
Args:
  file_path: Where to save the screenshot to. If the platform is remote,
    |file_path| is the path on the host platform.
 
Returns True if it is believed the attempt succeeded.
__init__(self, platform_backend)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)
http_server
is_host_platform
local_servers
Returns the currently running local servers.
network_controller
Control network settings and servers to simulate the Web.
tracing_controller

 
Functions
       
GetHostPlatform()
GetPlatformForDevice(device, finder_options, logging=<module 'logging' from '/usr/lib/python2.7/logging/__init__.pyc'>)
Returns a platform instance for the device.
Args:
  device: a device.Device instance.