RESOLVED INVALID89455
Web Inspector: exception in console when showing popover for a big array
https://bugs.webkit.org/show_bug.cgi?id=89455
Summary Web Inspector: exception in console when showing popover for a big array
Yury Semikhatsky
Reported 2012-06-19 03:32:48 PDT
Created attachment 148303 [details] Example script Steps to reproduce: 1. Open attached page. 2. Take a heap snapshot. 3. Find Int32Array in the heap snapshot summary view. 4. Hover over the element until object popover appears. 5. Make the popover disappear. Result: Exception in the console: [5258:5258:1639589149962:ERROR:CONSOLE(656)] "Uncaught TypeError: Cannot call method 'getOwnProperties' of null", source: chrome-devtools://devtools/ObjectPropertiesSection.js (656)
Attachments
Example script (65 bytes, text/html)
2012-06-19 03:32 PDT, Yury Semikhatsky
no flags
Patch (3.62 KB, patch)
2012-06-19 07:12 PDT, Yury Semikhatsky
pfeldman: review-
Yury Semikhatsky
Comment 1 2012-06-19 07:12:48 PDT
Pavel Feldman
Comment 2 2012-06-19 07:23:55 PDT
Comment on attachment 148327 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=148327&action=review Adding a test would be great. > Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:614 > + arrayFragment.getAllProperties(processProperties.bind(this)); When does this happen? The method above should either return proper value or not be called. Could you provide a test case?
Yury Semikhatsky
Comment 3 2012-06-19 07:45:10 PDT
Comment on attachment 148327 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=148327&action=review >> Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:614 >> + arrayFragment.getAllProperties(processProperties.bind(this)); > > When does this happen? The method above should either return proper value or not be called. Could you provide a test case? It happens on very big arrays(100 000 000 elements, see attached test case) for which the request takes long enough time for the user to close the popover.
Pavel Feldman
Comment 4 2012-06-19 08:42:19 PDT
Comment on attachment 148327 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=148327&action=review >>> Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:614 >>> + arrayFragment.getAllProperties(processProperties.bind(this)); >> >> When does this happen? The method above should either return proper value or not be called. Could you provide a test case? > > It happens on very big arrays(100 000 000 elements, see attached test case) for which the request takes long enough time for the user to close the popover. Should we test whether tree outline element is still attached here instead?
Yury Semikhatsky
Comment 5 2012-06-19 09:27:14 PDT
(In reply to comment #4) > (From update of attachment 148327 [details]) > > It happens on very big arrays(100 000 000 elements, see attached test case) for which the request takes long enough time for the user to close the popover. > > Should we test whether tree outline element is still attached here instead? How can we do this given that we don't know its owner?
Pavel Feldman
Comment 6 2012-06-19 09:29:17 PDT
(In reply to comment #5) > (In reply to comment #4) > > (From update of attachment 148327 [details] [details]) > > > It happens on very big arrays(100 000 000 elements, see attached test case) for which the request takes long enough time for the user to close the popover. > > > > Should we test whether tree outline element is still attached here instead? > > How can we do this given that we don't know its owner? treeElement ?
Yury Semikhatsky
Comment 7 2012-06-19 23:34:18 PDT
(In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #4) > > > (From update of attachment 148327 [details] [details] [details]) > > > > It happens on very big arrays(100 000 000 elements, see attached test case) for which the request takes long enough time for the user to close the popover. > > > > > > Should we test whether tree outline element is still attached here instead? > > > > How can we do this given that we don't know its owner? > > treeElement ? When popover closes its tree elements stay in the TreeOutline. Do you suggest we should check treeElement.element's 'display' property or what? Could you elaborate on this. Neither WebInspector.Section nor TreeOutline are views so we cannot use View.isShowing for this check either.
Note You need to log in before you can comment on or make changes to this bug.