Chromium Code Reviews| Index: tools/android/loading/loading_trace.py |
| diff --git a/tools/android/loading/loading_trace.py b/tools/android/loading/loading_trace.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..72043e1e6ec109b6c846612cb93799be2605a91a |
| --- /dev/null |
| +++ b/tools/android/loading/loading_trace.py |
| @@ -0,0 +1,48 @@ |
| +# Copyright (c) 2016 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. |
| + |
| +"""Represents the trace of a page load.""" |
| + |
| +import page_track |
| +import request_track |
| +import tracing |
| + |
| +class LoadingTrace(object): |
| + """Represents the trace of a page load.""" |
| + def __init__(self, url, metadata, page, request, tracing_track): |
| + """Initializes a loading trace instance. |
| + |
| + Args: |
| + url: (str) URL that has been loaded |
| + metadata: (dict) Metadata associated with the load. |
| + page: (PageTrack) instance of PageTrack. |
| + request: (RequestTrack) instance of RequestTrack. |
| + tracing_track: (TracingTrack) instance of TracingTrack. |
| + """ |
| + self.url = url |
| + self.metadata = metadata |
| + self.page_track = page |
| + self.request_track = request |
| + self.tracing_track = tracing_track |
| + |
| + def ToJsonDict(self): |
| + """Returns a dictionary representing this instance.""" |
| + result = {'url': self.url, 'metadata': self.metadata, |
|
mattcary
2016/01/19 15:24:47
Turn the keys into class constants to avoid typos?
Benoit L
2016/01/19 15:54:50
Done.
|
| + 'page_track': self.page_track.ToJsonDict(), |
| + 'request_track': self.request_track.ToJsonDict(), |
| + 'tracing_track': self.tracing_track.ToJsonDict()} |
| + return result |
| + |
| + @classmethod |
| + def FromJsonDict(cls, json_dict): |
| + """Returns an instance from a dictionary returned by ToJsonDict().""" |
| + keys = ('url', 'metadata', 'page_track', 'request_track', 'tracing_track') |
| + assert all(key in json_dict for key in keys) |
| + page = page_track.PageTrack.FromJsonDict(json_dict['page_track']) |
| + request = request_track.RequestTrack.FromJsonDict( |
| + json_dict['request_track']) |
| + tracing_track = tracing.TracingTrack.FromJsonDict( |
| + json_dict['tracing_track']) |
| + return LoadingTrace(json_dict['url'], json_dict['metadata'], |
| + page, request, tracing_track) |