Remove invalid sh4 specific code in JITInlines header.
https://bugs.webkit.org/show_bug.cgi?id=131692

Patch by Julien Brianceau <jbriance@cisco.com> on 2014-04-15
Reviewed by Geoffrey Garen.

* jit/JITInlines.h:
(JSC::JIT::callOperation): Prototype is not F_JITOperation_EJJZ
anymore since r160244, so the sh4 specific code is invalid now
and has to be removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Introduce API::FormClient
https://bugs.webkit.org/show_bug.cgi?id=131714

Reviewed by Tim Horton.

* UIProcess/API/APIFormClient.h: Added.
(API::FormClient::~FormClient):
(API::FormClient::willSubmitForm):

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageFormClient): Changed to create a WebFormClient and call
WebPageProxy::setFormClient.

* UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::WebFormClient): Added a constructor from WKPageFormClientBase.
* UIProcess/WebFormClient.h: Added inheritance from API::FormClient, marked overrides as
such.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize m_formClient member.
(WebKit::WebPageProxy::setFormClient): Added. Updates m_formClient.
(WebKit::WebPageProxy::close): Updated code to clear m_formClient.
(WebKit::WebPageProxy::willSubmitForm): Updated for type change.
(WebKit::WebPageProxy::initializeFormClient): Deleted.
* UIProcess/WebPageProxy.h:

* WebKit2.xcodeproj/project.pbxproj: Added reference to new file.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
transitions/cancel-transition.html is very flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=131715

* platform/mac/TestExpectations: Marking as such.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
http/tests/websocket/tests/hybi/workers/close.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131716

* platform/mac/TestExpectations: Marking as such.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167332 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update bug number in TestExpectations file.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools: Update LLVM export scrpt to handle the build directory being different from the
source directory.

Rubber stamped by Geoffrey Garen.

* Scripts/export-llvm-build:

WebKitLibraries: Add LLVM binary drops for Mavericks using LLVM r206312.

Rubber stamped by Geoffrey Garen.

* LLVMIncludesMavericks.tar.bz2: Added.
* LLVMLibrariesMavericks.tar.bz2: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167334 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[New Multicolumn] Add support for column-span:all
https://bugs.webkit.org/show_bug.cgi?id=129330

Patch by Morten Stenshorne <mstensho@opera.com> on 2014-04-14
Reviewed by Dave Hyatt.


Source/WebCore: 
Column spanners are implemented as siblings of RenderMultiColumnSet
objects (i.e. the regions for the column rows). This means that they
are pulled out from the flow thread tree where they would otherwise
live. This causes some complexity, most of which is contained within
the multicol code.

A placeholder is put in the flow thread tree where the spanner's
renderer would otherwise live. This is needed in order make sure that
we interrupt line layout before after the spanner. We also need this
to be able to switch from one multicol set to the next.

Some extra logic is required when dynamically inserting and removing
flow thread descendants now, because we need to figure out if the
renderer added should trigger creation of new multi column sets. If
a spanner is inserted in the middle of a multi column set, we need to
detect this, split the set and put the spanner in the middle.

Wrote a bunch of tests. A few of the tests were copied from existing
(old-impl) tests and put in a separate directory. That directory can
be wiped when we turn on the new multicol implementation by default.

