To reproduce: 1. In a build with the fix for bug 39295, go to <https://bugs.webkit.org/attachment.cgi?id=56382> (which reloads itself every 5 seconds) 2. Put the computer to sleep 3. Wake the computer up The WebView doesn't repaint until the page reloads itself.
The problem is that calling Direct3DCreate9() shortly after waking from sleep returns an IDirect3D9 for which IDirect3D9::CreateDevice will always fail. We need to detect this and throw away the bad IDirect3D9 and ask for a new one.
<rdar://problem/7997431>
Created attachment 56386 [details] Make WKCACFLayerRenderer robust against temporary failure of Direct3DCreate9 and IDirect3D9::CreateDevice
Comment on attachment 56386 [details] Make WKCACFLayerRenderer robust against temporary failure of Direct3DCreate9 and IDirect3D9::CreateDevice > + so a new (and hopefully on-bad) one will be allocated later. Typo, "on-bad"
(In reply to comment #4) > (From update of attachment 56386 [details]) > > + so a new (and hopefully on-bad) one will be allocated later. > > Typo, "on-bad" Whoops, that was supposed to be "non-bad". Will fix. Thanks for the review!
Committed r59683: <http://trac.webkit.org/changeset/59683>