Introduce a will-be-removed-from-tree notification in RenderObject
https://bugs.webkit.org/show_bug.cgi?id=94271

Reviewed by Abhishek Arya.

Following bug 93874, we have an insertion notification. This change adds the
matching removal notification (willBeRemovedFromTree).

Refactoring covered by existing tests.

* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
Removed the code from here and moved it below.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeRemovedFromTree):
* rendering/RenderObject.h:
This is the base function that should be called by every instance.

* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::willBeRemovedFromTree):
* rendering/RenderListItem.h:
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::willBeRemovedFromTree):
* rendering/RenderQuote.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::willBeRemovedFromTree):
* rendering/RenderRegion.h:
Overriden functions.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126048 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed Chromium rebaselining and test failure suppressions.

Source/WebKit/chromium:

https://bugs.webkit.org/show_bug.cgi?id=94502

* tests/CCMathUtilTest.cpp:

LayoutTests:

https://bugs.webkit.org/show_bug.cgi?id=94494
https://bugs.webkit.org/show_bug.cgi?id=94501
https://bugs.webkit.org/show_bug.cgi?id=94502

* platform/chromium-mac-snowleopard/fast/forms/input-double-click-selection-gap-bug-expected.png:
* platform/chromium-mac/fast/css/text-overflow-input-expected.png:
* platform/chromium-mac/fast/forms/box-shadow-override-expected.png:
* platform/chromium-mac/fast/forms/input-double-click-selection-gap-bug-expected.png:
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126049 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed Chromium gardening. Fixed invalid test expectation.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Move non-GL-specific code out of LayerRendererChromium
https://bugs.webkit.org/show_bug.cgi?id=93927

Patch by Alexandre Elias <aelias@google.com> on 2012-08-20
Reviewed by Adrienne Walker.

This patch moves most of the generic logic dealing with matrices and
render passes into a new class "CCDirectRenderer" that sits between
CCRenderer and LayerRendererChromium, and also publicly exposes a
few other things like the UnthrottledTextureUploader.

The plan is for the future software compositing implementation to also
derive from CCDirectRenderer, whereas the ubercompositor delegating
renderer will still derive from CCRenderer.

No new tests (no-op refactoring).