Tests: fast/multicol/newmulticol/adjacent-spanners.html
       fast/multicol/newmulticol/block-becomes-spanner.html
       fast/multicol/newmulticol/change-spanner-display.html
       fast/multicol/newmulticol/change-spanner-parent-display.html
       fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html
       fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html
       fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html
       fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html
       fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html
       fast/multicol/newmulticol/insert-row-content1.html
       fast/multicol/newmulticol/insert-row-content2.html
       fast/multicol/newmulticol/insert-row-content3.html
       fast/multicol/newmulticol/insert-row-content4.html
       fast/multicol/newmulticol/insert-row-content5.html
       fast/multicol/newmulticol/insert-row-content6.html
       fast/multicol/newmulticol/insert-row-content7.html
       fast/multicol/newmulticol/insert-row-content8.html
       fast/multicol/newmulticol/insert-row-content9.html
       fast/multicol/newmulticol/insert-spanner-child1.html
       fast/multicol/newmulticol/insert-spanner-child2.html
       fast/multicol/newmulticol/insert-spanner-child3.html
       fast/multicol/newmulticol/insert-spanner1.html
       fast/multicol/newmulticol/insert-spanner2.html
       fast/multicol/newmulticol/insert-spanner3.html
       fast/multicol/newmulticol/insert-spanner4.html
       fast/multicol/newmulticol/insert-spanner5.html
       fast/multicol/newmulticol/insert-spanner6.html
       fast/multicol/newmulticol/insert-spanner7.html
       fast/multicol/newmulticol/insert-spanner8.html
       fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html
       fast/multicol/newmulticol/remove-row-content1.html
       fast/multicol/newmulticol/remove-row-content2.html
       fast/multicol/newmulticol/remove-row-content3.html
       fast/multicol/newmulticol/remove-row-content4.html
       fast/multicol/newmulticol/remove-row-content5.html
       fast/multicol/newmulticol/remove-row-content6.html
       fast/multicol/newmulticol/remove-row-content7.html
       fast/multicol/newmulticol/remove-row-content8.html
       fast/multicol/newmulticol/remove-row-content9.html
       fast/multicol/newmulticol/remove-spanner1.html
       fast/multicol/newmulticol/remove-spanner2.html
       fast/multicol/newmulticol/remove-spanner3.html
       fast/multicol/newmulticol/remove-spanner4.html
       fast/multicol/newmulticol/remove-spanner5.html
       fast/multicol/newmulticol/remove-spanner6.html
       fast/multicol/newmulticol/sole-spanner.html
       fast/multicol/newmulticol/span-between-text.html
       fast/multicol/newmulticol/spanner-becomes-regular-block.html
       fast/multicol/newmulticol/spanner-first.html
       fast/multicol/newmulticol/spanner-img.html
       fast/multicol/newmulticol/spanner-inline-block.html
       fast/multicol/newmulticol/spanner-last.html
       fast/multicol/newmulticol/spanner-nested-dynamic.html
       fast/multicol/newmulticol/spanner-nested.html
       fast/multicol/newmulticol/spanner-pseudo-after1.html
       fast/multicol/newmulticol/spanner-pseudo-after2.html
       fast/multicol/newmulticol/spanner-pseudo-after3.html
       fast/multicol/newmulticol/spanner-pseudo-after4.html
       fast/multicol/newmulticol/spanner-pseudo-before-after1.html
       fast/multicol/newmulticol/spanner-pseudo-before-after2.html
       fast/multicol/newmulticol/spanner-pseudo-before-after3.html
       fast/multicol/newmulticol/spanner-pseudo-before-after4.html
       fast/multicol/newmulticol/spanner-pseudo-before1.html
       fast/multicol/newmulticol/spanner-pseudo-before2.html
       fast/multicol/newmulticol/spanner-pseudo-before3.html
       fast/multicol/newmulticol/spanner-pseudo-before4.html
       fast/multicol/newmulticol/spanner-table.html
       fast/multicol/newmulticol/spanner-with-margin.html
       fast/multicol/newmulticol/spanner1.html
       fast/multicol/newmulticol/spanner2.html
       fast/multicol/newmulticol/spanner3.html
       fast/multicol/newmulticol/spanner4.html
       fast/multicol/newmulticol/spanner5.html
       fast/multicol/newmulticol/spanner6.html
       fast/multicol/newmulticol/spanner7.html
       fast/multicol/newmulticol/spanner8.html
       fast/multicol/newmulticol/spanner9.html
       fast/multicol/newmulticol/trailing-margin-with-spanner.html
       fast/multicol/newmulticol/trailing-margin-with-spanner2.html

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
Disable the old anonymous multicol container and spanner anonymous
block generation machinery when the new multicol implementation is
enabled.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createMultiColumnFlowThread):
(WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
(WebCore::RenderBlockFlow::layoutBlockChild): Need to notify the
flow thread when a descendant's final position is known. Spanner
placeholders need to know where to terminate the column set that
it follows.
(WebCore::RenderBlockFlow::styleDidChange): Remove old code that
isn't needed anymore. The renderers in question (flow thread and
column sets) set display:block on themselves already. This code
caused problems for spanners, which got all their style wiped.
(WebCore::RenderBlockFlow::setMultiColumnFlowThread): If setting
the flow thread to nullptr, there's no need to create the "rare
data" structure.
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
(WebCore::RenderBlockFlow::addChild): beforeChild is retrieved via
the DOM. If it is a spanner, we need to locate the placeholder
here, because that's the correct location to insert siblings,
DOM-wise.
(WebCore::RenderBlockFlow::removeChild): The multicol flow thread
needs to know when children disappear.
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
Don't modify the height back and forth when calculating the
multicol container's final height, as that messes up balancing.
(WebCore::RenderBlockFlow::insertedIntoTree): Deleted.
(WebCore::RenderBlockFlow::willBeDestroyed): Deleted.
(WebCore::RenderBlockFlow::styleWillChange): Deleted.
(WebCore::RenderBlockFlow::lineAtIndex): Deleted.
* rendering/RenderBlockFlow.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::insertedIntoTree): Set up an element's
layer before notifying the flow thread. The multicol flow thread
may decide to move the element (if it's a spanner), which may
involve re-insertion of layers.  Calling
RenderObject::insertedIntoTree() last instead of first also better
matches the order we used to have prior to the introduction of
RenderElement, FWIW.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::removeRegionFromThread): Deleted.
(WebCore::RenderFlowThread::invalidateRegions): Deleted.
* rendering/RenderFlowThread.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
(WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): When
a flow thread descendant is inserted, the multicol flow thread
needs to be notified.
(WebCore::RenderMultiColumnFlowThread::firstMultiColumnSet):
(WebCore::RenderMultiColumnFlowThread::lastMultiColumnSet):
(WebCore::RenderMultiColumnFlowThread::firstColumnSetOrSpanner):
(WebCore::RenderMultiColumnFlowThread::nextColumnSetOrSpannerSiblingOf):
(WebCore::RenderMultiColumnFlowThread::previousColumnSetOrSpannerSiblingOf):
(WebCore::RenderMultiColumnFlowThread::layout):
(WebCore::RenderMultiColumnFlowThread::findSetRendering):
(WebCore::RenderMultiColumnFlowThread::populate):
(WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlowThread::addRegionToThread):
(WebCore::RenderMultiColumnFlowThread::willBeRemovedFromTree):
Need to detach column sets here, since they have pointers to their
flow thread.
(WebCore::RenderMultiColumnFlowThread::resolveMovedChild):
(WebCore::isValidColumnSpanner):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
(WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantBoxLaidOut):
(WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
Nothing to be done here for the time being. Column sets are now
created during box creation. We are going to need to add some code
here again once multicol properly supports nested fragmentation
contexts (and you get adjacent column rows because of that).
(WebCore::RenderMultiColumnFlowThread::regionAtBlockOffset):
During layout, don't trust the region interval tree, as that one
depends on the resulting layout.
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox): With
a convenience method to get the last column set, and column sets
now being created during normal box creation, this young method
needs an overhaul.
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
(WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::nextSiblingMultiColumnSet):
(WebCore::RenderMultiColumnSet::previousSiblingMultiColumnSet):
(WebCore::RenderMultiColumnSet::firstRendererInFlowThread):
(WebCore::RenderMultiColumnSet::lastRendererInFlowThread):
(WebCore::precedesRenderer):
(WebCore::RenderMultiColumnSet::containsRendererInFlowThread):
(WebCore::RenderMultiColumnSet::setLogicalTopInFlowThread):
(WebCore::RenderMultiColumnSet::setLogicalBottomInFlowThread):
(WebCore::RenderMultiColumnSet::pageLogicalTopForOffset):
(WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::addForcedBreak):
(WebCore::RenderMultiColumnSet::recalculateColumnHeight):
Previously only needed if columns were to be balanced, now it's
also needed when not balancing.
(WebCore::RenderMultiColumnSet::recordSpaceShortage): Some layout
elements actually have 0 height. Skip them, since they're not
taking us anywhere.
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
(WebCore::RenderMultiColumnSet::requiresBalancing): Column sets
now have individual balancing needs. If they precede a spanner,
they must always be balanced. For the last column set, see if
height is unspecified or column-fill is 'balance' (like before).
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::beginFlow):
(WebCore::RenderMultiColumnSet::endFlow):
(WebCore::RenderMultiColumnSet::layout):
(WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
(WebCore::RenderMultiColumnSet::columnRectAt):
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::paintColumnRules):
(WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
(WebCore::RenderMultiColumnSet::collectLayerFragments):
(WebCore::RenderMultiColumnSet::columnTranslationForOffset):
(WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight): Deleted.
(WebCore::RenderMultiColumnSet::findRunWithTallestColumns): Deleted.
(WebCore::RenderMultiColumnSet::clearForcedBreaks): Deleted.
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent): Deleted.
* rendering/RenderMultiColumnSet.h:
* rendering/RenderMultiColumnSpannerPlaceholder.cpp: Added.
(WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
(WebCore::RenderMultiColumnSpannerPlaceholder::renderName):
* rendering/RenderMultiColumnSpannerPlaceholder.h: Added.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree): Need to notify the
multicol flow thread when descendants are inserted. That may
trigger insertion of column sets, or, in the case of spanners,
they need to be moved out from the flow thread.
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMultiColumnSpannerPlaceholder):
(WebCore::RenderObject::isAnonymousBlock): Exclude column sets
here, so that they don't get involved in anonymous block merging
and other kinds of fun.
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.h:

LayoutTests: 
Wrote a bunch of tests. A few of the tests were copied from existing
(old-impl) tests and put in a separate directory. That directory can
be wiped when we turn on the new multicol implementation by default.

* fast/multicol/newmulticol/adjacent-spanners-expected.html: Added.
* fast/multicol/newmulticol/adjacent-spanners.html: Added.
* fast/multicol/newmulticol/block-becomes-spanner-expected.html: Added.
* fast/multicol/newmulticol/block-becomes-spanner.html: Added.
* fast/multicol/newmulticol/change-spanner-display-expected.html: Added.
* fast/multicol/newmulticol/change-spanner-display.html: Added.
* fast/multicol/newmulticol/change-spanner-parent-display-expected.html: Added.
* fast/multicol/newmulticol/change-spanner-parent-display.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-summary-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/continuation-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html: Added.
* fast/multicol/newmulticol/insert-row-content1-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content1.html: Added.
* fast/multicol/newmulticol/insert-row-content2-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content2.html: Added.
* fast/multicol/newmulticol/insert-row-content3-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content3.html: Added.
* fast/multicol/newmulticol/insert-row-content4-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content4.html: Added.
* fast/multicol/newmulticol/insert-row-content5-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content5.html: Added.
* fast/multicol/newmulticol/insert-row-content6-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content6.html: Added.
* fast/multicol/newmulticol/insert-row-content7-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content7.html: Added.
* fast/multicol/newmulticol/insert-row-content8-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content8.html: Added.
* fast/multicol/newmulticol/insert-row-content9-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content9.html: Added.
* fast/multicol/newmulticol/insert-spanner-child1-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner-child1.html: Added.
* fast/multicol/newmulticol/insert-spanner-child2-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner-child2.html: Added.
* fast/multicol/newmulticol/insert-spanner-child3-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner-child3.html: Added.
* fast/multicol/newmulticol/insert-spanner1-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner1.html: Added.
* fast/multicol/newmulticol/insert-spanner2-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner2.html: Added.
* fast/multicol/newmulticol/insert-spanner3-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner3.html: Added.
* fast/multicol/newmulticol/insert-spanner4-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner4.html: Added.
* fast/multicol/newmulticol/insert-spanner5-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner5.html: Added.
* fast/multicol/newmulticol/insert-spanner6-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner6.html: Added.
* fast/multicol/newmulticol/insert-spanner7-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner7.html: Added.
* fast/multicol/newmulticol/insert-spanner8-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner8.html: Added.
* fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block-expected.html: Added.
* fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html: Added.
* fast/multicol/newmulticol/remove-row-content1-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content1.html: Added.
* fast/multicol/newmulticol/remove-row-content2-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content2.html: Added.
* fast/multicol/newmulticol/remove-row-content3-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content3.html: Added.
* fast/multicol/newmulticol/remove-row-content4-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content4.html: Added.
* fast/multicol/newmulticol/remove-row-content5-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content5.html: Added.
* fast/multicol/newmulticol/remove-row-content6-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content6.html: Added.
* fast/multicol/newmulticol/remove-row-content7-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content7.html: Added.
* fast/multicol/newmulticol/remove-row-content8-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content8.html: Added.
* fast/multicol/newmulticol/remove-row-content9-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content9.html: Added.
* fast/multicol/newmulticol/remove-spanner1-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner1.html: Added.
* fast/multicol/newmulticol/remove-spanner2-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner2.html: Added.
* fast/multicol/newmulticol/remove-spanner3-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner3.html: Added.
* fast/multicol/newmulticol/remove-spanner4-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner4.html: Added.
* fast/multicol/newmulticol/remove-spanner5-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner5.html: Added.
* fast/multicol/newmulticol/remove-spanner6-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner6.html: Added.
* fast/multicol/newmulticol/sole-spanner-expected.html: Added.
* fast/multicol/newmulticol/sole-spanner.html: Added.
* fast/multicol/newmulticol/span-between-text-expected.html: Added.
* fast/multicol/newmulticol/span-between-text.html: Added.
* fast/multicol/newmulticol/spanner-becomes-regular-block-expected.html: Added.
* fast/multicol/newmulticol/spanner-becomes-regular-block.html: Added.
* fast/multicol/newmulticol/spanner-first-expected.html: Added.
* fast/multicol/newmulticol/spanner-first.html: Added.
* fast/multicol/newmulticol/spanner-img-expected.html: Added.
* fast/multicol/newmulticol/spanner-img.html: Added.
* fast/multicol/newmulticol/spanner-inline-block-expected.html: Added.
* fast/multicol/newmulticol/spanner-inline-block.html: Added.
* fast/multicol/newmulticol/spanner-last-expected.html: Added.
* fast/multicol/newmulticol/spanner-last.html: Added.
* fast/multicol/newmulticol/spanner-nested-dynamic-expected.html: Added.
* fast/multicol/newmulticol/spanner-nested-dynamic.html: Added.
* fast/multicol/newmulticol/spanner-nested-expected.html: Added.
* fast/multicol/newmulticol/spanner-nested.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after1-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after1.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after2-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after2.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after3-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after3.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after4-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after4.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after1-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after1.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after2-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after2.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after3-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after3.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after4-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after4.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before1-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before1.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before2-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before2.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before3-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before3.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before4-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before4.html: Added.
* fast/multicol/newmulticol/spanner-table-expected.html: Added.
* fast/multicol/newmulticol/spanner-table.html: Added.
* fast/multicol/newmulticol/spanner-with-margin-expected.html: Added.
* fast/multicol/newmulticol/spanner-with-margin.html: Added.
* fast/multicol/newmulticol/spanner1-expected.html: Added.
* fast/multicol/newmulticol/spanner1.html: Added.
* fast/multicol/newmulticol/spanner2-expected.html: Added.
* fast/multicol/newmulticol/spanner2.html: Added.
* fast/multicol/newmulticol/spanner3-expected.html: Added.
* fast/multicol/newmulticol/spanner3.html: Added.
* fast/multicol/newmulticol/spanner4-expected.html: Added.
* fast/multicol/newmulticol/spanner4.html: Added.
* fast/multicol/newmulticol/spanner5-expected.html: Added.
* fast/multicol/newmulticol/spanner5.html: Added.
* fast/multicol/newmulticol/spanner6-expected.html: Added.
* fast/multicol/newmulticol/spanner6.html: Added.
* fast/multicol/newmulticol/spanner7-expected.html: Added.
* fast/multicol/newmulticol/spanner7.html: Added.
* fast/multicol/newmulticol/spanner8-expected.html: Added.
* fast/multicol/newmulticol/spanner8.html: Added.
* fast/multicol/newmulticol/spanner9-expected.html: Added.
* fast/multicol/newmulticol/spanner9.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner-expected.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner2-expected.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner2.html: Added.
* platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167335 268f45cc-cd09-0410-ab3c-d52691b4dbfc
compileMakeRope does not emit necessary bounds checks
https://bugs.webkit.org/show_bug.cgi?id=130684
<rdar://problem/16398388>

