CSS quotes output quotes when depth is negative
https://bugs.webkit.org/show_bug.cgi?id=92690

Patch by Elliott Sprehn <esprehn@chromium.org> on 2012-08-13
Reviewed by Eric Seidel.

Source/WebCore:

Previously if the quote depth would go negative we would output the close quote from the
first pair of quotes again instead of outputting no quotes as required by the spec.

See: http://www.w3.org/TR/CSS21/generate.html#quotes-insert

Test: fast/css-generated-content/nested-quote-more-than-pairs.html

* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::originalText): Allow the value passed to getOpenQuote to go negative by removing std::max.
* rendering/style/QuotesData.cpp:
(WebCore::QuotesData::getOpenQuote): Bounds check for negative values for safety.
(WebCore::QuotesData::getCloseQuote): Allow index to be >= -1 and return an empty string for -1.

LayoutTests:

Make the expected output of close-quote-negative-depth.html follow the spec and
add another test that ensures the last quote pair is repeated when the depth is
greater than the number of quote pairs.

* fast/css-generated-content/close-quote-negative-depth-expected.html:
* fast/css-generated-content/close-quote-negative-depth.html:
* fast/css-generated-content/nested-quote-more-than-pairs-expected.html: Added.
* fast/css-generated-content/nested-quote-more-than-pairs.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CanvasRenderContext2D::font() does not re-serialize the font
https://bugs.webkit.org/show_bug.cgi?id=50859

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-08-13
Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Added proper serialization for the font property.

No new tests, unskipped the existing ones.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::font):

LayoutTests:

Unskip tests that will now pass and remove wrong/duplicated
expectations. canvas-font-ex-units-crash has now the wrong
expectations until we fix the issue on 93840.

* fast/canvas/canvas-font-ex-units-crash-expected.txt:
* fast/canvas/script-tests/canvas-font-ex-units-crash.js:
Even though we are setting a value on this test case (and verifying),
the font is not being effectiviely set as the serialization reveled. This
is going to be fixed in another bug.
* platform/chromium/TestExpectations:
* platform/chromium/canvas/philip/tests/2d.text.font.parse.system-expected.txt: Removed.
* platform/efl/Skipped:
* platform/gtk/TestExpectations:
* platform/mac/canvas/philip/tests/2d.text.font.parse.system-expected.txt: Removed.
* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
        https://bugs.webkit.org/show_bug.cgi?id=93883

        Reviewed by Sam Weinig.

        There was one plug-in message renaming. Moving it, and also other plug-in messages
        for consistency.

        * UIProcess/WebContext.cpp:
        (WebKit): Got rid of the last MESSAGE_CHECK in this file.
        (WebKit::WebContext::WebContext): Moved m_pluginWorkQueue to a singleton.
        We don't need more than one queue (all it does is read plug-in info), and if we
        needed, it would have been per-process, not per-context.
        (WebKit::WebContext::~WebContext): No more work queue.
        (WebKit::WebContext::processDidFinishLaunching): Ditto.

        * UIProcess/WebContext.h: No longer needs to be a QueueClient.

        * UIProcess/WebContext.messages.in:
        * UIProcess/WebProcessProxy.messages.in:
        Moved plug-in related messages.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::pluginWorkQueue): Moved from WebContext to a singleton.
        (WebKit::WebProcessProxy::sendDidGetPlugins): Moved from WebContext.
        (WebKit::WebProcessProxy::handleGetPlugins): Ditto.
        (WebKit::WebProcessProxy::getPlugins): Ditto.
        (WebKit::WebProcessProxy::getPluginPath): Ditto.
        (WebKit::WebProcessProxy::getPluginProcessConnection): Ditto.
        (WebKit::WebProcessProxy::didGetSitesWithPluginData): Ditto.
        (WebKit::WebProcessProxy::didClearPluginSiteData): Ditto.

        * UIProcess/WebProcessProxy.h: Process proxy needs to be thread safe ref counted
        now, since it sends messages to itself on a work queue and back.

        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::populatePluginCache): Updated for new receiver.

        * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createPlugin): Ditto.

        * WebProcess/WebProcess.cpp: (WebKit::canPluginHandleResponse): Ditto.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125451 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r125444.
