[FastTextAutosizer] Remove O(n^2) supercluster text check

This patch removes an O(n^2) call in FastTextAutosizer::inflateTable where
every table cell will typically be in the same supercluster but
anyClusterHasEnoughTextToAutosize is recomputed for each cell. This patch
renames anyClusterHasEnoughTextToAutosize to superclusterHasEnoughTextToAutosize
and caches the result.

I've filed crbug.com/367484 to further cleanup
superclusterHasEnoughTextToAutosize once this lands.

Performance on Robohornet pro:
FastTextAutosizer (with patch): 4.94s (average of 3 runs)
FastTextAutosizer (without patch): 219.829s
TextAutosizer (old): 5.44s (average of 3 runs)
No autosizer: 4.75s (average of 3 runs)

Once this lands I will revert [1] which disabled the robohornet pro test.

[1] https://src.chromium.org/viewvc/chrome?view=rev&revision=266233

BUG=357338
BUG=302005

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add a "forwarded" flag to usergesture tokens.

Exposing this and using it in DOMTimer to check if a user gesture token
should be forwarded allows for other ways of forwarding user gestures
while still preventing a user gesture from being forwarded more than
once.

BUG=354217

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172810 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Compute repaint rects for squashed layers w.r.t. the transformed ancestor,
then translate them to the coordinate space of the squashing layer.

Previously there was one clear bug and one design flaw in the repaint logic for squashing:

1. Bug: RenderLayers that were children of squashed RenderLayers had any transform and
offset to the squashed RenderLayer double-added to the repaint rect when transforming
into the coordinate space of the squashed Renderlayer.

2. Design flaw: there was a bunch of one-off code in RenderObject::repaintUsingContainer that did
not belong there, duplicates existing repaint code, and is probably wrong in some corner cases.

We fix this by using the repainting code (almost) in the way it was intended:
 (a) always issue repaint rects w.r.t. some ancestor of the current render object/render layer
 (b) always issue repaint rects in the same coordinate space of the graphics layer.

This CL achieves (a) by repainting all squashed layers into the transformed ancestor of the
squashing layer as a repaintContainer. This is guaranteed to be an ancestor of all squashed
layers due to a check in RenderLayerCompositor::canSquashIntoCurrentSquashingOwner().

It almost achieves (b) because the squashing graphics layer differs from the coordinate space
of the transformed ancestor only by a translation (this is because by definition, the
transform ancestor is the lowest ancestor which contains a transform, i.e. may not a
translation). We add in special code to toss in this offset right at the end, and some
special code to adjust for the transformed ancestor.

BUG=366080

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172811 bbb929c8-8fbe-4397-9dbb-9b2b20218538