Revert of Remove linux_use_tcmalloc and switch to use_allocator in Blink. (https://codereview.chromium.org/259543003/)

Reason for revert:
Broke Linux ASAN build: http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/12782

Original issue's description:
> Remove linux_use_tcmalloc and switch to use_allocator in Blink.
> 
> See https://src.chromium.org/viewvc/blink?revision=168591&view=revision,
> the bug and http://crrev.com/255129 for the details.
> 
> BUG=345554
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=172528

TBR=haraken@chromium.org,jochen@chromium.org,jamesr@chromium.org,dmikurube@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=345554

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172540 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Enable V8 Promises.

Enable V8 Promises.
This CL sets --harmony-promises flag for the V8 implementation.
Because V8 Promises depend on weak collections, this CL also introduces
WeakMap and WeakSet.

This CL makes ScriptPromise and ScriptPromiseResolver use V8 Promises instead
of Blink Promises. Now ScriptPromiseResolverWithContext runs V8 tasks manually
when resolve or reject was called from a non script execution environment.

BUG=352597, 352552
R=jochen@chromium.org, adamk@chromium.org

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=172299

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172542 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Unprefix webkitImageSmoothingEnabled -> imageSmoothingEnabled. As webkitImageSmoothingEnabled is replaced by imageSmoothingEnabled so we can remove the layout test cases related to it.


BUG=277199

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172543 bbb929c8-8fbe-4397-9dbb-9b2b20218538
RenderLayer satellite objects should use references

RenderLayer must have a non-NULL renderer so all the code
can safely be converted to use references. This change
only takes care of the satellite object that RenderLayer
creates. While touching RenderLayerReflectionInfo removed
an unneeded getter and renamed the field to m_box to better
reflect the associated renderer type.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
FCMify text-based-repaint layout tests

Repaint tracking happens in both FrameView and GraphicsLayer.  When
layout tests are always composited, then FrameView no longer tracks
repaints and they are all collected on GraphicsLayer.  The
text-based-repaint.js test is adjusted to print out the graphics
layer tree and to force any test using it into FCM.

In order to print out repaint rects, the layer tree has to be printed
out instead.  I looked through all the results and the only differences
are that repaints are now clipped to not extend into negative space and
that repaints are relative to the graphics layer and not the viewport
(so are differently offset by scrolling).

The vast majority of these are text changes, but there are 4 image
changes in svg, that are all using "text"-based-repaint to do pixel
repaint tests.  These are all scrollbar differences similar to
https://codereview.chromium.org/249963002/ and one imperceptible
image scaling change.

A follow up to this would be to remove the FrameView-based repaint
tracking plumbing and only use the GraphicsLayer-based version.

BUG=361729

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Change HarfBuzz selectionRect rounding to match simple text version

Change the HarfBuzzShaper::selectionRect rounding logic to match that of
selectionRectForSimpleText. This ensures consistent rounding for
selection rects and avoids selection gaps due to inconsistent rounding.

BUG=366705
R=dglazkov@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172546 bbb929c8-8fbe-4397-9dbb-9b2b20218538
DevTools: do not schedule dozens of timers upon panel switches.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Preserve identical values for background-size and -webkit-mask-size.

This patch fixes a bug where background-size/-webkit-mask-size would be
incorrectly serialized to text when the values in the pair are identical.
Setting 'background-size: 100% 100%', for example, would produce a text
representation of 'background-size: 100%', which is treated as
'background-position: 100% auto'.

For -webkit-background-size, '100%' really does mean '100% 100%', so we
maintain a policy of 'DropIdenticalValues' for this property.

BUG=364962
TEST=fast/backgrounds/size/parsing-background-sizes-values.html
     fast/masking/parsing-mask.html

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172548 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove unused methods and variables in RenderFlowThread.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172549 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Avoid markDirty when removing out-of-flow line boxes.

Previously, we did a markDirty(false) on the root line box in order to
rectify the dirtyness caused by removing out-of-flow line boxes after layout.
However, there were line boxes between root line box and the out-of-flow box
that were left dirty. Instead we now avoid calling markDirty in the first
place and remove the rectification code.

Likewise, avoid markDirty when removing empty text renderers as mentioned in
the removed comment. I tried to stop removing line boxes for the empty text
renderers as the FIXME says, but the changed test expectations got too scary.

Alternatively, we would have had to traverse the line box tree until we had
cleaned all dirty bits.

R=leviw@chromium.org,eseidel@chromium.org
BUG=362671

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172550 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add skeleton WebRemoteFrame implementation.

BUG=346764

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172551 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Assert that we don't ever get a null layerTreeView.

We'd like to delete the null layerTreeView codepath as it's
one of the few remaining that doesn't use accelerated
compositing.

The crux of this patch is the ASSERT in WebViewImpl.cpp. The
rest is just making the unittests pass by making sure they
all use a WebViewClient that returns a non-null layerTreeView.

Also, WebFrameTest.pageScaleFactorScalesPaintClip and
WebViewTest.SetBaseBackgroundColorAndBlendWithExistingContent
break with this patch, but this is just exposing that these
tests fail when they go down the compositing codepath, which
all our shipping configurations do. Changing them to use the
default WebViewClient makes them pass again.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172552 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Allowed Uint16 arrays to act as the data source for OES_half_float textures

Addresses spec change made at https://github.com/KhronosGroup/WebGL/pull/475

BUG=365435

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172553 bbb929c8-8fbe-4397-9dbb-9b2b20218538
FCMify layout tests with scrollbar rendering diffs

Unfortunately in FCM, some scrollbars render imperceptibly different
when run through Mesa due to texture filtering issues.

To help make turning FCM on less painful, convert these tests to be FCM
early and rebaseline them.

BUG=361729

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172554 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove serialization version tags from crypto LayoutTests.

The LayoutTests in crypto/ are the only tests that dump objects'
complete serialization. This has the unfortunate side effect that any
change to the serialization format must update the -expected.txt files
in the crypto/ tests (due to the version number bump). The changes
currently add 224 lines to a diff, and cause unnecessary churn in the
crypto/ tests.

This change removes the version tag (first two bytes) from the dumped
output, removing the churn source discussed above.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172555 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Don't report hierarchy changes when mask layer changes

In https://codereview.chromium.org/239053008/, I'd made mask layer
changes affect layerConfigChanged so that I could use this value later
in the function to trigger a painting phase update. This causes
unnecessary work later in the pipeline as it causes the rest of the
machinery to think that the graphics layer tree topology has changed.

This CL tracks whether the mask layer has changed in a separate
variable so that we can still use it as a paint phase update trigger,
but not impact graphics layer tree updating.

R=abarth@chromium.org
BUG=None

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172556 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[refactor] Use a lookup table rather than binary search for algorithm normalization.

Pros: Uses less space, is faster, and easier to extend with new properties.

Cons: Slightly more difficult to edit.

BUG=245025

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172557 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix repaintTreeAfterLayout tree walk

The current code uses a depth-first search over the render
tree. This walk however is wrong as we are using LayoutState
which assumes that we jump into our positioned elements
(LayoutState assumes that the previous LayoutState comes from
the containing block, not the parent).

This change fixes fast/repaint/subtree-root-fixed.html
and all the positioned elements' offset (they were wrongly
picking up the body's 8px margins).

To prevent bugs where we forget to repaint elements, added
some ASSERTs that we call repaintTreeAfterLayout.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use GenericEventQueue class in HTMLFormElement

Use GenericEventQueue class in HTMLFormElement to make the autocomplete event
dispatching code simpler.

R=tkent@chromium.org, esprehn@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172559 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use EventSender class in HTMLSourceElement

Use EventSender class in HTMLSourceElement to avoid duplicating the
asynchronous event dispatch code.

R=esprehn@chromium.org, tkent@chromium.org

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

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