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

  Changed paths:
    A 
LayoutTests/inspector/worker/worker-terminate-nested-subworker-expected.txt
    A LayoutTests/inspector/worker/worker-terminate-nested-subworker.html
    M Source/WebInspectorUI/UserInterface/Controllers/WorkerManager.js

  Log Message:
  -----------
  Web Inspector: WorkerManager.workerTerminated leaks nested subworkers' 
Target/map entries
https://bugs.webkit.org/show_bug.cgi?id=319771
rdar://182629416

Reviewed by Devin Rousso.

WorkerManager.workerTerminated() only removed the direct subworkers of a
terminated Worker, so grandchild subworkers (a subworker's own subworker)
were never removed from the WorkerTarget map or Multimap, and their
WI.WorkerTarget objects were never passed to WI.targetManager.removeTarget().
Make cleanup recursive so terminating any Worker also tears down its full
subworker tree, and guard against re-processing a worker that a
previously-terminated ancestor already cleaned up.

Test: inspector/worker/worker-terminate-nested-subworker.html

* LayoutTests/inspector/worker/worker-terminate-nested-subworker-expected.txt: 
Added.
* LayoutTests/inspector/worker/worker-terminate-nested-subworker.html: Added.
* Source/WebInspectorUI/UserInterface/Controllers/WorkerManager.js:
(WI.WorkerManager.prototype.workerTerminated):
(WI.WorkerManager.prototype._cleanUpWorker): Added.
(WI.WorkerManager):

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



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

Reply via email to