http://trac.webkit.org/changeset/125444
https://bugs.webkit.org/show_bug.cgi?id=93872

Broke some tests

Source/JavaScriptCore:

* Target.pri:

Source/WebCore:

* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
(JSC::Bindings::QtRuntimeMethod::jsObjectRef):
* bridge/qt/qt_runtime.h:
(QtRuntimeMethod):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
        https://bugs.webkit.org/show_bug.cgi?id=93883

        Windows build fix.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::getSitesWithPluginData):
        (WebKit::WebProcess::clearPluginSiteData):
        Use WebProcessProxy for the message here, too.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r125422.
http://trac.webkit.org/changeset/125422
https://bugs.webkit.org/show_bug.cgi?id=93902

Broke the Android canary build (Requested by fmalita on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-13

Source/WebKit/chromium:

* WebKitUnitTests.gyp:

Tools:

* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
* TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125454 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AudioContext::createMediaStreamSource() must create a provider for local MediaStreams
https://bugs.webkit.org/show_bug.cgi?id=93756

Reviewed by Eric Carlson.

There are two main kinds of MediaStreams (local and from remote peers).
Internally we need to know the difference so a MediaStreamAudioSourceNode will "just work".

Tested by existing test: mediastreamaudiosourcenode.html
Full testing can only be verified by manual tests.

* Modules/mediastream/LocalMediaStream.h:
(LocalMediaStream):
* Modules/mediastream/MediaStream.h:
(WebCore::MediaStream::isLocal):
(MediaStream):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125456 268f45cc-cd09-0410-ab3c-d52691b4dbfc
With asynchronous plug-in initialization, WebProcess and PluginProcess can deadlock
<rdar://problem/12062125> and https://bugs.webkit.org/show_bug.cgi?id=93894

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

A few things were in play here:
- The WebProcess thought the plug-in was done initializing but it wasn't.
- The sync message out from the PluginProcess was not being handled by the WebProcess.

Expose the ability for the PluginProcess to act as if it is handling a sync message and needs messages dispatched:
* Platform/CoreIPC/Connection.h:
(CoreIPC::Connection::incrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount):
(CoreIPC::Connection::decrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount):

* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::PluginControllerProxy):
(WebKit::PluginControllerProxy::setInitializationReply): Save the delayed reply for synchronous initialization.
(WebKit::PluginControllerProxy::takeInitializationReply): Give back the delayed reply for initialization completion.
(WebKit::PluginControllerProxy::initialize):
* PluginProcess/PluginControllerProxy.h:
(WebKit::PluginControllerProxy::isInitializing): Accessor so WebProcessConnection knows whether or not to store the
  delayed reply for later.

* PluginProcess/WebProcessConnection.messages.in: Make the synchronous form of "CreatePlugin" have a delayed reply.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::createPlugin): Store away the delayed reply message so it can be responded to after
  asynchronous initialization completes.
(WebKit::WebProcessConnection::createPluginAsynchronously): If there is a stored away delayed reply message, respond to
  it instead of sending the asynchronously reply.
* PluginProcess/WebProcessConnection.h:
(WebProcessConnection):

Tools:

Add a test that calls out to NPP_Evaluate for some JS inside of NPP_New.

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp: Added.
(EvaluteJSWithinNPP_New):
(EvaluteJSWithinNPP_New::EvaluteJSWithinNPP_New):
(EvaluteJSWithinNPP_New::NPP_New):

LayoutTests:

