[Webkit-unassigned] [Bug 13120] Plug-ins that draw through the QuickDraw interface may crash by hanging onto old GWorlds.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Mar 24 15:17:53 PDT 2007


------- Comment #7 from mark.a at apple.com  2007-03-24 15:17 PDT -------
Created an attachment (id=13800)
 --> (http://bugs.webkit.org/attachment.cgi?id=13800&action=view)
Proposed fix.

The problem is that in the QuickDraw drawing model, plugins may draw to their
port during any operation.  So for example, when a plugin receives NPP_Write,
it may choose to draw immediately.

The previous bitmap GWorld implementation did not account for this; it setup a
temporary GWorld before passing off to NPP_HandleEvent, then tore down the
temporary GWorld when control was returned to WebKit.

The solution is to keep the temporary GWorld around until the next temporary
GWorld is created.  In this way the plugin always has a valid GWorld to which
it can draw.

Unfortunately, when drawing to a bitmap GWorld in this way, there does seem to
be an issue in detecting when the bitmap should be painted back on the host
application's canvas.  I have investigated several avenues to fix this but
haven't come up with a good solution.  That problem is not fixed by this patch
(which I hope will be fine, since it wasn't covered by this bug in the first

Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

More information about the webkit-unassigned mailing list