Account for transform in SVG background images
https://bugs.webkit.org/show_bug.cgi?id=110295

Reviewed by Dirk Schulze.

Source/WebCore:

Tiled SVG background images are rendererd by drawing the SVG content into a temporary
image buffer, then stamping out a tiled pattern using this buffer. Previously the
image buffer did not account for CSS transforms which could result in pixelated backgrounds.

This patch takes advantage of the context's transform when sizing the temporary tiling
image buffer. Because the context's transform also includes scale, this patch simplifies
the SVG image code to no longer track scale.

Test: svg/as-background-image/svg-transformed-background.html

* loader/cache/CachedImage.cpp:
(WebCore):
(WebCore::CachedImage::imageForRenderer):

    CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
    refactored into just "imageForRenderer". Previously there were two versions of
    lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.

* loader/cache/CachedImage.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):

    To create the temporary tiling image buffer, the final size in screen coordinates is
    needed. This is now computed using the current context's CTM. Because the CTM
    already includes the page scale, all page scale tracking can be removed.

    The adjustments to srcRect and the pattern transform are the same as before, just
    refactored to use imageBufferScale which has x and y components.

* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::setContainerSizeForRenderer):

    Because the page scale needed to be cached between calls to
    setContainerSizeForRenderer, this function was written to modify an existing cache
    entry. Because the page scale no longer needs to be tracked, this code has been
    simplified to re-write any existing cache entry.

(WebCore::SVGImageCache::imageSizeForRenderer):

    This function has been simplified by calling SVGImageForContainer::size() instead
    of computing this value manually. The value returned remains the same, containing
    the container size multiplied by zoom.

(WebCore::SVGImageCache::imageForRenderer):

    Previously we set the page scale on every call to imageForRenderer. Because page scale
    no longer needs to be tracked, this function has been simplified to simply return
    the cached SVGImageForContainer.

* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern):
* svg/graphics/SVGImageForContainer.h:
(WebCore::SVGImageForContainer::create):
(WebCore::SVGImageForContainer::SVGImageForContainer):
(SVGImageForContainer):

LayoutTests:

* svg/as-background-image/svg-transformed-background-expected.html: Added.
* svg/as-background-image/svg-transformed-background.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143541 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Incorrect rendering for flex boxes with percentage height in a table cell
https://bugs.webkit.org/show_bug.cgi?id=110389

Patch by Christian Biesinger <cbiesinger@chromium.org> on 2013-02-20
Reviewed by Tony Chang.

Source/WebCore:

Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
       css3/flexbox/flex-percentage-height-in-table.html

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
Always update the logical height of the flex box, not just when it is
auto. If necessary, the later updateLogicalHeight() call will adjust
it.

LayoutTests:

* css3/flexbox/flex-percentage-height-in-table-expected.html: Added.
* css3/flexbox/flex-percentage-height-in-table-standards-mode-expected.html: Added.
* css3/flexbox/flex-percentage-height-in-table-standards-mode.html: Added.
* css3/flexbox/flex-percentage-height-in-table.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143542 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<https://webkit.org/b/110409> Remove duplication between 32- and 64-bit PluginService plists.

Reviewed by Dan Bernstein.

The only difference between the plists was the CFBundleIdentifier. Since the values are the
same as the product name, we can just use the value of the PRODUCT_NAME configuration setting.

* Configurations/PluginService.32.xcconfig:
* Configurations/PluginService.64.xcconfig:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: Renamed from Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist: Removed.

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