WebKit-https.git
8 years agoRemove DynamicAnnotations.h?
mrobinson@webkit.org [Fri, 18 Apr 2014 21:03:23 +0000 (21:03 +0000)]
Remove DynamicAnnotations.h?
https://bugs.webkit.org/show_bug.cgi?id=131754

Reviewed by Simon Fraser.

This file, which helped support tools like Valgrind was unused.

* WTF.vcxproj/WTF.vcxproj: Remove references to the files.
* WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files.
* WTF.xcodeproj/project.pbxproj: Remove references to the files.
* wtf/CMakeLists.txt: Remove references to the files.
* wtf/DynamicAnnotations.cpp: Removed.
* wtf/DynamicAnnotations.h: Removed.
* wtf/ThreadSafeRefCounted.h: Remove references to the files.
* wtf/text/StringStatics.cpp: Remove references to the files.

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

8 years agoAddress a couple of review comments
andersca@apple.com [Fri, 18 Apr 2014 20:56:13 +0000 (20:56 +0000)]
Address a couple of review comments
https://bugs.webkit.org/show_bug.cgi?id=131856

Reviewed by Dan Bernstein.

* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/WKWebView.h:

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

8 years ago[WK1] media/event-attributes.html is flaky
ap@apple.com [Fri, 18 Apr 2014 20:48:15 +0000 (20:48 +0000)]
[WK1] media/event-attributes.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131855

* platform/mac/TestExpectations: Marking as such.

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

8 years agoMallocBench: removed the --measure-heap option
ggaren@apple.com [Fri, 18 Apr 2014 20:46:18 +0000 (20:46 +0000)]
MallocBench: removed the --measure-heap option
https://bugs.webkit.org/show_bug.cgi?id=131854

Reviewed by Sam Weinig.

As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
heap is fast, so there's no reason to disable it.

* MallocBench/MallocBench/Benchmark.cpp:
(Benchmark::Benchmark):
(Benchmark::run):
(Benchmark::printReport):
* MallocBench/MallocBench/Benchmark.h:
* MallocBench/MallocBench/CommandLine.cpp:
(CommandLine::printUsage):
* MallocBench/MallocBench/CommandLine.h:
(CommandLine::heapSize):
(CommandLine::measureHeap): Deleted.
* MallocBench/MallocBench/main.cpp:
(main):

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

8 years agoForgot to check in this file with <http://trac.webkit.org/changeset/167500>.
ap@apple.com [Fri, 18 Apr 2014 20:43:05 +0000 (20:43 +0000)]
Forgot to check in this file with <trac.webkit.org/changeset/167500>.

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

8 years ago[iOS WK2] Make window.scroll() and window.scrollBy() work
simon.fraser@apple.com [Fri, 18 Apr 2014 20:31:35 +0000 (20:31 +0000)]
[iOS WK2] Make window.scroll() and window.scrollBy() work
https://bugs.webkit.org/show_bug.cgi?id=131848
<rdar://problem/16638319>

Reviewed by Beth Dakin.

The scrolling-related functions in DOMWindow were #ifdeffed for iOS
to use the hacky WK1-specific "actual scroll" functions, which do nothing
in WK2.

Fix by adding a scroll position wrapper (contentsScrollPosition) which does
the right thing on WK1 and WK2, and change almost all the places that used "actualScrollPosition"
to us it (with the exception of contentsScrollOffset() in MouseRelatedEvent.cpp, which has
confusing scaling behavior).

* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
* dom/TreeScope.cpp:
(WebCore::nodeFromPoint): Remove #ifdefs.
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollX):
(WebCore::DOMWindow::scrollY):
(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):
* platform/ScrollView.cpp:
(WebCore::ScrollView::contentsScrollPosition):
(WebCore::ScrollView::setContentsScrollPosition):
* platform/ScrollView.h:

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

8 years agobmalloc: Added an XSmall line size
ggaren@apple.com [Fri, 18 Apr 2014 20:17:59 +0000 (20:17 +0000)]
bmalloc: Added an XSmall line size
https://bugs.webkit.org/show_bug.cgi?id=131851

Reviewed by Sam Weinig.

Reduces malloc footprint on Membuster recordings by 10%.

This is a throughput regression, but we're still way ahead of TCMalloc.
I have some ideas for how to recover the regression -- but I wanted to
get this win in first.

Full set of benchmark results:

        bmalloc> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks --measure-heap nopatch:~/scratch/Build-nopatch/Release/ patch:~/webkit/WebKitBuild/Release/

                                                       nopatch                      patch                                Δ
        Peak Memory:
            reddit_memory_warning                      7,896kB                    7,532kB                  ^ 1.05x smaller
            flickr_memory_warning                     12,968kB                   12,324kB                  ^ 1.05x smaller
            theverge_memory_warning                   16,672kB                   15,200kB                   ^ 1.1x smaller

            <geometric mean>                          11,952kB                   11,216kB                  ^ 1.07x smaller
            <arithmetic mean>                         12,512kB                   11,685kB                  ^ 1.07x smaller
            <harmonic mean>                           11,375kB                   10,726kB                  ^ 1.06x smaller

        Memory at End:
            reddit_memory_warning                      7,320kB                    6,856kB                  ^ 1.07x smaller
            flickr_memory_warning                     10,848kB                    9,692kB                  ^ 1.12x smaller
            theverge_memory_warning                   16,380kB                   14,872kB                   ^ 1.1x smaller

            <geometric mean>                          10,916kB                    9,961kB                   ^ 1.1x smaller
            <arithmetic mean>                         11,516kB                   10,473kB                   ^ 1.1x smaller
            <harmonic mean>                           10,350kB                    9,485kB                  ^ 1.09x smaller

        MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks nopatch:~/scratch/Build-nopatch/Release/ patch:~/webkit/WebKitBuild/Release/

                                           nopatch                patch                         Δ
        Execution Time:
            churn                            127ms                151ms            ! 1.19x slower
            list_allocate                    130ms                164ms            ! 1.26x slower
            tree_allocate                    109ms                127ms            ! 1.17x slower
            tree_churn                       115ms                120ms            ! 1.04x slower
            facebook                         240ms                259ms            ! 1.08x slower
            fragment                          91ms                131ms            ! 1.44x slower
            fragment_iterate                 105ms                106ms            ! 1.01x slower
            message_one                      260ms                259ms             ^ 1.0x faster
            message_many                     149ms                154ms            ! 1.03x slower
            medium                           194ms                248ms            ! 1.28x slower
            big                              157ms                160ms            ! 1.02x slower

            <geometric mean>                 144ms                163ms            ! 1.13x slower
            <arithmetic mean>                152ms                171ms            ! 1.12x slower
            <harmonic mean>                  137ms                156ms            ! 1.14x slower

        MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks nopatch:~/scratch/Build-nopatch/Release/ patch:~/webkit/WebKitBuild/Release/

                                                               nopatch                          patch                                     Δ
        Execution Time:
            churn                                                126ms                          148ms                        ! 1.17x slower
            churn --parallel                                      62ms                           76ms                        ! 1.23x slower
            list_allocate                                        130ms                          164ms                        ! 1.26x slower
            list_allocate --parallel                             120ms                          175ms                        ! 1.46x slower
            tree_allocate                                        111ms                          127ms                        ! 1.14x slower
            tree_allocate --parallel                              95ms                          135ms                        ! 1.42x slower
            tree_churn                                           115ms                          124ms                        ! 1.08x slower
            tree_churn --parallel                                107ms                          126ms                        ! 1.18x slower
            facebook                                             240ms                          276ms                        ! 1.15x slower
            facebook --parallel                                  802ms                        1,088ms                        ! 1.36x slower
            fragment                                              92ms                          130ms                        ! 1.41x slower
            fragment --parallel                                   66ms                          124ms                        ! 1.88x slower
            fragment_iterate                                     109ms                          127ms                        ! 1.17x slower
            fragment_iterate --parallel                           55ms                           64ms                        ! 1.16x slower
            message_one                                          260ms                          260ms
            message_many                                         170ms                          238ms                         ! 1.4x slower
            medium                                               185ms                          250ms                        ! 1.35x slower
            medium --parallel                                    210ms                          334ms                        ! 1.59x slower
            big                                                  150ms                          169ms                        ! 1.13x slower
            big --parallel                                       138ms                          144ms                        ! 1.04x slower

            <geometric mean>                                     135ms                          170ms                        ! 1.26x slower
            <arithmetic mean>                                    167ms                          214ms                        ! 1.28x slower
            <harmonic mean>                                      117ms                          148ms                        ! 1.26x slower

        MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks TC:~/scratch/Build-TCMalloc/Release/ patch:~/webkit/WebKitBuild/Release/

                                                            TC                      patch                                Δ
        Peak Memory:
            reddit_memory_warning                     13,836kB                   13,436kB                  ^ 1.03x smaller
            flickr_memory_warning                     24,868kB                   25,188kB                   ! 1.01x bigger
            theverge_memory_warning                   24,504kB                   26,636kB                   ! 1.09x bigger

            <geometric mean>                          20,353kB                   20,812kB                   ! 1.02x bigger
            <arithmetic mean>                         21,069kB                   21,753kB                   ! 1.03x bigger
            <harmonic mean>                           19,570kB                   19,780kB                   ! 1.01x bigger

        Memory at End:
            reddit_memory_warning                      8,656kB                   10,016kB                   ! 1.16x bigger
            flickr_memory_warning                     11,844kB                   13,784kB                   ! 1.16x bigger
            theverge_memory_warning                   18,516kB                   22,748kB                   ! 1.23x bigger

            <geometric mean>                          12,382kB                   14,644kB                   ! 1.18x bigger
            <arithmetic mean>                         13,005kB                   15,516kB                   ! 1.19x bigger
            <harmonic mean>                           11,813kB                   13,867kB                   ! 1.17x bigger

        MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks TC:~/scratch/Build-TCMalloc/Release/ patch:~/webkit/WebKitBuild/Release/

                                                TC                patch                         Δ
        Execution Time:
            churn                            416ms                148ms            ^ 2.81x faster
            list_allocate                    463ms                164ms            ^ 2.82x faster
            tree_allocate                    292ms                127ms             ^ 2.3x faster
            tree_churn                       157ms                120ms            ^ 1.31x faster
            facebook                         327ms                276ms            ^ 1.18x faster
            fragment                         335ms                129ms             ^ 2.6x faster
            fragment_iterate                 344ms                108ms            ^ 3.19x faster
            message_one                      386ms                258ms             ^ 1.5x faster
            message_many                     410ms                154ms            ^ 2.66x faster
            medium                           391ms                245ms             ^ 1.6x faster
            big                              261ms                167ms            ^ 1.56x faster

            <geometric mean>                 332ms                164ms            ^ 2.02x faster
            <arithmetic mean>                344ms                172ms            ^ 1.99x faster
            <harmonic mean>                  317ms                157ms            ^ 2.02x faster

* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/Allocator.cpp:
(bmalloc::Allocator::Allocator): Don't assume that each allocator's
index corresponds with its size. Instead, use the size selection function
explicitly. Now that we have XSmall, some small allocator entries are
unused.

(bmalloc::Allocator::scavenge):
(bmalloc::Allocator::log):
(bmalloc::Allocator::processXSmallAllocatorLog):
(bmalloc::Allocator::allocateSlowCase):
* bmalloc/Allocator.h:
(bmalloc::Allocator::xSmallAllocatorFor):
(bmalloc::Allocator::allocateFastCase):
* bmalloc/Chunk.h:
* bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSlowCase):
(bmalloc::Deallocator::deallocateXSmallLine):
(bmalloc::Deallocator::allocateXSmallLine):
* bmalloc/Deallocator.h:
(bmalloc::Deallocator::deallocateFastCase):
* bmalloc/Heap.cpp:
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeXSmallPages):
(bmalloc::Heap::allocateXSmallLineSlowCase):
* bmalloc/Heap.h:
(bmalloc::Heap::deallocateXSmallLine):
(bmalloc::Heap::allocateXSmallLine):
* bmalloc/LargeChunk.h:
(bmalloc::LargeChunk::get):
(bmalloc::LargeChunk::endTag):
* bmalloc/Line.h:
* bmalloc/MediumAllocator.h:
(bmalloc::MediumAllocator::allocate):
(bmalloc::MediumAllocator::refill):
* bmalloc/ObjectType.cpp:
(bmalloc::objectType):
* bmalloc/ObjectType.h:
(bmalloc::isXSmall):
(bmalloc::isSmall):
(bmalloc::isMedium):
(bmalloc::isLarge):
(bmalloc::isSmallOrMedium): Deleted.
* bmalloc/SegregatedFreeList.h: I boiler-plate copied existing code for
handling small objects. There's probably a reasonable way to share this
code in the future -- I'll look into that once it's stopped changing.

