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
-~----------~----~----~----~------~----~------~--~---

Reply via email to