REGRESSION (r161195): Acid2 regression tests frequently fail
https://bugs.webkit.org/show_bug.cgi?id=126432

* TestExpectations: Marking them as flaky.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add new files for UI-side scrolling
https://bugs.webkit.org/show_bug.cgi?id=126532

Source/WebCore:

Reviewed by Anders Carlson.

* WebCore.xcodeproj/project.pbxproj: Make lots of scrolling-related headers Private
so WebKit2 can include them.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scheduleUpdateScrollPositionForNode): Callback that
indicates that the given node has been scrolled asynchronously. Currently only
handles the main frame.
* page/scrolling/ScrollingCoordinator.h: Add support for type-casts of a remote subclass
in another namespace.
(WebCore::ScrollingCoordinator::isRemoteScrollingCoordinator):
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isRemoteScrollingTree):

Source/WebKit2:

Reviewed by Anders Carlson.

Add RemoteScrollingCoordinator, RemoteScrollingCoordinatorProxy,
RemoteScrollingCoordinatorTransaction, RemoteScrollingTree.

These allow the scrolling tree to be used in the UI process.
RemoteScrollingCoordinator builds a ScrollingStateTree, which is
encoded by RemoteScrollingCoordinatorTransaction. Decoding the
transaction recreates that ScrollingStateTree in the UI process,
and RemoteScrollingCoordinatorProxy "commits" that to update
the RemoteScrollingTree.

New classes are not hooked up to anything yet.

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: Added.
(ArgumentCoder<ScrollingStateNode>::encode):
(ArgumentCoder<ScrollingStateNode>::decode):
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(ArgumentCoder<ScrollingStateFixedNode>::encode):
(ArgumentCoder<ScrollingStateFixedNode>::decode):
(ArgumentCoder<ScrollingStateStickyNode>::encode):
(ArgumentCoder<ScrollingStateStickyNode>::decode):
(WebKit::encodeNodeAndDescendants):
(WebKit::RemoteScrollingCoordinatorTransaction::encode):
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h: Added.
(WebKit::RemoteScrollingCoordinatorTransaction::setStateTreeToEncode):
(WebKit::RemoteScrollingCoordinatorTransaction::scrollingStateTree):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: Added.
(WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
(WebKit::RemoteScrollingCoordinatorProxy::~RemoteScrollingCoordinatorProxy):
(WebKit::RemoteScrollingCoordinatorProxy::layerTreeHost):
(WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree):
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):
(WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: Added.
* UIProcess/Scrolling/RemoteScrollingTree.cpp: Added.
(WebKit::RemoteScrollingTree::create):
(WebKit::RemoteScrollingTree::RemoteScrollingTree):
(WebKit::RemoteScrollingTree::~RemoteScrollingTree):
(WebKit::RemoteScrollingTree::tryToHandleWheelEvent):
(WebKit::RemoteScrollingTree::handleWheelEventPhase):
(WebKit::RemoteScrollingTree::updateMainFrameScrollPosition):
(WebKit::RemoteScrollingTree::createNode):
* UIProcess/Scrolling/RemoteScrollingTree.h: Added.
(WebKit::RemoteScrollingTree::scrollingCoordinatorProxy):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Scrolling/RemoteScrollingCoordinator.h: Added.
(WebKit::RemoteScrollingCoordinator::create):
* WebProcess/Scrolling/RemoteScrollingCoordinator.messages.in: Added.
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm: Added.
(WebKit::RemoteScrollingCoordinator::RemoteScrollingCoordinator):
(WebKit::RemoteScrollingCoordinator::~RemoteScrollingCoordinator):
(WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit):
(WebKit::RemoteScrollingCoordinator::createScrollingTreeNode):
(WebKit::RemoteScrollingCoordinator::isRubberBandInProgress):
(WebKit::RemoteScrollingCoordinator::setScrollPinningBehavior):
(WebKit::RemoteScrollingCoordinator::buildTransaction):
(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the build.

Need to add RemoteScrollingCoordinator to MESSAGE_RECEIVERS so that
RemoteScrollingCoordinatorMessages.h gets generated.

* DerivedSources.make:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebGL] FBO Depth Buffer Attachment Function Improperly Clearing with 0
https://bugs.webkit.org/show_bug.cgi?id=126538
<rdar://problem/15201336>

Reviewed by Dean Jackson.

Tested by webgl/1.0.2/resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html

* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::initializeAttachments): Clear depth buffer with 1.0f (rather than 0), to match expected
default (clear) buffer state for OpenGL. Using 0 would require us to flip the clear mask for the depth attachment
type.


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

Need to look in the WebProcess/Scrolling directory for .messages.in files.

* DerivedSources.make:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add write barriers to the LLInt
https://bugs.webkit.org/show_bug.cgi?id=126527

Reviewed by Filip Pizlo.

This patch takes a similar approach to how write barriers work in the baseline JIT.
We execute the write barrier at the beginning of the opcode so we don't have to
worry about saving and restoring live registers across write barrier slow path calls
to C code.

* llint/LLIntOfflineAsmConfig.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_write_barrier_slow):
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/arm64.rb:
* offlineasm/instructions.rb:
* offlineasm/x86.rb:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebGL] Revise String Concatenation (Follow-up to r161247)
https://bugs.webkit.org/show_bug.cgi?id=126411

Reviewed by Dean Jackson.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniformLocation): Use more efficient string
concatenation per Darin Adler's suggestion.


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

* platform/mac/TestExpectations: Activate several tests that are now known to pass.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Get rid of DOM.setFileInputFiles from Protocol
https://bugs.webkit.org/show_bug.cgi?id=126312

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests, No changes in behavior.

It is a dead code as all ports in WebKit don't support it.
And this patch removes all things related to DOM.setFileInputFiles in Frontend.

* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
* inspector/protocol/DOM.json:

Source/WebInspectorUI:

Update InspectorWebBackendCommands.js after removing DOM.setFileInputFiles.

* UserInterface/InspectorWebBackendCommands.js:

LayoutTests:

* inspector-protocol/dom/setFileInputFiles-expected.txt: Removed.
* inspector-protocol/dom/setFileInputFiles.html: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add {IntRect, FloatRect}::infiniteRect() and ::isInfinite()
https://bugs.webkit.org/show_bug.cgi?id=126537

Reviewed by Simon Fraser.

* platform/graphics/FloatRect.h:
(WebCore::FloatRect::infiniteRect):
(WebCore::FloatRect::isInfinite):
* platform/graphics/IntRect.h:
(WebCore::IntRect::infiniteRect):
(WebCore::IntRect::isInfinite):
Add infiniteRect() and isInfinite() to FloatRect and IntRect.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setNeedsDisplay):
* rendering/PaintInfo.h:
(WebCore::PaintInfo::applyTransform):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::fragmentsBoundingBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::clippedByAncestor):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
Adopt the new functions.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Get rid of Inspector/BindingVisitors.h
https://bugs.webkit.org/show_bug.cgi?id=126374

Reviewed by Joseph Pecoraro.

No new tests, No change in behavior.

In r161204, methods related to BindingVisitors was removed.

* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptProfiler.h:
* inspector/BindingVisitors.h: Removed.
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorMemoryAgent.cpp:


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