Web Inspector: AXI: crash when inspecting "bar" text node in getAccessibilityPropertiesForNode layout test
https://bugs.webkit.org/show_bug.cgi?id=130290

Patch by James Craig <jcraig@apple.com> on 2014-03-26
Reviewed by Timothy Hatcher.

Source/WebCore:

Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

Fixing regression from r165590. http://webkit.org/b/129779
Verify isElementNode to avoid calling toElement on document or text nodes.

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

LayoutTests:

Updating test to include properties for document node.

* inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt:
* inspector-protocol/dom/getAccessibilityPropertiesForNode.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
https://bugs.webkit.org/show_bug.cgi?id=130768
<rdar://problem/16421471>

Reviewed by Simon Fraser.

* Shared/mac/RemoteLayerBackingStore.h:
Add flush(), which synchronously flushes painting operations on the underlying backing store.
Factor clearBackingStore() out of ensureBackingStore/display, which releases our reference to underlying backing store.
Add two members for storing the back surface and front buffer context until flush() is called.
        - We need to keep the back surface alive because the CGImageRef created from it is referenced by
        the front surface's drawing queue, and won't be freed until said queue is flushed. If we release
        the back surface (and its associated CGContextRef) *before* the CGImageRef is freed, we will
        do an expensive readback of the surface.
        - When not using accelerated drawing, we need to keep the front buffer's CGContextRef around
        until the flush occurs so that we can avoid re-creating it in order to perform the flush. This
        happens automatically in the accelerated drawing case via WebCore::IOSurface.

* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::ensureBackingStore):
(RemoteLayerBackingStore::clearBackingStore):
(RemoteLayerBackingStore::display):
Factor clearBackingStore() out of ensureBackingStore() and display().
Update a comment about the above performance gotcha.
Store the current back surface/front buffer context.

(RemoteLayerBackingStore::drawInContext):
Don't flush the context immediately after painting.

(RemoteLayerBackingStore::applyBackingStoreToLayer):
Move things around to reduce duplicated code.

(RemoteLayerBackingStore::flush):
Flush the current front surface/buffer's context.
Clear the new pending-flush members.

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::flushBackingStoreChangesInTransaction):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Crawl through all of the valid changed backing stores in the transaction and flush them.
Remove a completely useless assertion.

* platform/graphics/cocoa/IOSurface.h:
Add a non-ensuring platformContext() getter.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166296 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update LayoutTests to depend on load events rather than on starting loads synchronously
https://bugs.webkit.org/show_bug.cgi?id=130776

Reviewed by Antti Koivisto.

These tests were depending on loads starting synchronously. Instead, they should simply
depend on proper load event behavior.

* dom/html/level1/core/selfhtml.js:
(startTest): Call waitUntilDone immediately, not when the test starts.
* dom/html/level2/core/selfhtml.js:
(startTest): Ditto.
* dom/html/level2/events/selfhtml.js:
(startTest): Ditto.
* dom/html/level2/html/selfhtml.js:
(startTest): Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the iOS build.

* WebCore.exp.in:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166298 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] getComputedStyle() must return the specified value for positioning properties
https://bugs.webkit.org/show_bug.cgi?id=130010

Reviewed by Darin Adler.

Source/WebCore:

According to the specs
http://dev.w3.org/csswg/css-grid/#property-index and also to
http://lists.w3.org/Archives/Public/www-style/2014Mar/0162.html
the function getComputedStyle() must return the specified values
for positioning properties, i.e, grid-{columns|rows}-{start|end}.

We were in some cases, adjusting the style in the StyleResolver
(for example with two opposing spans) something that is now done
in the RenderGrid because we cannot alter the original style.

The code moved to the renderer became more self explanatory and it
now supports named grid areas with names ending in "-start" and
"-end".

Test: fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::gridLineDefinedBeforeGridArea): Deleted.
(WebCore::StyleResolver::adjustNamedGridItemPosition): Deleted.
(WebCore::StyleResolver::adjustGridItemPosition): Deleted.
* css/StyleResolver.h:
* rendering/RenderGrid.cpp:
(WebCore::isColumnSide):
(WebCore::RenderGrid::explicitGridSizeForSide):
(WebCore::gridLineDefinedBeforeGridArea):
(WebCore::setNamedLinePositionIfDefinedBeforeArea):
(WebCore::RenderGrid::adjustNamedGridItemPosition):
(WebCore::RenderGrid::adjustGridPositionsFromStyle):
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
(WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle):
(WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
* rendering/RenderGrid.h:
* rendering/style/GridPosition.h:
(WebCore::GridPosition::setAutoPosition): New helper function.

LayoutTests:

Updated the return value of getComputedStyle(), it must be always
the specified value.

Added also a new test that verifies the resolution of names in
grid positioning properties, both grid area names and grid line
names (including any combination of the two).

* fast/css-grid-layout/grid-item-area-get-set-expected.txt:
* fast/css-grid-layout/grid-item-area-get-set.html:
* fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
* fast/css-grid-layout/grid-item-column-row-get-set.html:
* fast/css-grid-layout/grid-item-end-after-get-set-expected.txt:
* fast/css-grid-layout/grid-item-end-after-get-set.html:
* fast/css-grid-layout/grid-item-spanning-resolution-expected.txt:
* fast/css-grid-layout/grid-item-spanning-resolution.html:
* fast/css-grid-layout/grid-item-start-before-get-set-expected.txt:
* fast/css-grid-layout/grid-item-start-before-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set-expected.txt: Added.
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166299 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Avoid duplicate size checks when creating empty image
https://bugs.webkit.org/show_bug.cgi?id=130730

Reviewed by Dean Jackson.

Merged from Blink (patch by ch.dumez@samsung.com):
https://chromium.googlesource.com/chromium/blink/+/4861a71bc1f284fc97417f405ab7d08dc6947b88
http://crbug.com/190633011

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::createEmptyImageData): Don't perform overflow calculation twice.


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