[Webkit-unassigned] [Bug 51262] WebPageProxy should delete its backing store after not painting for a while

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Feb 11 16:39:22 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=51262





--- Comment #31 from Adam Roben (aroben) <aroben at apple.com>  2011-02-11 16:39:22 PST ---
(In reply to comment #27)
> > Another option -- a little simpler but possibly less clear -- is for the message sender to keep an internal flag that says "I just sent an InvalidateEverything message, so from now on, ignore all update messages until I see an update message that covers the whole drawing region, at which point I will unset this flag."
> 
> Basically, I'm saying that any update that covers the whole drawing region can act as an implicit DidDisplayNow.

I now think we may need to follow this approach. Consider the following scenario:

1) DrawingAreaProxyImpl throws away its backing store
2) DrawingAreaImpl finds out, invalidates everything
3) Some part of the web page changes, so DrawingAreaImpl sets its display timer
4) DrawingAreaImpl's display timer fires, so it displays and sends an Update for the entire view back to the UI process
5) WKView asks DrawingAreaProxyImpl to paint into the invalidated region
6) DrawingAreaProxyImpl sees it has no backing store (because it hasn't received the Update message yet), so sends a DisplayNow message and waits for a DidDisplayNow response
7) DrawingAreaImpl receives DisplayNow, but since it just displayed it has no dirty region to paint

I.e., the display we want has already happened!

I guess another option is to always send DidDisplayNow instead of Update for the first display after an InvalidateEverything. That would fix the bug, too.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list