Improve display of failed builds at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126542
<rdar://problem/15753550>

Reviewed by Timothy Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:
Instead of hardcoding step name, look for the first step that failed.
While at it, added a popover with more links. There are multiple, and it's good
to have a choice of which one to look at in each situation.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype.get successful): Being successful is not the opposite
of having failed. Many iterations are interrupted for whatever reason internal to
Buildbot, and these are suppoed to be orange, not red.
(BuildbotIteration.prototype.get productive): Changed to exclude inerrupted iterations,
not only WillRetry ones.
(BuildbotIteration.prototype.get failed): Changed to only include iterations that
actually failed, more likely indicating a problem with code base.
(BuildbotIteration.prototype.get firstFailedStepName):
(BuildbotIteration.prototype.failureLogURL): Expose informaiton about failure.
(BuildbotIteration.prototype.get failureLogs): Ditto.
(BuildbotIteration.prototype.update): Store complete results for the failed step.
Not every failure stops the iteration, so we could have multiple failed steps,
but let's see if seeing just the first one will be enough.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
(BuildbotQueue.prototype.get firstRecentUnsuccessfulIteration): Updated to work in
terms of successful iterations.
(BuildbotQueue.prototype.get mostRecentSuccessfulIteration): Ditto.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus): Updated to work in
terms of successful iterations.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
Removed code to create a path to build output, we now take it from results JSON.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:
Added styles for the new popover.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
There should be a delay when quickly switching to a different popover at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126472

Reviewed by Timothy Hatcher.

Added a delay when quickly switching to a different popover, making it easier to
move mouse pointer from active element to its popover without accidentally opening
a different popover.

Used this code to add a delay before creating a popover. This doesn't change UI
behavior, as there was alerady a delay before it became visible, but it avoids
flooding buildbot server with http requests when quickly moving the mouse over
dashboard page.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Popover.js:
Fixed a case where popover could get stuck. If content was updated while fade-out
transition was already in place, the transition was removed for no good reason.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/PopoverTracker.js:
(PopoverTracker._onblur): While at it, also taught popovers to disappear on window blur.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Popover.css:
(.popover.step-in): Now that PopoverTracker has a 200ms delay of its own, reduced
popover delay from 1s to 800ms.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r161381): [GTK] Rendering is broken in GTK after r161381
https://bugs.webkit.org/show_bug.cgi?id=126570

Reviewed by Tim Horton.

Use LayoutRect::infiniteRect() instead of IntRect::infiniteRect()
when a LayoutRect is expected.

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::fragmentsBoundingBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::clippedByAncestor):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed test expectation update.

* platform/mac/TestExpectations: Mark webgl/1.0.2/conformance/rendering/gl-scissor-test.html as flaky on
Mavericks Debug.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161444 268f45cc-cd09-0410-ab3c-d52691b4dbfc
r161364 caused JSC tests regression on non-DFG builds (e.g. C Loop and Windows).
https://bugs.webkit.org/show_bug.cgi?id=126589.

Reviewed by Filip Pizlo.

After the removal of ENABLE(VALUE_PROFILER), the LLINT is now expecting the
relevant opcode operands to point to ValueProfiler data structures and will
write profiling data into them. Hence, we need to allocate these data
structures even though the profiling data won't be used in non-DFG builds.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161446 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TileController can fail to receive exposedRect from the drawing area if set at the wrong time
https://bugs.webkit.org/show_bug.cgi?id=126536

Reviewed by Anders Carlsson.

Move exposedRect to FrameView so it can be pushed in from WebKit before we have
a TiledBacking, and can be retrieved by the TiledBacking when it needs to.

* WebCore.exp.in:
Export some things.

* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::setExposedRect):
* page/FrameView.h:
Store the exposed rect on FrameView. When it changes, if the main frame
has a TiledBacking, inform it of the change.

* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::exposedRect):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
Plumbing so that TileController can retrieve the exposedRect from FrameView.

* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::platformCALayerExposedRect):
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::exposedRectDidChange):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::updateTileCoverageMap):
Don't store the exposed rect or clipsToExposedRect on TileController.
Instead, retrieve it from our client.
Make use of the fact that we can test if a rect is infinite
instead of having a separate boolean property for that.

* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
(WebCore::RenderLayerBacking::exposedRect):
Hand the FrameView's exposedRect back to our GraphicsLayer.
We only support clipping for the main frame TileController for now.

* rendering/RenderLayerBacking.h:

* UIProcess/API/mac/WKView.mm:
(-[WKView _updateViewExposedRect]):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::setExposedRect):
(WebKit::DrawingAreaProxy::exposedRectChangedTimerFired):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::exposedRect):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
* UIProcess/WebPageProxy.h:
Move exposedRect stuff from WebPageProxy to DrawingAreaProxy.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Push the exposedRect down into WebCore.

* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer):
Get rid of "clipsToExposedRect", we just use infinite-ness of the rect
to indicate that now.
Don't scroll an infinite rect; it won't work.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Repatch write barrier slow path call doesn't align the stack in the presence of saved registers
https://bugs.webkit.org/show_bug.cgi?id=126093

Reviewed by Geoffrey Garen.

* jit/Repatch.cpp: Reworked the stack alignment code for calling out to C code on the write barrier slow path.
We need to properly account for the number of reused registers that were saved to the stack, so we have to 
pass the ScratchRegisterAllocator around.
(JSC::storeToWriteBarrierBuffer):
(JSC::writeBarrier):
(JSC::emitPutReplaceStub):
(JSC::emitPutTransitionStub):
* jit/ScratchRegisterAllocator.h: Previously the ScratchRegisterAllocator only knew whether or not it had
reused registers, but not how many. In order to correctly align the stack for calls to C slow paths for 
the write barriers in inline caches we need to know how the stack is aligned. So now ScratchRegisterAllocator
tracks how many registers it has reused.
(JSC::ScratchRegisterAllocator::ScratchRegisterAllocator):
(JSC::ScratchRegisterAllocator::allocateScratch):
(JSC::ScratchRegisterAllocator::didReuseRegisters):
(JSC::ScratchRegisterAllocator::numberOfReusedRegisters):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
* llint/LowLevelInterpreter64.asm: Random typo fix.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[ASAN] Building with trunk clang corrupts sandbox profile with comment from Compiler.h
https://bugs.webkit.org/show_bug.cgi?id=124532

Reviewed by David Kilzer.

* wtf/Compiler.h:
Remove this quirk - it does nothing.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161451 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r161447.
http://trac.webkit.org/changeset/161447
https://bugs.webkit.org/show_bug.cgi?id=126592

needs some more work (Requested by thorton on #webkit).

Source/WebCore:

* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
* page/FrameView.h:
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::setExposedRect):
(WebCore::TileController::setClipsToExposedRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::updateTileCoverageMap):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
* rendering/RenderLayerBacking.h:

Source/WebKit2:

* UIProcess/API/mac/WKView.mm:
(-[WKView _updateViewExposedRect]):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
* UIProcess/DrawingAreaProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::viewExposedRectChanged):
(WebKit::WebPageProxy::exposedRectChangedTimerFired):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::viewExposedRect):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::setExposedRect):
(WebKit::DrawingArea::setClipsToExposedRect):
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::viewExposedRectChanged):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::setClipsToExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateMainFrameClipsToExposedRect):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setClipsToExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::updateMainFrameClipsToExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Popovers at build.webkit.org/dashboard could have titles
https://bugs.webkit.org/show_bug.cgi?id=126495

Reviewed by Timothy Hatcher.

