Unifies LayerTreeHost::SetNeedsUpdateLayers and SetNeedsAnimate -- V2

[2/2] Unifies LayerTreeHost::SetNeedsUpdateLayers and SetNeedsAnimate

They basically do the same thing except that SetNeedsAnimate makes the next
commit non-cancellable. However there is really no reason why SetNeedsAnimate
need to enforce a commit even if no tiles are updated and no layer properties
changed.

SetNeedsAnimate is thus merged into SetNeedsUpdateLayers. The proper use of
it is when there are potential layout/tile changes, we can use it to defer
calculation until the next frame. A commit will be scheduled but can be
cancelled if no updates are needed after calculation.

This part of the patch changes code behavior slightly.
SingleThreadProxy::SetNeedsUpdateLayers was originally implemented as
RenderWidget::ScheduleComposite but now it is RenderWidget::ScheduleAnimation.
ThreadProxy::SetNeedsAnimate was non-cancellable but is now cancellable.

[1/2] Cleanup RenderWidget::scheduleComposite/scheduleAnimation

scheduleComposite has been renamed to ScheduleComposite as it is no longer
a part of WebWidgetClient API.

scheduleAnimation has been renamed to ScheduleAnimation. The semantics is to
schedule a composite and also (potentially) animating WebWidget.

A new WebWidgetClient API scheduleUpdate has been added, to replace the old
scheduleAnimation. The semantics is to notify the embedder that something in
the WebWidget may change in 0 seconds. (i.e. it is allowed to be called
during a redraw, in such case another redraw will be scheduled after frame
delay.

This part of the patch should not change code behavior.

BUG=316929
R=danakj,jamesr,jochen

Review URL: https://codereview.chromium.org/133263004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245445 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 06cbc31bffba14c3ded1dfedf98fff85a86fe6e5
1 file changed
tree: 5142f9f3577a9a2a1511d0a69fdbf4ff588b99cf
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. ipc/
  6. mojo/
  7. testing/
  8. third_party/
  9. ui/