* platform/mac-wk2/plugins/asychronous-deadlock-with-timer-and-evaluate-expected.txt: Added.
* platform/mac-wk2/plugins/asychronous-deadlock-with-timer-and-evaluate.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
        https://bugs.webkit.org/show_bug.cgi?id=93883

        More Windows build fix

        * UIProcess/WebContext.cpp:
        (WebKit::WebPage::dummy):
        * UIProcess/WebContext.h: (WebContext):
        * UIProcess/WebContext.messages.in:
        Add a dummy sync message - the same workaround is already used in WebPage.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Oscillator node should throw exception if type is assigned an invalid value
https://bugs.webkit.org/show_bug.cgi?id=93490

Patch by Raymond Toy <rtoy@google.com> on 2012-08-13
Reviewed by Chris Rogers.

Source/WebCore:

New tests added to oscillator-basic to catch exceptions.

* Modules/webaudio/Oscillator.cpp:
(WebCore::Oscillator::Oscillator):
(WebCore::Oscillator::setType): Return exception
* Modules/webaudio/Oscillator.h:
(Oscillator): Update setType declaration
* Modules/webaudio/Oscillator.idl: setType can raise exception.

LayoutTests:

Add tests for invalid oscillator types.

* webaudio/oscillator-basic-expected.txt: Updated
* webaudio/oscillator-basic.html: Test CUSTOM and invalid
oscillator type.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit+SVG does not support color-interpolation-filters or draw filters in correct colorspace
https://bugs.webkit.org/show_bug.cgi?id=6033

Reviewed by Dirk Schulze.

Source/WebCore:

This patch adds support for SVG color-interpolation-filters. All non-CG plarforms now
perform color space conversions as needed (CG performs color space adjustments internally),
and the new default color space for filters is linearRGB
(http://www.w3.org/TR/SVG/filters.html#FilterPrimitivesOverviewIntro).

FilterEffect tracks the color-interpolation-filters attribute (m_colorSpace) and the
current result color space (m_resultColorSpace). When applying, the input results are
converted to the current FilterEffect's color space, and at the end of the filter effect
chain the result is finally converted to ColorSpaceDeviceRGB.

FilterEffect::transformResultColorSpace() handles non-CG color space converion (CG has
built in support for different color spaces) by first converting the result to an image
buffer, and then using the platform specific ImageBuffer::transformColorSpace(). This can
be expensive for filter chains with alternating color-interpolation-filters, but can be
optimized if/when color space support is added to all the graphics backends similarly to CG.

As expected, lots of filter-related pixel results will require rebaselining after this lands.

Test: svg/filters/color-interpolation-filters.svg

* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::FilterEffect):
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::asImageBuffer):
(WebCore::FilterEffect::createImageBufferResult):
(WebCore::FilterEffect::transformResultColorSpace):
(WebCore):
* platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::colorSpace):
(WebCore::FilterEffect::setColorSpace):
(FilterEffect):
* platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::SourceGraphic):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::apply):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives):
(WebCore::RenderSVGResourceFilter::postApplyResource):

LayoutTests:

