Bug 99122

Summary: LocalCurrentGraphicsContext will never restore the current context to null
Product: WebKit Reporter: Tim Horton <thorton>
Component: Layout and RenderingAssignee: Tim Horton <thorton>
Status: RESOLVED FIXED    
Severity: Normal CC: andersca, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch simon.fraser: review+

Tim Horton
Reported 2012-10-11 17:40:16 PDT
In a WebKit2 world, at rest, we are in a state where NSGraphicsContext is null (because we have no NSWindow, NSViews, etc.) LocalCurrentGraphicsContext is supposed to make temporary changes to the current Cocoa graphics context. However! It will not restore the current context to null, so you can end up with an unexpected context as the "at rest" context.
Attachments
patch (3.28 KB, patch)
2012-10-11 18:21 PDT, Tim Horton
simon.fraser: review+
Tim Horton
Comment 1 2012-10-11 18:21:44 PDT
Simon Fraser (smfr)
Comment 2 2012-10-11 18:22:59 PDT
Comment on attachment 168327 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=168327&action=review > Source/WebCore/ChangeLog:12 > + LocalCurrentGraphicsContext is meant to cause temporary changes to > + NSGraphicsContext's currentContext. However, if it is entered when > + currentContext is null, it will not restore to null, as a null > + m_savedNSGraphicsContext was being used to indicate that the current and > + passed-in graphics contexts were equal (and thus no save/restore was required). You should also mentiong flipping the order of the restores.
Tim Horton
Comment 3 2012-10-11 18:29:48 PDT
Note You need to log in before you can comment on or make changes to this bug.