Bug 224500

Summary: Have HTMLCanvasElement clear its buffer as soon as its script execution context goes away
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: CanvasAssignee: Chris Dumez <cdumez>
Status: REOPENED    
Severity: Normal CC: changseok, dino, esprehn+autocc, ews-watchlist, ggaren, gyuyoung.kim, sabouhallawa, sam, simon.fraser, thorton, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
ews-feeder: commit-queue-
Patch ews-feeder: commit-queue-

Chris Dumez
Reported 2021-04-13 12:20:06 PDT
Have HTMLCanvasElement clear its buffer as soon as its script execution context goes away. We used to do this only in the destructor, which would only get called after GC of the JS wrapper, which may delay release of the ImageBuffer and its memory.
Attachments
Patch (2.12 KB, patch)
2021-04-13 12:21 PDT, Chris Dumez
ews-feeder: commit-queue-
Patch (2.04 KB, patch)
2021-04-13 13:10 PDT, Chris Dumez
ews-feeder: commit-queue-
Chris Dumez
Comment 1 2021-04-13 12:21:55 PDT
Chris Dumez
Comment 2 2021-04-13 13:10:01 PDT
Chris Dumez
Comment 3 2021-04-13 15:35:31 PDT
This is web-observable.
Tim Horton
Comment 4 2021-08-05 12:05:36 PDT
Comment on attachment 425906 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=425906&action=review Additional motivation: https://bugs.webkit.org/show_bug.cgi?id=228747 > Source/WebCore/html/HTMLCanvasElement.cpp:1028 > + setImageBuffer(nullptr); I'm guessing we'd need to slurp some more code from the destructor to fix the assertions.
Tim Horton
Comment 5 2021-08-05 13:02:07 PDT
Reopening because Sam and Chris and I all think we should try this again when we have lots of bake time :) (Also, we already do it for WebGL)
Radar WebKit Bug Importer
Comment 6 2022-04-11 07:03:03 PDT
Note You need to log in before you can comment on or make changes to this bug.