* WebCore.gypi:
* platform/graphics/chromium/GeometryBinding.cpp:
(WebCore::GeometryBinding::GeometryBinding):
* platform/graphics/chromium/GeometryBinding.h:
(GeometryBinding):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::beginDrawingFrame):
(WebCore::LayerRendererChromium::drawQuad):
(WebCore::LayerRendererChromium::drawRenderPassQuad):
(WebCore::LayerRendererChromium::drawTileQuad):
(WebCore::LayerRendererChromium::finishDrawingFrame):
(WebCore::LayerRendererChromium::drawQuadGeometry):
(WebCore::LayerRendererChromium::bindFramebufferToOutputSurface):
(WebCore):
(WebCore::LayerRendererChromium::bindFramebufferToTexture):
(WebCore::LayerRendererChromium::enableScissorTestRect):
(WebCore::LayerRendererChromium::disableScissorTest):
(WebCore::LayerRendererChromium::setDrawViewportSize):
(WebCore::LayerRendererChromium::makeContextCurrent):
(WebCore::LayerRendererChromium::initializeSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(LayerRendererChromium):
* platform/graphics/chromium/TextureCopier.h:
(TextureCopier):
* platform/graphics/chromium/TextureUploader.h:
(UnthrottledTextureUploader):
(WebCore::UnthrottledTextureUploader::create):
(WebCore::UnthrottledTextureUploader::~UnthrottledTextureUploader):
(WebCore::UnthrottledTextureUploader::UnthrottledTextureUploader):
(WebCore):
* platform/graphics/chromium/cc/CCDirectRenderer.cpp: Added.
(projectionMatrix):
(canvasMatrix):
(WebCore):
(WebCore::CCDirectRenderer::DrawingFrame::initializeMatrices):
(WebCore::CCDirectRenderer::DrawingFrame::initializeScissors):
(WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
(WebCore::CCDirectRenderer::drawFrame):
(WebCore::CCDirectRenderer::drawRenderPass):
(WebCore::CCDirectRenderer::useRenderPass):
(WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
(WebCore::CCDirectRenderer::renderPassTextureSize):
(WebCore::CCDirectRenderer::renderPassTextureFormat):
* platform/graphics/chromium/cc/CCDirectRenderer.h: Added.
(WebCore):
(CCDirectRenderer):
(WebCore::CCDirectRenderer::~CCDirectRenderer):
(WebCore::CCDirectRenderer::resourceProvider):
(WebCore::CCDirectRenderer::CCDirectRenderer):
(DrawingFrame):
(WebCore::CCDirectRenderer::DrawingFrame::DrawingFrame):
(CachedTexture):
(WebCore::CCDirectRenderer::CachedTexture::create):
(WebCore::CCDirectRenderer::CachedTexture::~CachedTexture):
(WebCore::CCDirectRenderer::CachedTexture::isComplete):
(WebCore::CCDirectRenderer::CachedTexture::setIsComplete):
(WebCore::CCDirectRenderer::CachedTexture::CachedTexture):
(WebCore::CCDirectRenderer::quadVertexRect):
(WebCore::CCDirectRenderer::quadRectTransform):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Persist cookies not from atexit() but the new onThreadFinished()
https://bugs.webkit.org/show_bug.cgi?id=94482
RIM PR 184923

Reviewed by Yong Li.

BlackBerry::Platform recently made changes that ensure
that MessageClient threads are being shut down correctly.
A new onThreadFinished() virtual was introduced for
custom clean-up functionality and can replace the
atexit() handler that we previously used to flush cookies
to the cookie database backingstore.

No new functionality, no new tests.

* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
(WebCore):
(WebCore::CookieDatabaseBackingStore::onThreadFinished):
(WebCore::CookieDatabaseBackingStore::sendChangesToDatabaseSynchronously):
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
(CookieDatabaseBackingStore):
* platform/blackberry/CookieManager.cpp:
(WebCore):
(WebCore::cookieManager):
* platform/blackberry/CookieManager.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[css3-text] Add parsing support for -webkit-text-decoration-style
https://bugs.webkit.org/show_bug.cgi?id=94093

Patch by Bruno de Oliveira Abinader <bruno.abinader@basyskom.com> on 2012-08-20
Reviewed by Julien Chaffraix.

This patch implements the "text-decoration-style" property parsing as specified
in CSS3 working draft, with "-webkit-" prefix. The specification can be found
here: http://dev.w3.org/csswg/css3-text/#text-decoration-style

Additionally, Mozilla implementation details can be found here:
https://developer.mozilla.org/en-US/docs/CSS/text-decoration-style

This is an individual task for bug 90958. Rendering support will be handled on a
different bug.

Source/WebCore:

Test: fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderTextDecorationStyleFlagsToCSSValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator TextDecorationStyle):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h: Added non-bitwise TextDecorationStyle enum.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Added m_textDecorationStyle to default and copy constructors.
(WebCore::StyleRareNonInheritedData::operator==): Include m_textDecorationStyle in comparison.
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
Added m_textDecorationStyle here as it won't be used regularly.

LayoutTests:

* fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style-expected.txt: Added.
* fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style.html: Added.
* fast/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-style.js: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Schedule texture uploads based on hard-coded timer and vsync.
https://bugs.webkit.org/show_bug.cgi?id=84281

Patch by David Reveman <reveman@chromium.org> on 2012-08-20
Reviewed by James Robinson.

Source/WebCore:

Improve interaction between vsync and texture uploads by performing
uploads in smaller batches and use a hard-coded timer to emulate
upload completion. This greatly reduces the chance of the compositor
missing a vsync due to being busy with texture uploads.

The CCScheduler client is now given a time limit when told to update
more resources. This time limit is passed to an instance of the
CCTextureUpdateController class, which is responsible for performing
texture updates until the limit is reached.

Unit tests: CCSchedulerTest.RequestCommit
            CCTextureUpdateControllerTest.UpdateMoreTextures
            CCTextureUpdateControllerTest.HasMoreUpdates

* platform/graphics/chromium/cc/CCFrameRateController.cpp:
(WebCore::CCFrameRateController::nextTickTime):
(WebCore):
* platform/graphics/chromium/cc/CCFrameRateController.h:
(CCFrameRateController):
* platform/graphics/chromium/cc/CCScheduler.cpp:
(WebCore::CCScheduler::processScheduledActions):
* platform/graphics/chromium/cc/CCScheduler.h:
(CCSchedulerClient):
* platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
(WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
(WebCore::CCTextureUpdateController::CCTextureUpdateController):
(WebCore::CCTextureUpdateController::updateMoreTextures):
(WebCore):
(WebCore::CCTextureUpdateController::onTimerFired):
(WebCore::CCTextureUpdateController::monotonicTimeNow):
(WebCore::CCTextureUpdateController::updateMoreTexturesTime):
(WebCore::CCTextureUpdateController::updateMoreTexturesSize):
(WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
(WebCore::CCTextureUpdateController::updateMoreTexturesNow):
* platform/graphics/chromium/cc/CCTextureUpdateController.h:
(WebCore::CCTextureUpdateController::create):
(CCTextureUpdateController):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
(WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
* platform/graphics/chromium/cc/CCThreadProxy.h:

Source/WebKit/chromium:

* tests/CCSchedulerTest.cpp:
(WebKitTests::TEST):
* tests/CCSchedulerTestCommon.h:
(WebKitTests::FakeCCTimeSource::FakeCCTimeSource):
(WebKitTests::FakeCCTimeSource::setNextTickTime):
(FakeCCTimeSource):
* tests/CCTextureUpdateControllerTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove incorrect getBBox() code
https://bugs.webkit.org/show_bug.cgi?id=94419

Reviewed by Dirk Schulze.

SVGPathElement defines a getBBox() function that is wrong and
should use objectBoundingBox(). This patch cleans this up.

No new tests as this is just a cleanup of old code.

* svg/SVGPathElement.cpp:
(WebCore):
* svg/SVGPathElement.h:
(SVGPathElement):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Respect runtime flags for Device Orientation and Device Motion
https://bugs.webkit.org/show_bug.cgi?id=94479

Reviewed by Adam Barth.

Source/WebCore:

There are flags that allows disabling of device orientation and device
motion at runtime. These flags determine the availability of the
corresponding event constructors in DOMWindow.

However, the flags should also control the ability to add event
listeners for these events, otherwise the feature can be used even if
it is disabled.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):

Source/WebKit/chromium:

WebRuntimeFeatures::enableDeviceMotion should not be hard-coded to
false.

* src/WebViewImpl.cpp:
(WebKit::WebView::create):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Text Autosizing: Only take into account block width <= document layout width.
https://bugs.webkit.org/show_bug.cgi?id=93862

Patch by John Mellor <johnme@chromium.org> on 2012-08-20
Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Instead of calculating the textAutosizingMultiplier purely based on the
width of each block, we now work out the maximum width of the block
that could be displayed onscreen at any one time, and use that value.
This avoids excessive text size multiplication (there's no point making
text bigger than this, since you wouldn't be able to zoom out far
enough to read it!).

To determine the maximum onscreen block width, we take the minimum of
the block width and the layoutWidth of the narrowest non-flattened
ancestor frame. Flattened frames are ignored since they don't impose a
hard limit on the maximum width that can be displayed, instead they can
stretch to fit their contents. Note that on mobile the layoutWidth of
the main frame is the fixed layout width aka viewport width.

In practice this caps the maximum multiplier to a value that depends
on the metrics of the device. For example on a Nexus S (480 x 800px
and 1.5x devicePixelRatio) with a 980px default fixed layout width,
this limits the multiplier to: 980 / (480/1.5) = 3.0625

Most pages won't have blocks that actually hit this cap, or they will
only slightly exceed it (so their multiplier will only be slightly
reduced). For example it's not uncommon for desktop pages to be
slightly wider than 980px, but they would have to additionally have
text that spans the full width of the page for this to affect them, and
even then it would merely slightly decrease their multiplier).

This will have more dramatic effects on the rare desktop pages which
give a width=device-width (or similar) mobile viewport tag (on ports
which support viewports). A follow-up patch will hopefully address this
by wrapping the text in such excessively wide blocks to the layoutWidth.

Tests: fast/text-autosizing/narrow-iframe-flattened.html
       fast/text-autosizing/narrow-iframe.html
       fast/text-autosizing/wide-block.html
       fast/text-autosizing/wide-iframe.html

* page/FrameView.cpp:
(WebCore::FrameView::isInChildFrameWithFrameFlattening):

    Made public and const, so can be used from TextAutosizer.

* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree):

    Computes the minimum layout width of the parent frames, as described
    above.

(WebCore::TextAutosizer::processBlock):

    Limits used block width to this min layout width.

LayoutTests:

Added 4 tests: a block wider than the main frame, iframes both narrower
than and wider than the main frame, both also containing wide blocks,
and a narrow iframe expanded by frame flattening.

I verified experimentally that narrow-iframe-flattened.html passes, by
enabling frame flattening in Settings.cpp, but unfortunately it won't
get run by any bots since the only platform which currently enables
Text Autosizing (Chromium), doesn't enable frame flattening (or have
the DRT methods required to test it).

* fast/text-autosizing/font-scale-factor-expected.html:
* fast/text-autosizing/font-scale-factor.html:
* fast/text-autosizing/narrow-iframe-expected.html: Added.
* fast/text-autosizing/narrow-iframe-flattened-expected.html: Added.
* fast/text-autosizing/narrow-iframe-flattened.html: Added.
* fast/text-autosizing/narrow-iframe.html: Added.
* fast/text-autosizing/wide-block-expected.html: Added.
* fast/text-autosizing/wide-block.html: Added.
* fast/text-autosizing/wide-iframe-expected.html: Added.
* fast/text-autosizing/wide-iframe.html: Added.
* platform/chromium/TestExpectations:
* platform/win/Skipped:
* platform/wincairo/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
NRWT reports unexpected EOF
https://bugs.webkit.org/show_bug.cgi?id=94387

Reviewed by Adam Barth.

Stop logging "Unexpected EOF" when we are reading the last few
bytes from stdout/stderr after stopping the subprocess.

* Scripts/webkitpy/layout_tests/port/server_process.py:
(ServerProcess._wait_for_data_and_update_buffers_using_select):
(ServerProcess.stop):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126059 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[css3-text] Add getComputedStyle tests for -webkit-text-decoration-line
https://bugs.webkit.org/show_bug.cgi?id=94108

Patch by Bruno de Oliveira Abinader <bruno.abinader@basyskom.com> on 2012-08-20
Reviewed by Kenneth Rohde Christiansen.

Changeset r125205 introduced new CSS3 property "-webkit-text-decoration-line",
with included basic getComputedStyle* layout tests for parsing check. This
patch adds a new, more robust getComputedStyle-based layout test for this
property.

* fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line-expected.txt: Added.
* fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line.html: Added.
* fast/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] detectContentIntentAround has a misleading name
https://bugs.webkit.org/show_bug.cgi?id=94349