* bmalloc/Sizes.h: Tweaked size classes to make Membuster happy. This
is the main reason things got slower.

* bmalloc/SmallAllocator.h:
(bmalloc::SmallAllocator::allocate):
* bmalloc/SmallTraits.h:
* bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::allocateXSmallChunk):
* bmalloc/VMHeap.h:
(bmalloc::VMHeap::allocateXSmallPage):
(bmalloc::VMHeap::deallocateXSmallPage):
* bmalloc/XSmallAllocator.h: Added.
(bmalloc::XSmallAllocator::isNull):
(bmalloc::XSmallAllocator::canAllocate):
(bmalloc::XSmallAllocator::XSmallAllocator):
(bmalloc::XSmallAllocator::line):
(bmalloc::XSmallAllocator::allocate):
(bmalloc::XSmallAllocator::objectCount):
(bmalloc::XSmallAllocator::derefCount):
(bmalloc::XSmallAllocator::refill):
* bmalloc/XSmallChunk.h: Added.
* bmalloc/XSmallLine.h: Added.
* bmalloc/XSmallPage.h: Added.
* bmalloc/XSmallTraits.h: Added.
* bmalloc/bmalloc.h:
(bmalloc::api::realloc): Boiler-plate copy, as above.

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

8 years agoDeleting properties poisons objects
mhahnenberg@apple.com [Fri, 18 Apr 2014 20:07:50 +0000 (20:07 +0000)]
Deleting properties poisons objects
https://bugs.webkit.org/show_bug.cgi?id=131551

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
This is ~3% progression on Dromaeo with a ~6% progression on the jslib portion of Dromaeo in particular.

* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap): We now re-use deleted properties when materializing the property map.
(JSC::Structure::removePropertyTransition): We allow up to 5 deletes for a particular path through the tree of
Structure transitions. After that, we convert to an uncacheable dictionary like we used to. We don't cache
delete transitions, but we allow transitioning from them.
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::pin): Now does only what it says it does--marks the property table as pinned.
(JSC::Structure::pinAndPreventTransitions): More descriptive version of what the old pin() was doing.
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::checkOffsetConsistency): Rearranged variables to be more sensible.

LayoutTests:
New JS regress test. We're ~3.5x faster on this microbenchmark now.

* js/regress/delete-a-few-properties-then-get-by-id-expected.txt: Added.
* js/regress/delete-a-few-properties-then-get-by-id.html: Added.
* js/regress/script-tests/delete-a-few-properties-then-get-by-id.js: Added.
(MyObject):
(foo):

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

8 years agohttp/tests/multipart/policy-ignore-crash.php erroneously depends on http stack quirks
ap@apple.com [Fri, 18 Apr 2014 20:05:14 +0000 (20:05 +0000)]
http/tests/multipart/policy-ignore-crash.php erroneously depends on http stack quirks
https://bugs.webkit.org/show_bug.cgi?id=131853

Reviewed by Brady Eidson.

* http/tests/multipart/policy-ignore-crash.php: Produce a nice multipart response
with boundaries on their own lines.

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

8 years agoHandle pluginOrigin being null
andersca@apple.com [Fri, 18 Apr 2014 19:45:40 +0000 (19:45 +0000)]
Handle pluginOrigin being null
https://bugs.webkit.org/show_bug.cgi?id=131849
<rdar://problem/16655898>

Reviewed by Alexey Proskuryakov.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):

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

8 years agoWorse animation performance on pages with 3D transforms
simon.fraser@apple.com [Fri, 18 Apr 2014 18:37:04 +0000 (18:37 +0000)]
Worse animation performance on pages with 3D transforms
https://bugs.webkit.org/show_bug.cgi?id=131838
<rdar://problem/16428630&15705876>

Reviewed by Dean Jackson.

Source/WebCore:
r155977 added logic to adjust the contentsScale of compositing layers
based on a root-relative transform. However, this resulted in
the contentsScale continually changing on layers whose transforms
are changed dynamically, which caused lots of expensive painting.

Fix by bucketing the part of the scale computed from the root-relative transform
into buckets of 0.25 via rounding.

Test: compositing/contents-scale/rounded-contents-scale.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::clampedContentsScaleForScale):
(WebCore::GraphicsLayerCA::updateContentsOpaque):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::GraphicsLayerCA::updateContentsVisibility): Deleted.
(WebCore::GraphicsLayerCA::animatedLayerClones): Deleted.

LayoutTests:
Testcase having layers at various z translates which shows the bucketing
of contentsScale, and fix results affected by the patch.

* compositing/contents-scale/rounded-contents-scale-expected.txt: Added.
* compositing/contents-scale/rounded-contents-scale.html: Added.
* compositing/contents-scale/z-translate-expected.txt:
* platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
* platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/mac/compositing/visible-rect/3d-transform-style-expected.txt:
* platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
* platform/mac/compositing/visible-rect/nested-transform-expected.txt:

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

8 years agoRemove some includes from image-related headers, and Document.h
simon.fraser@apple.com [Fri, 18 Apr 2014 18:35:20 +0000 (18:35 +0000)]
Remove some includes from image-related headers, and Document.h
https://bugs.webkit.org/show_bug.cgi?id=131797

Reviewed by Martin Robinson.

Remove some #includes from Document.h, DragImage.h, GradientImage.h,
Image.h, and ImageBuffer.h and deal with the fallout.

* dom/ContainerNode.h:
* dom/Document.cpp:
(WebCore::Document::setInputCursor):
* dom/Document.h:
(WebCore::Document::inputCursor):
* dom/MutationObserverRegistration.cpp:
* html/canvas/WebGLRenderingContext.cpp:
* page/FrameSnapshotting.cpp:
* page/Page.cpp:
* platform/DragImage.h:
* platform/graphics/BitmapImage.cpp:
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::GradientImage):
(WebCore::GradientImage::~GradientImage):
* platform/graphics/GradientImage.h:
* platform/graphics/Image.h:
* platform/graphics/ImageBuffer.cpp:
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::internalSize):
(WebCore::ImageBuffer::logicalSize):
(WebCore::ImageBuffer::baseTransform):
(WebCore::ImageBuffer::spaceSize):
(WebCore::ImageBuffer::setSpaceSize):
* rendering/RenderThemeMac.mm:
* rendering/shapes/Shape.cpp:
* rendering/svg/RenderSVGContainer.cpp:
* svg/SVGURIReference.h:

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

8 years ago[Cocoa] Add a navigation delegate method corresponding to didFinishDocumentLoadForFra...
mitz@apple.com [Fri, 18 Apr 2014 17:49:24 +0000 (17:49 +0000)]
[Cocoa] Add a navigation delegate method corresponding to didFinishDocumentLoadForFrame for the main frame
https://bugs.webkit.org/show_bug.cgi?id=131847

Reviewed by Anders Carlsson.

* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didFinishDocumentLoadForFrame): Added a navigationID parameter.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient): Updated for the above change in paramerers.
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
* UIProcess/Cocoa/NavigationState.h: Declare override of didFinishDocumentLoadForFrame.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate): Initialize
webViewNavigationDidFinishDocumentLoad flag in the delegate methods struct.
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame): Added override
of the client function which calls the delegate.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame): Get and pass the navigation ID to
the client.
* UIProcess/WebPageProxy.h: Added navigationID parameter.
* UIProcess/WebPageProxy.messages.in: Ditto.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): Get and send the navigation
ID to the UI process.

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

8 years agoDownloadDecideDestinationCrash API test uses an incorrect value for path
ap@apple.com [Fri, 18 Apr 2014 17:32:34 +0000 (17:32 +0000)]
DownloadDecideDestinationCrash API test uses an incorrect value for path
https://bugs.webkit.org/show_bug.cgi?id=131845
<rdar://problem/15925560>

Reviewed by Enrica Casucci.

* TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp:
(TestWebKitAPI::decideDestinationWithSuggestedFilename):

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

8 years agoUnreviewed. ARM64 buildfix after r167473.
dbates@webkit.org [Fri, 18 Apr 2014 17:18:13 +0000 (17:18 +0000)]
Unreviewed. ARM64 buildfix after r167473.

Patch by Gabor Rapcsanyi <rgabor@webkit.org> on 2014-04-18

* platform/audio/DenormalDisabler.h: Put back the MathExtras.h include.

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

8 years ago[CSS Regions] Content overflowing a transformed region is clipped
stavila@adobe.com [Fri, 18 Apr 2014 17:08:11 +0000 (17:08 +0000)]
[CSS Regions] Content overflowing a transformed region is clipped
https://bugs.webkit.org/show_bug.cgi?id=116833

Reviewed by Mihnea Ovidenie.

Added test for overflow of content in 3d transformed regions.

* fast/regions/overflow-3dtransformed-region-expected.txt: Added.
* fast/regions/overflow-3dtransformed-region.html: Added.

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

8 years ago[Mac] AttributedStringTest API tests fail with async text input
ap@apple.com [Fri, 18 Apr 2014 17:08:07 +0000 (17:08 +0000)]
[Mac] AttributedStringTest API tests fail with async text input
https://bugs.webkit.org/show_bug.cgi?id=131833

Reviewed by Enrica Casucci.

Don't run sync NSTextInputClient tests where we don't implement these calls.

* TestWebKitAPI/Tests/mac/AttributedString.mm:
(TestWebKitAPI::AttributedStringTest_CustomFont::didLoadURL):
(TestWebKitAPI::AttributedStringTest_CustomFont::runSyncTest):
(TestWebKitAPI::AttributedStringTest_Strikethrough::didLoadURL):
(TestWebKitAPI::AttributedStringTest_Strikethrough::runSyncTest):
(TestWebKitAPI::AttributedStringTest_CustomFont::runTest): Deleted.
(TestWebKitAPI::AttributedStringTest_Strikethrough::runTest): Deleted.

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

8 years agoUnreviewed. ARM64 buildfix after r167473.
rgabor@webkit.org [Fri, 18 Apr 2014 13:48:16 +0000 (13:48 +0000)]
Unreviewed. ARM64 buildfix after r167473.

* platform/audio/DenormalDisabler.h: Put back the MathExtras.h include.

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

8 years ago[CSSRegions] Incorrect background paint on positioned element hover
stavila@adobe.com [Fri, 18 Apr 2014 13:07:48 +0000 (13:07 +0000)]
[CSSRegions] Incorrect background paint on positioned element hover
https://bugs.webkit.org/show_bug.cgi?id=131617

Reviewed by Andrei Bucur.

Source/WebCore:
When computing the repaint rect for absolute elements flowed into regions, the Y location of the
region within the flow thread must no longer be added to the repaint rect's location because absolute
positioned elements get pushed down through the regions by their absolute top. So adding the region's
position in the flow thread and then adding the element's absolute top would cause us to add
something twice.

Tests: fast/regions/repaint/repaint-absolute-pushed-to-next-region.html

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

LayoutTests:
Added test for the proper repainting of absolute positioned elements in regions when the
absolute top of the elements causes it to be pushed to the next region.

* fast/regions/repaint/repaint-absolute-pushed-to-next-region-expected.txt: Added.
* fast/regions/repaint/repaint-absolute-pushed-to-next-region.html: Added.

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

8 years agoRemove NETWORK_INFO support
philn@webkit.org [Fri, 18 Apr 2014 12:34:03 +0000 (12:34 +0000)]
Remove NETWORK_INFO support
https://bugs.webkit.org/show_bug.cgi?id=131841

