| Index: tools/android/loading/loading_trace.py
|
| diff --git a/tools/android/loading/loading_trace.py b/tools/android/loading/loading_trace.py
|
| index 6dbd13deb9f12075a812f2f1a7fc97b5e7238673..7630bcc07cff699482928a6eb80a2e00d6e5d88f 100644
|
| --- a/tools/android/loading/loading_trace.py
|
| +++ b/tools/android/loading/loading_trace.py
|
| @@ -34,7 +34,8 @@ class LoadingTrace(object):
|
| self.metadata = metadata
|
| self.page_track = page
|
| self.request_track = request
|
| - self.tracing_track = tracing_track
|
| + self._tracing_track = tracing_track
|
| + self._tracing_json_str = None
|
|
|
| def ToJsonDict(self):
|
| """Returns a dictionary representing this instance."""
|
| @@ -94,3 +95,23 @@ class LoadingTrace(object):
|
| else categories))
|
| connection.MonitorUrl(url, timeout_seconds=timeout_seconds)
|
| return cls(url, chrome_metadata, page, request, trace)
|
| +
|
| + @property
|
| + def tracing_track(self):
|
| + if not self._tracing_track:
|
| + self._RestoreTracingTrack()
|
| + return self._tracing_track
|
| +
|
| + def Slim(self):
|
| + """Slims the memory usage of a trace by dropping the TraceEvents from it.
|
| +
|
| + The tracing track is restored on-demand when accessed.
|
| + """
|
| + self._tracing_json_str = json.dumps(self._tracing_track.ToJsonDict())
|
| + self._tracing_track = None
|
| +
|
| + def _RestoreTracingTrack(self):
|
| + assert self._tracing_json_str
|
| + self._tracing_track = tracing.TracingTrack.FromJsonDict(
|
| + json.loads(self._tracing_json_str))
|
| + self._tracing_json_str = None
|
|
|