Added titles to all popovers except for pending revisions one, which I would like
to improve more (probably add an ETA).

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:
(BuildbotBuilderQueueView.prototype._presentPopoverFailureLogs): Moved code for
adding a title to base class.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Moved code for inserting
a divider to a separate function.
(BuildbotQueueView.prototype._presentPopoverForRevisionRange): Added a title.
(BuildbotQueueView.prototype._presentNoChangePopover): Updated the text to match
title from above function.
(BuildbotQueueView.prototype._revisionPopoverContentForIteration): Renamed "contentElement"
variable to "content" to match all other code.
(BuildbotQueueView.prototype._addIterationHeadingToPopover): Added.
(BuildbotQueueView.prototype._addDividerToPopover): Added.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype._popoverContentForLayoutTestRegressions): Add a title.
(BuildbotTesterQueueView.prototype._presentPopoverForLayoutTestRegressions): Ditto.
(BuildbotTesterQueueView.prototype._presentPopoverForMultipleFailureKinds): Ditto.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161454 268f45cc-cd09-0410-ab3c-d52691b4dbfc
HTML5 video tag Does Not Load in Apache htaccess/htpasswd Protected Directory
https://bugs.webkit.org/show_bug.cgi?id=40382

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/video-auth.html

Adopt a new AVFoundation API to handle authentication challenge generated while loading
media through an AVAsset. The authentication request comes through as a
NSURLAuthenticationChallenge, and is wrapped in a WebCore::AuthenticationChallenge
by MediaPlayerPrivateAVFoundationObjC, and is sent up to the HTMLMediaElement to handle.
The HTMLMediaElement creates a ResourceRequest, and passes the challenge up to the
ResourceLoadNotifier.

To allow the HTMLMediaElement to initiate handling an AuthenticationChallenge without
actually creating a ResourceLoader, allow ResourceLoaderDelegate to accept a unique
identifier and a DocumentLoader in lieu of a ResourceLoader.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoadNotifier::didCancelAuthenticationChallenge):
* loader/ResourceLoadNotifier.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::shouldWaitForResponseToAuthenticationChallenge):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerShouldWaitForResponseToAuthenticationChallenge):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForResponseToAuthenticationChallenge):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):

LayoutTests:

* http/tests/media/resources/video-auth.php: Added.
* http/tests/media/video-auth-expected.txt: Added.
* http/tests/media/video-auth.html: Added.
* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
PlatformLayer containing scrollbars does not disappear when setting overflow:hidden on page root, until resize.
https://bugs.webkit.org/show_bug.cgi?id=116051

Reviewed by Simon Fraser.

Move the pre-existing call to addedOrRemovedScrollbar() outside of the else-statement
in updateScrollbars() so that changes made in the if-statement cause the scrollbar
layers to be updated. The scrollbarAddedOrRemoved local variable guarding access to
addedOrRemovedScrollbar() is already being set (but never checked) inside the if-statement.

* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DoYouEvenBench: Extract tests and runner code from benchmark.js/html
https://bugs.webkit.org/show_bug.cgi?id=126596

Reviewed by Stephanie Lewis.
        
Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.

Added a "client" interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
update its UI. Also made BenchmarkRunner store a tree of results so that the serialization of test names
could be isolated from BenchmarkRunner itself in the future.

* DoYouEvenBench/benchmark.html:
Moved the code to instantiate and update UI here from benchmark.js. The test code was moved out of this
file into resources/tests.js.

* DoYouEvenBench/resources/benchmark-runner.js: Renamed from PerformanceTests/DoYouEvenBench/benchmark.js.
(SimplePromise): Moved from benchmark.js
(SimplePromise.prototype.then): Ditto.
(SimplePromise.prototype.resolve): Ditto.
(BenchmarkTestStep): Added. Wraps each test step.
(BenchmarkRunner.suite): Moved from benchmark.js.
(BenchmarkRunner.setClient): Added.
(BenchmarkRunner.waitForElement): Moved.
(BenchmarkRunner._removeFrame): Ditto.
(BenchmarkRunner._appendFrame): Ditto. Set the width and the height of the iframe as they're more than
presentational as they affect performance.
(BenchmarkRunner._waitAndWarmUp): Ditto.
(BenchmarkRunner._runTest): Ditto.
(BenchmarkRunner._testName): Ditto.
(BenchmarkState): Ditto.
(BenchmarkState.prototype.currentSuite): Ditto.
(BenchmarkState.prototype.currentTest): Ditto.
(BenchmarkState.prototype.next): Ditto.
(BenchmarkState.prototype.isFirstTest): Ditto.
(BenchmarkState.prototype.prepareCurrentSuite): Ditto.
(BenchmarkRunner.step): Ditto.
(BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
benchmark.html. Also moved the code to accumulate the totals here from _finalize.
(BenchmarkRunner._finalize): Moved. 

* DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
Uses BenchmarkTestStep instead of an array for each test step.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Add myself as a committer.

* Scripts/webkitpy/common/config/contributors.json:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Typo "clipboarPrefixString"
https://bugs.webkit.org/show_bug.cgi?id=126595

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-01-07
Reviewed by Sam Weinig.

* UserInterface/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
(WebInspector.ConsoleCommandResult.prototype.get clipboardPrefixString):
* UserInterface/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype.get clipboardPrefixString):
(WebInspector.ConsoleMessageImpl.prototype.toClipboardString):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add buildbot infrasctructure for building and testing JSC cloop
https://bugs.webkit.org/show_bug.cgi?id=126604