* platform/chromium-linux/css3/filters/crash-hw-sw-switch-expected.png:
* platform/chromium-linux/css3/filters/custom/custom-filter-shader-cache-expected.png:
* platform/chromium-linux/css3/filters/custom/effect-custom-expected.png:
* platform/chromium-linux/css3/filters/custom/filter-repaint-custom-clipped-expected.png:
* platform/chromium-linux/css3/filters/custom/filter-repaint-custom-expected.png:
* platform/chromium-linux/css3/filters/custom/filter-repaint-custom-rotated-expected.png:
* platform/chromium-linux/css3/filters/effect-brightness-clamping-expected.png:
* platform/chromium-linux/css3/filters/effect-brightness-expected.png:
* platform/chromium-linux/svg/filters/color-interpolation-filters-expected.png: Added.
* platform/chromium-linux/svg/filters/color-interpolation-filters-expected.txt: Added.
* platform/chromium-win/css3/filters/add-filter-rendering-expected.png:
* platform/chromium-win/css3/filters/crash-filter-change-expected.png:
* platform/chromium-win/css3/filters/effect-blur-expected.png:
* platform/chromium-win/css3/filters/effect-combined-expected.png:
* platform/chromium-win/css3/filters/effect-contrast-expected.png:
* platform/chromium-win/css3/filters/effect-drop-shadow-expected.png:
* platform/chromium-win/css3/filters/effect-grayscale-expected.png:
* platform/chromium-win/css3/filters/effect-hue-rotate-expected.png:
* platform/chromium-win/css3/filters/effect-invert-expected.png:
* platform/chromium-win/css3/filters/effect-opacity-expected.png:
* platform/chromium-win/css3/filters/effect-reference-expected.png:
* platform/chromium-win/css3/filters/effect-reference-external-expected.png:
* platform/chromium-win/css3/filters/effect-reference-hw-expected.png:
* platform/chromium-win/css3/filters/effect-reference-ordering-expected.png:
* platform/chromium-win/css3/filters/effect-saturate-expected.png:
* platform/chromium-win/css3/filters/effect-sepia-expected.png:
* platform/chromium-win/css3/filters/filtered-inline-expected.png:
* platform/chromium-win/css3/filters/multiple-filters-invalidation-expected.png:
* platform/chromium-win/css3/filters/nested-filters-expected.png:
* platform/chromium-win/css3/filters/regions-expanding-expected.png:
* platform/chromium-win/css3/filters/simple-filter-rendering-expected.png:
* platform/chromium/TestExpectations:
* platform/chromium/css3/filters/blur-filter-page-scroll-expected.png:
* platform/chromium/css3/filters/blur-filter-page-scroll-parents-expected.png:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* svg/filters/color-interpolation-filters.svg: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
        https://bugs.webkit.org/show_bug.cgi?id=93883

        More Windows build fixing.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::dummy):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125464 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reduce the size of empty NinePieceImage objects.
<http://webkit.org/b/93747>

Reviewed by Antti Koivisto.

Move the members of NinePieceImage into a NinePieceImageData class, leaving NinePieceImage
with a single OwnPtr<NinePieceImageData> member. The constant NinePieceImage::defaultData()
provides default values for objects with null m_data.

RenderStyle's "StyleSurroundData" member has a BorderData, which in turn holds a NinePieceImage.
This means that anything with left/right/top/bottom, margin, padding or border style but *no*
border-image will save 104 bytes (assuming their RenderStyle is unshared, which is fairly common.)

This reduces the size of StyleSurroundData by 104 bytes, effectively reducing memory consumption
by 1.72MB when viewing the full HTML5 spec at <http://whatwg.org/c>

* rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImageData::operator==):
(WebCore::NinePieceImage::defaultData):
(WebCore):
* rendering/style/NinePieceImage.h:
(WebCore::NinePieceImageData::NinePieceImageData):
(NinePieceImageData):
(WebCore::NinePieceImageData::operator!=):
(WebCore):
(NinePieceImage):
(WebCore::NinePieceImage::NinePieceImage):
(WebCore::NinePieceImage::operator=):
(WebCore::NinePieceImage::operator==):
(WebCore::NinePieceImage::operator!=):
(WebCore::NinePieceImage::hasImage):
(WebCore::NinePieceImage::image):
(WebCore::NinePieceImage::setImage):
(WebCore::NinePieceImage::imageSlices):
(WebCore::NinePieceImage::setImageSlices):
(WebCore::NinePieceImage::fill):
(WebCore::NinePieceImage::setFill):
(WebCore::NinePieceImage::borderSlices):
(WebCore::NinePieceImage::setBorderSlices):
(WebCore::NinePieceImage::outset):
(WebCore::NinePieceImage::setOutset):
(WebCore::NinePieceImage::horizontalRule):
(WebCore::NinePieceImage::setHorizontalRule):
(WebCore::NinePieceImage::verticalRule):
(WebCore::NinePieceImage::setVerticalRule):
(WebCore::NinePieceImage::copyImageSlicesFrom):
(WebCore::NinePieceImage::copyBorderSlicesFrom):
(WebCore::NinePieceImage::copyOutsetFrom):
(WebCore::NinePieceImage::copyRepeatFrom):
(WebCore::NinePieceImage::setMaskDefaults):
(WebCore::NinePieceImage::ensureData):
(WebCore::NinePieceImage::data):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125465 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Clean up dependencies for Canvas2DLayerBridgeTest and GraphicsLayerChromiumTest unit tests
https://bugs.webkit.org/show_bug.cgi?id=93757