Reviewed by Oliver Hunt.
        
Add string length bounds checks in a bunch of places. We should never allow a string
to have a length greater than 2^31-1 because it's not clear that the language has
semantics for it and because there is code that assumes that this cannot happen.
        
Also add a bunch of tests to that effect to cover the various ways in which this was
previously allowed to happen.

* dfg/DFGOperations.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileMakeRope):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileMakeRope):
* runtime/JSString.cpp:
(JSC::JSRopeString::RopeBuilder::expand):
* runtime/JSString.h:
(JSC::JSString::create):
(JSC::JSRopeString::RopeBuilder::append):
(JSC::JSRopeString::RopeBuilder::release):
(JSC::JSRopeString::append):
* runtime/Operations.h:
(JSC::jsString):
(JSC::jsStringFromRegisterArray):
(JSC::jsStringFromArguments):
* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSubstring):
(JSC::stringProtoFuncToLowerCase):
* tests/stress/make-large-string-jit-strcat.js: Added.
(foo):
* tests/stress/make-large-string-jit.js: Added.
(foo):
* tests/stress/make-large-string-strcat.js: Added.
* tests/stress/make-large-string.js: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update LLVM binary drops for Mountain Lion to LLVM r206312.

Rubber stamped by Geoffrey Garen.

* LLVMIncludesMountainLion.tar.bz2:
* LLVMLibrariesMountainLion.tar.bz2:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS WebKit2] Listen for system memory pressure notifications.
<https://webkit.org/b/131653>
<rdar://problem/16208123>

