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

Side by Side Diff: tracing/tracing/extras/importer/gzip_importer.html

Issue 2864743002: tracing: Enable stream processing when input is large (Closed)
Patch Set: sync Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | tracing/tracing/extras/importer/trace2html_importer.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <!-- 2 <!--
3 Copyright (c) 2013 The Chromium Authors. All rights reserved. 3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be 4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file. 5 found in the LICENSE file.
6 --> 6 -->
7 7
8 <link rel="import" href="/tracing/base/in_memory_trace_stream.html"> 8 <link rel="import" href="/tracing/base/in_memory_trace_stream.html">
9 <link rel="import" href="/tracing/extras/importer/jszip.html"> 9 <link rel="import" href="/tracing/extras/importer/jszip.html">
10 <link rel="import" href="/tracing/importer/importer.html"> 10 <link rel="import" href="/tracing/importer/importer.html">
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 if (haveHeaderCrc) getWord(); 126 if (haveHeaderCrc) getWord();
127 127
128 // Inflate the data using jszip. 128 // Inflate the data using jszip.
129 const inflatedData = 129 const inflatedData =
130 JSZip.compressions.DEFLATE.uncompress(data.subarray(position)); 130 JSZip.compressions.DEFLATE.uncompress(data.subarray(position));
131 131
132 if (this.inflateAsTraceStream_) { 132 if (this.inflateAsTraceStream_) {
133 return GzipImporter.transformToStream(inflatedData); 133 return GzipImporter.transformToStream(inflatedData);
134 } 134 }
135 135
136 const string = GzipImporter.transformToString(inflatedData); 136 let string;
137 try {
138 string = GzipImporter.transformToString(inflatedData);
139 } catch (err) {
140 // It may be the case that inflated data does not fit into a V8 string. In
141 // that case, try to transform to a trace stream.
142 return GzipImporter.transformToStream(inflatedData);
143 }
137 144
138 if (inflatedData.length > 0 && string.length === 0) { 145 if (inflatedData.length > 0 && string.length === 0) {
139 throw new RangeError('Inflated gzip data too long to fit into a string' + 146 throw new RangeError('Inflated gzip data too long to fit into a string' +
140 ' (' + inflatedData.length + ').'); 147 ' (' + inflatedData.length + ').');
141 } 148 }
142 149
143 return string; 150 return string;
144 }; 151 };
145 152
146 GzipImporter.transformToStream = function(data) { 153 GzipImporter.transformToStream = function(data) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } 211 }
205 }; 212 };
206 213
207 tr.importer.Importer.register(GzipImporter); 214 tr.importer.Importer.register(GzipImporter);
208 215
209 return { 216 return {
210 GzipImporter, 217 GzipImporter,
211 }; 218 };
212 }); 219 });
213 </script> 220 </script>
OLDNEW
« no previous file with comments | « no previous file | tracing/tracing/extras/importer/trace2html_importer.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698