.:
Reviewed by Gyuyoung Kim.

* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/WebCore:
Reviewed by Gyuyoung Kim.

* CMakeLists.txt:
* Modules/networkinfo/NavigatorNetworkInfoConnection.cpp: Removed.
* Modules/networkinfo/NavigatorNetworkInfoConnection.h: Removed.
* Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Removed.
* Modules/networkinfo/NetworkInfo.cpp: Removed.
* Modules/networkinfo/NetworkInfo.h: Removed.
* Modules/networkinfo/NetworkInfoClient.h: Removed.
* Modules/networkinfo/NetworkInfoConnection.cpp: Removed.
* Modules/networkinfo/NetworkInfoConnection.h: Removed.
* Modules/networkinfo/NetworkInfoConnection.idl: Removed.
* Modules/networkinfo/NetworkInfoController.cpp: Removed.
* Modules/networkinfo/NetworkInfoController.h: Removed.
* PlatformEfl.cmake:
* dom/EventTargetFactory.in:
* platform/efl/NetworkInfoProviderEfl.cpp: Removed.
* platform/efl/NetworkInfoProviderEfl.h: Removed.
* testing/Internals.cpp:
(WebCore::Internals::setNetworkInformation): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:
Reviewed by NOBODY (OOPS!).

* PlatformEfl.cmake:

Source/WebKit/efl:
Reviewed by Gyuyoung Kim.

* WebCoreSupport/NetworkInfoClientEfl.cpp: Removed.
* WebCoreSupport/NetworkInfoClientEfl.h: Removed.
* ewk/ewk_view.cpp:
(_ewk_view_priv_new):

Source/WebKit2:
Reviewed by Gyuyoung Kim.

* CMakeLists.txt:
* PlatformEfl.cmake:
* Shared/API/c/WKBase.h:
* Shared/APIObject.h:
* Shared/WebNetworkInfo.cpp: Removed.
* Shared/WebNetworkInfo.h: Removed.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetNetworkInfoManager): Deleted.
* UIProcess/API/C/WKContext.h:
* UIProcess/API/C/WKNetworkInfo.cpp: Removed.
* UIProcess/API/C/WKNetworkInfo.h: Removed.
* UIProcess/API/C/WKNetworkInfoManager.cpp: Removed.
* UIProcess/API/C/WKNetworkInfoManager.h: Removed.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
* UIProcess/API/efl/ewk_context_private.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
* UIProcess/WebContext.h:
* UIProcess/WebNetworkInfoManagerProxy.cpp: Removed.
* UIProcess/WebNetworkInfoManagerProxy.h: Removed.
* UIProcess/WebNetworkInfoManagerProxy.messages.in: Removed.
* UIProcess/WebNetworkInfoProvider.cpp: Removed.
* UIProcess/WebNetworkInfoProvider.h: Removed.
* UIProcess/efl/NetworkInfoProvider.cpp: Removed.
* UIProcess/efl/NetworkInfoProvider.h: Removed.
* WebProcess/NetworkInfo/WebNetworkInfoManager.cpp: Removed.
* WebProcess/NetworkInfo/WebNetworkInfoManager.h: Removed.
* WebProcess/NetworkInfo/WebNetworkInfoManager.messages.in: Removed.
* WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp: Removed.
* WebProcess/WebCoreSupport/WebNetworkInfoClient.h: Removed.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):

Source/WTF:
Reviewed by Gyuyoung Kim.

* wtf/FeatureDefines.h:

Tools:
Reviewed by Gyuyoung Kim.

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:
Reviewed by Gyuyoung Kim.

* networkinformation/add-listener-from-callback-expected.txt: Removed.
* networkinformation/add-listener-from-callback.html: Removed.
* networkinformation/basic-all-types-of-events-expected.txt: Removed.
* networkinformation/basic-all-types-of-events.html: Removed.
* networkinformation/basic-operation-expected.txt: Removed.
* networkinformation/basic-operation.html: Removed.
* networkinformation/event-after-navigation-expected.txt: Removed.
* networkinformation/event-after-navigation.html: Removed.
* networkinformation/multiple-frames-expected.txt: Removed.
* networkinformation/multiple-frames.html: Removed.
* networkinformation/resources/event-after-navigation-new.html: Removed.
* networkinformation/script-tests/add-listener-from-callback.js: Removed.
* networkinformation/script-tests/basic-all-types-of-events.js: Removed.
* networkinformation/script-tests/basic-operation.js: Removed.
* networkinformation/script-tests/event-after-navigation.js: Removed.
* networkinformation/script-tests/multiple-frames.js: Removed.
* networkinformation/script-tests/updates.js: Removed.
* networkinformation/script-tests/window-property.js: Removed.
* networkinformation/updates-expected.txt: Removed.
* networkinformation/updates.html: Removed.
* networkinformation/window-property-expected.txt: Removed.
* networkinformation/window-property.html: Removed.

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

8 years agoUnreviewed, rolling out r167478.
commit-queue@webkit.org [Fri, 18 Apr 2014 05:10:38 +0000 (05:10 +0000)]
Unreviewed, rolling out r167478.
https://bugs.webkit.org/show_bug.cgi?id=131840

Broke multicol tests (Requested by ap on #webkit).

Reverted changeset:

"[New Multicolumn] Pagination mode messed up with non-inline
axis and reversed direction."
https://bugs.webkit.org/show_bug.cgi?id=131811
http://trac.webkit.org/changeset/167478

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

8 years ago[GTK] YouCompleteMe doesn't work for cmake build system.
changseok.oh@collabora.com [Fri, 18 Apr 2014 05:05:41 +0000 (05:05 +0000)]
[GTK] YouCompleteMe doesn't work for cmake build system.
https://bugs.webkit.org/show_bug.cgi?id=131591

Reviewed by Martin Robinson.

Add cmake build system support for YouCompleteMe. It should work regardless of
using make or ninja. In addition, autotools related code is removed since it's
not used anymore in WebKit.

* Scripts/webkitdirs.pm:
(generateBuildSystemFromCMakeProject):
* gtk/ycm_extra_conf.py:
(transform_relative_paths_to_absolute_paths):
(FlagsForFile):

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

8 years ago[iOS] Hook up screen.{availHeight, availWidth, height, width}
dbates@webkit.org [Fri, 18 Apr 2014 03:51:14 +0000 (03:51 +0000)]
[iOS] Hook up screen.{availHeight, availWidth, height, width}
https://bugs.webkit.org/show_bug.cgi?id=131821
<rdar://problem/16413795>

Reviewed by Benjamin Poulain and Tim Horton.

Source/WebCore:
Implement support for screen.{availHeight, availWidth, height, width} in WebKit2 for iOS.

Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

* WebCore.exp.in: Export symbol for WebCore System Interface function
_wkGetViewportAvailableScreenSize.
* dom/Document.cpp:
(WebCore::Document::processViewport): Modified to call Chrome::screenSize(); formerly it
called ChromeClient::viewportScreenSize().
* page/Chrome.cpp:
(WebCore::Chrome::screenSize): Added; turns around and calls ChromeClient::screenSize().
(WebCore::Chrome::availableScreenSize): Added; turns around and calls ChromeClient::availableScreenSize().
* page/Chrome.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
(WebCore::ChromeClient::availableScreenSize): Added; default implementation, which
returns the size of Chrome::windowRect().
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::textDocumentParameters):
* platform/HostWindow.h: Added declarations for availableScreenSize() and screenSize()
so that a caller (e.g. WebCore::screenRect()) can query for such screen information using
only the HostWindow interface. That is, a caller doesn't need to know about ChromeClient.
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenRect): Modified to query HostWindow::screenSize() when computing the
screen rectangle in WebKit2 for iOS.
(WebCore::screenAvailableRect): Modified to query HostWindow::availableScreenSize()
when computing the available screen rectangle in WebKit2 for iOS.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:

Source/WebKit/ios:
Provide iOS-specific WebKit1 implementation for ChromeClient::availableScreenSize().

Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

* WebCoreSupport/WebChromeClientIOS.h:
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::screenSize): Renamed; formerly named viewportScreenSize.
(WebChromeClientIOS::availableScreenSize): Added; ASSERT_NOT_REACHED() as a widget
should consult it's associated WAKWindow for the available screen size.

Source/WebKit/mac:
Add declaration for WKGetViewportAvailableScreenSize() to return the available screen size.

Additionally substitute "ScreenSize" for "ViewportScreenSize" to make the code more understandable.

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

Source/WebKit2:
Implement WebKit2-specific support infrastructure.

Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode): Modified to encode the available screen size
creation parameter.
(WebKit::WebPageCreationParameters::decode): Modified to decode the available screen size
creation parameter.
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters): Initialize the available screen size
parameter.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::screenSize): Renamed; formerly named viewportScreenSize.
(WebKit::WebPageProxy::availableScreenSize): Added.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
(WebKit::WebChromeClient::availableScreenSize): Added; turns around and calls WebPage::availableScreenSize().
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Hook up WebKit System Interface function WKGetAvailableScreenSize.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize available screen size instance variable.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::screenSize):
(WebKit::WebPage::availableScreenSize):

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

8 years agoSource/WebCore: origin spoofing possible (HTTP Origin, postMessage event.origin)...
darin@apple.com [Fri, 18 Apr 2014 02:41:00 +0000 (02:41 +0000)]
Source/WebCore: origin spoofing possible (HTTP Origin, postMessage event.origin) due to inappropriate URL escape sequence decoding
https://bugs.webkit.org/show_bug.cgi?id=131837
rdar://problem/15211936

Reviewed by Anders Carlsson and Dave Hyatt.

Tests: fast/dom/DOMURL/parsing.html
       fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html

* platform/URL.cpp:
(WebCore::URL::host): Removed unnecessary call to decodeURLEscapeSequences, which caused
problems and was not needed.

LayoutTests: hostname extraction from a URL should not decode percent-escape sequences
https://bugs.webkit.org/show_bug.cgi?id=131837
rdar://problem/15211936

Reviewed by Anders Carlsson and Dave Hyatt.

* fast/dom/DOMURL/parsing-expected.txt: Added.
* fast/dom/DOMURL/parsing.html: Added.
* fast/dom/HTMLAnchorElement/anchor-element-href-parsing-expected.txt: Added.
* fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html: Added.

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

8 years agoFix build.
andersca@apple.com [Fri, 18 Apr 2014 02:35:32 +0000 (02:35 +0000)]
Fix build.

* TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:
(-[DownloadNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[ConvertResponseToDownloadNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):

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

8 years ago[New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
hyatt@apple.com [Fri, 18 Apr 2014 02:11:12 +0000 (02:11 +0000)]
[New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
https://bugs.webkit.org/show_bug.cgi?id=131811

Reviewed by Dean Jackson.

Source/WebCore:
Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html

With block axis pagination mode, it is possible to set a column height that is not the same
as the available fill height for a block. The new multi-column code had the assumption that
the column height was the same as the amount of fill room you had available. This is not
the case.

To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
available column height as a separate variable from the computed column height. This allows
the pagination API to specify a different column height that is not the same as the view's
content height.

Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
RenderView to work with the new column code as well.

* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
(WebCore::RenderMultiColumnSet::computeLogicalHeight):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::pageOrViewLogicalHeight):

LayoutTests:
* fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html: Added.

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

8 years agoBuild fix.
andersca@apple.com [Fri, 18 Apr 2014 02:04:14 +0000 (02:04 +0000)]
Build fix.

* svg/animation/SMILTime.h:

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

8 years agoRemove unused API enums
andersca@apple.com [Fri, 18 Apr 2014 01:42:03 +0000 (01:42 +0000)]
Remove unused API enums
https://bugs.webkit.org/show_bug.cgi?id=131836

Reviewed by Tim Horton.

Source/WebKit2:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
(NS_ENUM):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

Tools:
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController webView:decidePolicyForNavigationResponse:decisionHandler:]):

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

8 years ago[EFL][WK1] SSL Strict is set according to input parameter.
commit-queue@webkit.org [Fri, 18 Apr 2014 01:10:55 +0000 (01:10 +0000)]
[EFL][WK1] SSL Strict is set according to input parameter.
https://bugs.webkit.org/show_bug.cgi?id=131734.

Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-04-17
Reviewed by Gyuyoung Kim.

The param, 'enable', should be used for setting SSL-Strict.
If it is true, SSLStrict is set. Otherwise, SSLStrict is unset.

* ewk/ewk_network.cpp:
(ewk_network_tls_certificate_check_set):

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

8 years agoUnreviewed, rolling out r167384.
bjonesbe@adobe.com [Fri, 18 Apr 2014 01:05:23 +0000 (01:05 +0000)]
Unreviewed, rolling out r167384.

Sounds like this isn't the right fix, and causes generation to
run far too often.

Reverted changeset:

"Fix CodeGenerator.pm to only write files if the generated
content has changed"
https://bugs.webkit.org/show_bug.cgi?id=131756
http://trac.webkit.org/changeset/167384

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

8 years agoRemove unnecessary MathExtras.h includes
ryuan.choi@samsung.com [Fri, 18 Apr 2014 00:51:29 +0000 (00:51 +0000)]
Remove unnecessary MathExtras.h includes
https://bugs.webkit.org/show_bug.cgi?id=131789

Reviewed by Anders Carlsson.

* platform/FileSystem.h:
* platform/Scrollbar.h:
* platform/animation/AnimationUtilities.h:
* platform/audio/DenormalDisabler.h:
* platform/graphics/Font.h:
* platform/graphics/IntPoint.h: Included cmath instad of MathExtras.h.
* platform/graphics/LayoutPoint.h:
* platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
* rendering/svg/SVGMarkerData.h:
* svg/animation/SMILTime.h:

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

8 years agoMake RenderLayerBacking get the timingFunction of the correct animation.
bfulgham@apple.com [Fri, 18 Apr 2014 00:44:53 +0000 (00:44 +0000)]
Make RenderLayerBacking get the timingFunction of the correct animation.
https://bugs.webkit.org/show_bug.cgi?id=100632

Source/WebCore:
Patch by Huang Dongsung <luxtella@company100.net> on 2014-04-16
Reviewed by Simon Fraser.

When an element has multiple animations that have different timingFunctions,
the progress of each animation should be calculated using its respective
timingFunction. But at this point, the timingFunction of the first animation is
only used in RenderLayerBacking::startAnimation(), regardless of how many
animations the element has.

getAnimationFromStyleByName() was introduced in r89462 so that the
timingFunction of the correct animation searched by its name would be
used. This patch moves the function to KeyframeValue::timingFunction()
so that RenderLayerBacking reuses this method.

Test: animations/keyframe-multiple-timing-functions-transform.html

* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
* rendering/style/KeyframeList.cpp:
(WebCore::KeyframeValue::timingFunction):
(WebCore):
* rendering/style/KeyframeList.h:
(WebCore):
(KeyframeValue):

Source/WebKit2:
Reviewed by Simon Fraser.

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode): Update for new signatures for
FloatAnimationValue, TransformAnimationValue, etc.

LayoutTests:
Patch by Huang Dongsung <luxtella@company100.net> on 2014-04-16
Reviewed by Simon Fraser.

When an element on a compositing layer has multiple animations that have
different timingFunctions, the progress of each animation should be
calculated using its respective timingFunction in Accelerated
Compositing.

* animations/keyframe-multiple-timing-functions-transform-expected.txt: Added.
* animations/keyframe-multiple-timing-functions-transform.html: Added.

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

8 years agoUnreviewed, EFL gardening. Remove duplicated test case in EFL WK2 TestExpectations.
gyuyoung.kim@samsung.com [Fri, 18 Apr 2014 00:37:39 +0000 (00:37 +0000)]
Unreviewed, EFL gardening. Remove duplicated test case in EFL WK2 TestExpectations.

* platform/efl-wk2/TestExpectations:

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

8 years agoUnreviewed, fix a test case path, which was moved to different folder.
gyuyoung.kim@samsung.com [Fri, 18 Apr 2014 00:35:08 +0000 (00:35 +0000)]
Unreviewed, fix a test case path, which was moved to different folder.

* platform/efl/TestExpectations:

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

8 years ago[iOS WebKit2] support replacements for misspelled words.
enrica@apple.com [Fri, 18 Apr 2014 00:01:59 +0000 (00:01 +0000)]
[iOS WebKit2] support replacements for misspelled words.
https://bugs.webkit.org/show_bug.cgi?id=131827
<rdar://problem/16319657>

Reviewed by Benjamin Poulain.

This is the first part of the work to add support for replacements.
It handles _promptForReplace in canPerformAction to decide
whether to show the Replace button in the menu and add the
implementation of the replace action.

* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectedText]):
(-[WKContentView replaceText:withText:]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView replace:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView selectWordForReplacement]): This is called
by UIKit when the user taps on a mispelled word to select it.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::replaceSelectedText):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::editorState):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture): Removed m_shouldReturnWordForSelection.
We now return always the word corresponding to the caret selection or
the selected text up to a maximum of 200 characters.
(WebKit::WebPage::extendSelection):
(WebKit::WebPage::replaceSelectedText):

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

8 years agoInlineCallFrameSet should be refcounted
fpizlo@apple.com [Thu, 17 Apr 2014 23:33:32 +0000 (23:33 +0000)]
InlineCallFrameSet should be refcounted
https://bugs.webkit.org/show_bug.cgi?id=131829

Reviewed by Geoffrey Garen.

And DFG::Plan should hold a ref to it. Previously it was owned by Graph until it
became owned by JITCode. Except that if we're "failing" to compile, JITCode may die.
Even as it dies, the GC may still want to scan the DFG::Plan, which leads to scanning
the DesiredWriteBarriers, which leads to scanning the InlineCallFrameSet.

So, just make the darn thing refcounted.

* bytecode/InlineCallFrameSet.h:
* dfg/DFGArgumentsSimplificationPhase.cpp:
(JSC::DFG::ArgumentsSimplificationPhase::run):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGCommonData.h:
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::requiredRegisterCountForExit):
* dfg/DFGGraph.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::Plan):
* dfg/DFGPlan.h:
* dfg/DFGStackLayoutPhase.cpp:
(JSC::DFG::StackLayoutPhase::run):
* ftl/FTLFail.cpp:
(JSC::FTL::fail):
* ftl/FTLLink.cpp:
(JSC::FTL::link):

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

8 years agoRollout: Add a way to cache never-changing IDL attributes in the wrapper.
akling@apple.com [Thu, 17 Apr 2014 23:32:09 +0000 (23:32 +0000)]
Rollout: Add a way to cache never-changing IDL attributes in the wrapper.
<https://webkit.org/b/131759>

This behavior may be observable from the web, so we can't do it this way.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/*:
* dom/Element.idl:
* dom/Node.idl:

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

8 years ago[iOS] REGRESSION (r166975): WKPDFView is broken
timothy_horton@apple.com [Thu, 17 Apr 2014 23:29:42 +0000 (23:29 +0000)]
[iOS] REGRESSION (r166975): WKPDFView is broken
https://bugs.webkit.org/show_bug.cgi?id=131828

Reviewed by Simon Fraser.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
Bail from updating the scroll view parameters from the layer tree update
while it's being managed by a custom content view.
We'll get any changes again in the next commit after removing the custom
content view (and painting the new page) anyway, so this should be OK.

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

8 years agoCheesy Mountain Lion build fix.
akling@apple.com [Thu, 17 Apr 2014 23:21:41 +0000 (23:21 +0000)]
Cheesy Mountain Lion build fix.

* platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::ReliefLogger::logString):

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

8 years ago[New Multicolumn] Column rules don't respect the specified stacking order.
hyatt@apple.com [Thu, 17 Apr 2014 23:06:02 +0000 (23:06 +0000)]
[New Multicolumn] Column rules don't respect the specified stacking order.
https://bugs.webkit.org/show_bug.cgi?id=131804

Reviewed by Beth Dakin.

Source/WebCore:
Added fast/multicol/newmulticol/compare_with_old_impl/column-rules-stacking.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::paintBoxDecorations):
* rendering/RenderBlockFlow.h:
Override paintBoxDecorations for block flows so that we can iterate over our column sets
and paint their rules just after painting our background and border. We can't wait until
the child column sets paint their backgrounds, since that is specified as being above negative
z-index children. We have to pretend that the column sets don't exist as
far as column rule painting is concerned.

* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::paintObject): Deleted.
* rendering/RenderMultiColumnSet.h:
Turn paintObject in RenderMultiColumnSet into an override that doesn't paint anything.

LayoutTests:
* fast/multicol/newmulticol/compare-with-old-impl/column-rules-stacking-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/column-rules-stacking.html: Added.

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

8 years agoHit-testing is incorrect for plugins inside iframes when there is a
bdakin@apple.com [Thu, 17 Apr 2014 22:58:56 +0000 (22:58 +0000)]
Hit-testing is incorrect for plugins inside iframes when there is a
topContentInset
https://bugs.webkit.org/show_bug.cgi?id=131826
-and corresponding-
<rdar://problem/16649996>

Reviewed by Tim Horton.

I missed one coordinate-conversion spot when getting hit-testing to work. Like
headerHeight() which also manipulates the location of the root layer,
topContentInset() has to be factored into all of these conversions.
* page/FrameView.cpp:
(WebCore::FrameView::convertFromRenderer):

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

8 years ago_webProcessIdentifier should return 0 if the web process crashed
psolanki@apple.com [Thu, 17 Apr 2014 22:39:18 +0000 (22:39 +0000)]
_webProcessIdentifier should return 0 if the web process crashed
https://bugs.webkit.org/show_bug.cgi?id=131813
<rdar://problem/16650605>

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _hasWebProcess]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

8 years agoFTL::fail() should manage memory "correctly"
fpizlo@apple.com [Thu, 17 Apr 2014 22:30:46 +0000 (22:30 +0000)]
FTL::fail() should manage memory "correctly"
https://bugs.webkit.org/show_bug.cgi?id=131823
<rdar://problem/16384297>

Reviewed by Oliver Hunt.

* ftl/FTLFail.cpp:
(JSC::FTL::fail):

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

8 years agoPrediction propagator should correctly model Int52s flowing through arguments
fpizlo@apple.com [Thu, 17 Apr 2014 22:25:53 +0000 (22:25 +0000)]
Prediction propagator should correctly model Int52s flowing through arguments
https://bugs.webkit.org/show_bug.cgi?id=131822
<rdar://problem/16641408>

Reviewed by Oliver Hunt.

* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* tests/stress/int52-argument.js: Added.
(foo):
* tests/stress/int52-variable.js: Added.
(foo):

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

8 years agoStub out MemoryPressureHandler::ReliefLogger on older OS X'es.
akling@apple.com [Thu, 17 Apr 2014 21:32:17 +0000 (21:32 +0000)]
Stub out MemoryPressureHandler::ReliefLogger on older OS X'es.

* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

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

8 years agoDon't include CompilationThread.h from StringImpl.h
fpizlo@apple.com [Thu, 17 Apr 2014 21:10:29 +0000 (21:10 +0000)]
Don't include CompilationThread.h from StringImpl.h
https://bugs.webkit.org/show_bug.cgi?id=131817

Reviewed by Simon Fraser.

* wtf/CompilationThread.h:
* wtf/StdLibExtras.h:
* wtf/text/StringImpl.h:

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

8 years agoREGRESSION: ASSERT(!typeInfo().hasImpureGetOwnPropertySlot() || typeInfo().newImpureP...
fpizlo@apple.com [Thu, 17 Apr 2014 21:05:43 +0000 (21:05 +0000)]
REGRESSION: ASSERT(!typeInfo().hasImpureGetOwnPropertySlot() || typeInfo().newImpurePropertyFiresWatchpoints()) on jquery tests
https://bugs.webkit.org/show_bug.cgi?id=131798

Reviewed by Alexey Proskuryakov.

Some day, we will fix https://bugs.webkit.org/show_bug.cgi?id=131810 and some version
of this assertion can return. For now, it's not clear that the assertion is guarding
any truly undesirable behavior - so it should just go away and be replaced with a
FIXME.

* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):
* runtime/Structure.h:
(JSC::Structure::takesSlowPathInDFGForImpureProperty):

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

