| 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..720fa1d17fce6361613452b6a57f8d295cf3cc45
|
| --- /dev/null
|
| +++ b/tools/android/loading/loading_trace.py
|
| @@ -0,0 +1,55 @@
|
| +# 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."""
|
| + _URL_KEY = 'url'
|
| + _METADATA_KEY = 'metadata'
|
| + _PAGE_KEY = 'page_track'
|
| + _REQUEST_KEY = 'request_track'
|
| + _TRACING_KEY = 'tracing_track'
|
| +
|
| + 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 = {self._URL_KEY: self.url, self._METADATA_KEY: self.metadata,
|
| + self._PAGE_KEY: self.page_track.ToJsonDict(),
|
| + self._REQUEST_KEY: self.request_track.ToJsonDict(),
|
| + self._TRACING_KEY: self.tracing_track.ToJsonDict()}
|
| + return result
|
| +
|
| + @classmethod
|
| + def FromJsonDict(cls, json_dict):
|
| + """Returns an instance from a dictionary returned by ToJsonDict()."""
|
| + keys = (cls._URL_KEY, cls._METADATA_KEY, cls._PAGE_KEY, cls._REQUEST_KEY,
|
| + cls._TRACING_KEY)
|
| + assert all(key in json_dict for key in keys)
|
| + page = page_track.PageTrack.FromJsonDict(json_dict[cls._PAGE_KEY])
|
| + request = request_track.RequestTrack.FromJsonDict(
|
| + json_dict[cls._REQUEST_KEY])
|
| + tracing_track = tracing.TracingTrack.FromJsonDict(
|
| + json_dict[cls._TRACING_KEY])
|
| + return LoadingTrace(json_dict[cls._URL_KEY], json_dict[cls._METADATA_KEY],
|
| + page, request, tracing_track)
|
|
|