diff options
author | nduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-02 07:49:35 +0000 |
---|---|---|
committer | nduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-02 07:49:35 +0000 |
commit | 8253bdb7d8201ba565f2951e81a6f4184c39ba09 (patch) | |
tree | 147c64e044745546c67f7b2631aa740c1fd87da5 /chrome/browser/resources | |
parent | 2a6dd1de80c4243de9499c86d9b6040c751b014e (diff) | |
download | chromium_src-8253bdb7d8201ba565f2951e81a6f4184c39ba09.zip chromium_src-8253bdb7d8201ba565f2951e81a6f4184c39ba09.tar.gz chromium_src-8253bdb7d8201ba565f2951e81a6f4184c39ba09.tar.bz2 |
Frontend support for user timestamps.
Review URL: http://codereview.chromium.org/8384022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108250 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources')
-rw-r--r-- | chrome/browser/resources/tracing/timeline_model.js | 12 | ||||
-rw-r--r-- | chrome/browser/resources/tracing/timeline_model_test.html | 17 | ||||
-rw-r--r-- | chrome/browser/resources/tracing/timeline_view.js | 4 |
3 files changed, 32 insertions, 1 deletions
diff --git a/chrome/browser/resources/tracing/timeline_model.js b/chrome/browser/resources/tracing/timeline_model.js index 14865f8..a87370c 100644 --- a/chrome/browser/resources/tracing/timeline_model.js +++ b/chrome/browser/resources/tracing/timeline_model.js @@ -248,6 +248,10 @@ cr.define('tracing', function() { { index: eI, slice: new TimelineSlice(event.name, colorId, event.ts, event.args) }; + + if (event.uts) + slice.slice.startInUserTime = event.uts; + if (event.args['ui-nest'] === '0') { var sliceID = event.name; for (var x in event.args) @@ -274,6 +278,8 @@ cr.define('tracing', function() { if (!slice) return; slice.slice.duration = event.ts - slice.slice.start; + if (event.uts) + slice.durationInUserTime = event.uts - slice.slice.startInUserTime; // Store the slice in a non-nested subrow. var thread = self.getOrCreateProcess(event.pid). @@ -287,6 +293,8 @@ cr.define('tracing', function() { } var slice = state.openSlices.pop().slice; slice.duration = event.ts - slice.start; + if (event.uts) + slice.durationInUserTime = event.uts - slice.startInUserTime; // Store the slice on the correct subrow. var thread = self.getOrCreateProcess(event.pid) @@ -411,6 +419,10 @@ cr.define('tracing', function() { var slice = subRow[tS]; slice.start = (slice.start - timeBase) / 1000; slice.duration /= 1000; + if (slice.startInUserTime) + slice.startInUserTime /= 1000; + if (slice.durationInUserTime) + slice.durationInUserTime /= 1000; } }; for (var tSR = 0; tSR < thread.subRows.length; tSR++) { diff --git a/chrome/browser/resources/tracing/timeline_model_test.html b/chrome/browser/resources/tracing/timeline_model_test.html index 7403e9f..79d0779 100644 --- a/chrome/browser/resources/tracing/timeline_model_test.html +++ b/chrome/browser/resources/tracing/timeline_model_test.html @@ -264,6 +264,23 @@ function testThreadNames() { assertEquals('Thread 2', m.processes[2].threads[2].name); } +// User time +function testUserTime() { + var events = [ + {name: 'thread_name', args: {name: 'Thread 1'}, + pid: 1, ts: 0, tid: 1, ph: 'M'}, + {name: 'a', args: {}, pid: 1, ts: 1, uts: 70, cat: 'foo', tid: 1, ph: 'B'}, + {name: 'a', args: {}, pid: 1, ts: 2, uts: 77, cat: 'foo', tid: 1, ph: 'E'}, + {name: 'a', args: {}, pid: 1, ts: 2 , uts: 80, cat: 'foo', tid: 1, ph: 'I'}, + ]; + var m = new tracing.TimelineModel(events); + var subRow = m.processes[1].threads[1].subRows[0]; + assertEquals(subRow[0].startInUserTime, 70); + assertEquals(subRow[0].durationInUserTime, 7); + assertEquals(subRow[1].startInUserTime, 80); + assertEquals(subRow[1].durationInUserTime, 0); +} + function testImmediateParsing() { var events = [ diff --git a/chrome/browser/resources/tracing/timeline_view.js b/chrome/browser/resources/tracing/timeline_view.js index 107ba48..bd4a1d5 100644 --- a/chrome/browser/resources/tracing/timeline_view.js +++ b/chrome/browser/resources/tracing/timeline_view.js @@ -97,7 +97,7 @@ cr.define('tracing', function() { var text = ''; if (selection.length == 1) { - var c0Width = 10; + var c0Width = 14; var slice = selection[0].slice; text = 'Selected item:\n'; text += leftAlign('Title', c0Width) + ': ' + slice.title + '\n'; @@ -105,6 +105,8 @@ cr.define('tracing', function() { tsRound(slice.start) + ' ms\n'; text += leftAlign('Duration', c0Width) + ': ' + tsRound(slice.duration) + ' ms\n'; + text += leftAlign('Duration (U)', c0Width) + ': ' + + tsRound(slice.durationInUserTime) + ' ms\n'; var n = 0; for (var argName in slice.args) { |