Chromium Code Reviews| Index: tools/telemetry/telemetry/core/backends/chrome/tracing_backend.py |
| diff --git a/tools/telemetry/telemetry/core/backends/chrome/tracing_backend.py b/tools/telemetry/telemetry/core/backends/chrome/tracing_backend.py |
| index 425b39f37b6ce2c840aa2f827d2df56a2e7e8590..e63a10b788c6eb25bf6b811c5233a556384195bf 100644 |
| --- a/tools/telemetry/telemetry/core/backends/chrome/tracing_backend.py |
| +++ b/tools/telemetry/telemetry/core/backends/chrome/tracing_backend.py |
| @@ -21,9 +21,9 @@ class TracingUnsupportedException(Exception): |
| # protocol, where trace data were sent as JSON-serialized strings. DevTools |
| # now send the data as raw objects within the protocol message JSON, so there's |
| # no need in extra de-serialization. We might want to remove this in the future. |
| -class TraceResultImpl(object): |
| +class LegacyTraceResult(trace_result.TraceResult): |
| def __init__(self, tracing_data): |
| - self._tracing_data = tracing_data |
| + super(LegacyTraceResult, self).__init__(tracing_data) |
| def Serialize(self, f): |
| f.write('{"traceEvents": [') |
| @@ -43,25 +43,25 @@ class TraceResultImpl(object): |
| f.write(d[i]) |
| f.write(']}') |
| - def AsTimelineModel(self): |
| + def _CreateTimelineModel(self): |
| f = cStringIO.StringIO() |
| self.Serialize(f) |
| return model.TimelineModel( |
| event_data=f.getvalue(), |
| shift_world_to_zero=False) |
| -# RawTraceResultImpl differs from TraceResultImpl above in that |
| +# RawTraceResult differs from LegacyTraceResult above in that |
| # data are kept as a list of dicts, not strings. |
| -class RawTraceResultImpl(object): |
| +class RawTraceResult(trace_result.TraceResult): |
| def __init__(self, tracing_data): |
| - self._tracing_data = tracing_data |
| + super(RawTraceResult, self).__init__(tracing_data) |
| def Serialize(self, f): |
| f.write('{"traceEvents":') |
| json.dump(self._tracing_data, f) |
| f.write('}') |
| - def AsTimelineModel(self): |
| + def _CreateTimelineModel(self): |
| return model.TimelineModel(self._tracing_data) |
| class CategoryFilter(object): |
| @@ -135,10 +135,14 @@ class TracingBackend(object): |
| self._category_filter = None |
| self._nesting = 0 |
| self._tracing_data = [] |
| + self._tab_to_marker_map = {} |
| def _IsTracing(self): |
| return self._thread != None |
| + def AddTabToMarkerMapping(self, tab, marker): |
| + self._tab_to_marker_map[tab] = marker |
| + |
| def StartTracing(self, custom_categories=None, timeout=10): |
| """ Starts tracing on the first nested call and returns True. Returns False |
| and does nothing on subsequent nested calls. |
| @@ -188,10 +192,12 @@ class TracingBackend(object): |
| def _GetTraceResult(self): |
| assert not self._IsTracing() |
| if self._tracing_data and type(self._tracing_data[0]) in [str, unicode]: |
| - result_impl = TraceResultImpl(self._tracing_data) |
| + result = LegacyTraceResult(self._tracing_data) |
| else: |
| - result_impl = RawTraceResultImpl(self._tracing_data) |
| - return trace_result.TraceResult(result_impl) |
| + result = RawTraceResult(self._tracing_data) |
| + for key, value in self._tab_to_marker_map.iteritems(): |
|
nduca
2013/10/31 07:32:02
this is not quite right. you should be passing in
|
| + result.AddTabToMarkerMapping(key, value) |
| + return result |
| def _GetTraceResultAndReset(self): |
| result = self._GetTraceResult() |