[CSS Grid Layout] Implementation of the grid-template shorthand.
https://bugs.webkit.org/show_bug.cgi?id=128980

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-04-25
Reviewed by Darin Adler.

Source/WebCore:
This shorthand sets the values for the grid-template-columns,
grid-template-rows and grid-template-areas, so the implementation
tries to reuse as much available parsing functions as possible.

The "parsingGridTrackList" was refactored to return a CSSValue and
let the "parseValue" function to assign the property value. The
"forwardSlash" operator is now valid when the track-list clause is
part of a shorthand. The "parseValue" function checkouts that only
additional clauses are allowed when processing shorthands; the
grid-columns-rows-get-set.html tests was modified to verify this.

The "parseGridTemplateAreas" was refactored too, in order to
process single areas's rows. This is very useful for the
gris-template secondary syntax, which mixes areas and rows values.

Finally, the "parseGirdLineNames" function was modified as well by
defining an new argument to concatenate head/tail custom-ident
elements and ensure the identList is at the heading index, since
it's now possible the parseList was rewound.

The implementation of the grid-template shorthand tries first to
match the <grid-template-columns> / <grid-template-rows> syntax,
failing back to the secondary syntax if needed.  This approach
requires to rewind the parseList but it produces a clearer code.

Test: fast/css-grid-layout/grid-template-shorthand-get-set.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTemplateRowsAndAreas):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTemplateAreasRow):
(WebCore::CSSParser::parseGridTemplateAreas):
* css/CSSParser.h:
* css/CSSParserValues.h:
(WebCore::CSSParserValueList::setCurrentIndex):
* css/CSSPropertyNames.in:
* css/StylePropertyShorthand.cpp:
(WebCore::webkitGridTemplateShorthand):
* css/StylePropertyShorthand.h:

LayoutTests:
Layout Test for the basic functionality of the grid-template shorthand. It was
also added a new javascript file with some utility functions.

This shorthand sets the values for the grid-template-columns,
grid-template-rows and grid-template-areas, so the implementation
tries to reuse as much available parsing functions as possible.

* fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt: Added.
* fast/css-grid-layout/grid-template-shorthand-get-set.html: Added.
* fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js: Added.
(testGridDefinitionsValues):
(testGridDefinitionsSetJSValues):
(testNonGridDefinitionsSetJSValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Added test expectations for the following flaky tests:

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-04-25

* platform/gtk/TestExpectations:
    fast/loader/submit-form-while-parsing-2.html
    css3/calc/transitions-dependent.html
    fast/dom/adopt-node-crash-2.html
    fast/multicol/span/span-as-immediate-columns-child-dynamic.html
    platform/gtk/editing/pasteboard/middle-button-paste.html

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] HTMLInputElement webkitdirectory property was removed in r163483
https://bugs.webkit.org/show_bug.cgi?id=132191

Patch by Philippe Normand <pnormand@igalia.com> on 2014-04-25
Reviewed by Carlos Garcia Campos.

Add the removed get and set methods as deprecated API to keep
backwards compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_html_input_element_get_webkitdirectory):
(webkit_dom_html_input_element_set_webkitdirectory):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Iframe seamless support was removed in r163427
https://bugs.webkit.org/show_bug.cgi?id=132192

Patch by Philippe Normand <pnormand@igalia.com> on 2014-04-25
Reviewed by Carlos Garcia Campos.

Add the removed get and set methods as deprecated API to keep
backwards compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_processing_instruction_set_data):
(webkit_dom_html_iframe_element_get_seamless):
(webkit_dom_html_iframe_element_set_seamless):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Regions] Overflow selection doesn't work properly
https://bugs.webkit.org/show_bug.cgi?id=130715

Reviewed by David Hyatt.

Source/WebCore:
When hit-testing, painting block selection gaps and searching for the node at a specific point inside a flow thread,
the region range of the box being checked must be validated in order to not return false positives. Otherwise, hit-testing
at the top of region B could hit elements that overflow the bottom of region A.

Tests: fast/regions/selection-in-overflow-hit-testing.html
       fast/regions/selection-in-overflow.html
       fast/regions/selection-in-text-after-overflow-hit-testing.html

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
* dom/Document.cpp:
(WebCore::Document::caretRangeFromPoint):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains):
* editing/VisibleUnits.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromHitTestResult):
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::selectionExtentRespectingEditingBoundary):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::handleMouseReleaseEvent):
* page/Frame.cpp:
(WebCore::Frame::visiblePositionForPoint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::positionForPointRespectingEditingBoundaries):
(WebCore::RenderBlock::positionForPointWithInlineChildren):
(WebCore::isChildHitTestCandidate):
(WebCore::RenderBlock::positionForPoint):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::positionForPoint):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionForPoint):
* rendering/RenderBox.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::positionForPoint):
* rendering/RenderFileUploadControl.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::positionForPoint):
* rendering/RenderInline.h:
* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::positionForPoint):
* rendering/RenderLineBreak.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::positionForPoint):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::positionForPoint):
* rendering/RenderObject.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::positionForPoint):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
* rendering/RenderReplaced.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
* rendering/RenderText.h:
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::positionForPoint):
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::positionForPoint):
* rendering/svg/RenderSVGText.h:

LayoutTests:
Added tests for hit-testing and painting selection gaps in the region's overflow area.

* fast/regions/selection-in-overflow-expected.html: Added.
* fast/regions/selection-in-overflow-hit-testing-expected.html: Added.
* fast/regions/selection-in-overflow-hit-testing.html: Added.
* fast/regions/selection-in-overflow.html: Added.
* fast/regions/selection-in-text-after-overflow-hit-testing-expected.html: Added.
* fast/regions/selection-in-text-after-overflow-hit-testing.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167803 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] File webkitRelativePath attribute was removed in r163483
https://bugs.webkit.org/show_bug.cgi?id=132193

Patch by Philippe Normand <pnormand@igalia.com> on 2014-04-25
Reviewed by Carlos Garcia Campos.

Add the removed getter as deprecated API to keep backwards compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_file_get_webkit_relative_path):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

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