8 years agoRemove CANVAS_PATH where possible
krit@webkit.org [Thu, 17 Apr 2014 20:32:19 +0000 (20:32 +0000)]
Remove CANVAS_PATH where possible
https://bugs.webkit.org/show_bug.cgi?id=131788

Reviewed by Dean Jackson.

Since Firefox and Chrome ship the same interoperable subset of Path2D soon,
it is time to remove CANVAS_PATH where possible.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.h:
* html/canvas/DOMPath.idl:

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

8 years ago[GStreamer] Store TrackPrivateBaseGStreamer's label and language as AtomicStrings
b.long@cablelabs.com [Thu, 17 Apr 2014 20:31:13 +0000 (20:31 +0000)]
[GStreamer] Store TrackPrivateBaseGStreamer's label and language as AtomicStrings
https://bugs.webkit.org/show_bug.cgi?id=130404

Reviewed by Philippe Normand.

No new tests, this just makes things more efficient.

* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
(WebCore::TrackPrivateBaseGStreamer::getTag):
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:

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

8 years agoFix Cocoa build.
akling@apple.com [Thu, 17 Apr 2014 20:25:53 +0000 (20:25 +0000)]
Fix Cocoa build.

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

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

8 years ago[CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties
cabanier@adobe.com [Thu, 17 Apr 2014 20:24:43 +0000 (20:24 +0000)]
[CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties
https://bugs.webkit.org/show_bug.cgi?id=131355

Reviewed by Dean Jackson.

Source/WebCore:
Removed webkit prefix from mix-blend-mode and isolation. These properties
never shipped and their spec is now in CR.

Covered by existing tests.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

LayoutTests:
Removed prefix from mix-blend-mode and isolation in layout tests.

* css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html:
* css3/compositing/blend-mode-ancestor-clipping-layer.html:
* css3/compositing/blend-mode-background.html:
* css3/compositing/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html:
* css3/compositing/blend-mode-isolated-group-1.html:
* css3/compositing/blend-mode-isolated-group-2.html:
* css3/compositing/blend-mode-isolated-group-3.html:
* css3/compositing/blend-mode-layers.html:
* css3/compositing/blend-mode-parent-of-composited-blended-has-layer.html:
* css3/compositing/blend-mode-property-expected.txt:
* css3/compositing/blend-mode-property-parsing-expected.txt:
* css3/compositing/blend-mode-property-parsing-invalid-expected.txt:
* css3/compositing/blend-mode-reflection.html:
* css3/compositing/blend-mode-simple-composited.html:
* css3/compositing/blend-mode-simple.html:
* css3/compositing/blend-mode-transform-style-expected.txt:
* css3/compositing/blend-mode-transform-style.html:
* css3/compositing/blend-mode-with-accelerated-sibling.html:
* css3/compositing/blend-mode-with-composited-descendant-should-have-layer.html:
* css3/compositing/isolation-isolate-blended-child-expected.html:
* css3/compositing/isolation-isolate-blended-child.html:
* css3/compositing/isolation-parsing.html:
* css3/compositing/script-tests/blend-mode-property-parsing-invalid.js:
(testInvalidFilterRule):
* css3/compositing/script-tests/blend-mode-property-parsing.js:
(testBlendModeRule):
* css3/compositing/script-tests/blend-mode-property.js:
(testblendmode):
* css3/compositing/svg-blend-color-dodge.html:
* css3/compositing/svg-blend-color.html:
* css3/compositing/svg-blend-hard-light.html:
* css3/compositing/svg-blend-hue.html:
* css3/compositing/svg-blend-layer-blend.html:
* css3/compositing/svg-blend-layer-clip-path.html:
* css3/compositing/svg-blend-layer-filter.html:
* css3/compositing/svg-blend-layer-opacity.html:
* css3/compositing/svg-blend-layer-shadow.html:
* css3/compositing/svg-blend-luminosity.html:
* css3/compositing/svg-blend-multiply-alpha.html:
* css3/compositing/svg-blend-multiply.html:
* css3/compositing/svg-blend-saturation.html:
* css3/compositing/svg-blend-screen.html:
* css3/compositing/svg-blend-soft-light.html:
* css3/compositing/svg-isolation-default-expected.html:
* css3/compositing/svg-isolation-default.html:
* css3/compositing/svg-isolation-isolated-group-expected.html:
* css3/compositing/svg-isolation-isolated-group.html:
* fast/repaint/blend-mode-isolate-stacking-context.html:
* inspector-protocol/layers/layers-blending-compositing-reasons.html:
* transitions/blendmode-transitions-expected.txt:
* transitions/blendmode-transitions.html:

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

8 years agoTidy up isIsolatedInline() and highestContainingIsolateWithinRoot()
ddkilzer@apple.com [Thu, 17 Apr 2014 19:39:22 +0000 (19:39 +0000)]
Tidy up isIsolatedInline() and highestContainingIsolateWithinRoot()
<http://webkit.org/b/131117>

Reviewed by Daniel Bates.

Based on review feedback for r166650.

* rendering/InlineIterator.h:
(WebCore::isIsolatedInline):
- Switch argument to a reference since it is never called with a
  nullptr.
(WebCore::highestContainingIsolateWithinRoot):
- Switch first argument to a reference since it's never a
  nullptr.
- Use nullptr for pointer initialization.
- Switch while() loop to for() loop. Pass reference to
  isIsolatedInline().
(WebCore::numberOfIsolateAncestors):
- Switch while() loop to for() loop. Pass reference to
  isIsolatedInline().
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForSegment):
- Rename startObj to startObject.
- No longer need to pass the address of startObject here.

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

8 years agoFix build bustage.
hyatt@apple.com [Thu, 17 Apr 2014 19:27:28 +0000 (19:27 +0000)]
Fix build bustage.

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

8 years agoLog number of bytes reclaimed at each step of memory pressure relief.
akling@apple.com [Thu, 17 Apr 2014 19:19:58 +0000 (19:19 +0000)]
Log number of bytes reclaimed at each step of memory pressure relief.
<https://webkit.org/b/131751>

Reviewed by Antti Koivisto.

* platform/MemoryPressureHandler.h:
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
(WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformMemoryUsage):
(WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformLog):

    Add a simple RAII helper to check memory usage before and after
    a block of code, and then dump the delta to system log.

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

    Use ReliefLogger to annotate the various attempts to reduce
    our memory footprint. This will help us understand the efficiency
    of our current strategy.

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

8 years ago[New Multicolumn] columnNumberForOffset is not patched for new multicolumn code yet.
hyatt@apple.com [Thu, 17 Apr 2014 18:48:15 +0000 (18:48 +0000)]
[New Multicolumn] columnNumberForOffset is not patched for new multicolumn code yet.
https://bugs.webkit.org/show_bug.cgi?id=131740

Reviewed by Enrica Casucci.

I took the opportunity to clean this code up while adding support for the new columns.
columnNumberForOffset only applied for paginated RenderViews and was really about
pages and not columns. It also only returns an actual page number if the columns are
block progressed (e.g., right-to-left vertical Japanese books).

Therefore I renamed columnNumberForOffset to pageNumberForBlockProgressionOffset and
moved it to RenderView.

I also renamed the member variable of SelectionRect to be pageNumber instead of
columnNumber in order to make it more obvious that this isn't about columns per se
(since the fact that we implemented RenderView's pagination mode using columns is an
implementation detail).

* dom/Range.cpp:
(WebCore::coalesceSelectionRects):
(WebCore::Range::collectSelectionRects):
* platform/ios/SelectionRect.h:
(WebCore::SelectionRect::pageNumber):
(WebCore::SelectionRect::columnNumber): Deleted.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionRects):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::collectSelectionRects):
(WebCore::RenderObject::columnNumberForOffset): Deleted.
* rendering/RenderObject.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionRects):
* rendering/RenderView.cpp:
(WebCore::RenderView::pageNumberForBlockProgressionOffset):
* rendering/RenderView.h:

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

8 years ago[Win] Unreviewed 64-bit build fix.
bfulgham@apple.com [Thu, 17 Apr 2014 18:26:58 +0000 (18:26 +0000)]
[Win] Unreviewed 64-bit build fix.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Do not
export 32-bit symbol in 64-bit build.

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

8 years ago[Win] A few final cleanups to the DataObject classes.
bfulgham@apple.com [Thu, 17 Apr 2014 18:14:12 +0000 (18:14 +0000)]
[Win] A few final cleanups to the DataObject classes.
https://bugs.webkit.org/show_bug.cgi?id=131784

Reviewed by Anders Carlsson.

Source/WebCore:
* platform/win/WCDataObject.cpp:
(WebCore::WCDataObject::clearData): Use 'last()' method.

Tools:
* DumpRenderTree/win/DRTDataObject.cpp:
(DRTDataObject::clearData): Use 'last()' method.
* DumpRenderTree/win/UIDelegate.cpp:
(DRTUndoStack::pop): Use 'takeLast()' method.

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

8 years agoFullscreen media controls are unusable in pagination mode
jer.noble@apple.com [Thu, 17 Apr 2014 17:59:26 +0000 (17:59 +0000)]
Fullscreen media controls are unusable in pagination mode
https://bugs.webkit.org/show_bug.cgi?id=131705

Reviewed by Darin Adler.

Source/WebCore:
When pagination mode is enabled, the full screen media will (depending on the width of the
pagination columns) overflow its column, and hit testing will be clipped to the column. In extreme
cases, where the column width < 0.5 * media element width, the media controls will be entirely
unclickable.

Rather than making the RenderFullScreen a child of the full screen element's parent's renderer,
make it a child of the RenderView, putting it outside of the columns entirely. Always create and
insert the fullscreenRenderer's placeholder, using it as the remembered insertion point for the
fullscreen element's renderer when we exit full screen.

Drive-by fix: don't wrap the full screen element's renderer in webkitWillEnterFullScreenForElement();
it will just be re-wrapped in createRendererIfNeeded().

* dom/Document.cpp:
(WebCore::Document::webkitWillEnterFullScreenForElement): Don't wrap the full screen element's renderer.
(WebCore::Document::setFullScreenRenderer): Call setPlaceholderStyle.
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreenPlaceholder::willBeDestroyed): Call clearPlaceholder.
(WebCore::RenderFullScreen::wrapRenderer): Make fullscreenRenderer a child of the view().
(WebCore::RenderFullScreen::unwrapRenderer): Return the children to the parent of the placeholder().
(WebCore::RenderFullScreen::clearPlaceholder): Renamed from setPlaceholder().
(WebCore::RenderFullScreen::ensurePlaceholder): Added.
(WebCore::RenderFullScreen::setPlaceholderStyle): Renamed from createPlaceholder().
(WebCore::RenderFullScreen::setPlaceholder): Deleted.
(WebCore::RenderFullScreen::createPlaceholder): Deleted.
* rendering/RenderFullScreen.h:

LayoutTests:
* fullscreen/full-screen-no-style-sharing-expected.txt: Rebaselined.
* fullscreen/video-cursor-auto-hide.html: Corrected test to move cursor
    to the middle of the video element.

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

8 years ago[MSE] Multiple initialization segments with same codecs in tracks fail validation.
jer.noble@apple.com [Thu, 17 Apr 2014 17:54:59 +0000 (17:54 +0000)]
[MSE] Multiple initialization segments with same codecs in tracks fail validation.
https://bugs.webkit.org/show_bug.cgi?id=131768

Source/WebCore:
Additional initialization segments added to the same SourceBuffer with the same
codec values will fail validation. Update the validation check to add the correct
codec information for the initial segment, and check against the correct codecs during
the validation step.

Additionally, after validation, if successful update the Audio, Video, and TextTracks
for the SourceBuffer with the updated initialization segment information.

Reviewed by Eric Carlson.

Test: media/media-source/media-source-multiple-initialization-segments.html

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferTimerFired): m_source may have been cleared
    as a result of the append, so check it before using.
