If a WKView is resized while hidden, then shown again, it will repaint at whatever size it had before it was hidden, and will generally perform badly. In Debug builds, you'll hit an assertion in BackingStore::incorporateUpdate: ASSERT(m_size == updateInfo.viewSize); Here's the backtrace: > WebKit.dll!WebKit::BackingStore::incorporateUpdate(const WebKit::UpdateInfo & updateInfo={...}) Line 58 + 0x35 bytes C++ WebKit.dll!WebKit::DrawingAreaProxyImpl::incorporateUpdate(const WebKit::UpdateInfo & updateInfo={...}) Line 207 C++ WebKit.dll!WebKit::DrawingAreaProxyImpl::update(unsigned __int64 sequenceNumber=3, const WebKit::UpdateInfo & updateInfo={...}) Line 142 C++ WebKit.dll!CoreIPC::callMemberFunction<WebKit::DrawingAreaProxy,void (__thiscall WebKit::DrawingAreaProxy::*)(unsigned __int64,WebKit::UpdateInfo const &),unsigned __int64,WebKit::UpdateInfo>(const CoreIPC::Arguments2<unsigned __int64,WebKit::UpdateInfo> & args={...}, WebKit::DrawingAreaProxy * object=0x05389238, void (unsigned __int64, const WebKit::UpdateInfo &)* function=0x0065cab3) Line 25 + 0x19 bytes C++ WebKit.dll!CoreIPC::handleMessage<Messages::DrawingAreaProxy::Update,WebKit::DrawingAreaProxy,void (__thiscall WebKit::DrawingAreaProxy::*)(unsigned __int64,WebKit::UpdateInfo const &)>(CoreIPC::ArgumentDecoder * argumentDecoder=0x053fede8, WebKit::DrawingAreaProxy * object=0x05389238, void (unsigned __int64, const WebKit::UpdateInfo &)* function=0x0065cab3) Line 246 + 0x11 bytes C++ WebKit.dll!WebKit::DrawingAreaProxy::didReceiveDrawingAreaProxyMessage(CoreIPC::Connection * __formal=0x05392c98, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x053fede8) Line 41 + 0x12 bytes C++ WebKit.dll!WebKit::WebPageProxy::didReceiveMessage(CoreIPC::Connection * connection=0x05392c98, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x053fede8) Line 1169 C++ WebKit.dll!WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection * connection=0x05392c98, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x053fede8) Line 245 C++ WebKit.dll!CoreIPC::Connection::dispatchMessages() Line 450 + 0x31 bytes C++ WebKit.dll!MemberFunctionWorkItem0<CoreIPC::Connection>::execute() Line 76 + 0x10 bytes C++ WebKit.dll!RunLoop::performWork() Line 63 + 0x1a bytes C++ WebKit.dll!RunLoop::wndProc(HWND__ * hWnd=0x00140564, unsigned int message=1025, unsigned int wParam=85650232, long lParam=0) Line 57 C++ WebKit.dll!RunLoop::RunLoopWndProc(HWND__ * hWnd=0x00140564, unsigned int message=1025, unsigned int wParam=85650232, long lParam=0) Line 39 + 0x18 bytes C++
<rdar://problem/8979195>
Created attachment 81870 [details] Decode a null SharedMemory::Handle correctly on Windows
Created attachment 81871 [details] Decode a null SharedMemory::Handle correctly on Windows
Created attachment 81872 [details] Decode a null SharedMemory::Handle correctly on Windows
Committed r78198: <http://trac.webkit.org/changeset/78198>