Reviewed by Adam Barth.

The current WebViewClient API exposes a method named detectContentIntentAround.
However, this is not designed to detect any "content intent", but to allow the embedder
to detect content around a position and fire Android intents if appropriate.

This patch also disables content detection if the touched node listens to events
that consume the tap action like clicks, touch events or mouse events.

* public/WebViewClient.h:
(WebViewClient):
(WebKit::WebViewClient::detectContentAround):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::detectContentOnTouch):
* src/WebViewImpl.h:
(WebViewImpl):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126061 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Intermittenly, many WebKit2 tests have results from the wrong test compared to the test just run, giving false failures.
https://bugs.webkit.org/show_bug.cgi?id=94505

Reviewed by Ojan Vafai.

It looks like if the webprocess times out, WTR may tell NRWT
that the test completed, but not properly reset its internal
state, and then return stale output for subsequent tests.

This patch modifies NRWT temporarily to check for
"Timed out waiting for final message from web process" in stdout
and treat that as a timeout (and thus kill WTR); this seems
to solve the cascade of failures, but of course there's probably
still a bug in WTR that needs to be fixed.

* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.run_test):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Line boxes not being dirtied correctly during inline removal
https://bugs.webkit.org/show_bug.cgi?id=93156

Reviewed by David Hyatt.