Reviewed by Adrienne Walker.

Source/Platform:

Exposes a function to check for active animations on a layer.

* chromium/public/WebLayer.h:
(WebLayer):

Source/WebCore:

Exposes the current contentsScale for tests.

* platform/graphics/chromium/GraphicsLayerChromium.h:
(GraphicsLayerChromium):

Source/WebKit/chromium:

Breaks up some unit tests and removes unused code to avoid unit tests depending on both non-compositor WebCore
logic and compositor internals. Canvas2DLayerBridgeTest had some vestigal includes and local variables that
weren't being used, those are removed. GraphicsLayerChromiumTest was reaching into CC types, but could mostly
use Platform API types for testing.

GraphicsLayerChromiumTest had some tests that were verifying that we could correctly translate WebCore
animation lists into CCAnimation types - these have been moved into AnimationTranslationUtilTest.cpp, since the
logic under test is in AnimationTranslationUtil. Currently these only test that we accept / reject animations as
expected. They could be expanded to verify that the animation was translated faithfully, but that would require
expanding the information exposed on WebAnimation.

* WebKit.gypi:
* src/WebLayer.cpp:
(WebKit::WebLayer::hasActiveAnimation):
(WebKit):
* tests/Canvas2DLayerBridgeTest.cpp:
(Canvas2DLayerBridgeTest::fullLifecycleTest):
* tests/GraphicsLayerChromiumTest.cpp:
(WebKit::GraphicsLayerChromiumTest::GraphicsLayerChromiumTest):
(WebKit::GraphicsLayerChromiumTest::~GraphicsLayerChromiumTest):
(GraphicsLayerChromiumTest):
(WebKit::TEST_F):
* tests/WebLayerTreeViewTest.cpp:
* tests/WebLayerTreeViewTestCommon.h: Added.
(WebKit):
(MockWebLayerTreeViewClient):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CMake] Rewrite FindLibSoup2.cmake.
https://bugs.webkit.org/show_bug.cgi?id=93191

Reviewed by Rob Buis.

.:

The existing LibSoup2 was imported from somewhere else and not
only did it contain a lot of unnecessary cruft to look for libsoup
2.2 (which we do not support anyway), but it also relied on the
paths returned by pkg-config for setting the library and include
paths.

For one, this meant "-lsoup-2.4" was passed to the linked instead
of "-L/path/to/libsoup-2.4.so", which would sometimes make a
system version of libsoup to be picked up instead of the one
installed by, say, jhbuild.

The new FindLibSoup.cmake now only looks for libsoup 2.4 and
relies on pkg-config solely for retrieving the current LibSoup
version.

* Source/cmake/FindLibSoup.cmake: Added.
* Source/cmake/FindLibSoup2.cmake: Removed.
* Source/cmake/OptionsEfl.cmake: Look for LibSoup instead of
LibSoup2, look for the GObject component of Glib.

Source/WebCore:

* PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO,
also link against GObject, which is needed by libsoup.

Source/WebKit:

* PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO.

Source/WebKit2:

* PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO, and
do not use LIBSOUP24_LDFLAGS, as it is not needed anymore.

Tools:

