[Webkit-unassigned] [Bug 31086] Carbon WebKit plugins wreak havoc in Firefox

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 3 15:21:20 PST 2009


https://bugs.webkit.org/show_bug.cgi?id=31086





--- Comment #2 from Steven Michaud <smichaud at pobox.com>  2009-11-03 15:21:20 PDT ---
> I’m not aware of any application, Safari or otherwise, that
> “disables” PoolCleaner, nor what that would even mean.

See particularly the comment in my patch
(https://bugzilla.mozilla.org/attachment.cgi?id=409942) and
https://bugzilla.mozilla.org/show_bug.cgi?id=509130#c42.

> A summary of what you think the issue is would be helpful.

I'll quote from my patch:

// The source-code for WebInitForCarbon() is in the WebKit source tree's
// WebKit/mac/Carbon/CarbonUtils.mm file.  Among other things it installs
// an idle timer on the main event loop, whose target is the PoolCleaner()
// function (also in CarbonUtils.mm).  WebInitForCarbon() allocates an
// NSAutoreleasePool object which it stores in the global sPool variable.
// PoolCleaner() periodically releases/drains sPool and creates another
// NSAutoreleasePool object to take its place.  The intention is to ensure
// an autorelease pool is in place for whatever Objective-C code may be
// called by WebKit code, and that it periodically gets "cleaned".  But
// PoolCleaner()'s periodic cleaning has a very bad effect on us -- it
// causes objects to be deleted prematurely, so that attempts to access them
// cause crashes.  This is probably because, when WebInitForCarbon() is
// called from a plugin in a Cocoa browser, one or more autorelease pools
// are already in place.  So, other things being equal, PoolCleaner() should
// have a similar effect on any Cocoa app that hosts a Carbon WebKit plugin.

It might be best to continue this discussion at
https://bugzilla.mozilla.org/show_bug.cgi?id=509130.  That's where all
the context is.

I just opened this bug to have the issue on record in the WebKit bug
database.  And also (of course) in the hope that you guys might find a
way to fix it :-)

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


More information about the webkit-unassigned mailing list