Created attachment 427732 [details]
This member was introduced in r194708 and its use was removed in r257958. Its original goal was to remove save/restore pair from DisplayList if no drawing happens in between. For example a sequence like this can be completed removed from the DisplayList since its replaying back has no effect:
But the problem was in the Canvas case where calling the save() and restore() may happen in different frames. Recording a restore item may try to remove the last save item although the matching save item was pushed to the context of the ImageBuffer many frames earlier.
Thanks for the background. I did do a `grep -G wasUsedForDrawing` to check, but that didn't bring up the r257958 commit (since that removed a use of the `stateUsedForDrawing` local variable).
(In reply to Cameron McCormack (:heycam) from comment #3)
> Thanks for the background. I did do a `grep -G wasUsedForDrawing`
*git grep -G wasUsedForDrawing
Committed r277050 (237360@main): <https://commits.webkit.org/237360@main>
All reviewed patches have been landed. Closing bug and clearing flags on attachment 427732 [details].