Avi/Adam, you got nominated on IRC as relevant people for this. In http://codereview.chromium.org/66013 I'm changing the way some of the RenderWidgetHost[View] functions work slightly. I need to coordinate to get Mac and Linux changes to accommodate this in (I can't land my patch as-is because of Linux try failures due to a new DCHECK, for example).
The gist of the change is that RenderWidgetHostView::DidPaintRect() (which generally triggers a paint) may be called back from RenderWidgetHost::GetBackingStore() (which is generally called from inside a paint). This can cause recursion and/or overpainting. I have tried to add comment on this function's declaration explaining what's going on in more detail and what platforms should be doing when they receive this call. And the patch has changes for Windows so you can see what we did there (call GetBackingStore() before getting our invalid rect, and then in DidPaintRect() just invalidate in this case, so that on return to painting we immediately pick up the new, larger invalid rect and paint the whole thing). It's not clear to me that this approach will work on all OSes, which is why I'm not just making this change myself. Please let me know if you understand this patch enough to make appropriate changes, and how to coordinate landing various bits so I don't break anyone. PK --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---