Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 752640dc5c833ce7e17e40d2b5e1912bc9b7c97e
      
https://github.com/WebKit/WebKit/commit/752640dc5c833ce7e17e40d2b5e1912bc9b7c97e
  Author: Ahmad Saleem <[email protected]>
  Date:   2026-07-19 (Sun, 19 Jul 2026)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js
    M Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js

  Log Message:
  -----------
  [Web Inspector] TimelineOverview leaks TimelineRecording listeners; 
TimelineOverview.prototype.closed is never called
https://bugs.webkit.org/show_bug.cgi?id=319774
rdar://182631730

Reviewed by Devin Rousso.

TimelineOverview's constructor registers four listeners on its
TimelineRecording (InstrumentAdded, InstrumentRemoved, MarkerAdded,
Reset) but its closed() method only removed two unrelated
WI.timelineManager listeners, leaking the recording listeners for
the overview's lifetime. Worse, closed() itself was dead code:
TimelineOverview extends WI.View, not WI.ContentView, and is added
to TimelineRecordingContentView as a plain subview, so nothing ever
called TimelineOverview.prototype.closed().

* UserInterface/Views/TimelineOverview.js:
(WI.TimelineOverview.prototype.closed): Remove the four
TimelineRecording listeners added in the constructor. Drop the
super.closed() call, since WI.View has no closed() method to call.
* UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView.prototype.closed): Call
this._timelineOverview.closed() so the cleanup actually runs,
mirroring the existing this._dataGrid.closed() pattern used
elsewhere in this file.

Canonical link: https://commits.webkit.org/317514@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to