Title: [208348] trunk/Source/WebInspectorUI
- Revision
- 208348
- Author
- [email protected]
- Date
- 2016-11-03 14:20:12 -0700 (Thu, 03 Nov 2016)
Log Message
Web Inspector: Stack overflow when searching a timeline recording for JS function names
https://bugs.webkit.org/show_bug.cgi?id=161784
<rdar://problem/28219498>
Reviewed by Timothy Hatcher.
_populate method of ProfileNodeDataGridNode and ProfileDataGridNode traverses
all children of a given node. makeVisible function of DataGrid#_applyFiltersToNode
traverses all its parents to expand them. This creates an infinite recursion.
Remove "populate" event before appending child nodes to prevent it.
* UserInterface/Views/ProfileDataGridNode.js:
(WebInspector.ProfileDataGridNode.prototype._populate):
(WebInspector.ProfileDataGridNode):
* UserInterface/Views/ProfileNodeDataGridNode.js:
(WebInspector.ProfileNodeDataGridNode.prototype._populate):
(WebInspector.ProfileNodeDataGridNode):
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (208347 => 208348)
--- trunk/Source/WebInspectorUI/ChangeLog 2016-11-03 21:07:51 UTC (rev 208347)
+++ trunk/Source/WebInspectorUI/ChangeLog 2016-11-03 21:20:12 UTC (rev 208348)
@@ -1,3 +1,23 @@
+2016-11-03 Nikita Vasilyev <[email protected]>
+
+ Web Inspector: Stack overflow when searching a timeline recording for JS function names
+ https://bugs.webkit.org/show_bug.cgi?id=161784
+ <rdar://problem/28219498>
+
+ Reviewed by Timothy Hatcher.
+
+ _populate method of ProfileNodeDataGridNode and ProfileDataGridNode traverses
+ all children of a given node. makeVisible function of DataGrid#_applyFiltersToNode
+ traverses all its parents to expand them. This creates an infinite recursion.
+ Remove "populate" event before appending child nodes to prevent it.
+
+ * UserInterface/Views/ProfileDataGridNode.js:
+ (WebInspector.ProfileDataGridNode.prototype._populate):
+ (WebInspector.ProfileDataGridNode):
+ * UserInterface/Views/ProfileNodeDataGridNode.js:
+ (WebInspector.ProfileNodeDataGridNode.prototype._populate):
+ (WebInspector.ProfileNodeDataGridNode):
+
2016-11-03 Devin Rousso <[email protected]>
Web Inspector: Modify FolderTreeElement to have a Collection as a its represented object
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js (208347 => 208348)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js 2016-11-03 21:07:51 UTC (rev 208347)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js 2016-11-03 21:20:12 UTC (rev 208348)
@@ -255,6 +255,8 @@
if (!this.shouldRefreshChildren)
return;
+ this.removeEventListener("populate", this._populate, this);
+
this._node.forEachChild((child) => {
if (!this._childrenToChargeToSelf.has(child)) {
if (child.hasStackTraceInTimeRange(this._tree.startTime, this._tree.endTime))
@@ -263,7 +265,5 @@
});
this.sort();
-
- this.removeEventListener("populate", this._populate, this);
}
};
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ProfileNodeDataGridNode.js (208347 => 208348)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ProfileNodeDataGridNode.js 2016-11-03 21:07:51 UTC (rev 208347)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ProfileNodeDataGridNode.js 2016-11-03 21:20:12 UTC (rev 208348)
@@ -182,11 +182,10 @@
if (!this.shouldRefreshChildren)
return;
+ this.removeEventListener("populate", this._populate, this);
this.removeChildren();
for (let node of this._profileNode.childNodes)
this.appendChild(new WebInspector.ProfileNodeDataGridNode(node, this.baseStartTime, this.rangeStartTime, this.rangeEndTime));
-
- this.removeEventListener("populate", this._populate, this);
}
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes