Unreviewed EFL gardening.

Mark fast/flexbox/line-clamp-link-after-ellipsis.html as failing
on EFL port. This test was introduced in r142335.

* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG CompareEq(a, null) and CompareStrictEq(a, const) are unsound with respect to constant folding
https://bugs.webkit.org/show_bug.cgi?id=109387

Reviewed by Oliver Hunt.
        
Lock in the decision to use a non-speculative constant comparison as early as possible
and don't let the CFA change it by folding constants. This might be a performance
penalty on some really weird code (FWIW, I haven't seen this on benchmarks), but on
the other hand it completely side-steps the unsoundness that the bug speaks of.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::isConstantForCompareStrictEq):
(ByteCodeParser):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStrictEq):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142491 268f45cc-cd09-0410-ab3c-d52691b4dbfc
document.write during window.onload can trigger DumpRenderTree to dump the render tree
https://bugs.webkit.org/show_bug.cgi?id=109465

Reviewed by Eric Seidel.

Source/WebCore:

This patch is a partial revert of
http://trac.webkit.org/changeset/142378. It's not safe to call
checkComplete during the load event. We'll need to find another way of
calling checkComplete at the right time.

Test: fast/parser/document-write-during-load.html

* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):

LayoutTests:

* fast/parser/document-write-during-load-expected.txt: Added.
* fast/parser/document-write-during-load.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][Notifications] Missing early return in populateCopyOfNotificationPermissions
https://bugs.webkit.org/show_bug.cgi?id=108459

Patch by Claudio Saavedra <csaavedra@igalia.com> on 2013-02-11
Reviewed by Alexey Proskuryakov.

* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::populateCopyOfNotificationPermissions):
Providers might return 0 and we will end up with a null-pointer dereference.
Early check against this.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Replace correct misspelled range in WebKit::WebFrameImpl::replaceMisspelledRange
https://bugs.webkit.org/show_bug.cgi?id=108513

Patch by Rouslan Solomakhin <rouslan@chromium.org> on 2013-02-11
Reviewed by Tony Chang.

WebKit::WebFrameImpl::replaceMisspelledRange is going to be used by Chromium instead of
WebKit::WebFrameImpl::replaceSelection for correcting misspellings. The current implementation
of WebKit::WebFrameImpl::replaceMisspelledRange sometimes replaces the wrong range. This change
uses Range::create instead of TextIterator::rangeFromLocationAndLength to select the correct
range. This change also disables smart replace in WebKit::WebFrameImpl::replaceMisspelledRange
to avoid introducing spaces around misspellings.

* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::replaceMisspelledRange): Replace correct misspelled range.
* tests/WebFrameTest.cpp: Add unit test for WebKit::WebFrameImpl::replaceMisspelledRange method.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Windows 7 Debug mode build fix.

* DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142495 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] FilterTypeSaturatingBrightness enum
https://bugs.webkit.org/show_bug.cgi?id=109380

Introduce a new WebFilterOperation::FilterType enum (FilterTypeSaturatingBrightness)
to support existing interntal clients which rely on the current saturating brightness
behavior (in preparation of switching to the new brightness implementation).

Reviewed by James Robinson.

* chromium/public/WebFilterOperation.h:
(WebKit::WebFilterOperation::amount):
(WebKit::WebFilterOperation::createSaturatingBrightnessFilter):
(WebKit::WebFilterOperation::setAmount):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142496 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make WebVTTTokenizer stop inheriting from MarkupTokenizerBase
https://bugs.webkit.org/show_bug.cgi?id=109411

Reviewed by Adam Barth.

Moved InputStreamPreprocessor into its own header file so it can be
used by both WebVTTTokenizer and HTMLTokenizer.

Also split out kEndOfFileMarker from InputStreamPreprocessor<T> so that
it can be used w/o a specific instantiation of the template class.
This also made it possible to fix three old fixmes about wanting to share
that constant.

Again, separating WebVTT code from Markup* base classes made it simpler
at the cost of a little copy/paste code.  WebVTT tokenization is remarkably
simple compared to HTML.

This will make it immediately possible to pull MarkupTokenizerBase up into
HTMLTokenizer and further simplify the code.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::markEndOfFile):
* html/parser/HTMLInputStream.h:
(WebCore::HTMLInputStream::markEndOfFile):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
* html/parser/InputStreamPreprocessor.h: Added.
(WebCore):
(InputStreamPreprocessor):
(WebCore::InputStreamPreprocessor::InputStreamPreprocessor):
(WebCore::InputStreamPreprocessor::nextInputCharacter):
(WebCore::InputStreamPreprocessor::peek):
(WebCore::InputStreamPreprocessor::advance):
(WebCore::InputStreamPreprocessor::skipNextNewLine):
(WebCore::InputStreamPreprocessor::reset):
(WebCore::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
* html/track/WebVTTTokenizer.cpp:
(WebCore::WebVTTTokenizer::WebVTTTokenizer):
(WebCore::WebVTTTokenizer::nextToken):
* html/track/WebVTTTokenizer.h:
(WebVTTTokenizer):
(WebCore::WebVTTTokenizer::haveBufferedCharacterToken):
(WebCore::WebVTTTokenizer::bufferCharacter):
(WebCore::WebVTTTokenizer::emitAndResumeIn):
(WebCore::WebVTTTokenizer::emitEndOfFile):
(WebCore::WebVTTTokenizer::shouldSkipNullCharacters):
* xml/parser/MarkupTokenizerBase.h:
(MarkupTokenizerBase):
(WebCore::MarkupTokenizerBase::bufferCharacter):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r142491.
http://trac.webkit.org/changeset/142491
https://bugs.webkit.org/show_bug.cgi?id=109470

broke the 32 bit build (Requested by jessieberlin on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-02-11

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStrictEq):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move setFrameFlatteningEnabled from layoutTestController to window.internals.settings
https://bugs.webkit.org/show_bug.cgi?id=87149

Reviewed by Simon Fraser.

Source/WebKit2:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Add setFrameFlatteningEnabled to the list of overridable values.

Tools:

Remove testRunner.setFrameFlatteningEnabled from DRT and WTR. WebKit API
methods are left because there may be users of it. Add a test for Apple Mac
to ensure that the API for the preference still works using overridePreference.

* DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
* DumpRenderTree/TestRunner.h:
(TestRunner):
* DumpRenderTree/blackberry/DumpRenderTree.cpp:
(BlackBerry::WebKit::DumpRenderTree::resetToConsistentStateBeforeTesting):
* DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp:
* DumpRenderTree/efl/TestRunnerEfl.cpp:
* DumpRenderTree/gtk/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues):
* DumpRenderTree/gtk/TestRunnerGtk.cpp:
* DumpRenderTree/mac/TestRunnerMac.mm:
* DumpRenderTree/qt/DumpRenderTreeQt.cpp:
(WebCore::WebPage::resetSettings):
* DumpRenderTree/qt/TestRunnerQt.cpp:
* DumpRenderTree/qt/TestRunnerQt.h:
(TestRunner):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues):
* DumpRenderTree/win/TestRunnerWin.cpp:
* DumpRenderTree/wx/TestRunnerWx.cpp:
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
* WebKitTestRunner/InjectedBundle/TestRunner.h:
(TestRunner):

LayoutTests:

Update tests to use internal.settings.setFrameFlatteningEnabled, which is automatically
generated from Settings.in.
Add a Mac only test that uses overridePreference to test the API.

* fast/frames/flattening/crash-svg-document.html:
* fast/frames/flattening/frameset-flattening-advanced.html:
* fast/frames/flattening/frameset-flattening-grid.html:
* fast/frames/flattening/frameset-flattening-simple.html:
* fast/frames/flattening/frameset-flattening-subframe-resize.html:
* fast/frames/flattening/frameset-flattening-subframesets.html:
* fast/frames/flattening/iframe-flattening-crash.html:
* fast/frames/flattening/iframe-flattening-fixed-height.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-with-js-forced-layout.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height-zero-size.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height.html:
* fast/frames/flattening/iframe-flattening-fixed-width.html:
* fast/frames/flattening/iframe-flattening-nested.html:
* fast/frames/flattening/iframe-flattening-offscreen.html:
* fast/frames/flattening/iframe-flattening-out-of-view-and-scroll.html:
* fast/frames/flattening/iframe-flattening-out-of-view-scroll-and-relayout.html:
* fast/frames/flattening/iframe-flattening-out-of-view.html:
* fast/frames/flattening/iframe-flattening-selection-crash.html:
* fast/frames/flattening/iframe-flattening-simple.html:
* fast/frames/flattening/iframe-tiny.html:
* fast/spatial-navigation/snav-iframe-flattening-simple.html:
* fast/text-autosizing/narrow-iframe-flattened.html:
* http/tests/misc/iframe-flattening-3level-nesting-with-blocking-resource.html:
* platform/chromium/TestExpectations: Chromium doesn't use frame flattening on mobile either.
* plugins/frameset-with-plugin-frame.html:
* fast/frames/flattening/crash-svg-document.html:
* fast/frames/flattening/frameset-flattening-advanced.html:
* fast/frames/flattening/frameset-flattening-grid.html:
* fast/frames/flattening/frameset-flattening-simple.html:
* fast/frames/flattening/frameset-flattening-subframe-resize.html:
* fast/frames/flattening/frameset-flattening-subframesets.html:
* fast/frames/flattening/iframe-flattening-crash.html:
* fast/frames/flattening/iframe-flattening-fixed-height.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-with-js-forced-layout.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height-zero-size.html:
* fast/frames/flattening/iframe-flattening-fixed-width-and-height.html:
* fast/frames/flattening/iframe-flattening-fixed-width.html:
* fast/frames/flattening/iframe-flattening-nested.html:
* fast/frames/flattening/iframe-flattening-offscreen.html:
* fast/frames/flattening/iframe-flattening-out-of-view-and-scroll.html:
* fast/frames/flattening/iframe-flattening-out-of-view-scroll-and-relayout.html:
* fast/frames/flattening/iframe-flattening-out-of-view.html:
* fast/frames/flattening/iframe-flattening-selection-crash.html:
* fast/frames/flattening/iframe-flattening-simple.html:
* fast/frames/flattening/iframe-tiny.html:
* fast/spatial-navigation/snav-iframe-flattening-simple.html:
* fast/text-autosizing/narrow-iframe-flattened.html:
* http/tests/misc/iframe-flattening-3level-nesting-with-blocking-resource.html:
* platform/chromium/TestExpectations:
* platform/mac/fast/frames/flattening/set-preference-expected.txt: Added.
* platform/mac/fast/frames/flattening/set-preference.html: Added.
* plugins/frameset-with-plugin-frame.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Regression(r131539): Heap-use-after-free in WebCore::RenderBlock::willBeDestroyed
https://bugs.webkit.org/show_bug.cgi?id=107189

Reviewed by Abhishek Arya.

Source/WebCore: 

Test: fast/dynamic/continuation-detach-crash.html

This patch reverts r131539 and the following changes (r132591 and r139664).
This means we redo detaching from the bottom-up which solves the regression.
It fixes the attached test case as we re-attach child nodes before detaching
the parent. It seems wrong to do but this avoid a stale continuation.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::detach): Detach the children first, then ourself.
* dom/Node.cpp:
(WebCore::Node::detach): Clear the renderer instead of ASSERT'ing.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed): Removed the code to clear the associated node's renderer.
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
Moved the repainting logic back into removeChildNode from destroyAndCleanupAnonymousWrappers.
(WebCore::RenderObjectChildList::destroyLeftoverChildren): Re-added the code to clear the associated node's
renderer.
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::setText): Re-added the code to set the associated node's renderer.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::detach):
* dom/Node.cpp:
(WebCore::Node::detach):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::destroyLeftoverChildren):
(WebCore::RenderObjectChildList::removeChildNode):
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::setText):

LayoutTests: 

* fast/dynamic/continuation-detach-crash-expected.txt: Added.
* fast/dynamic/continuation-detach-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142500 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.  Rolled Chromium DEPS to r181742.  Requested by
fmalita_ via sheriffbot.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-02-11

* DEPS:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
The plug-in process connection manager doesn't need to be heap allocated
https://bugs.webkit.org/show_bug.cgi?id=109479

Reviewed by Andreas Kling.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::pluginProcessConnectionManager):
(WebKit::WebProcess::pluginProcessCrashed):
* WebProcess/WebProcess.h:
(WebKit):
(WebProcess):

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

* platform/mac/PlatformSpeechSynthesizerMac.mm: Fix the case in the include.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142503 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move m_stateNodeMap from ScrollingCoordinatorMac to ScrollingStateTree
https://bugs.webkit.org/show_bug.cgi?id=109361

