Only execute Worker.RAF inside PostMessage taskrunner

If a RAF takes too long, OnBeginFrame may flood the task runner with
tasks and not allow postMessages to pass. This makes sure that RAFs are
executed in the same task queue as postMessages. We also change
BeginFrameProvider logic to only disable setNeedsBeginFrame with one
frame delay, to minimize the number of mojo calls.

Bug: 863962
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iec4b21d9e41571a9fc2d9880aa26ce45704d8d0c
Reviewed-on: https://chromium-review.googlesource.com/1139188
Commit-Queue: Fernando Serboncini <fserb@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Justin Novosad <junov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577308}
8 files changed