(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Call streamEndedWithError
    instead of endOfStream as the latter is safe to call within an update.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Ditto.
    Update the track lists if validation succeeds.
(WebCore::SourceBuffer::validateInitializationSegment): Switch the audio and video
    codec checks.

Add the ability for Audio, Video, and InbandTextTracks to replace their private tracks:
* html/track/AudioTrack.cpp:
(WebCore::AudioTrack::AudioTrack): Call updateKindFromPrivate().
(WebCore::AudioTrack::setPrivate):
(WebCore::AudioTrack::updateKindFromPrivate): Split out from constructor.
* html/track/AudioTrack.h:
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::InbandTextTrack): Call updateKindFromPrivate().
(WebCore::InbandTextTrack::setPrivate):
(WebCore::InbandTextTrack::setMode): Split up into setModeInternal().
(WebCore::InbandTextTrack::setModeInternal): Broke out from setMode().
(WebCore::InbandTextTrack::updateKindFromPrivate): Split out from constructor.
* html/track/InbandTextTrack.h:
* html/track/TextTrack.h:
(WebCore::TextTrack::isInband): Added, returns false.
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::VideoTrack): Call updateKindFromPrivate().
(WebCore::VideoTrack::setPrivate):
(WebCore::VideoTrack::updateKindFromPrivate):  Split out from constructor.
* html/track/VideoTrack.h:

LayoutTests:
Reviewed by Eric Carlson.

* media/media-source/media-source-multiple-initialization-segments-expected.txt: Added.
* media/media-source/media-source-multiple-initialization-segments.html: Added.

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

8 years ago[New Multicolumn] Column sets below spanners don't repaint properly.
hyatt@apple.com [Thu, 17 Apr 2014 17:53:40 +0000 (17:53 +0000)]
[New Multicolumn] Column sets below spanners don't repaint properly.
https://bugs.webkit.org/show_bug.cgi?id=131778

Reviewed by Beth Dakin.

Source/WebCore:
Added fast/repaint/spanner-with-margins.html.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):
Turn off some code that was running for in-flow RenderFlowThreads that made no sense.
I'm not convinced the code is right for other types of RenderFlowThreads either,
but will leave that to the named flow thread experts. :)

LayoutTests:
* fast/repaint/spanner-with-margin-expected.txt: Added.
* fast/repaint/spanner-with-margin.html: Added.

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

8 years ago[GTK] [Gardening] Updates GTK test expectations
mrobinson@webkit.org [Thu, 17 Apr 2014 17:52:23 +0000 (17:52 +0000)]
[GTK] [Gardening] Updates GTK test expectations

Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-04-17

* platform/gtk/TestExpectations:
  - Marked as flaky
    - fast/frames/frame-programmatic-noresize.html
    - fast/frames/frame-with-noresize-can-be-resized-after-removal-of-noresize.html
    - fast/frames/frame-with-noresize-can-be-resized-after-setting-noResize-to-false.html
  - Removed because are passing now
    - fast/dom/gc-dom-tree-lifetime.html
    - http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html
    - editing/editability/ignored-content.html

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

8 years agoCatch up ruby and its tag omission rule changes in HTML5 CR Feb 2014
commit-queue@webkit.org [Thu, 17 Apr 2014 17:41:38 +0000 (17:41 +0000)]
Catch up ruby and its tag omission rule changes in HTML5 CR Feb 2014
https://bugs.webkit.org/show_bug.cgi?id=131175

Patch by Koji Ishii <kojishi@gmail.com> on 2014-04-17
Reviewed by Darin Adler.

Source/WebCore:
Tests: html5lib/resources/ruby.dat
       html5lib/resources/tests19.dat

This patch makes WebKit HTML parser to match to the tag omission rules of HTML5 CR Feb 2014:
http://www.w3.org/TR/2014/CR-html5-20140204/syntax.html#syntax-tag-omission
with the support for two new elements (rb, rtc) which were also defined in the spec:
http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rb-element
http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rtc-element
to better support use cases presented by W3C I18N WG:
http://www.w3.org/TR/ruby-use-cases/

* html/HTMLTagNames.in: rb and rtc added as HTMLElement interfaces.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::hasImpliedEndTag): the spec says rb and rtc have implied end tags.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody): rb and rtc added. rt excludes rtc from its implied end tags.

LayoutTests:
25 new test cases in 2 test files imported from pull requests to html5lib-tests,
with run- and expected-files generated.
All new tests pass with the changes included in this patch.

* html5lib/generated/run-ruby-data-expected.txt: Added.
* html5lib/generated/run-ruby-data.html: Added (generated by generate-test-wrappers.py)
* html5lib/generated/run-ruby-write-expected.txt: Added.
* html5lib/generated/run-ruby-write.html: Added (generated by generate-test-wrappers.py)
* html5lib/resources/ruby.dat: Added from https://github.com/darobin/html5lib-tests/pull/1
* html5lib/resources/tests19.dat: Updated from https://github.com/html5lib/html5lib-tests/pull/27

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

8 years ago Try to fix EFL and GTK builds.
darin@apple.com [Thu, 17 Apr 2014 17:37:40 +0000 (17:37 +0000)]
    Try to fix EFL and GTK builds.

        * Source/cmake/OptionsEfl.cmake: Add INDEXED_DATABASE_IN_WORKERS.
        * Source/cmake/OptionsGTK.cmake: Ditto.
        * Source/cmakeconfig.h.cmake: Ditto.

        * Source/WebCore/workers/WorkerGlobalScope.idl: Touch file to make it rebuild,
        assuming that module dependencies aren't working right with CMake. Tweaked
        formatting quite a bit while I was in here.

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

8 years agoBlind attempt to fix Windows build after r166837
ddkilzer@apple.com [Thu, 17 Apr 2014 17:34:52 +0000 (17:34 +0000)]
Blind attempt to fix Windows build after r166837
<http://webkit.org/b/131246>

Hoping to fix this build error:

    warning MSB8027: Two or more files with the name of GCLogging.cpp will produce outputs to the same location. This can lead to an incorrect build result.  The files involved are ..\heap\GCLogging.cpp, ..\heap\GCLogging.cpp.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Fix copy-paste
boo-boo by changing the GCLogging.cpp ClCompile entry to a
GCLogging.h ClInclude entry.

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

8 years agoDon't skip inspector/dom/content-flow-list.html and inspector/dom/content-flow-conten...
ap@apple.com [Thu, 17 Apr 2014 17:04:29 +0000 (17:04 +0000)]
Don't skip inspector/dom/content-flow-list.html and inspector/dom/content-flow-content-removal.html.

First, they no longer crash/assert. They fail most of the time, but that's tracked as bug 129817.

Second, skipping was ineffective anyway, because we had a preceding [ Pass Failure ]
entry for the same files.

* TestExpectations:

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

8 years agoAI for GetLocal should match the DFG backend, and in this case, the best way to do...
fpizlo@apple.com [Thu, 17 Apr 2014 17:01:05 +0000 (17:01 +0000)]
AI for GetLocal should match the DFG backend, and in this case, the best way to do that is to get rid of the "exit if empty prediction" thing since it's a vestige of a time long gone
https://bugs.webkit.org/show_bug.cgi?id=131764

Reviewed by Geoffrey Garen.

The attached test case can be made to not crash by deleting old code. It used to be
the case that the DFG needed empty prediction guards, for shady reasons. We fixed that
long ago. At this point, these guards just make life difficult. So get rid of them.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* tests/stress/bug-131764.js: Added.
(test1):
(test2):

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

8 years agoUse HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
darin@apple.com [Thu, 17 Apr 2014 17:00:21 +0000 (17:00 +0000)]
Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
https://bugs.webkit.org/show_bug.cgi?id=73757

Reviewed by Brent Fulgham.

* wtf/Vector.h:
(WTF::deprecatedDeleteAllValues): Deleted.

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

8 years agoRemove use of deprecatedDeleteAllValues in NPRemoteObjectMap::pluginDestroyed
darin@apple.com [Thu, 17 Apr 2014 16:58:33 +0000 (16:58 +0000)]
Remove use of deprecatedDeleteAllValues in NPRemoteObjectMap::pluginDestroyed
https://bugs.webkit.org/show_bug.cgi?id=122496

Reviewed by Brent Fulgham.

* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::pluginDestroyed): Use new-style code and write the
deprecatedDeleteAllValues function out using a loop. Might be nice to return here
and use unique_ptr instead some day, but I tried that before and got it wrong, so
lets do that another time.

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

8 years ago[Win] cygwin to keep installing curl 7.33.0-1 and subversion 1.7.14-1
agomez@igalia.com [Thu, 17 Apr 2014 16:47:56 +0000 (16:47 +0000)]
[Win] cygwin to keep installing curl 7.33.0-1 and subversion 1.7.14-1
https://bugs.webkit.org/show_bug.cgi?id=131365

Reviewed by Brent Fulgham.

The cygwin installer is now downloading the wanted versions for
the local installation given to the setup wizard.

* CygwinDownloader/cygwin-downloader.py:
* CygwinDownloader/cygwin-downloader.zip:

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

8 years ago[New Multicolumn] REGRESSION: Column set styles don't update when zooming etc.
hyatt@apple.com [Thu, 17 Apr 2014 16:45:29 +0000 (16:45 +0000)]
[New Multicolumn] REGRESSION: Column set styles don't update when zooming etc.
https://bugs.webkit.org/show_bug.cgi?id=131777

Reviewed by Enrica Casucci.

Source/WebCore:
Added fast/multicol/zoom-test.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
Put back in the code that propagates new styles to the flow thread and column sets
when styles change. This propagation was removed when the column span code landed.
This patch puts it back in but qualifies the types of objects that get styles
propagated to avoid accidentally propagating the wrong style to column spans.

LayoutTests:
* fast/multicol/zoom-test-expected.html: Added.
* fast/multicol/zoom-test.html: Added.

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

8 years ago[EFL] Remove deprecated ewk_paint code.
commit-queue@webkit.org [Thu, 17 Apr 2014 14:53:31 +0000 (14:53 +0000)]
[EFL] Remove deprecated ewk_paint code.
https://bugs.webkit.org/show_bug.cgi?id=131266

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-17
Reviewed by Gyuyoung Kim.

ewk_paint related code was deprecated since r166637.

Source/WebKit:
* PlatformEfl.cmake: Remove ewk_paint_context.cpp

Source/WebKit/efl:
* WebCoreSupport/AcceleratedCompositingContextEfl.cpp:
* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::invalidateRootView): Deleted.
(WebCore::ChromeClientEfl::invalidateContentsAndRootView): Deleted.
(WebCore::ChromeClientEfl::invalidateContentsForSlowScroll): Deleted.
(WebCore::ChromeClientEfl::scroll): Deleted.
* WebCoreSupport/ChromeClientEfl.h:
* WebCoreSupport/InspectorClientEfl.cpp:
* ewk/ewk_paint_context.cpp: Removed.
* ewk/ewk_paint_context_private.h: Removed.
* ewk/ewk_view.cpp:
(_ewk_view_priv_del):
(_ewk_view_smart_calculate):
(ewk_view_smart_set):
(_ewk_view_repaints_resize): Deleted.
(_ewk_view_repaint_add): Deleted.
(_ewk_view_repaints_flush): Deleted.
(_ewk_view_smart_flush): Deleted.
(ewk_view_repaints_pop): Deleted.
(ewk_view_repaint_add): Deleted.
(ewk_view_paint): Deleted.
(ewk_view_paint_contents): Deleted.
(ewk_view_repaint): Deleted.
(ewk_view_scroll): Deleted.
(ewk_view_tiled_backing_store_invalidate): Deleted.
* ewk/ewk_view_private.h:

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

8 years agoAdd separate flag for IndexedDatabase in workers since the current implementation...
darin@apple.com [Thu, 17 Apr 2014 14:48:18 +0000 (14:48 +0000)]
Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
https://bugs.webkit.org/show_bug.cgi?id=131785
rdar://problem/16003108

Reviewed by Brady Eidson.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

Source/WebCore:

* Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: Use the new conditional
instead of the old one.
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h: Ditto.
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl: Ditto.

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

