parameters: (self, renderer_process, browser_process, surface_flinger_process,
                 timeline_ranges)
docstring: Utility class for extracting rendering statistics from the timeline (or
      other loggin facilities), and providing them in a common format to classes
      that compute benchmark metrics from this data.
  
      Stats are lists of lists of numbers. The outer list stores one list per
      timeline range.
  
      All *_time values are measured in milliseconds.
docstring_summary: Utility class for extracting rendering statistics from the timeline (or
      other loggin facilities), and providing them in a common format to classes
      that compute benchmark metrics from this data.
docstring_tokens: Utility class for extracting rendering statistics from the timeline ( or other loggin facilities ) and providing them in a common format to classes that compute benchmark metrics from this data .
function: def __init__(self, renderer_process, browser_process, surface_flinger_process,
                 timeline_ranges):
      """
      Utility class for extracting rendering statistics from the timeline (or
      other loggin facilities), and providing them in a common format to classes
      that compute benchmark metrics from this data.
  
      Stats are lists of lists of numbers. The outer list stores one list per
      timeline range.
  
      All *_time values are measured in milliseconds.
      """
      assert len(timeline_ranges) > 0
      self.refresh_period = None
  
      # Find the top level process with rendering stats (browser or renderer).
      if surface_flinger_process:
        timestamp_process = surface_flinger_process
        self._GetRefreshPeriodFromSurfaceFlingerProcess(surface_flinger_process)
      elif HasRenderingStats(browser_process):
        timestamp_process = browser_process
      else:
        timestamp_process = renderer_process
  
      timestamp_event_name = GetTimestampEventName(timestamp_process)
  
      # A lookup from list names below to any errors or exceptions encountered
      # in attempting to generate that list.
      self.errors = {}
  
      self.frame_timestamps = []
      self.frame_times = []
      self.approximated_pixel_percentages = []
      self.checkerboarded_pixel_percentages = []
      # End-to-end latency for input event - from when input event is
      # generated to when the its resulted page is swap buffered.
      self.input_event_latency = []
      self.frame_queueing_durations = []
      # Latency from when a scroll update is sent to the main thread until the
      # resulting frame is swapped.
      self.main_thread_scroll_latency = []
      # Latency for a GestureScrollUpdate input event.
      self.gesture_scroll_update_latency = []
  
      for timeline_range in timeline_ranges:
        self.frame_timestamps.append([])
        self.frame_times.append([])
        self.approximated_pixel_percentages.append([])
        self.checkerboarded_pixel_percentages.append([])
        self.input_event_latency.append([])
        self.main_thread_scroll_latency.append([])
        self.gesture_scroll_update_latency.append([])
  
        if timeline_range.is_empty:
          continue
        self._InitFrameTimestampsFromTimeline(
            timestamp_process, timestamp_event_name, timeline_range)
        self._InitImplThreadRenderingStatsFromTimeline(
            renderer_process, timeline_range)
        self._InitInputLatencyStatsFromTimeline(
            browser_process, renderer_process, timeline_range)
        self._InitFrameQueueingDurationsFromTimeline(
            renderer_process, timeline_range)
function_tokens: def __init__ ( self , renderer_process , browser_process , surface_flinger_process , timeline_ranges ) : assert len ( timeline_ranges ) > 0 self . refresh_period = None # Find the top level process with rendering stats (browser or renderer). if surface_flinger_process : timestamp_process = surface_flinger_process self . _GetRefreshPeriodFromSurfaceFlingerProcess ( surface_flinger_process ) elif HasRenderingStats ( browser_process ) : timestamp_process = browser_process else : timestamp_process = renderer_process timestamp_event_name = GetTimestampEventName ( timestamp_process ) # A lookup from list names below to any errors or exceptions encountered # in attempting to generate that list. self . errors = { } self . frame_timestamps = [ ] self . frame_times = [ ] self . approximated_pixel_percentages = [ ] self . checkerboarded_pixel_percentages = [ ] # End-to-end latency for input event - from when input event is # generated to when the its resulted page is swap buffered. self . input_event_latency = [ ] self . frame_queueing_durations = [ ] # Latency from when a scroll update is sent to the main thread until the # resulting frame is swapped. self . main_thread_scroll_latency = [ ] # Latency for a GestureScrollUpdate input event. self . gesture_scroll_update_latency = [ ] for timeline_range in timeline_ranges : self . frame_timestamps . append ( [ ] ) self . frame_times . append ( [ ] ) self . approximated_pixel_percentages . append ( [ ] ) self . checkerboarded_pixel_percentages . append ( [ ] ) self . input_event_latency . append ( [ ] ) self . main_thread_scroll_latency . append ( [ ] ) self . gesture_scroll_update_latency . append ( [ ] ) if timeline_range . is_empty : continue self . _InitFrameTimestampsFromTimeline ( timestamp_process , timestamp_event_name , timeline_range ) self . _InitImplThreadRenderingStatsFromTimeline ( renderer_process , timeline_range ) self . _InitInputLatencyStatsFromTimeline ( browser_process , renderer_process , timeline_range ) self . _InitFrameQueueingDurationsFromTimeline ( renderer_process , timeline_range )