Bug 54141 - WKView draws at wrong size, performs badly if is resized while hidden (assertion fails in BackingStore::incorporateUpdate in Debug builds)
Summary: WKView draws at wrong size, performs badly if is resized while hidden (assert...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows XP
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar, PlatformOnly
Depends on:
Blocks: 53805 54142
  Show dependency treegraph
 
Reported: 2011-02-09 13:44 PST by Adam Roben (:aroben)
Modified: 2011-02-10 04:43 PST (History)
1 user (show)

See Also:


Attachments
Decode a null SharedMemory::Handle correctly on Windows (11.81 KB, patch)
2011-02-09 14:03 PST, Adam Roben (:aroben)
no flags Details | Formatted Diff | Diff
Decode a null SharedMemory::Handle correctly on Windows (11.81 KB, patch)
2011-02-09 14:06 PST, Adam Roben (:aroben)
no flags Details | Formatted Diff | Diff
Decode a null SharedMemory::Handle correctly on Windows (11.10 KB, patch)
2011-02-09 14:11 PST, Adam Roben (:aroben)
darin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Roben (:aroben) 2011-02-09 13:44:49 PST
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++
Comment 1 Adam Roben (:aroben) 2011-02-09 13:45:17 PST
<rdar://problem/8979195>
Comment 2 Adam Roben (:aroben) 2011-02-09 14:03:06 PST
Created attachment 81870 [details]
Decode a null SharedMemory::Handle correctly on Windows
Comment 3 Adam Roben (:aroben) 2011-02-09 14:06:21 PST
Created attachment 81871 [details]
Decode a null SharedMemory::Handle correctly on Windows
Comment 4 Adam Roben (:aroben) 2011-02-09 14:11:30 PST
Created attachment 81872 [details]
Decode a null SharedMemory::Handle correctly on Windows
Comment 5 Adam Roben (:aroben) 2011-02-10 04:43:01 PST
Committed r78198: <http://trac.webkit.org/changeset/78198>