Reviewed by Antti Koivisto.

* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::install):

    Use the right invocation to summon the memory pressure handler.

(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):
(WebCore::MemoryPressureHandler::respondToMemoryPressure):

    Make stubbed out functions !PLATFORM(COCOA)


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Snapshotted plugins may need to be restarted if style properties are changed after initial load of plugin.
https://bugs.webkit.org/show_bug.cgi?id=131553.
<rdar://problem/15443375>

Reviewed by Timothy Horton.

Test: plugins/snapshotting/set-plugin-size-to-tiny.html

When updating embedded objects during our post layout checks, check for certain style changes
that may result in the plugin needing to be restarted.

* html/HTMLPlugInImageElement.h: 
Add m_plugInDimensionsSpecified field to keep track of whether or not dimensions on the plugin’s renderer have been specified.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
Initialize m_plugInDimensionsSpecified.
(WebCore::isSmallerThanTinySizingThreshold):
Refactoring, move check for whether or not plugin is smaller than the tiny plugin size threshold to this method.
(WebCore::HTMLPlugInImageElement::isTopLevelFullPage): 
Refactoring, move check for whether or not plugin is top level full page to this method.
(WebCore::HTMLPlugInImageElement::checkSnapshotStatus): 
Use refactored checks here as well to determine whether or not we need to restart the snapshotted plugin.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use refactored checks.
If plugin dimensions were specified, set m_plugInDimensionsSpecified to true.
* platform/mac-wk2/plugins/snapshotting/set-plugin-size-to-tiny-expected.txt: Added.
* plugins/snapshotting/set-plugin-size-to-tiny.html: Added.

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