Skip to content

Commit 3526633

Browse files
tmathmeyerdevtools-frontend-scoped@luci-project-accounts.iam.gserviceaccount.com
authored andcommitted
Fix 'Undefined' in Timestamp column for media
The timestamps have been being rendered as 'Undefined' for a while now. Apparently there was a drive-by change to this string that just broke things and there wasn't a test to catch it. Bug: none Change-Id: I725c06b3ebc1d1fd85d03cd24071b419c431861f Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7804752 Auto-Submit: Ted (Chromium) Meyer <tmathmeyer@chromium.org> Reviewed-by: Mathias Bynens <mathias@chromium.org> Commit-Queue: Jack Franklin <jacktfranklin@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
1 parent 3a4877a commit 3526633

2 files changed

Lines changed: 67 additions & 1 deletion

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Copyright 2026 The Chromium Authors
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import {assert} from 'chai';
6+
7+
import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
8+
9+
import * as Media from './media.js';
10+
11+
describeWithEnvironment('EventDisplayTable', () => {
12+
it('correctly displays the timestamp for events', () => {
13+
const eventDisplayTable = new Media.PlayerEventsView.PlayerEventsView();
14+
const event1 = {
15+
timestamp: 1000,
16+
value: JSON.stringify({event: 'testEvent', data: 'data1'}),
17+
} as Media.MediaModel.PlayerEvent;
18+
19+
eventDisplayTable.onEvent(event1);
20+
21+
const rootNode = (eventDisplayTable as unknown & {
22+
dataGrid: {
23+
rootNode: () => {
24+
children: Media.PlayerEventsView.EventNode[],
25+
},
26+
},
27+
}).dataGrid.rootNode();
28+
assert.lengthOf(rootNode.children, 1);
29+
30+
const firstNode = rootNode.children[0] as Media.PlayerEventsView.EventNode;
31+
32+
// Verify the data property is set correctly
33+
assert.strictEqual(firstNode.data['displayTimestamp'], '0.000');
34+
35+
// Verify the cell is created with the correct content for the 'displayTimestamp' column
36+
const cell = firstNode.createCell('displayTimestamp');
37+
assert.strictEqual(cell.textContent, '0.000');
38+
});
39+
40+
it('subtracts the first event time from subsequent events', () => {
41+
const eventDisplayTable = new Media.PlayerEventsView.PlayerEventsView();
42+
const event1 = {
43+
timestamp: 1000,
44+
value: JSON.stringify({event: 'testEvent', data: 'data1'}),
45+
} as Media.MediaModel.PlayerEvent;
46+
47+
const event2 = {
48+
timestamp: 1234.5678,
49+
value: JSON.stringify({event: 'testEvent2', data: 'data2'}),
50+
} as Media.MediaModel.PlayerEvent;
51+
52+
eventDisplayTable.onEvent(event1);
53+
eventDisplayTable.onEvent(event2);
54+
55+
const rootNode = (eventDisplayTable as unknown & {
56+
dataGrid: {
57+
rootNode: () => {
58+
children: Media.PlayerEventsView.EventNode[],
59+
},
60+
},
61+
}).dataGrid.rootNode();
62+
const secondNode = rootNode.children[1] as Media.PlayerEventsView.EventNode;
63+
64+
assert.strictEqual(secondNode.data['displayTimestamp'], '234.568');
65+
});
66+
});

front_end/panels/media/EventDisplayTable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export interface EventDisplayColumnConfig {
4242
}
4343

4444
export const enum MediaEventColumnKeys {
45-
TIMESTAMP = 'display-timestamp',
45+
TIMESTAMP = 'displayTimestamp',
4646
EVENT = 'event',
4747
VALUE = 'value',
4848
}

0 commit comments

Comments
 (0)