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)
Created attachment 148327 [details] Patch
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?
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.
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?
(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?
(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 ?
(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.