Even though GetUpdateRect and GetUpdateRgn for a child WebView of a Layered Window report that the region that should be painted as non-empty in WebView::paint before the call to BeginPaint (http://msdn.microsoft.com/en-us/library/aa922023.aspx), BeginPaint still fills the rcPaint field of the PAINTSTRUCT with an empty RECT. This means http://trac.webkit.org/changeset/58900 causes WebView::paint to end the paint early, before painting the contents of child WebView of a Layered Window. A fix would be to check if the m_backingStoreBitmap is null after the call to ensureBackingStore (which will notice that the WebView isn't zero-sized in the case of the child WebView of a Layered Window that isn't zero-sized) instead of checking if the rcPaint rect is empty in order to determine whether to continue on with the paint or not.
Created attachment 64724 [details] Check if m_backingStoreBitmap is null instead of whether rcPaint is empty
Comment on attachment 64724 [details] Check if m_backingStoreBitmap is null instead of whether rcPaint is empty > + bool backingStoreCompletelyDirty = ensureBackingStore(); > + if (!m_backingStoreBitmap) { > + EndPaint(m_viewWindow, &ps); > return; > } We should only call EndPaint if a dc was passed to this function. Otherwise we won't have called BeginPaint. r=me
(In reply to comment #2) > (From update of attachment 64724 [details]) > > + bool backingStoreCompletelyDirty = ensureBackingStore(); > > + if (!m_backingStoreBitmap) { > > + EndPaint(m_viewWindow, &ps); > > return; > > } > > We should only call EndPaint if a dc was passed to this function. Otherwise we won't have called BeginPaint. Added in the check for whether there was a dc passed in. > > r=me Thanks!
Comment on attachment 64724 [details] Check if m_backingStoreBitmap is null instead of whether rcPaint is empty Committed in r65618 http://trac.webkit.org/changeset/65618