Reviewed by Sam Weinig.

The map of scrolling node IDs to ScollingStateNodes was maintained by
ScrollingCoordinatorMac, rather than ScrollingStateTree. This is different
from the ScrollingTree (which owns its node map), and added some amount
of to-and-fro between ScrollingStateTree and ScrollingCoordinatorMac.

Having ScrollingCoordinatorMac maintain the map of IDs to state nodes
simplifies things.

No behavior change.

* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::detachNode):
(WebCore::ScrollingStateTree::clear):
(WebCore::ScrollingStateTree::removeNode):
(WebCore::ScrollingStateTree::stateNodeForID):
* page/scrolling/ScrollingStateTree.h:
(ScrollingStateTree): Remove some stale comments.
(WebCore::ScrollingStateTree::removedNodes):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
(WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
(WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
(WebCore::ScrollingCoordinatorMac::attachToStateTree):
(WebCore::ScrollingCoordinatorMac::detachFromStateTree):
(WebCore::ScrollingCoordinatorMac::clearStateTree):
(WebCore::ScrollingCoordinatorMac::updateScrollingNode):
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ScrollingTree node maps keep getting larger
https://bugs.webkit.org/show_bug.cgi?id=109348

Reviewed by Sam Weinig.

When navigating between pages, nodes would get left in the ScrollingTree's
node map, and the ScrollingStateTree's node map, so these would get larger
and larger as you browse.

Simplify map maintenance by clearing the map when setting a new root node
(which happens on the first commit of a new page). Also, don't keep root nodes
around, but create them afresh for each page, which simplifies their ID
management.

This is closer to the original behavior; keeping the root nodes around was
a fix for bug 99668, but we avoid regressing that fix by bailing early
from frameViewLayoutUpdated() if there is no root state node (we'll get
called again anyway).

This now allows state nodeIDs to be purely read-only.

* page/scrolling/ScrollingStateNode.h:
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::clear):
(WebCore::ScrollingStateTree::removeNode):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSP reports for blocked 'data:' URLs should report the scheme only.
https://bugs.webkit.org/show_bug.cgi?id=109429

Reviewed by Adam Barth.

Source/WebCore:

https://dvcs.w3.org/hg/content-security-policy/rev/001dc8e8bcc3 changed
the CSP 1.1 spec to require that blocked URLs that don't refer to
generally resolvable schemes (e.g. 'data:', 'javascript:', etc.) be
stripped down to their scheme in violation reports.

Test: http/tests/security/contentSecurityPolicy/report-blocked-data-uri.html

* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
    If the blocked URL is a web-resolvable scheme, apply the current
    stripping logic to it, otherwise, strip it to the scheme only.
* platform/KURL.h:
(KURL):
    Move KURL::isHierarchical() out into KURL's public API.

LayoutTests:

* http/tests/security/contentSecurityPolicy/report-blocked-data-uri-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/report-blocked-data-uri.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142506 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: Source/WebCore: Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284

Reviewed by Simon Fraser.

Take three - relanding after rollout in r142400 that was caused by a global
selector interfering with CSS Instrumentation in the Inspector.

A snapshotted plugin needs to indicate to the user that it can be clicked
to be restarted. Previously this was done with an image that had embedded
text. Instead, we now use an internal shadow root to embed some markup that
will display instructions that can be localised.

The UA stylesheet for plug-ins provides a default styling for the label, which
can be overridden by ports.

In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
since it is only responsible for drawing a paused plug-in. The snapshot creation
can work with the default renderer, but a shadow root requires something like
RenderBlock in order to draw its children. We swap from one renderer to another when
necessary either by creating the shadow root or by explicitly detaching and attaching
the plugin element.

Unfortunately this is difficult to test, because the snapshotting requires
time to execute, and also a PluginView to be instantiated.

* css/plugIns.css:
(object::-webkit-snapshotted-plugin-content): New rules for a default label style.

* platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
* platform/LocalizedStrings.h:
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/chromium/LocalizedStringsChromium.cpp:
* platform/efl/LocalizedStringsEfl.cpp:
* platform/gtk/LocalizedStringsGtk.cpp:
* platform/qt/LocalizedStringsQt.cpp:

* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
that RenderSnapshottedPlugIn no longer is an embedded object.

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
(WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
(WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
(WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
    a renderer, otherwise use the typical plug-in path.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
    need to give it to the renderer.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
    should show immediately.
(WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
    to swap to the Shadow Root.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
    in being recreated. Make sure we reattach so that a plugin renderer will be created.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
    displayState for snapshots.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): The new methods listed above.
(WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
    a snapshot should be immediately labeled.

* page/ChromeClient.h: No need for plugInStartLabelImage any more.

* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
(WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
(WebCore::RenderSnapshottedPlugIn::getCursor):
(WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn): New inheritance. Some method renaming.

Source/WebKit2: Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284

Reviewed by Simon Fraser.

Take three of this commit - after rollout in r142400 and r142405.
We no longer have any need for plugInStartLabelImage.

* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Remove plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.cpp: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.

Tools: Remove use of plugInStartLabelImage
https://bugs.webkit.org/show_bug.cgi?id=108273

Reviewed by Simon Fraser.

Take two - after rollout in r142405.
Removed plugInStartLabelImage entry from client structure.

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::InjectedBundlePage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG TypeOf implementation should have its backend code aligned to what the CFA does
https://bugs.webkit.org/show_bug.cgi?id=109385

Reviewed by Sam Weinig.
        
The problem was that if we ended up trying to constant fold, but didn't succeed
because of prediction mismatches, then we would also fail to do filtration.
        
Rearranged the control flow in the CFA to fix that.
        
As far as I know, this is asymptomatic - it's sort of OK for the CFA to prove less
things, which is what the bug was.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142508 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=109349

Reviewed by Sam Weinig.

.: 

* Source/autotools/symbols.filter:

Source/WebCore: 

Expose setMinimumTimerInterval() and implement the backup/restore to keep
a consistent state between tests.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setMinimumTimerInterval):
(WebCore):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:

Source/WebKit/gtk: 

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
* WebCoreSupport/DumpRenderTreeSupportGtk.h:
(DumpRenderTreeSupportGtk):

Source/WebKit/mac: 

* WebView/WebView.mm:
* WebView/WebViewPrivate.h:

Source/WebKit/qt: 

* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
* WebCoreSupport/DumpRenderTreeSupportQt.h:

Source/WebKit2: 

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):

Tools: 

Get rid of TestRunner's setMinimumTimerInterval and all the related functions.

This also fixes an oddity:
TestRunners were initialized with a minimum timer interval of 10 milliseconds instead
of using the default value. All with the same copy of an outdated comment.

* DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
* DumpRenderTree/TestRunner.h:
(TestRunner):
* DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp:
* DumpRenderTree/chromium/TestRunner/public/WebPreferences.h:
* DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:
(WebTestRunner::TestRunner::TestRunner):
* DumpRenderTree/chromium/TestRunner/src/TestRunner.h:
(TestRunner):
* DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp:
(WebTestRunner::WebPreferences::reset):
(WebTestRunner::WebPreferences::applyTo):
* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHost::reset):
* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::resetDefaultsToConsistentValues):
* DumpRenderTree/efl/TestRunnerEfl.cpp:
* DumpRenderTree/gtk/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues):
* DumpRenderTree/gtk/TestRunnerGtk.cpp:
* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting):
* DumpRenderTree/mac/TestRunnerMac.mm:
* DumpRenderTree/qt/DumpRenderTreeQt.cpp:
(WebCore::WebPage::resetSettings):
* DumpRenderTree/qt/TestRunnerQt.cpp:
* DumpRenderTree/qt/TestRunnerQt.h:
(TestRunner):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebViewToConsistentStateBeforeTesting):
* DumpRenderTree/win/TestRunnerWin.cpp:
* DumpRenderTree/wx/TestRunnerWx.cpp:
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
* WebKitTestRunner/InjectedBundle/TestRunner.h:
(TestRunner):

LayoutTests: 

Update the tests to use InternalSettings.

* fast/dom/timer-increase-min-interval-and-reset-part-1.html:
* fast/dom/timer-increase-min-interval-repeating.html:
* fast/dom/timer-increase-min-interval.html:
* fast/dom/timer-increase-then-decrease-min-interval-repeating.html:
* fast/dom/timer-increase-then-decrease-min-interval.html:


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