OLD | NEW |
---|---|
1 # Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """The request data track. | 5 """The request data track. |
6 | 6 |
7 When executed, parses a JSON dump of DevTools messages. | 7 When executed, parses a JSON dump of DevTools messages. |
8 """ | 8 """ |
9 | 9 |
10 import bisect | 10 import bisect |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
484 response = params['response'] | 484 response = params['response'] |
485 _CopyFromDictToObject( | 485 _CopyFromDictToObject( |
486 response, r, (('status', 'status'), ('mimeType', 'mime_type'), | 486 response, r, (('status', 'status'), ('mimeType', 'mime_type'), |
487 ('fromDiskCache', 'from_disk_cache'), | 487 ('fromDiskCache', 'from_disk_cache'), |
488 ('fromServiceWorker', 'from_service_worker'), | 488 ('fromServiceWorker', 'from_service_worker'), |
489 ('protocol', 'protocol'), | 489 ('protocol', 'protocol'), |
490 # Actual request headers are not known before reaching the | 490 # Actual request headers are not known before reaching the |
491 # network stack. | 491 # network stack. |
492 ('requestHeaders', 'request_headers'), | 492 ('requestHeaders', 'request_headers'), |
493 ('headers', 'response_headers'))) | 493 ('headers', 'response_headers'))) |
494 # data URLs don't have a timing dict. | |
495 timing_dict = {} | 494 timing_dict = {} |
496 if r.protocol != 'data': | 495 # data URLs don't have a timing dict, and timings for cached requests are |
Benoit L
2016/02/18 16:37:36
Maybe a TODO here, since using the timestamp is no
droger
2016/02/18 16:48:31
Done.
| |
496 # stale. | |
497 if r.protocol == 'data' or r.served_from_cache: | |
498 timing_dict = {'requestTime': r.timestamp} | |
499 else: | |
497 timing_dict = response['timing'] | 500 timing_dict = response['timing'] |
498 else: | |
499 timing_dict = {'requestTime': r.timestamp} | |
500 r.timing = TimingFromDict(timing_dict) | 501 r.timing = TimingFromDict(timing_dict) |
501 self._requests_in_flight[request_id] = (r, RequestTrack._STATUS_RESPONSE) | 502 self._requests_in_flight[request_id] = (r, RequestTrack._STATUS_RESPONSE) |
502 self._request_id_to_response_received[request_id] = params | 503 self._request_id_to_response_received[request_id] = params |
503 | 504 |
504 def _DataReceived(self, request_id, params): | 505 def _DataReceived(self, request_id, params): |
505 (r, status) = self._requests_in_flight[request_id] | 506 (r, status) = self._requests_in_flight[request_id] |
506 assert (status == RequestTrack._STATUS_RESPONSE | 507 assert (status == RequestTrack._STATUS_RESPONSE |
507 or status == RequestTrack._STATUS_DATA) | 508 or status == RequestTrack._STATUS_DATA) |
508 offset = r._TimestampOffsetFromStartMs(params['timestamp']) | 509 offset = r._TimestampOffsetFromStartMs(params['timestamp']) |
509 r.data_chunks.append((offset, params['encodedDataLength'])) | 510 r.data_chunks.append((offset, params['encodedDataLength'])) |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
564 | 565 |
565 | 566 |
566 if __name__ == '__main__': | 567 if __name__ == '__main__': |
567 import json | 568 import json |
568 import sys | 569 import sys |
569 events = json.load(open(sys.argv[1], 'r')) | 570 events = json.load(open(sys.argv[1], 'r')) |
570 request_track = RequestTrack(None) | 571 request_track = RequestTrack(None) |
571 for event in events: | 572 for event in events: |
572 event_method = event['method'] | 573 event_method = event['method'] |
573 request_track.Handle(event_method, event) | 574 request_track.Handle(event_method, event) |
OLD | NEW |