[CSS Grid Layout] Implement CSS parsing and handling for <track-minmax>
https://bugs.webkit.org/show_bug.cgi?id=103799

Reviewed by Tony Chang.

Source/WebCore:

This change adds support for:
<track-minmax> => minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth>
(note that we already supported auto | <track-breadth>).

The change is mostly mechanical, the only newness is that GridTrackSize was updated to
hold 2 Lengths internally and we map the single Length case to 2 by duplicating the value
as this matches the rendering algorithm in the spec.

Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html
       fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth):
Changed the function to do the conversion of one track breadth (one Length).
This was forgotten in the preparatory change in bug 103703.

(WebCore::valueForGridTrackMinMax):
Convert the value back using valueForGridTrackBreadth.

* css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::CSSFunctionValue):
* css/CSSFunctionValue.h:
(WebCore::CSSFunctionValue::create):
(CSSFunctionValue):
Added a new constructor. This enables us to return minmax(..., ...) when queried
from JavaScript. I couldn't find a better way to serialize inside CSSComputedStyleDeclaration
so that it properly match the function output.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackMinMax):
Added parsing for the new syntax. We convert the 2 values into a Pair if we manage to
parse both values correctly.

* css/StyleResolver.cpp:
(WebCore::createGridTrackMinMax):
Updated to handle a Pair - for minmax - and set the 2 values on GridTrackSize.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Updated to check the style. For now, we don't handle minmax values.

* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::GridTrackSize):
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::setMinMax):
(WebCore::GridTrackSize::operator==):
Updated the class to handle minmax values. This means that we now always store
2 values (the <length> case being a subset of minmax, however we kept the distinction
to be able to reconstruct a <length> for getComputedStyle).

LayoutTests:

* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/grid-columns-rows-get-set.html:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
Extended the following tests to cover the new grammar.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136588 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Replace String::New("symbol") with String::NewSymbol("symbol")
https://bugs.webkit.org/show_bug.cgi?id=103989

Reviewed by Adam Barth.

In V8, a symbol lookup is faster than a string lookup. We should use
String::NewSymbol("symbol") for symbols.

No tests. No change in behavior.

* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::typeCallback):
(WebCore::V8InjectedScriptHost::functionDetailsCallback):
(WebCore::getJSListenerFunctions):
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::populateContextMenuItems):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136589 268f45cc-cd09-0410-ab3c-d52691b4dbfc