Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: tracing/tracing/extras/importer/gzip_importer.html

Issue 2755943002: tracing: Stream processing for some importers (Closed)
Patch Set: review / sync Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tracing/tracing/base/xhr.html ('k') | tracing/tracing/extras/importer/gzip_importer_test.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/extras/importer/gzip_importer.html
diff --git a/tracing/tracing/extras/importer/gzip_importer.html b/tracing/tracing/extras/importer/gzip_importer.html
index dbfc51ccb171b72b5d0d647c99e4327bc084eae8..4e83b8652b6bbf508dc64a10077bd96545b8eec1 100644
--- a/tracing/tracing/extras/importer/gzip_importer.html
+++ b/tracing/tracing/extras/importer/gzip_importer.html
@@ -5,6 +5,7 @@ Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
+<link rel="import" href="/tracing/base/in_memory_trace_stream.html">
<link rel="import" href="/tracing/extras/importer/jszip.html">
<link rel="import" href="/tracing/importer/importer.html">
<link rel="import" href="/tracing/model/model.html">
@@ -25,10 +26,16 @@ tr.exportTo('tr.e.importer', function() {
function GzipImporter(model, eventData) {
// Normalize the data into an Uint8Array.
+ this.inflateAsTraceStream = false;
if (typeof(eventData) === 'string' || eventData instanceof String) {
eventData = JSZip.utils.transformTo('uint8array', eventData);
} else if (eventData instanceof ArrayBuffer) {
eventData = new Uint8Array(eventData);
+ } else if (eventData instanceof tr.b.InMemoryTraceStream) {
+ // This importer does not support processing general TraceStreams, only
+ // InMemoryTraceStreams for now.
+ eventData = eventData.data;
+ this.inflateAsTraceStream_ = true;
} else {
throw new Error('Unknown gzip data format');
}
@@ -42,6 +49,12 @@ tr.exportTo('tr.e.importer', function() {
* @return {boolean} Whether obj looks like gzip compressed data.
*/
GzipImporter.canImport = function(eventData) {
+ // This importer does not support processing general TraceStreams, only
+ // InMemoryTraceStreams for now.
+ if (eventData instanceof tr.b.InMemoryTraceStream) {
+ eventData = eventData.header;
+ }
+
var header;
if (eventData instanceof ArrayBuffer) {
header = new Uint8Array(eventData.slice(0, GZIP_MEMBER_HEADER_ID_SIZE));
@@ -115,6 +128,11 @@ tr.exportTo('tr.e.importer', function() {
// Inflate the data using jszip.
var inflatedData =
JSZip.compressions['DEFLATE'].uncompress(data.subarray(position));
+
+ if (this.inflateAsTraceStream_) {
+ return GzipImporter.transformToStream(inflatedData);
+ }
+
var string = GzipImporter.transformToString(inflatedData);
if (inflatedData.length > 0 && string.length === 0) {
@@ -125,6 +143,12 @@ tr.exportTo('tr.e.importer', function() {
return string;
};
+ GzipImporter.transformToStream = function(data) {
+ let type = JSZip.utils.getTypeOf(data);
+ if (type === 'uint8array') return new tr.b.InMemoryTraceStream(data, false);
+ throw new Error(`Cannot transform ${type} to TraceStream.`);
+ };
+
/**
* Transforms an array-like object to a string.
*
@@ -144,9 +168,7 @@ tr.exportTo('tr.e.importer', function() {
}
var type = JSZip.utils.getTypeOf(data);
- if (type === 'string') {
- return data; // We already have a string.
- }
+ if (type === 'string') return data; // We already have a string.
if (type === 'array') {
// TextDecoder requires an ArrayBuffer or an ArrayBufferView.
« no previous file with comments | « tracing/tracing/base/xhr.html ('k') | tracing/tracing/extras/importer/gzip_importer_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698