* DumpRenderTree/efl/CMakeLists.txt: Use LIBSOUP_FOO instead of
LIBSOUP24_FOO, and do not use LIBSOUP24_LDFLAGS, as it is not
needed anymore.
* EWebLauncher/CMakeLists.txt: Ditto.
* MiniBrowser/efl/CMakeLists.txt: Ditto.
* TestWebKitAPI/PlatformEfl.cmake: Ditto.
* WebKitTestRunner/CMakeLists.txt: Ditto.
* WebKitTestRunner/PlatformEfl.cmake: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Unreviewed attempt at fixing the bots after r125467.

* PlatformEfl.cmake: Link against GIO and GObject due to the usage
of libsoup.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Make WebAnimation a pure virtual interface to hide implementation and avoid unresolved symbols
https://bugs.webkit.org/show_bug.cgi?id=93907

Reviewed by Darin Fisher.

Source/Platform:

This makes WebAnimation a pure virtual interface with instances returned by a factory function. Currently the
factory is a static function on WebAnimation, but it will likely move to a platform support interface. This
provides better isolation of the implementation from the interface and in particular allows for implementing the
WebAnimation interface outside of WebKit.dll without having unresolved external symbols in WebKit.dll.

* chromium/public/WebAnimation.h:
(WebKit::WebAnimation::~WebAnimation):
(WebAnimation):
* chromium/public/WebLayer.h:
(WebLayer):

Source/WebCore:

Updates WebAnimation users for interface changes.

* platform/graphics/chromium/AnimationTranslationUtil.cpp:
(WebCore::createWebAnimation):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::addAnimation):

Source/WebKit/chromium:

Adds a WebAnimationImpl implementation of the WebAnimation interface.

* WebKit.gyp:
* src/WebAnimationImpl.cpp: Renamed from Source/WebKit/chromium/src/WebAnimation.cpp.
(WebKit):
(WebKit::WebAnimation::create):
(WebKit::WebAnimationImpl::targetProperty):
(WebKit::WebAnimationImpl::iterations):
(WebKit::WebAnimationImpl::setIterations):
(WebKit::WebAnimationImpl::startTime):
(WebKit::WebAnimationImpl::setStartTime):
(WebKit::WebAnimationImpl::timeOffset):
(WebKit::WebAnimationImpl::setTimeOffset):
(WebKit::WebAnimationImpl::alternatesDirection):
(WebKit::WebAnimationImpl::setAlternatesDirection):
(WebKit::WebAnimationImpl::cloneToCCAnimation):
* src/WebAnimationImpl.h: Added.
(WebCore):
(WebKit):
(WebAnimationImpl):
(WebKit::WebAnimationImpl::WebAnimationImpl):
(WebKit::WebAnimationImpl::~WebAnimationImpl):
* src/WebLayer.cpp:
(WebKit::WebLayer::addAnimation):
* tests/WebAnimationTest.cpp:
(WebKit::TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125469 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Unreviewed bot fix after r125467.

* PlatformEfl.cmake: Make the WK2 tests link against glib, gobject
and gio as well.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r125450): 4 canvas/philip/tests tests failing on Apple Lion Release WK1 (Tests)
https://bugs.webkit.org/show_bug.cgi?id=93910

Unreviewed test expectations update. Temporarily skipping tests.

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125471 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Bad cast in RenderBox::computeReplacedLogicalHeightUsing
https://bugs.webkit.org/show_bug.cgi?id=93875

Patch by Pravin D <pravind.2k4@gmail.com> on 2012-08-13
Reviewed by Abhishek Arya.

Source/WebCore:

Pointer to the container of a replaced element was being type casted to renderbox
without checking if the container is a renderbox or not.

Test: fast/replaced/render-inline-cast-to-render-box-crash.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
 Scrollbar height is retrieved only if the container is a renderBox. Otherwise scrollbar is taken as zero.

LayoutTests:

* fast/replaced/render-inline-cast-to-render-box-crash-expected.txt: Added.
* fast/replaced/render-inline-cast-to-render-box-crash.html: Added.

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