summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources
diff options
context:
space:
mode:
authornduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-02 07:49:35 +0000
committernduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-02 07:49:35 +0000
commit8253bdb7d8201ba565f2951e81a6f4184c39ba09 (patch)
tree147c64e044745546c67f7b2631aa740c1fd87da5 /chrome/browser/resources
parent2a6dd1de80c4243de9499c86d9b6040c751b014e (diff)
downloadchromium_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.js12
-rw-r--r--chrome/browser/resources/tracing/timeline_model_test.html17
-rw-r--r--chrome/browser/resources/tracing/timeline_view.js4
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) {