Index: tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_timeline.py |
diff --git a/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_timeline.py b/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_timeline.py |
deleted file mode 100644 |
index 9289f26674ce9c0d33be1ecba1c6d4570a0b14e3..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_timeline.py |
+++ /dev/null |
@@ -1,109 +0,0 @@ |
-# Copyright 2013 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. |
- |
-from telemetry.core.backends.chrome_inspector import timeline_recorder |
- |
- |
-class TabBackendException(Exception): |
- """An exception which indicates an error response from devtools inspector.""" |
- pass |
- |
- |
-class InspectorTimeline(timeline_recorder.TimelineRecorder): |
- """Implementation of dev tools timeline.""" |
- |
- class Recorder(object): |
- """Utility class to Start and Stop recording timeline. |
- |
- Example usage: |
- |
- with inspector_timeline.InspectorTimeline.Recorder(tab): |
- # Something to run while the timeline is recording. |
- |
- This is an alternative to directly calling the Start and Stop methods below. |
- """ |
- def __init__(self, tab): |
- self._tab = tab |
- |
- def __enter__(self): |
- self._tab.StartTimelineRecording() |
- |
- def __exit__(self, *args): |
- self._tab.StopTimelineRecording() |
- |
- def __init__(self, inspector_websocket): |
- super(InspectorTimeline, self).__init__() |
- self._inspector_websocket = inspector_websocket |
- self._is_recording = False |
- self._raw_events = None |
- |
- @property |
- def is_timeline_recording_running(self): |
- return self._is_recording |
- |
- def Start(self): |
- """Starts recording.""" |
- assert not self._is_recording, 'Start should only be called once.' |
- self._raw_events = None |
- self._is_recording = True |
- self._inspector_websocket.RegisterDomain( |
- 'Timeline', self._OnNotification, self._OnClose) |
- # The 'bufferEvents' parameter below means that events should not be sent |
- # individually as messages, but instead all at once when a Timeline.stop |
- # request is sent. |
- request = { |
- 'method': 'Timeline.start', |
- 'params': {'bufferEvents': True}, |
- } |
- self._SendSyncRequest(request) |
- |
- def Stop(self): |
- """Stops recording and returns timeline event data.""" |
- if not self._is_recording: |
- return None |
- request = {'method': 'Timeline.stop'} |
- result = self._SendSyncRequest(request) |
- self._inspector_websocket.UnregisterDomain('Timeline') |
- self._is_recording = False |
- |
- # TODO: Backward compatibility. Needs to be removed when |
- # M38 becomes stable. |
- if 'events' in result: |
- raw_events = result['events'] |
- else: # In M38 events will arrive via Timeline.stopped event. |
- raw_events = self._raw_events |
- self._raw_events = None |
- return raw_events |
- |
- def _SendSyncRequest(self, request, timeout=60): |
- """Sends a devtools remote debugging protocol request. |
- |
- The types of request that are valid is determined by protocol.json: |
- https://src.chromium.org/viewvc/blink/trunk/Source/devtools/protocol.json |
- |
- Args: |
- request: Request dict, may contain the keys 'method' and 'params'. |
- timeout: Number of seconds to wait for a response. |
- |
- Returns: |
- The result given in the response message. |
- |
- Raises: |
- TabBackendException: The response indicates an error occurred. |
- """ |
- response = self._inspector_websocket.SyncRequest(request, timeout) |
- if 'error' in response: |
- raise TabBackendException(response['error']['message']) |
- return response['result'] |
- |
- def _OnNotification(self, msg): |
- """Handler called when a message is received.""" |
- # Since 'Timeline.start' was invoked with the 'bufferEvents' parameter, |
- # the events will arrive in Timeline.stopped event. |
- if msg['method'] == 'Timeline.stopped' and 'events' in msg['params']: |
- self._raw_events = msg['params']['events'] |
- |
- def _OnClose(self): |
- """Handler called when a domain is unregistered.""" |
- pass |