| OLD | NEW | 
|    1 # Copyright 2014 The Chromium Authors. All rights reserved. |    1 # Copyright 2014 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 import logging |    4 import logging | 
|    5 import time |    5 import time | 
|    6  |    6  | 
|    7 from telemetry.util import process_statistic_timeline_data |    7 from telemetry.util import process_statistic_timeline_data | 
|    8 from telemetry.value import scalar |    8 from telemetry.value import scalar | 
|    9  |    9  | 
|   10 from metrics import Metric |   10 from metrics import Metric | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   84     self._running = True |   84     self._running = True | 
|   85  |   85  | 
|   86   def Stop(self, _, tab): |   86   def Stop(self, _, tab): | 
|   87     if (not self._platform.CanMonitorPower() or |   87     if (not self._platform.CanMonitorPower() or | 
|   88         not self._browser.supports_power_metrics): |   88         not self._browser.supports_power_metrics): | 
|   89       return |   89       return | 
|   90  |   90  | 
|   91     self._StopInternal() |   91     self._StopInternal() | 
|   92  |   92  | 
|   93   def Close(self): |   93   def Close(self): | 
 |   94     # TODO(rnephew): Remove when crbug.com/553601 is solved. | 
 |   95     logging.info('Closing power monitors') | 
|   94     if self._platform.IsMonitoringPower(): |   96     if self._platform.IsMonitoringPower(): | 
|   95       self._platform.StopMonitoringPower() |   97       self._platform.StopMonitoringPower() | 
|   96  |   98  | 
|   97   def AddResults(self, _, results): |   99   def AddResults(self, _, results): | 
|   98     """Add the collected power data into the results object. |  100     """Add the collected power data into the results object. | 
|   99  |  101  | 
|  100     This function needs to be robust in the face of differing power data on |  102     This function needs to be robust in the face of differing power data on | 
|  101     various platforms. Therefore data existence needs to be checked when |  103     various platforms. Therefore data existence needs to be checked when | 
|  102     building up the results. Additionally 0 is a valid value for many of the |  104     building up the results. Additionally 0 is a valid value for many of the | 
|  103     metrics here which is why there are plenty of checks for 'is not None' |  105     metrics here which is why there are plenty of checks for 'is not None' | 
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  205       continue |  207       continue | 
|  206  |  208  | 
|  207     assert isinstance(cpu_stats[process_type]['IdleWakeupCount'], |  209     assert isinstance(cpu_stats[process_type]['IdleWakeupCount'], | 
|  208         process_statistic_timeline_data.IdleWakeupTimelineData) |  210         process_statistic_timeline_data.IdleWakeupTimelineData) | 
|  209     idle_wakeup_delta = (cpu_stats[process_type]['IdleWakeupCount'] - |  211     idle_wakeup_delta = (cpu_stats[process_type]['IdleWakeupCount'] - | 
|  210                         start_cpu_stats[process_type]['IdleWakeupCount']) |  212                         start_cpu_stats[process_type]['IdleWakeupCount']) | 
|  211     cpu_delta[process_type] = idle_wakeup_delta.total_sum() |  213     cpu_delta[process_type] = idle_wakeup_delta.total_sum() | 
|  212     total = total + cpu_delta[process_type] |  214     total = total + cpu_delta[process_type] | 
|  213   cpu_delta['Total'] = total |  215   cpu_delta['Total'] = total | 
|  214   return cpu_delta |  216   return cpu_delta | 
| OLD | NEW |