xxfxxf / chromiumembedded

Automatically exported from code.google.com/p/chromiumembedded
0 stars 0 forks source link

ASSERT(m_verifier.isSafeToUse()) on shutdown when using multi-threaded message loop mode #339

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run cefclient using CefSettings.multi_threaded_message_loop = true.
2. Exit the application.

What is the expected output? What do you see instead?
The application should exit cleanly. Instead, it triggers an 
ASSERT(m_verifier.isSafeToUse()) in RefCountedBase::derefBase().

This problem is caused by the use of static RefPtr in 
FontPlatformData::hashTableDeletedFontValue(). On Windows the static RefPtr 
destructor will not be called until doexit() is executed on the main 
application thread. When using multi-threaded message loop mode the main 
application thread is not the same as the WebKit thread. This problem was 
exposed by WebKit revision 92254 which adds asserts to RefCounted to make sure 
ref/deref happens on the right thread.

I've started a thread on this topic here:
http://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/
d454c0224a5a762f

Original issue reported on code.google.com by magreenb...@gmail.com on 10 Sep 2011 at 8:33

GoogleCodeExporter commented 9 years ago
This happens with CEF revision 284 and Chromium revision 100584.

Original comment by magreenb...@gmail.com on 10 Sep 2011 at 8:34

GoogleCodeExporter commented 9 years ago
WebKit bug with proposed fix: https://bugs.webkit.org/show_bug.cgi?id=67906

Original comment by magreenb...@gmail.com on 11 Sep 2011 at 9:33

GoogleCodeExporter commented 9 years ago
Committed as WebKit revision 95576. Will be included in the next Chromium 
update.

Original comment by magreenb...@gmail.com on 21 Sep 2011 at 1:55

GoogleCodeExporter commented 9 years ago
Fixed in revision 292.

Original comment by magreenb...@gmail.com on 23 Sep 2011 at 12:17