Source/WTF:

* wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS.

LayoutTests:

* js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
* js/dom/global-constructors-attributes-shared-worker-expected.txt:
Updated results since indexed database features are not on by default any more.

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

8 years ago[GTK] Make run-webkit-tests always use WKTR
commit-queue@webkit.org [Thu, 17 Apr 2014 14:41:42 +0000 (14:41 +0000)]
[GTK] Make run-webkit-tests always use WKTR
https://bugs.webkit.org/show_bug.cgi?id=131737

Patch by Adrian Perez de Castro <aperez@igalia.com> on 2014-04-17
Reviewed by Darin Adler.

Now that the GTK+ port only has support for WebKit2, instruct
run-webkit-tests to always use WKTR. This avoids needing to pass
flag "-2" every time.

* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(_set_up_derived_options): Always set webkit_test_runner when
the platform is GTK+.

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

8 years agoSource/WebCore: WebCore part of <rdar://problem/16601336> [Cocoa] _userInitiated...
mitz@apple.com [Thu, 17 Apr 2014 14:00:17 +0000 (14:00 +0000)]
Source/WebCore: WebCore part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
https://bugs.webkit.org/show_bug.cgi?id=131783

Reviewed by Tim Horton.

* loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction): Initialize m_processingUserGesture to
ScriptController::processingUserGesture() at the time the NavigationAction is constructed.
* loader/NavigationAction.h:
Added boolean member variable m_processionUserGesture
(WebCore::NavigationAction::processingUserGesture): Added this getter.

Source/WebKit2: WebKit2 part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
https://bugs.webkit.org/show_bug.cgi?id=131783

Reviewed by Tim Horton.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow): Set the isProcessingUserGesture field of
the NavigationActionData to the corresponding value in the NavigationAction.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.

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

8 years ago[CSS Blending] Isolation descendant dependent flags are not updated correctly
commit-queue@webkit.org [Thu, 17 Apr 2014 08:42:53 +0000 (08:42 +0000)]
[CSS Blending] Isolation descendant dependent flags are not updated correctly
https://bugs.webkit.org/show_bug.cgi?id=130892

Patch by Ion Rosca <rosca@adobe.com> on 2014-04-17
Reviewed by Dean Jackson.

Source/WebCore:
The isolation descendant dependent flag (m_hasUnisolatedBlendingDescendants)
will help us to determine if a layer should isolate blending descendants or not.
The m_hasUnisolatedBlendingDescendants flag should be set for layers that have blending descendant layers
not isolated by descendant stacking contexts.
An element isolatesBlending() if it has this flag set and creates stacking context.

Tests: css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html
       css3/compositing/blend-mode-isolation-flags-turn-off-blending.html
       css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html
       css3/compositing/blend-mode-isolation-flags-turn-on-blending.html
       css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateBlendMode):
(WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
    When a layer has blending and it hasn't had it before, we set the isolation
flag for all its ancestors up to the first layer creating stacking context.
I removed the isComposited() check here. Isolation flags should be correct regardless
of compositing state. Moreover, if this method is called from styleChanged(),
the compositing state might not be accurate, it's going to be recalculated afterwards.
(WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
    When a layer doesn't have blending, but it used to have it before, we mark
the isolation flag as dirty for all its ancestors up to the first layer
creating stacking context. The isolation flags will be recalculated by
RenderLayer::updateDescendantDependentFlags.
(WebCore::RenderLayer::updateDescendantDependentFlags):
    Evaluates if the layer has unisolated blending descendants by traversing
the layer subtree.
(WebCore::RenderLayer::addChild):
    When adding a subtree that has blending or has some unisolated descendants,
we set the flag for all the ancestors, up to the stacking context layer.
(WebCore::RenderLayer::removeChild):
    When removing a subtree that had blending or had some unisolated descendants,
we dirty the flag so that it could be reevaluated.
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::updateTransform):
* rendering/RenderLayer.h:
    Rename m_hasBlendedElementInChildStackingContext => m_hasUnisolatedBlendingDescendants
and m_hasBlendedElementInChildStackingContextStatusDirty => m_hasUnisolatedBlendingDescendantsStatusDirty,
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
    Add an assert to make sure that if m_hasUnisolatedCompositedBlendingDescendants is true,
then m_hasUnisolatedBlendingDescendants is true as well.

LayoutTests:
* css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-off-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-on-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html: Added.
* platform/mac/css3/compositing/blend-mode-background-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-layers-expected.txt:
* platform/mac/css3/compositing/blend-mode-reflection-expected.txt:
* platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
* platform/mac/css3/compositing/blend-mode-simple-expected.txt:

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

8 years agoUninline blend(Color, Color) to get AnimationUtilities out of Color.h
timothy_horton@apple.com [Thu, 17 Apr 2014 07:33:23 +0000 (07:33 +0000)]
Uninline blend(Color, Color) to get AnimationUtilities out of Color.h
https://bugs.webkit.org/show_bug.cgi?id=131781

Reviewed by Simon Fraser.

* platform/graphics/Color.cpp:
(WebCore::blend):
Un-inline.

* platform/graphics/Color.h:
No more AnimationUtilities.

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

8 years ago[Gtk] Install ninja-build in Tools/gtk/install-dependencies
b.long@cablelabs.com [Thu, 17 Apr 2014 07:23:59 +0000 (07:23 +0000)]
[Gtk] Install ninja-build in Tools/gtk/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=131760

Reviewed by Philippe Normand.

* gtk/install-dependencies: Install ninja-build when it's available.

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

8 years agoBuild fix after http://trac.webkit.org/changeset/167416 (Sink NaN sanitization)
ap@apple.com [Thu, 17 Apr 2014 05:31:33 +0000 (05:31 +0000)]
Build fix after trac.webkit.org/changeset/167416 (Sink NaN sanitization)

* dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::speculate):

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

8 years agoExtra error reporting for invalid value conversions
fpizlo@apple.com [Thu, 17 Apr 2014 05:02:28 +0000 (05:02 +0000)]
Extra error reporting for invalid value conversions
https://bugs.webkit.org/show_bug.cgi?id=131786

Rubber stamped by Ryosuke Niwa.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

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

8 years agoSink NaN sanitization to uses and remove it when it's unnecessary
fpizlo@apple.com [Thu, 17 Apr 2014 04:57:29 +0000 (04:57 +0000)]
Sink NaN sanitization to uses and remove it when it's unnecessary
https://bugs.webkit.org/show_bug.cgi?id=131419

Reviewed by Oliver Hunt.

This moves NaN purification to stores that could see an impure NaN.

5% speed-up on AsmBench, 50% speed-up on AsmBench/n-body. It is a regression on FloatMM
though, because of the other bug that causes that benchmark to box doubles in a loop.

* bytecode/SpeculatedType.h:
(JSC::isInt32SpeculationForArithmetic):
(JSC::isMachineIntSpeculationForArithmetic):
(JSC::isDoubleSpeculation):
(JSC::isDoubleSpeculationForArithmetic):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::mergeStateAtTail):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueRep):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileValueRep):
(JSC::FTL::LowerDFGToLLVM::compileGetByVal):
* runtime/PureNaN.h:
* tests/stress/float32-array-nan-inlined.js: Added.
(foo):
(test):
* tests/stress/float32-array-nan.js: Added.
(foo):
(test):
* tests/stress/float64-array-nan-inlined.js: Added.
(foo):
(isBigEndian):
(test):
* tests/stress/float64-array-nan.js: Added.
(foo):
(isBigEndian):
(test):

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

8 years agoFix the build after r167412
benjamin@webkit.org [Thu, 17 Apr 2014 03:54:11 +0000 (03:54 +0000)]
Fix the build after r167412

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16

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

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

8 years agoVersioning.
lforschler@apple.com [Thu, 17 Apr 2014 03:48:02 +0000 (03:48 +0000)]
Versioning.

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

8 years ago[iOS][WK2] Fix the DidCommitLoad initial scrolling position
benjamin@webkit.org [Thu, 17 Apr 2014 03:28:02 +0000 (03:28 +0000)]
[iOS][WK2] Fix the DidCommitLoad initial scrolling position
https://bugs.webkit.org/show_bug.cgi?id=131780

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16
Reviewed by Jon Honeycutt.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
That code is older than _obscuredInsets and used the contentInsets as a workaround.

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

8 years ago[iOS][WK2] Fix annoying scrolling bugs
benjamin@webkit.org [Thu, 17 Apr 2014 03:26:53 +0000 (03:26 +0000)]
[iOS][WK2] Fix annoying scrolling bugs
https://bugs.webkit.org/show_bug.cgi?id=131722

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16
Reviewed by Simon Fraser.

Source/WebCore:
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
Since ScrollingStateScrollingNode::setRequestedScrollPosition() was added, we see ScrollView::updateScrollbars()
keep changing the scroll position to incorrect values.

On iOS, the scrollbars are handled by the native UI, the code just compute incorrect scroll position. On WebKit1,
the code does not run because there is a platformWidget().

Just #ifdef the whole useless code.

Source/WebKit2:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:WebCore::]):
We are scrolling at the wrong position when we have the "small obscured insets".

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

8 years agoOn iOS keep network process running using a process assertion rather than a boost
barraclough@apple.com [Thu, 17 Apr 2014 01:40:04 +0000 (01:40 +0000)]
On iOS keep network process running using a process assertion rather than a boost
https://bugs.webkit.org/show_bug.cgi?id=131779

Reviewed by Benjamin Poulain.

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
    - No need to leak a boost onto the NetworkProcess on iOS.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching):
    - Take a ProcessAssertion on the NetworkProcess.
* UIProcess/Shared/ChildProcessProxy.h:
    - Added m_assertion.
* UIProcess/WebProcessProxy.h:
    - Removed m_assertion.
* UIProcess/ios/ProcessAssertion.h: Added.
    - Added - refactored from WebProcessProxy.h.
* UIProcess/ios/ProcessAssertion.mm: Added.
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::setState):
    - Added - refactored from WebProcessProxyIOS.mm.
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::updateProcessState):
    - Code refactored out to ProcessAssertion.mm.
* WebKit2.xcodeproj/project.pbxproj:
    - Added files.

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

8 years ago[iOS][WK2] Improve the approximation of the scroll position of the dynamic viewport...
benjamin@webkit.org [Thu, 17 Apr 2014 01:26:07 +0000 (01:26 +0000)]
[iOS][WK2] Improve the approximation of the scroll position of the dynamic viewport size updates
https://bugs.webkit.org/show_bug.cgi?id=131720

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16
Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:]):
The scrolling tree was forcing scroll at the wrong scale during the transition.

(-[WKWebView _setMinimumLayoutSizeOverride:]):
This was left out by accident. The WebProcess was getting the new layout size twice, making
WebPage::dynamicViewportSizeUpdate() very confused when the content size changes.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
Add scrolling adjustment for the dynamic relayout case:
-Sticky top and bottom like the UIProcess.
-Keep the same relative position of the unobscured rect's center.

Also fix a bug in the horizontal and vertical adjustments: the code was using the exposed rect
instead of the unobscured rect, which made the adjustments off by the size of the obscured insets.

The type is changed from double to float since ARMv7 has a grudge against double.

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

8 years ago[iOS][WK2] Do not update the visible content rects when setting the same obscured...
benjamin@webkit.org [Thu, 17 Apr 2014 01:23:44 +0000 (01:23 +0000)]
[iOS][WK2] Do not update the visible content rects when setting the same obscured insets multiple times
https://bugs.webkit.org/show_bug.cgi?id=131633

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16
Reviewed by Darin Adler.

We should avoid computing the visible content rects when not needed.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setObscuredInsets:]):

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

8 years agoImprove performance of the RenderLayerCompositor::OverlapMap
achicu@adobe.com [Thu, 17 Apr 2014 01:00:26 +0000 (01:00 +0000)]
Improve performance of the RenderLayerCompositor::OverlapMap
https://bugs.webkit.org/show_bug.cgi?id=115063

Reviewed by Simon Fraser.

PerformanceTests:
Testing the performance of computing the overlap of 5000 layers.

* Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
that the performance on the non-composited path is not changing with this patch.
* Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
non-overlapping 3D layers.

Source/WebCore:
No new tests, no new functionality or behavior.

Do not use the OverlapMap in RenderLayerCompositor::computeCompositingRequirements if the layer already
has a 3D transform. This way we can avoid a potential expensive lookups when we know for sure the layer
is already supposed to be composited.

Also, added a bounding box of the overlap map, so that it can catch cases when the new layer is not overlapping
any of the previous layers. This is pretty common when having composited layers laid out in a vertical/horizontal list.

* rendering/RenderLayerCompositor.cpp:
(OverlapMapContainer):
(WebCore::OverlapMapContainer::add):
(WebCore::OverlapMapContainer::overlapsLayers):
(WebCore::OverlapMapContainer::unite):
(WebCore):
(WebCore::RenderLayerCompositor::OverlapMap::add):
(WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
(WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
(RenderLayerCompositor::OverlapMap):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

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

8 years agoWeb Replay: memoize fallback time values for document.lastModified
burg@cs.washington.edu [Thu, 17 Apr 2014 00:56:35 +0000 (00:56 +0000)]
Web Replay: memoize fallback time values for document.lastModified
https://bugs.webkit.org/show_bug.cgi?id=131318

Reviewed by Joseph Pecoraro.

Source/WebCore:
If a document's Last-Modified header can't be found or used, then
document.lastModified is derived from the current system time or
from filesystem data, which is obviously nondeterministic.

It's better to handle this inside Document::lastModified rather than using
MemoizedDOMResult, because only the fallback case is nondeterministic.

Test: http/tests/inspector/replay/document-last-modified-fallback-value.html

The test is skipped for now, as it will be very flaky without the
functionality introduced by bugs 130728 and 129391.

* dom/Document.cpp:
(WebCore::Document::lastModified): Save or reuse memoized fallback value.
* replay/WebInputs.json: Add input DocumentLastModifiedDate.

LayoutTests:
Mark the new test as skipped until dependent functionality is landed.

* http/tests/inspector/replay/document-last-modified-fallback-value.html: Added.

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

8 years ago[Win] Unreviewed Windows gardening. Restrict our new 'isinf' check
bfulgham@apple.com [Thu, 17 Apr 2014 00:40:36 +0000 (00:40 +0000)]
[Win] Unreviewed Windows gardening. Restrict our new 'isinf' check
to 32-bit builds, and revise the comment to explain what we are
doing.

* runtime/JSCJSValueInlines.h:
(JSC::JSValue::isMachineInt): Provide motivation for the new
'isinf' check for our 32-bit code path.

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

8 years ago[New Multicolumn] Selection gets confused when the mouse is in the column gaps.
hyatt@apple.com [Thu, 17 Apr 2014 00:27:34 +0000 (00:27 +0000)]
[New Multicolumn] Selection gets confused when the mouse is in the column gaps.
https://bugs.webkit.org/show_bug.cgi?id=131739

Reviewed by Enrica Casucci.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGaps):
Make sure not to paint selection gaps. This matches the old multi-column behavior. Even though
selection gaps *nearly* work with the new multi-column code, I am disabling them so that we
can turn them on without visual regressions.

(WebCore::isChildHitTestCandidate):
Don't allow in-flow RenderFlowThreads to be descended into from positionForPoint. We always want
to look only at the spanners and at the sets.

* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::nodeAtPoint):
* rendering/RenderMultiColumnFlowThread.h:
Override nodeAtPoint to disallow the RenderMultiColumnFlowThread from being considered for hit
testing when no DOM node is found. It's better to just let RenderBlock's positionForPoint run
to drill back down into the appropriate column set.

* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::positionForPoint):
Implement positionForPoint for RenderMultiColumnSets. This is a straight-up port of the
old multi-column code's adjustPointToColumnContents function.

* rendering/RenderMultiColumnSet.h:
Add override of positionForPoint.

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

8 years agoImages dragged from WebKit1 on 2x displays are too big
timothy_horton@apple.com [Wed, 16 Apr 2014 23:59:13 +0000 (23:59 +0000)]
Images dragged from WebKit1 on 2x displays are too big
https://bugs.webkit.org/show_bug.cgi?id=131775
<rdar://problem/15933525>

Reviewed by Simon Fraser.

* WebCoreSupport/WebDragClient.mm:
(WebDragClient::startDrag):
Scale the drag image's logical size down by the device scale factor
in WebKit1 just like we do in WebKit2.

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

8 years agoMediaDocument on iOS should be full page
dino@apple.com [Wed, 16 Apr 2014 23:55:36 +0000 (23:55 +0000)]
MediaDocument on iOS should be full page
https://bugs.webkit.org/show_bug.cgi?id=131774

Reviewed by Jer Noble.

Source/WebCore:
A MediaDocument on iOS has two problems. It can't rely
on intrinsic size, since it doesn't load the content until
a user gesture. Secondly, on a small screen you want the
media to fill the page.

Add width/height 100% for iOS documents.

Test: platform/iphone-simulator/media/media-document-controls-size.html

* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):

LayoutTests:
* platform/iphone-simulator/media/media-document-controls-size-expected.txt: Added.
* platform/iphone-simulator/media/media-document-controls-size.html: Added.

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

8 years agoAdd a way for layout tests to determine whether or not a plugin is snapshotted.
roger_fong@apple.com [Wed, 16 Apr 2014 23:53:59 +0000 (23:53 +0000)]
Add a way for layout tests to determine whether or not a plugin is snapshotted.
https://bugs.webkit.org/show_bug.cgi?id=131650.
<rdar://problem/16615528>

Reviewed by Dean Jackson.

* testing/Internals.cpp:
(WebCore::Internals::isPluginSnapshotted):
* testing/Internals.h:
* testing/Internals.idl:

Adjust simple.html accordingly, more snapshotting test changes to come.
* platform/mac-wk2/plugins/snapshotting/simple-expected.txt:
* plugins/snapshotting/simple.html:

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

8 years agoDon't include CryptographicallyRandomNumber.h in StringImpl.h
simon.fraser@apple.com [Wed, 16 Apr 2014 23:50:25 +0000 (23:50 +0000)]
Don't include CryptographicallyRandomNumber.h in StringImpl.h
https://bugs.webkit.org/show_bug.cgi?id=131772

Reviewed by Sam Weinig.

* wtf/text/StringImpl.h:

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

8 years agoMake IPC::Arguments a variadic template
zandobersek@gmail.com [Wed, 16 Apr 2014 23:46:59 +0000 (23:46 +0000)]
Make IPC::Arguments a variadic template
https://bugs.webkit.org/show_bug.cgi?id=131684

Reviewed by Darin Adler.

Make IPC::Arguments a variadic template that uses the template parameter pack to further
define the std::tuple ValueType and is used to define the std::tuple container of the
values passed into the container.

* Platform/IPC/Arguments.h:
(IPC::Arguments::Arguments):
(IPC::Arguments::encode):
(IPC::Arguments::decode):
(IPC::Arguments0::encode): Deleted.
(IPC::Arguments0::decode): Deleted.
(IPC::Arguments1::Arguments1): Deleted.
(IPC::Arguments1::encode): Deleted.
(IPC::Arguments1::decode): Deleted.
(IPC::Arguments2::Arguments2): Deleted.
(IPC::Arguments2::encode): Deleted.
(IPC::Arguments2::decode): Deleted.
(IPC::Arguments3::Arguments3): Deleted.
(IPC::Arguments3::encode): Deleted.
(IPC::Arguments3::decode): Deleted.
(IPC::Arguments4::Arguments4): Deleted.
(IPC::Arguments4::encode): Deleted.
(IPC::Arguments4::decode): Deleted.
(IPC::Arguments5::Arguments5): Deleted.
(IPC::Arguments5::encode): Deleted.
(IPC::Arguments5::decode): Deleted.
(IPC::Arguments6::Arguments6): Deleted.
(IPC::Arguments6::encode): Deleted.
(IPC::Arguments6::decode): Deleted.
(IPC::Arguments7::Arguments7): Deleted.
(IPC::Arguments7::encode): Deleted.
(IPC::Arguments7::decode): Deleted.
(IPC::Arguments8::Arguments8): Deleted.
(IPC::Arguments8::encode): Deleted.
(IPC::Arguments8::decode): Deleted.
(IPC::Arguments10::Arguments10): Deleted.
(IPC::Arguments10::encode): Deleted.
(IPC::Arguments10::decode): Deleted.
* Scripts/webkit2/LegacyMessages-expected.h:
* Scripts/webkit2/Messages-expected.h:
* Scripts/webkit2/messages.py: Clean up the code a bit.
(reply_parameter_type):
(arguments_type):
(reply_type):
(decode_type):
(arguments_type_old): Deleted.
(base_class): Deleted.
(delayed_reply_type): Deleted.

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

8 years agoDeduplicate LayerTreeContext
timothy_horton@apple.com [Wed, 16 Apr 2014 23:40:53 +0000 (23:40 +0000)]
Deduplicate LayerTreeContext
https://bugs.webkit.org/show_bug.cgi?id=131773

Reviewed by Simon Fraser.

There are three identical implementations, one for each platform, for no reason.

* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/LayerTreeContext.cpp: Renamed from Source/WebKit2/Shared/mac/LayerTreeContextMac.mm.
(WebKit::LayerTreeContext::LayerTreeContext):
(WebKit::LayerTreeContext::~LayerTreeContext):
(WebKit::LayerTreeContext::encode):
(WebKit::LayerTreeContext::decode):
(WebKit::LayerTreeContext::isEmpty):
(WebKit::operator==):
* Shared/LayerTreeContext.h:
(WebKit::operator!=): Deleted.
* Shared/efl/LayerTreeContextEfl.cpp: Removed.
* Shared/gtk/LayerTreeContextGtk.cpp: Removed.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):

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

8 years agoAllocate the data section on the heap again for FTL on ARM64
fpizlo@apple.com [Wed, 16 Apr 2014 23:30:02 +0000 (23:30 +0000)]
Allocate the data section on the heap again for FTL on ARM64
https://bugs.webkit.org/show_bug.cgi?id=130156

Patch by Juergen Ributzka <juergen@apple.com> on 2014-04-16
Reviewed by Geoffrey Garen and Filip Pizlo.

* ftl/FTLCompile.cpp:
(JSC::FTL::mmAllocateDataSection):
* ftl/FTLDataSection.cpp:
(JSC::FTL::DataSection::DataSection):
(JSC::FTL::DataSection::~DataSection):
* ftl/FTLDataSection.h:

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

8 years agoCrash in CodeBlock::setOptimizationThresholdBasedOnCompilationResult() when the debug...
mark.lam@apple.com [Wed, 16 Apr 2014 23:07:49 +0000 (23:07 +0000)]
Crash in CodeBlock::setOptimizationThresholdBasedOnCompilationResult() when the debugger activates.
<https://webkit.org/b/131747>

Reviewed by Filip Pizlo.

When the debugger is about to activate (e.g. enter stepping mode), it first
waits for all DFG compilations to complete.  However, when the DFG completes,
if compilation is successful, it will install a new DFG codeBlock.  The
CodeBlock installation process is required to register codeBlocks with the
debugger.  Debugger::registerCodeBlock() will eventually call
CodeBlock::setSteppingMode() which may jettison the DFG codeBlock that we're
trying to install.  Thereafter, chaos ensues.

This jettison'ing only happens because the debugger currently set its
m_steppingMode flag before waiting for compilation to complete.  The fix is
simply to set that flag only after compilation is complete.

* debugger/Debugger.cpp:
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::registerCodeBlock):

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

8 years agoVanish unnecessary includes from Shapes.{h|cpp}
zoltan@webkit.org [Wed, 16 Apr 2014 22:54:23 +0000 (22:54 +0000)]
Vanish unnecessary includes from Shapes.{h|cpp}
https://bugs.webkit.org/show_bug.cgi?id=131762

Reviewed by Andreas Kling.

No new tests, no behavior change.

* rendering/shapes/BoxShape.h:
* rendering/shapes/Shape.cpp:
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeOutsideInfo.h:

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