Changeset 224200 in webkit
- Timestamp:
- Oct 30, 2017 1:53:02 PM (6 years ago)
- Location:
- trunk/Source/WebInspectorUI
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebInspectorUI/ChangeLog
r224175 r224200 1 2017-10-30 Devin Rousso <webkit@devinrousso.com> 2 3 Web Inspector: Canvas Tab: no path components shown in recording content view after selecting a recording via View Recordings... dropdown 4 https://bugs.webkit.org/show_bug.cgi?id=178807 5 <rdar://problem/35176463> 6 7 Reviewed by Brian Burg. 8 9 When the first Recording is taken of a canvas, it is immediately added as a child. When the 10 CanvasTreeElement is `attached`, however, it will attempt to regenerate its children if 11 necessary. This is especially true for canvases with ShaderPrograms, as they are added with 12 `addRepresentedObjectToNewChildQueue`, meaning that the child TreeElements aren't actually 13 added until the next tick, preventing the ContentBrowser logic from generating path 14 components correctly. 15 16 This patch switches to using `addChildForRepresentedObject` so that there is no delay when 17 adding children, and also ensures that any existing recordings are also added on regeneration. 18 19 * UserInterface/Views/CanvasTabContentView.js: 20 (WI.CanvasTabContentView.prototype._recordingAdded): 21 Move logic for adding TreeElements for new Recordings to CanvasTreeElement. 22 23 * UserInterface/Views/CanvasTreeElement.js: 24 (WI.CanvasTreeElement.createRecordingTreeElement): 25 (WI.CanvasTreeElement): 26 (WI.CanvasTreeElement.prototype.onattach): 27 (WI.CanvasTreeElement.prototype.ondetach): 28 (WI.CanvasTreeElement.prototype.onpopulate): 29 (WI.CanvasTreeElement.prototype._handleItemAdded): 30 (WI.CanvasTreeElement.prototype._handleItemRemoved): 31 (WI.CanvasTreeElement.prototype._shaderProgramAdded): Deleted. 32 (WI.CanvasTreeElement.prototype._shaderProgramRemoved): Deleted. 33 1 34 2017-10-30 Fujii Hironori <Hironori.Fujii@sony.com> 2 35 -
trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js
r224081 r224200 285 285 _recordingAdded(recording, options = {}) 286 286 { 287 const subtitle = null; 288 let recordingTreeElement = new WI.GeneralTreeElement(["recording"], recording.displayName, subtitle, recording); 289 290 if (recording.source) { 291 let canvasTreeElement = this._canvasTreeOutline.findTreeElement(recording.source); 292 console.assert(canvasTreeElement, "Missing tree element for canvas.", recording.source); 293 if (canvasTreeElement) 294 canvasTreeElement.appendChild(recordingTreeElement); 295 } else 287 if (!recording.source) { 288 const subtitle = null; 289 let recordingTreeElement = new WI.GeneralTreeElement(["recording"], recording.displayName, subtitle, recording); 296 290 this._canvasTreeOutline.appendChild(recordingTreeElement); 291 } 297 292 298 293 if (!options.suppressShowRecording) { -
trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTreeElement.js
r220294 r224200 34 34 35 35 this.registerFolderizeSettings("shader-programs", WI.UIString("Shader Programs"), this.representedObject.shaderProgramCollection, WI.ShaderProgramTreeElement); 36 37 function createRecordingTreeElement(recording) { 38 return new WI.GeneralTreeElement(["recording"], recording.displayName, subtitle, recording); 39 } 40 this.registerFolderizeSettings("recordings", WI.UIString("Recordings"), this.representedObject.recordingCollection, createRecordingTreeElement); 36 41 } 37 42 … … 42 47 super.onattach(); 43 48 44 this.representedObject.shaderProgramCollection.addEventListener(WI.Collection.Event.ItemAdded, this._shaderProgramAdded, this); 45 this.representedObject.shaderProgramCollection.addEventListener(WI.Collection.Event.ItemRemoved, this._shaderProgramRemoved, this); 49 this.representedObject.shaderProgramCollection.addEventListener(WI.Collection.Event.ItemAdded, this._handleItemAdded, this); 50 this.representedObject.shaderProgramCollection.addEventListener(WI.Collection.Event.ItemRemoved, this._handleItemRemoved, this); 51 52 this.representedObject.recordingCollection.addEventListener(WI.Collection.Event.ItemAdded, this._handleItemAdded, this); 53 this.representedObject.recordingCollection.addEventListener(WI.Collection.Event.ItemRemoved, this._handleItemRemoved, this); 46 54 47 55 this.element.addEventListener("mouseover", this._handleMouseOver.bind(this)); … … 53 61 ondetach() 54 62 { 55 this.representedObject.shaderProgramCollection.removeEventListener(WI.Collection.Event.ItemAdded, this._shaderProgramAdded, this); 56 this.representedObject.shaderProgramCollection.removeEventListener(WI.Collection.Event.ItemRemoved, this._shaderProgramRemoved, this); 63 this.representedObject.shaderProgramCollection.removeEventListener(WI.Collection.Event.ItemAdded, this._handleItemAdded, this); 64 this.representedObject.shaderProgramCollection.removeEventListener(WI.Collection.Event.ItemRemoved, this._handleItemRemoved, this); 65 66 this.representedObject.recordingCollection.removeEventListener(WI.Collection.Event.ItemAdded, this._handleItemAdded, this); 67 this.representedObject.recordingCollection.removeEventListener(WI.Collection.Event.ItemRemoved, this._handleItemRemoved, this); 57 68 58 69 super.ondetach(); … … 72 83 for (let program of this.representedObject.shaderProgramCollection.items) 73 84 this.addChildForRepresentedObject(program); 85 86 for (let recording of this.representedObject.recordingCollection.items) 87 this.addChildForRepresentedObject(recording); 74 88 } 75 89 … … 94 108 // Private 95 109 96 _ shaderProgramAdded(event)110 _handleItemAdded(event) 97 111 { 98 this.add RepresentedObjectToNewChildQueue(event.data.item);112 this.addChildForRepresentedObject(event.data.item); 99 113 } 100 114 101 _ shaderProgramRemoved(event)115 _handleItemRemoved(event) 102 116 { 103 117 this.removeChildForRepresentedObject(event.data.item);
Note: See TracChangeset
for help on using the changeset viewer.