Source/WebCore:

When two inline objects were being removed from different lineboxes
in an ancestral RenderBlock, the way the RenderBlock was being marked
prevented the second linebox from being marked dirty. This causes
it to not get layout in the subsequent layout pass.

This patch causes only the descendants corresponding to actual changed
lineboxes to have their ancestorLineBoxDirty bit set, rather than
the RenderBlock that contains the lineboxes themselves.

* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

LayoutTests:

Test exercising crashing condition for bug 93156.

* fast/block/line-layout/double-line-break-obj-removal-crash.html: Added
* fast/block/line-layout/double-line-break-obj-removal-crash-expected.txt: Added


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add missing FIXME: to previous change.
https://bugs.webkit.org/show_bug.cgi?id=94505

Reviewed by Ojan Vafai.

* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.run_test):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove improper ASSERT in AudioParamTimeline::valuesForTimeRangeImpl()
https://bugs.webkit.org/show_bug.cgi?id=94504

Reviewed by Kenneth Russell.

AudioParamTimeline::valuesForTimeRangeImpl() is able to handle the case where there are no timeline events.
So don't ASSERT for that case.

* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r125884.
http://trac.webkit.org/changeset/125884
https://bugs.webkit.org/show_bug.cgi?id=94523

Appears to be causing a top crash in the Canary channel
(Requested by abarth on #webkit).

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

* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore::mainThreadNormalWorld):
* bindings/v8/DOMWrapperWorld.h:
(WebCore):
(WebCore::DOMWrapperWorld::create):
(WebCore::DOMWrapperWorld::~DOMWrapperWorld):
(DOMWrapperWorld):
* bindings/v8/IsolatedWorld.cpp: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.cpp.
(WebCore):
(WebCore::IsolatedWorld::IsolatedWorld):
(WebCore::IsolatedWorld::~IsolatedWorld):
* bindings/v8/IsolatedWorld.h: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.h.
(WebCore):
(IsolatedWorld):
(WebCore::IsolatedWorld::create):
(WebCore::IsolatedWorld::count):
(WebCore::IsolatedWorld::id):
(WebCore::IsolatedWorld::domDataStore):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
* bindings/v8/V8IsolatedContext.cpp:
(WebCore::V8IsolatedContext::V8IsolatedContext):
(WebCore::V8IsolatedContext::destroy):
* bindings/v8/V8IsolatedContext.h:
(WebCore::V8IsolatedContext::getEntered):
(WebCore::V8IsolatedContext::world):
(V8IsolatedContext):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::registerDOMDataStore):
(WebCore::V8PerIsolateData::unregisterDOMDataStore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[JSC] SerializedScriptValue::create() should throw a DataCloneError if input is an unsupported object
https://bugs.webkit.org/show_bug.cgi?id=94493

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-08-20
Reviewed by Oliver Hunt.

Source/WebCore:

Update JSC implementation for SerializedScriptValue::create() so that
a DataCloneError is thrown when the input value is an unsupported
object. The previous implementation was not throwing any error.

This change is according to the structured clone specification at:
http://www.w3.org/TR/html5/common-dom-interfaces.html#structured-clone

This also matches the corresponding V8 implementation.

Test: fast/events/message-port-multi.html.

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::serialize):
(WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
* bindings/js/SerializedScriptValue.h:

LayoutTests:

Add checks for Function, Error and host objects arguments to
MessagePort.postMessage() in fast/events/message-port-multi.html.

According to the structured clone specification, we should throw
a DataCloneError for such input types.

* fast/dom/Window/anonymous-slot-with-changes-expected.txt:
* fast/dom/Window/anonymous-slot-with-changes.html: Update test to expect
an exception when passing a function to postMessage().
* fast/events/message-port-multi-expected.txt: Update expected result
accordingly.
* fast/events/resources/message-port-multi.js:
(testTransfers.try.f1):
* platform/chromium/fast/events/message-port-multi-expected.txt: Removed.
Now identical to global expectation.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Enabling DEBUG_LAYER_ANIMATION results in build break & warnings
https://bugs.webkit.org/show_bug.cgi?id=94514

Patch by Andrew Lo <anlo@rim.com> on 2012-08-20
Reviewed by Rob Buis.

Add wtf::CString definition to fix build break when enabling DEBUG_LAYER_ANIMATION
debug prints. Fix build warnings from prints.

No new tests, non-functional change.

* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore::GraphicsLayerBlackBerry::addAnimation):
(WebCore::GraphicsLayerBlackBerry::pauseAnimation):

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