Fix web timing assertion failure.
https://bugs.webkit.org/show_bug.cgi?id=133094
<rdar://problem/16966032>

Patch by Alex Christensen <achristensen@webkit.org> on 2014-05-20
Reviewed by Alexey Proskuryakov.

* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::getConnectionTimingData):
Set requestStart and responseStart to 0 instead of -1 to match the
ResourceLoadTiming constructor and prevent the assertion failure in
PerformanceTiming::responseStart.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169119 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION: [CSS Regions] Content flowed directly into the flow thread that ends up in the second region is not properly repainted
https://bugs.webkit.org/show_bug.cgi?id=133111

Reviewed by David Hyatt.

Source/WebCore:
When computing the repaint rect of an element flowed into a flow thread, if the element is flowed directly into
the flow thread (meaning its containing block is the flow thread itself), the region's position within the flow
must no longer be taken into consideration, because its already included in the element's |topLeft|.

Test: fast/regions/hover-element-flowed-second-region.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):

LayoutTests:
Added test for the correct repaint of an element flowed directly into the second region of a flow thread.

* fast/regions/hover-element-flowed-second-region-expected.html: Added.
* fast/regions/hover-element-flowed-second-region.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSArray::shiftCountWith* could be more efficient
https://bugs.webkit.org/show_bug.cgi?id=133011

Reviewed by Geoffrey Garen.


Source/JavaScriptCore: 
Our current implementations of shiftCountWithAnyIndexingType and shiftCountWithArrayStorage 
are scared of the presence of any holes in the array. We can mitigate this somewhat by enabling 
them to correctly handle holes, thus avoiding the slowest of slow paths in most cases.

* runtime/ArrayStorage.h:
(JSC::ArrayStorage::indexingHeader):
(JSC::ArrayStorage::length):
(JSC::ArrayStorage::hasHoles):
* runtime/IndexingHeader.h:
(JSC::IndexingHeader::publicLength):
(JSC::IndexingHeader::from):
* runtime/JSArray.cpp:
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):
* runtime/JSArray.h:
(JSC::JSArray::shiftCountForShift):
(JSC::JSArray::shiftCountForSplice):
(JSC::JSArray::shiftCount):
* runtime/Structure.cpp:
(JSC::Structure::holesRequireSpecialBehavior):
* runtime/Structure.h:

LayoutTests: 
Added a performance regression test which tests the contiguous shift case. We're ~85% faster 
on this microbenchmark with this patch.

Also added a bunch of tests for each permutation of contiguous/array storage with no holes, holes,
and holes that require special behavior (e.g. indexed properties in the prototype chain).

* js/array-storage-splice-holes-expected.txt: Added.
* js/array-storage-splice-holes-require-special-behavior-expected.txt: Added.
* js/array-storage-splice-holes-require-special-behavior.html: Added.
* js/array-storage-splice-holes.html: Added.
* js/array-storage-splice-no-holes-expected.txt: Added.
* js/array-storage-splice-no-holes.html: Added.
* js/contiguous-splice-holes-expected.txt: Added.
* js/contiguous-splice-holes-require-special-behavior-expected.txt: Added.
* js/contiguous-splice-holes-require-special-behavior.html: Added.
* js/contiguous-splice-holes.html: Added.
* js/contiguous-splice-no-holes-expected.txt: Added.
* js/contiguous-splice-no-holes.html: Added.
* js/regress/array-splice-contiguous-expected.txt: Added.
* js/regress/array-splice-contiguous.html: Added.
* js/regress/script-tests/array-splice-contiguous.js: Added.
(foo):
* js/script-tests/array-storage-splice-holes-require-special-behavior.js: Added.
* js/script-tests/array-storage-splice-holes.js: Added.
* js/script-tests/array-storage-splice-no-holes.js: Added.
* js/script-tests/contiguous-splice-holes-require-special-behavior.js: Added.
* js/script-tests/contiguous-splice-holes.js: Added.
* js/script-tests/contiguous-splice-no-holes.js: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] WebProcess doesn't follow localization of UI process when run as a service
https://bugs.webkit.org/show_bug.cgi?id=133126
<rdar://problem/13396515>
<rdar://problem/16561084>

Reviewed by Sam Weinig and Tim Horton.


Source/WebKit2: 
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
(WebKit::handleXPCBootstrap):
(main):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(WebKit::handleXPCBootstrap):
(main):
Set localization very early in process lifetime (in development builds, that's
even before WebKit framework is loaded).

* UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService):
Pass UI process localization to the service, computing it in the same way we do
for child processes.

Tools: 
* WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize): It was too late to override language
here, and it's not necessary any more. Keeping the code for older OS versions in
case it did have effect in some code paths.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
https://bugs.webkit.org/show_bug.cgi?id=133106
<rdar://problem/16967648>

Reviewed by Sam Weinig.

Fix regression from r169063. That commit removed scrolledContentsLayers from
frame scrolling nodes, but they do actually use them.

So put them back; not in the base class, because they have a somewhat different
meaning for overflow scrolling and frame scrolling.

Source/WebCore:
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateFrameScrollingNode):
* page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer):
* page/scrolling/ScrollingStateFrameScrollingNode.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

Source/WebKit2:
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::RemoteScrollingTreeTextStream::dump):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r169065): Mountain Lion run-api-tests failures: ASSERTION FAILED: 
Uncaught exception - -[NSRegularLegacyScrollerImp setPresentationValue:]: 
unrecognized selector sent to instance 0x7ff51aa38000
https://bugs.webkit.org/show_bug.cgi?id=133121

Reviewed by Tim Horton.

* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):



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