Reviewed by Geoffrey Garen.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(CompileCLOOP):
(RunCLOOPTests):
(RunCLOOPTests.countFailures):
(BuildAndTestCLOOP):



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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update buiddir to be unique.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161463 268f45cc-cd09-0410-ab3c-d52691b4dbfc
createElementNS handles element name 'xmlns' correctly.
https://bugs.webkit.org/show_bug.cgi?id=126553

Patch by Victor Costan <costan@gmail.com> on 2014-01-07
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Tests: fast/dom/createElementNS-namespace-errors.html
       fast/dom/setAttributeNS-namespace-errors.html

* dom/Document.cpp:
(WebCore::Document::hasValidNamespaceForElements): updated to match DOM3/DOM4 spec.
(WebCore::Document::hasValidNamespaceForAttributes): updated to match DOM3/DOM4 spec.

LayoutTests:

* fast/dom/createElementNS-namespace-errors-expected.txt: Added.
* fast/dom/createElementNS-namespace-errors.html: Added. Covers all the corner cases in the DOM4 spec.
* fast/dom/script-tests/setAttributeNS-prefix-and-null-namespace.js: Removed.
* fast/dom/setAttributeNS-expected.txt: Updated to match cleaned up test.
* fast/dom/setAttributeNS-namespace-errors-expected.txt: Added.
* fast/dom/setAttributeNS-namespace-errors.html: Added. Covers all the corner cases in the DOM4 spec.
* fast/dom/setAttributeNS-prefix-and-null-namespace-expected.txt: Removed.
* fast/dom/setAttributeNS-prefix-and-null-namespace.html: Removed. Subsumed by setAttributeNS-namespace-errors.
* fast/dom/setAttributeNS.html: Cleaned up.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161464 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG fixup phase should be responsible for inserting ValueToInt32's as needed and it should use Phantom to keep the original values alive in case of OSR exit
https://bugs.webkit.org/show_bug.cgi?id=126600

Reviewed by Michael Saboff.
        
This fixes an embarrassing OSR exit liveness bug. It also simplifies the code. We were
already using FixupPhase as the place where conversion nodes get inserted. ValueToInt32
was the only exception to that rule, and that was one of the reasons why we had this bug.
        
Henceforth ValueToInt32 is only inserted by FixupPhase, and only when it is necessary:
we have a BitOp that will want a ToInt32 conversion and the operand is not predicted to
already be an int32. If FixupPhase inserts any ValueToInt32's then the BitOp will no
longer appear to use the original operand, which will make OSR exit think that the
original operand is dead. We work around this they way we always do: insert a Phantom on
the original operands right after the BitOp. This ensures that any OSR exit in any of the
ValueToInt32's or in the BitOp itself will have values for the original inputs.

* dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::BackwardsPropagationPhase::propagate):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsic):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixIntEdge):
(JSC::DFG::FixupPhase::fixBinaryIntEdges):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* tests/stress/bit-op-value-to-int32-input-liveness.js: Added.
(foo):



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