Bug 157934 - Web Inspector: Right-clicking in Snapshot's DataGrid throws an exception
Summary: Web Inspector: Right-clicking in Snapshot's DataGrid throws an exception
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Matt Baker
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2016-05-19 16:44 PDT by Nikita Vasilyev
Modified: 2016-05-30 09:55 PDT (History)
8 users (show)

See Also:


Attachments
[Animated GIF] Bug (455.33 KB, image/gif)
2016-05-19 16:44 PDT, Nikita Vasilyev
no flags Details
[Patch] Proposed Fix (1.78 KB, patch)
2016-05-29 13:42 PDT, Matt Baker
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nikita Vasilyev 2016-05-19 16:44:01 PDT
Created attachment 279449 [details]
[Animated GIF] Bug

[Error] TypeError: null is not an object (evaluating 'cell.classList')
	isEventWithinDisclosureTriangle (DataGrid.js:2465)
	_clickInDataTable (DataGrid.js:1593)
	_clickInDataTable
Comment 1 Radar WebKit Bug Importer 2016-05-19 16:44:48 PDT
<rdar://problem/26380910>
Comment 2 Brian Burg 2016-05-29 08:14:22 PDT
I wasn't able to reproduce this.

In the future, please write down reproduction steps in addition to adding animated gifs. Often, the GIFs are not conclusive or do not show the user inputs or input timing requirements.

If you file such bugs using the built-in Uncaught Exception reporter, places for these details will already exist in the bug template.
Comment 3 Matt Baker 2016-05-29 12:30:36 PDT
* STEPS TO REPRODUCE:
1. Start and stop a recording. Two snapshots are created.
2. Select one of the snapshots.
3. In the Class Name column, right-click any disclosure triangle.
  => TypeError:​ null is not an object (evaluating 'cell.classList')​ (at DataGrid.js:​2469:​18)​
Comment 4 Matt Baker 2016-05-29 12:32:47 PDT
Looks like this affects all of our data grids.
Comment 5 Matt Baker 2016-05-29 12:37:42 PDT
Revised:

* STEPS TO REPRODUCE:
1. Start and stop a Timeline recording.
2. Select any timeline with nested grid rows. 
3. Right-click a disclosure triangle. Doesn't matter if the row is selected or not.
4. Dismiss popup with ESCAPE.
  => Nothing happens
5. Dismiss popup by clicking a cell in the same row, but a different column.
  => TypeError:​ null is not an object (evaluating 'cell.classList')​ (at DataGrid.js:​2469:​18)​
Comment 6 Matt Baker 2016-05-29 12:44:40 PDT
> 3. Right-click a disclosure triangle. Doesn't matter if the row is selected
> or not.

Also the row has to have been expanded. Doesn't matter if it is expanded when dismissing the popup, as long as it was expanded at least once in the past.
Comment 7 Matt Baker 2016-05-29 12:49:42 PDT
Fix coming.
Comment 8 Matt Baker 2016-05-29 13:42:35 PDT
Created attachment 280065 [details]
[Patch] Proposed Fix
Comment 9 Brian Burg 2016-05-30 09:33:42 PDT
(In reply to comment #5)
> Revised:
> 
> * STEPS TO REPRODUCE:
> 1. Start and stop a Timeline recording.
> 2. Select any timeline with nested grid rows. 
> 3. Right-click a disclosure triangle. Doesn't matter if the row is selected
> or not.
> 4. Dismiss popup with ESCAPE.
>   => Nothing happens
> 5. Dismiss popup by clicking a cell in the same row, but a different column.
>   => TypeError:​ null is not an object (evaluating 'cell.classList')​ (at
> DataGrid.js:​2469:​18)​

This is great.
Comment 10 Brian Burg 2016-05-30 09:34:06 PDT
Comment on attachment 280065 [details]
[Patch] Proposed Fix

r=me
Comment 11 WebKit Commit Bot 2016-05-30 09:55:08 PDT
Comment on attachment 280065 [details]
[Patch] Proposed Fix

Clearing flags on attachment: 280065

Committed r201499: <http://trac.webkit.org/changeset/201499>
Comment 12 WebKit Commit Bot 2016-05-30 09:55:12 PDT
All reviewed patches have been landed.  Closing bug.