[GTK] Re-enable 3D CSS transforms when using build-webkit
https://bugs.webkit.org/show_bug.cgi?id=110402

Patch by Martin Robinson <mrobinson@igalia.com> on 2013-02-20
Reviewed by Xan Lopez.

* Scripts/webkitperl/FeatureList.pm: Enable 3D rendering by default
when building WebKitGTK+.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143532 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
https://bugs.webkit.org/show_bug.cgi?id=110374

Reviewed by Adam Barth.

Source/WebCore:

The fullscreen API also includes a new HTML attribute for iframes
which permits its use. That attribute, 'allowfullcreen' is now
included in the HTML specification [1] and is stable enough
to remove the webkit prefix.

[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen

Tests: fullscreen/full-screen-enabled-prefixed.html
       fullscreen/full-screen-iframe-allowed-prefixed.html
       fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html

* dom/Document.cpp:
(WebCore::isAttributeOnAllOwners):
(WebCore::Document::fullScreenIsAllowedForElement):
(WebCore::Document::webkitFullscreenEnabled):
* html/HTMLAttributeNames.in:

LayoutTests:

Two previous tests duplicated to preserve testing webkitallowfullscreen
and then modified to test allowfullscreen.

A new test 'full-screen-iframe-with-mixed-allow-webkitallow-attribute.html'
added to test a mixed nesting of iframs with both allowfullscreen and
webkitallowfullscreen.

* fullscreen/full-screen-enabled-prefixed-expected.txt: Added.
* fullscreen/full-screen-enabled-prefixed.html: Copied from LayoutTests/fullscreen/full-screen-enabled.html.
* fullscreen/full-screen-enabled.html:
* fullscreen/full-screen-iframe-allowed-prefixed-expected.txt: Added.
* fullscreen/full-screen-iframe-allowed-prefixed.html: Copied from LayoutTests/fullscreen/full-screen-iframe-allowed.html.
* fullscreen/full-screen-iframe-allowed.html:
* fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute-expected.txt:
* fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html: Added.
* fullscreen/resources/full-screen-iframe-with-mixed-allow-webkitallow-iframe1.html: Added.
* fullscreen/resources/full-screen-iframe-with-mixed-allow-webkitallow-iframe2.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Implement the auto-placement algorithm without grid growth
https://bugs.webkit.org/show_bug.cgi?id=110277

Reviewed by Tony Chang.

Source/WebCore:

Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
       fast/css-grid-layout/grid-item-removal-auto-placement-update.html
       fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)

This change implements most of the auto-placement algorithm per
http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo

To limit the size of the code change, it doesn't implement growing the grid if there
are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
one, like what grid-auto-flow: none would do (which explains the test failures).

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
Added this function to return the GridCoordinate of the next empty grid area along
the iterator's direction.

(WebCore::RenderGrid::placeItemsOnGrid):
Split this function into the different steps below. For efficiency, collect the auto vs specified
major axis grid items in different Vectors.

(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
Added this function that implements part of step 1 of the algorithm (the grid items without
auto row / column are already handled in placeItemsOnGrid).

(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.

(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
it either walks along the major axis once or several times until it finds an empty grid area
for the grid item.

(WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
(WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
(WebCore::RenderGrid::autoPlacementMajorAxisDirection):
(WebCore::RenderGrid::autoPlacementMinorAxisDirection):
Added these helper functions that return minor / major axis positions & direction.

* rendering/RenderGrid.h:
Added the previous new RenderGrid functions.

LayoutTests:

* fast/css-grid-layout/grid-auto-flow-resolution-expected.txt:
* fast/css-grid-layout/grid-auto-flow-resolution.html:

* fast/css-grid-layout/grid-item-addition-auto-placement-update-expected.txt: Added.
* fast/css-grid-layout/grid-item-addition-auto-placement-update.html: Added.
* fast/css-grid-layout/grid-item-removal-auto-placement-update-expected.txt: Added.
* fast/css-grid-layout/grid-item-removal-auto-placement-update.html: Added.
The current algorithm doesn't grow the grid but falls back to inserting the element at
position (1, 1). The failures in these tests are due to that.


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