WebKit-https.git
3 years agoUpdate user-visible copyright strings to include 2016
jeffm@apple.com [Fri, 1 Jan 2016 16:30:12 +0000 (16:30 +0000)]
Update user-visible copyright strings to include 2016
https://bugs.webkit.org/show_bug.cgi?id=152531

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

* Info.plist:

Source/WebCore:

* Info.plist:

Source/WebKit/mac:

* Info.plist:

Source/WebKit2:

* DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist:
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist:
* Info.plist:
* NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-OSX.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-iOS.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-iOS.plist:
* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:

WebKitLibraries:

* win/tools/scripts/COPYRIGHT-END-YEAR:

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

3 years agoChange RenderLayer::scrollTo() to take a ScrollPosition
simon.fraser@apple.com [Fri, 1 Jan 2016 07:53:30 +0000 (07:53 +0000)]
Change RenderLayer::scrollTo() to take a ScrollPosition
https://bugs.webkit.org/show_bug.cgi?id=152633

Reviewed by Zalan Bujtas.

RenderLayer::scrollTo() took x and y offsets. Change this to take a position,
like ScrollView::scrollTo() and fix the one caller.

Preserve the dubious behavior of the adjustForIOSCaretWhenScrolling() code by converting
to and from offsets, even though testing suggests that this code can just be removed,
even with an extra wide caret for testing.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::setScrollOffset):
* rendering/RenderLayer.h:

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

3 years agoRename documentScrollOffsetRelativeTo* functions
simon.fraser@apple.com [Fri, 1 Jan 2016 03:17:31 +0000 (03:17 +0000)]
Rename documentScrollOffsetRelativeTo* functions
https://bugs.webkit.org/show_bug.cgi?id=152632

Reviewed by Zalan Bujtas.

ScrollView::documentScrollOffsetRelativeTo* functions return scroll positions,
not offsets, so rename them and fix their return types, and fix callers. Make
their code more similar.

Source/WebCore:

* platform/ScrollView.cpp:
(WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
(WebCore::ScrollView::documentScrollPositionRelativeToScrollableAreaOrigin):
(WebCore::ScrollView::viewToContents):
(WebCore::ScrollView::contentsToView):
(WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin): Deleted.
(WebCore::ScrollView::documentScrollOffsetRelativeToScrollableAreaOrigin): Deleted.
* platform/ScrollView.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
(WebKit::WebPage::plugInIntersectsSearchRect):

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

3 years ago[iOS WK2] Fix incorrect scrollPosition handling
simon.fraser@apple.com [Fri, 1 Jan 2016 03:16:11 +0000 (03:16 +0000)]
[iOS WK2] Fix incorrect scrollPosition handling
https://bugs.webkit.org/show_bug.cgi?id=152630

Reviewed by Zalan Bujtas.
Source/WebCore:

WebPage::updateVisibleContentRects() was setting the ScrollView's scroll position
to a scrollOffset, which was counteracted by ScrollView::unobscuredContentRect()
adding the scrollOrigin to the scrollPosition, which resulted in the correct
rects, but an incorrect scrollPosition. Fix.

* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unobscuredContentRect):

Source/WebKit2:

WebPage::updateVisibleContentRects() was setting the ScrollView's scroll position
to a scrollOffset, which was counteracted by ScrollView::unobscuredContentRect()
adding the scrollOrigin to the scrollPosition, which resulted in the correct
rects, but an incorrect scrollPosition. Fix.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):

LayoutTests:

These tests now load with a 0,0 scroll position, so don't dump out the "scrolled to" text,
which matches Mac behavior.

* platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-bt-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-lr-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-rl-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-tb-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-bt-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-lr-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-rl-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-tb-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/vertical-rl/column-rules-expected.txt:
* platform/ios-simulator-wk2/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:

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

3 years agoFix typo in FIXME comment
ddkilzer@apple.com [Fri, 1 Jan 2016 01:25:17 +0000 (01:25 +0000)]
Fix typo in FIXME comment

* dom/make_event_factory.pl:
(generateImplementation): FIXEME => FIXME.

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

3 years agoUnreviewed, fix a log message
mcatanzaro@igalia.com [Fri, 1 Jan 2016 00:42:09 +0000 (00:42 +0000)]
Unreviewed, fix a log message

* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponse):

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

3 years agoREGRESSION (r194470): Fix warnings uncovered by migrating to WTF_MOVE
ddkilzer@apple.com [Fri, 1 Jan 2016 00:19:20 +0000 (00:19 +0000)]
REGRESSION (r194470): Fix warnings uncovered by migrating to WTF_MOVE
<https://bugs.webkit.org/show_bug.cgi?id=152601>

Ignore unknown pragmas on older clangs.  Fixes the following
build failure:

    Tools/TestWebKitAPI/Tests/WTF/NakedPtr.cpp:184:34: error: unknown warning group '-Wself-move', ignored [-Werror,-Wunknown-pragmas]
    #pragma clang diagnostic ignored "-Wself-move"
                                     ^
    1 error generated.

* TestWebKitAPI/Tests/WTF/NakedPtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/RefPtr.cpp:
(TestWebKitAPI::TEST):

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

3 years agoStop using USE(CFNETWORK) path on iOS
ddkilzer@apple.com [Thu, 31 Dec 2015 23:49:46 +0000 (23:49 +0000)]
Stop using USE(CFNETWORK) path on iOS
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=142540

Step 1/2: Do everything but turn off USE(CFNETWORK) internally.

Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10
Reviewed by Daniel Bates.

Unify OS X and iOS code paths.

This patch just fixes the NSURLConnection code path on iOS. It
doesn't yet delete any unnecessary code.

Changes covered by most existing tests.

* loader/DocumentLoader.h:
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
* loader/mac/DocumentLoaderMac.cpp:
- Update for iOS to use NSURLConnection loader.

* page/mac/PageMac.mm:
(WebCore::Page::platformInitialize): Always use the correct
runloop on iOS regardless of which thread this was called on.
(WebCore::Page::addSchedulePair): Update for iOS to use
NSURLConnection loader.
(WebCore::Page::removeSchedulePair): Ditto.

* platform/ios/wak/WebCoreThread.h:
(WebThreadRunLoop): No longer needs to be exported.
(WebThreadNSRunLoop): Export for WebKitLegacy.

* platform/network/ios/QuickLook.mm: Fix header order.
(WebQuickLookHandleAsDelegate): Make delegate objects implement
WebCoreResourceLoaderDelegate protocol.  This unifies the
-clearHandle and -detachHandle methods that were used on iOS and
OS X, respectively.
(-[WebQuickLookHandleAsDelegate clearHandle]): Deleted.
(-[WebQuickLookHandleAsDelegate detachHandle]): Renamed from
-clearHandle.
(WebResourceLoaderQuickLookDelegate): Make delegate objects
implement WebCoreResourceLoaderDelegate protocol.
(-[WebResourceLoaderQuickLookDelegate clearHandle]): Deleted.
(-[WebResourceLoaderQuickLookDelegate detachHandle]): Renamed from
-clearHandle.
(WebCore::QuickLookHandle::~QuickLookHandle): Call
-detachHandle instead of -clearHandle.

* platform/network/mac/ResourceHandleMac.mm:
- Update for iOS to use NSURLConnection loader.

* platform/network/mac/WebCoreResourceHandleAsDelegate.h:
(WebCoreResourceLoaderDelegate): Define new protocol.

* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate detachHandle]): Gratuitous
nullptr fix.

* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
(WebCoreResourceHandleAsOperationQueueDelegate): Implement
WebCoreResourceLoaderDelegate protocol.

* platform/spi/cocoa/NSURLDownloadSPI.h: Declare more
NSURDownload SPI to clean up other source files and make
source compile on iOS with NSURLConnection code path.

Source/WebKit/mac:

https://bugs.webkit.org/show_bug.cgi?id=142540

Step 1/2: Do everything but turn off USE(CFNETWORK) internally.

Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10
Reviewed by Daniel Bates.

* Misc/WebDownload.h: Add header guard to make
NSURLDownloadSPI.h work when pre-declaring NSURLDownload object.
* Misc/WebKitVersionChecks.h: Define
WEBKIT_FIRST_VERSION_WITH_LOADING_DURING_COMMON_RUNLOOP_MODES
for iOS.
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]): Use
the correct runloop on iOS.
* WebView/WebViewPrivate.h:
(-[WebView(WebPendingPublic) scheduleInRunLoop:forMode:]):
(-[WebView(WebPendingPublic) unscheduleFromRunLoop:forMode:]):
- These are available on iOS now.

Source/WebKit2:

https://bugs.webkit.org/show_bug.cgi?id=142540

Step 1/2: Do everything but turn off USE(CFNETWORK) internally.

Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10
Reviewed by Daniel Bates.

* NetworkProcess/Downloads/ios/DownloadIOS.mm: This is now the
USE(CFNETWORK) && !USE(NETWORK_SESSION) code path.
* NetworkProcess/Downloads/mac/DownloadMac.mm: This is now the
!USE(CFNETWORK) && !USE(NETWORK_SESSION) code path.  Make use of
NSURLDownloadSPI.h.  Ignore a deprecated delcaration warning now
that we're using actual header declarations internally.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess): Update for
iOS to use NSURLConnection loader.

Source/WTF:

<https://webkit.org/b/142540>

Step 1/2: Do everything but turn off USE(CFNETWORK) internally.

Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10
Reviewed by Daniel Bates.

* wtf/SchedulePair.h: Update macros to match WebCore.

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

3 years agoUpdate the style checker to advise using WTFMove() instead of WTF::move()
aestes@apple.com [Thu, 31 Dec 2015 22:51:40 +0000 (22:51 +0000)]
Update the style checker to advise using WTFMove() instead of WTF::move()
https://bugs.webkit.org/show_bug.cgi?id=152601

Reviewed by Daniel Bates.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_wtf_move):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_wtf_move):

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

3 years agoFix warnings uncovered by migrating to WTF_MOVE
aestes@apple.com [Thu, 31 Dec 2015 22:49:09 +0000 (22:49 +0000)]
Fix warnings uncovered by migrating to WTF_MOVE
https://bugs.webkit.org/show_bug.cgi?id=152601

Reviewed by Daniel Bates.

Source/JavaScriptCore:

* create_regex_tables: Moving a return value prevented copy elision.
* ftl/FTLUnwindInfo.cpp:
(JSC::FTL::parseUnwindInfo): Ditto.
* replay/EncodedValue.h: Ditto.

Source/WebCore:

* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::createSession): Moving a return value prevented copy elision.

Source/WebKit2:

* UIProcess/API/APIUIClient.h:
(API::UIClient::actionsForElement): Moving a return value passed to the function by value is redundant, since it
will be implicitly moved in this case.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::actionsForElement): Ditto.

Tools:

Ignored -Wself-move warnings in these two API tests. It's useful to test that these classes properly handle
self-move, even if doing so would trigger a warning.

* TestWebKitAPI/Tests/WTF/NakedPtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/RefPtr.cpp:
(TestWebKitAPI::TEST):

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

3 years agoRename WTF_MOVE to WTFMove
aestes@apple.com [Thu, 31 Dec 2015 22:47:14 +0000 (22:47 +0000)]
Rename WTF_MOVE to WTFMove
https://bugs.webkit.org/show_bug.cgi?id=152601

Reviewed by Daniel Bates.

Our coding style guidelines say that macros that expand to function calls should be named like functions,
so WTFMove() is a more appropriate name.

* wtf/StdLibExtras.h:

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

3 years agoReview feedback followup for:
beidson@apple.com [Thu, 31 Dec 2015 21:29:51 +0000 (21:29 +0000)]
Review feedback followup for:
Modern IDB: Only fire blocked events after all open connections have handled their versionchange events.
https://bugs.webkit.org/show_bug.cgi?id=152593

Suggested by Andy Estes.

* Modules/indexeddb/client/IDBDatabaseImpl.cpp:
(WebCore::IDBClient::IDBDatabase::dispatchEvent): Use downcast instead of static_cast.

Add traits to support downcast<>:
* Modules/indexeddb/client/IDBVersionChangeEventImpl.h:
(isType):

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

3 years agoMove decoration context setup calls to InlineTextBox::paintDecoration.
zalan@apple.com [Thu, 31 Dec 2015 21:09:07 +0000 (21:09 +0000)]
Move decoration context setup calls to InlineTextBox::paintDecoration.
https://bugs.webkit.org/show_bug.cgi?id=152622

Reviewed by Simon Fraser.

No change in functionality.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintDecoration):
* rendering/InlineTextBox.h:

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

3 years agoMore scrollOffset/scrollPosition disambiguation, in RenderLayer
simon.fraser@apple.com [Thu, 31 Dec 2015 20:07:15 +0000 (20:07 +0000)]
More scrollOffset/scrollPosition disambiguation, in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=152617

Reviewed by Zalan Bujtas.

Change RenderLayer's m_scrollOffset to be m_scrollPosition, since it stores
scroll positions (negative in RTL overflow). scrollOffset() was accurately
named already, but fix the return type, and remove the unnecessary scrollXOffset()/
scrollYOffset() variants, fixing callers to use .x() and .y().

scrollToOffset() was also accurately named, but fix its argument.

Fix functions related to saving scroll positions on Element to refer to scroll positions.

No behavior change.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::scrollTo):
* dom/Element.cpp:
(WebCore::Element::removedFrom):
(WebCore::Element::savedLayerScrollPosition):
(WebCore::Element::setSavedLayerScrollPosition):
(WebCore::Element::savedLayerScrollOffset): Deleted.
(WebCore::Element::setSavedLayerScrollOffset): Deleted.
* dom/Element.h:
* dom/ElementRareData.h:
(WebCore::ElementRareData::savedLayerScrollPosition):
(WebCore::ElementRareData::setSavedLayerScrollPosition):
(WebCore::ElementRareData::savedLayerScrollOffset): Deleted.
(WebCore::ElementRareData::setSavedLayerScrollOffset): Deleted.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
* platform/graphics/IntPoint.h:
(WebCore::IntPoint::isZero):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::baselinePosition):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::scrollLeft):
(WebCore::RenderBox::scrollTop):
(WebCore::RenderBox::scrolledContentOffset):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::scrollByRecursively):
(WebCore::RenderLayer::clampScrollOffset):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::scrollPosition):
(WebCore::RenderLayer::maximumScrollPosition):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::start):
(WebCore::RenderMarquee::timerFired):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):

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

3 years agotext-decoration: line-through is mispositioned when text has overline/underline too.
zalan@apple.com [Thu, 31 Dec 2015 19:57:25 +0000 (19:57 +0000)]
text-decoration: line-through is mispositioned when text has overline/underline too.
https://bugs.webkit.org/show_bug.cgi?id=152619

Reviewed by Simon Fraser.

Line-through painting was mistakenly calling drawLineForText with overline/underline positioning.

Source/WebCore:

Test: fast/css3-text/css3-text-decoration/text-decoration-line-through-mispositioned.html

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration): Deleted.
* rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::paintTextDecoration):

LayoutTests:

* fast/css3-text/css3-text-decoration/text-decoration-line-through-mispositioned-expected.html: Added.
* fast/css3-text/css3-text-decoration/text-decoration-line-through-mispositioned.html: Added.

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

3 years ago[GTK] The install-dependencies script has a syntax error
commit-queue@webkit.org [Thu, 31 Dec 2015 19:53:21 +0000 (19:53 +0000)]
[GTK] The install-dependencies script has a syntax error
https://bugs.webkit.org/show_bug.cgi?id=152613

Patch by Martin Robinson <mrobinson@igalia.com> on 2015-12-31
Reviewed by Michael Catanzaro.

* gtk/install-dependencies: Add the missing 'then.'

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

3 years agoClarify that scrollPositionChangedViaPlatformWidget takes offsets
simon.fraser@apple.com [Thu, 31 Dec 2015 19:35:18 +0000 (19:35 +0000)]
Clarify that scrollPositionChangedViaPlatformWidget takes offsets
https://bugs.webkit.org/show_bug.cgi?id=152606

Reviewed by Zalan Bujtas.

scrollPositionChangedViaPlatformWidget actually gets scroll offsets, since the
values we get from AppKit are zero-based, so rename to scrollOffsetChangedViaPlatformWidget().

Change ScrollableArea's setScrollPosition() and requestScrollPositionUpdate() to take
ScrollPositions.

Add a FIXME noting that willRevealEdge events are probably broken in RTL documents.

Source/WebCore:

* dom/Document.cpp:
(WebCore::Document::sendWillRevealEdgeEventsIfNeeded):
* page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::scrollOffsetChangedViaPlatformWidgetImpl):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::requestScrollPositionUpdate):
(WebCore::FrameView::scrollPositionChangedViaPlatformWidgetImpl): Deleted.
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollOffsetChangedViaPlatformWidget):
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
(WebCore::ScrollView::scrollTo):
(WebCore::ScrollView::setScrollPosition):
(WebCore::ScrollView::scrollPositionChangedViaPlatformWidget): Deleted.
* platform/ScrollView.h:
(WebCore::ScrollView::scrollOffsetChangedViaPlatformWidgetImpl):
(WebCore::ScrollView::scrollPositionChangedViaPlatformWidgetImpl): Deleted.
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::notifyScrollPositionChanged):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::requestScrollPositionUpdate):

Source/WebKit/mac:

* WebView/WebHTMLView.mm:
(-[WebHTMLView _frameOrBoundsChanged]):

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

3 years agoSimple line layout: Text with stroke width is not positioned correctly.
zalan@apple.com [Thu, 31 Dec 2015 19:33:56 +0000 (19:33 +0000)]
Simple line layout: Text with stroke width is not positioned correctly.
https://bugs.webkit.org/show_bug.cgi?id=152614

Reviewed by Simon Fraser.

Visual overflow should not affect text position.

Source/WebCore:

Test: fast/text/simple-line-layout-text-position-with-stroke.html

* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):

LayoutTests:

* fast/text/simple-line-layout-text-position-with-stroke-expected.html: Added.
* fast/text/simple-line-layout-text-position-with-stroke.html: Added.

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

3 years agoSimple line layout: Nested block with pseudo first-line parent should bail out of...
zalan@apple.com [Thu, 31 Dec 2015 19:27:58 +0000 (19:27 +0000)]
Simple line layout: Nested block with pseudo first-line parent should bail out of simple line layout.
https://bugs.webkit.org/show_bug.cgi?id=152599

Reviewed by Simon Fraser.

We should bail out of simple line layout if any of the ancestors have pseudo first-line style.
(see RenderBlock::firstLineBlock())

Source/WebCore:

Test: fast/block/line-layout/first-line-should-bail-out-of-simple-line-layout.html

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForWithReason):

LayoutTests:

* fast/block/line-layout/first-line-should-bail-out-of-simple-line-layout-expected.html: Added.
* fast/block/line-layout/first-line-should-bail-out-of-simple-line-layout.html: Added.

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

3 years agoWeb Inspector: "No Filter Results" message overlaps Debugger sidebar sections
mattbaker@apple.com [Thu, 31 Dec 2015 19:17:23 +0000 (19:17 +0000)]
Web Inspector: "No Filter Results" message overlaps Debugger sidebar sections
https://bugs.webkit.org/show_bug.cgi?id=150608

Reviewed by Brian Burg.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
Style cleanup.
(WebInspector.DebuggerSidebarPanel):
Add breakpoints tree to the details section before adding Global Breakpoint
elements, since adding them will trigger filtering.
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Simplified selection management between the various tree outlines.
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Style cleanup.
(WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement): Deleted.
Defer to the base class implementation.
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectCallStackContentTreeElements): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectBreakpointContentTreeElements): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectPauseReasonContentTreeElements): Deleted.
These are no longer needed, since the list of visible tree elements list can be used
to manage tree element selection is a more general way.

* UserInterface/Views/NavigationSidebarPanel.css:
Empty content placeholders are now inserted into the DOM as a sibling of the
tree that was filtered. As such, they can be a child of a details section, or
the sidebar's content element.
(.sidebar > .panel.navigation > .content .empty-content-placeholder):
Styles for all empty content placeholders.
(.sidebar > .panel.navigation > .content > .empty-content-placeholder):
Styles for empty content placeholders that fill the sidebar's content element.
(.sidebar > .panel.navigation > .content .message):
Styles for all empty content placeholders.
(.sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
(.sidebar > .panel.navigation > .empty-content-placeholder > .message): Deleted.

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
Track the tree outline which currently has a selection.
Manage a map of content placeholders
(WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement):
Check all visible content trees for a selected element.
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype.treeElementForRepresentedObject):
Check all visible content trees for the represented object.
(WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
(WebInspector.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
No sidebars currently have more than one filterable content tree outline, but in
the future we will want to support this. Empty content placeholder visibility
is now done per tree outline.
(WebInspector.NavigationSidebarPanel.prototype.show):
Focus the tree outline that most recently had the selection, or the
first tree outline in the visible tree list, if it exists.
(WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
Tree is considered filtered if no visible filterable tree elements are found.
(WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
Check all visible trees that support filtering.
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
Support for filtering multiple content trees.
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Check if the element's tree outline supports filtering, before applying filters.
(WebInspector.NavigationSidebarPanel.prototype._treeSelectionDidChange):
Update the selected tree outline.
(WebInspector.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
Create a new empty content placeholder element for the tree.
(WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineElement): Deleted.
No longer used.

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Deleted.
Defer to the base class implementation.

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

3 years agoMark some tests as failing on WebKitGTK+.
mrobinson@webkit.org [Thu, 31 Dec 2015 19:05:11 +0000 (19:05 +0000)]
Mark some tests as failing on WebKitGTK+.

Unreviewed gardening.

* platform/gtk/TestExpectations:

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

3 years ago[GTK][CMake] Do not override default values of build options with the default value
mcatanzaro@igalia.com [Thu, 31 Dec 2015 18:50:42 +0000 (18:50 +0000)]
[GTK][CMake] Do not override default values of build options with the default value
https://bugs.webkit.org/show_bug.cgi?id=152615

Reviewed by Martin Robinson.

Override the default value of build options only when the default value for the GTK+ port
is actually different than the default value in WebKitFeatures.cmake. This way we don't
accidentally override changes to default values in WebKitFeatures.cmake. We should use the
values in WebKitFeatures.cmake except when we make an active choice to do otherwise.

* Source/cmake/OptionsGTK.cmake:

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

3 years agoChange ScrollView::scrollTo() to take a ScrollPosition
simon.fraser@apple.com [Thu, 31 Dec 2015 18:50:10 +0000 (18:50 +0000)]
Change ScrollView::scrollTo() to take a ScrollPosition
https://bugs.webkit.org/show_bug.cgi?id=152607

Reviewed by Zalan Bujtas.

Make it more explicit that ScrollView::scrollTo() takes a ScrollPosition, and
change the name and type of the m_scrollOffset member variable.

* page/FrameView.cpp:
(WebCore::FrameView::scrollTo):
(WebCore::FrameView::wheelEvent):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::unobscuredContentRectInternal):
(WebCore::ScrollView::setScrollOffset):
(WebCore::ScrollView::scrollTo):
* platform/ScrollView.h:

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

3 years ago[CMake] Add error checking to WEBKIT_OPTION_DEFAULT_PORT_VALUE et. al.
mcatanzaro@igalia.com [Thu, 31 Dec 2015 18:50:09 +0000 (18:50 +0000)]
[CMake] Add error checking to WEBKIT_OPTION_DEFAULT_PORT_VALUE et. al.
https://bugs.webkit.org/show_bug.cgi?id=144069

Reviewed by Martin Robinson.

* Source/cmake/OptionsWin.cmake:
Do not set options that no longer exist.
* Source/cmake/WebKitFeatures.cmake:
Add error checking to ensure that option names passed to WEBKIT_OPTION_DEFAULT_PORT_VALUE,
WEBKIT_OPTION_CONFLICT, and WEBKIT_OPTION_DEPEND are actually valid options that have been
previously-defined. Also, add ENABLE_SVG_OTF_CONVERTER build option, defaulted to off since
no CMake port was using it.

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

3 years agoMark WOFF2 test as failing on WebKitGTK+
mrobinson@webkit.org [Thu, 31 Dec 2015 17:54:21 +0000 (17:54 +0000)]
Mark WOFF2 test as failing on WebKitGTK+

Unreviewed. Gardening.

* platform/gtk/TestExpectations:

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

3 years ago[CMake] Add error checking to catch option manipulation after WEBKIT_OPTION_END
mcatanzaro@igalia.com [Thu, 31 Dec 2015 17:12:05 +0000 (17:12 +0000)]
[CMake] Add error checking to catch option manipulation after WEBKIT_OPTION_END
https://bugs.webkit.org/show_bug.cgi?id=152611

Reviewed by Martin Robinson.

If WEBKIT_OPTION_DEFINE is called after WEBKIT_OPTION_END, the option never makes its way
into FEATURE_DEFINES and so will be inconsistently set (available to most of the build, but
not to the DOM bindings generator, for example).

If WEBKIT_OPTION_DEFAULT_PORT_VALUE, WEBKIT_OPTION_CONFLICT, or WEBKIT_OPTION_DEPEND are
called after WEBKIT_OPTION_END, they don't do anything.

Add error checking to catch these bugs.

* Source/cmake/WebKitFeatures.cmake:

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

3 years ago[GTK] Unreviewed gardening at 2015-12-31
changseok.oh@collabora.com [Thu, 31 Dec 2015 16:47:49 +0000 (16:47 +0000)]
[GTK] Unreviewed gardening at 2015-12-31

Mark fast/text/text-combine-placement.html as crashing.

* platform/gtk/TestExpectations:

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

3 years agoModern IDB: Only fire blocked events after all open connections have handled their...
beidson@apple.com [Thu, 31 Dec 2015 05:43:33 +0000 (05:43 +0000)]
Modern IDB: Only fire blocked events after all open connections have handled their versionchange events.
https://bugs.webkit.org/show_bug.cgi?id=152593

Reviewed by Andy Estes.

Source/WebCore:

No new tests (At least two previously timing-out tests now pass, others are now closer to passing).

Before this patch, whenever we sent all open connections the versionchange event, we would immediately
fire the blocked event on the request.

That's not right, as those event handlers can close the connections, rendering the request unblocked.

So this patch implements the behavior of waiting for each open connection to either close or positively
message back "I finished firing my versionchange event handler"

This behavior is explicitly denoted in the spec and is covered by existing tests.

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionToServer::didFireVersionChangeEvent):
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/client/IDBDatabaseImpl.cpp:
(WebCore::IDBClient::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBClient::IDBDatabase::dispatchEvent):
* Modules/indexeddb/client/IDBDatabaseImpl.h:

* Modules/indexeddb/client/IDBVersionChangeEventImpl.cpp:
(WebCore::IDBClient::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/indexeddb/client/IDBVersionChangeEventImpl.h:

* Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::fireVersionChangeEvent):
* Modules/indexeddb/server/IDBConnectionToClient.h:
* Modules/indexeddb/server/IDBConnectionToClientDelegate.h:

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::didFireVersionChangeEvent):
* Modules/indexeddb/server/IDBServer.h:

* Modules/indexeddb/server/ServerOpenDBRequest.cpp:
(WebCore::IDBServer::ServerOpenDBRequest::notifyRequestBlocked):
(WebCore::IDBServer::ServerOpenDBRequest::notifiedConnectionsOfVersionChange):
(WebCore::IDBServer::ServerOpenDBRequest::connectionClosedOrFiredVersionChangeEvent):
(WebCore::IDBServer::ServerOpenDBRequest::notifyDeleteRequestBlocked): Deleted.
* Modules/indexeddb/server/ServerOpenDBRequest.h:
(WebCore::IDBServer::ServerOpenDBRequest::hasNotifiedBlocked):
(WebCore::IDBServer::ServerOpenDBRequest::hasConnectionsPendingVersionChangeEvent):
(WebCore::IDBServer::ServerOpenDBRequest::hasNotifiedConnectionsOfVersionChange):
(WebCore::IDBServer::ServerOpenDBRequest::hasNotifiedDeleteRequestBlocked): Deleted.

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabase::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::notifyConnectionsOfVersionChangeForUpgrade): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::notifyConnectionsOfVersionChange): Deleted.
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::fireVersionChangeEvent):
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::fireVersionChangeEvent):
(WebCore::InProcessIDBServer::didFireVersionChangeEvent):
* Modules/indexeddb/shared/InProcessIDBServer.h:

* dom/Event.h:
(WebCore::Event::isVersionChangeEvent):

LayoutTests:

- Unskip two timeout tests that now pass.
- Reclassify a text-failure test to be skipped for new reasons.

* platform/mac-wk1/TestExpectations:

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

3 years agoUse of WTF::move prevents clang's move diagnostics from warning about several classes...
aestes@apple.com [Thu, 31 Dec 2015 05:24:12 +0000 (05:24 +0000)]
Use of WTF::move prevents clang's move diagnostics from warning about several classes of mistakes
https://bugs.webkit.org/show_bug.cgi?id=152601

Reviewed by Brady Eidson.

Clang has recently added warnings to catch certain classes of mistakes with the use of std::move():
-Wpessimizing-move (warns if moving prevents copy elision), -Wredundant-move (warns if a move is redundant),
and -Wself-move (warns if moving to self). Enabling these warnings manually (by renaming WTF::move to std::move)
have caught numerous mistakes in our codebase (see http://trac.webkit.org/changeset/194428).

It would be nice to be able to take advantage of these warnings, but doing so requires that we use std::move,
not WTF::move. But since WTF::move does provide useful checks for which clang does not yet have warnings,
we should write a best-of-both-worlds move function.

This patch adds a function that satisfies clang's criteria for a move function (in namespace std, named "move",
and takes a single argument) but also retains WTF::move's compile-time checks. It also adds a convenience macro
called WTF_MOVE for use by callers.

* wtf/StdLibExtras.h:
(std::move):

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

3 years agoUnreviewed, EFL gardening.
gyuyoung.kim@webkit.org [Thu, 31 Dec 2015 01:37:21 +0000 (01:37 +0000)]
Unreviewed, EFL gardening.

Mark navigation policy tests to failure and unskip some passing test.
Update media failure tests.

* platform/efl/TestExpectations:

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

3 years ago[ES6] Arrow function syntax. Arrow function specific features. Lexical bind "super"
commit-queue@webkit.org [Wed, 30 Dec 2015 21:08:16 +0000 (21:08 +0000)]
[ES6] Arrow function syntax. Arrow function specific features. Lexical bind "super"
https://bugs.webkit.org/show_bug.cgi?id=149615

Source/JavaScriptCore:

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-12-30
Reviewed by Saam Barati.

Implemented lexical bind "super" property for arrow function. 'super' property can be accessed
inside of the arrow function in case if arrow function is nested in constructor, method,
getter or setter of class. In current patch using 'super' in arrow function, that declared out of the
class, lead to wrong type of error, should be SyntaxError(https://bugs.webkit.org/show_bug.cgi?id=150893)
and this will be fixed in separete patch.

* builtins/BuiltinExecutables.cpp:
(JSC::createExecutableInternal):
* bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::getSlow):
* bytecode/ExecutableInfo.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::derivedContextType):
(JSC::ExecutableInfo::isClassContext):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::derivedContextType):
(JSC::UnlinkedCodeBlock::isClassContext):
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
* bytecode/UnlinkedFunctionExecutable.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::derivedContextType):
(JSC::BytecodeGenerator::isDerivedConstructorContext):
(JSC::BytecodeGenerator::isDerivedClassContext):
(JSC::BytecodeGenerator::isArrowFunction):
(JSC::BytecodeGenerator::makeFunction):
* bytecompiler/NodesCodegen.cpp:
(JSC::emitHomeObjectForCallee):
(JSC::FunctionCallValueNode::emitBytecode):
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluate):
* interpreter/Interpreter.cpp:
(JSC::eval):
* runtime/CodeCache.cpp:
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
* runtime/Executable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):
* runtime/Executable.h:
(JSC::ScriptExecutable::derivedContextType):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
* tests/es6.yaml:
* tests/stress/arrowfunction-lexical-bind-superproperty.js: Added.

LayoutTests:

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-12-30
Reviewed by Saam Barati.

* js/arrowfunction-superproperty-expected.txt: Added.
* js/arrowfunction-superproperty.html: Added.
* js/script-tests/arrowfunction-superproperty.js: Added.

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

3 years agoAdd explicit conversions between scrollOffset and scrollPostion, and use them in...
simon.fraser@apple.com [Wed, 30 Dec 2015 20:15:27 +0000 (20:15 +0000)]
Add explicit conversions between scrollOffset and scrollPostion, and use them in a few places
https://bugs.webkit.org/show_bug.cgi?id=152594

Reviewed by Sam Weinig.

Add functions to ScrollableArea to convert between scrollPosition and scrollOffset,
and use them in places where code did the math with scrollOrigin.

Source/WebCore:

* page/FrameView.cpp:
(WebCore::FrameView::minimumScrollPosition):
(WebCore::FrameView::maximumScrollPosition): totalContentsSize().width() == contentsWidth(),
so we can use the base class maximumScrollPosition(), which also clamps.
* platform/ScrollView.cpp:
(WebCore::ScrollView::maximumScrollPosition):
(WebCore::ScrollView::setScrollOffset):
(WebCore::ScrollView::overhangAmount):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::calculateOverhangAreasForPainting):
(WebCore::ScrollView::minimumScrollPosition): Deleted. Can use base class implementation.
* platform/ScrollView.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::minimumScrollPosition):
(WebCore::ScrollableArea::maximumScrollPosition):
(WebCore::ScrollableArea::maximumScrollOffset):
(WebCore::ScrollableArea::scrollPositionFromOffset):
(WebCore::ScrollableArea::scrollOffsetFromPosition):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::scrollOrigin):
(WebCore::ScrollableArea::scrollOriginChanged):
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unobscuredContentRect):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::pinnedInDirection):
(WebCore::ScrollAnimatorMac::absoluteScrollPosition):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollPosition):
(WebCore::RenderLayer::maximumScrollPosition):
(WebCore::RenderLayer::overhangAmount):
(WebCore::RenderLayer::minimumScrollPosition): Deleted.
* rendering/RenderLayer.h:

Source/WebKit2:

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):

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

3 years agoMove InlineTextBox's text decoration painting to its own class.
zalan@apple.com [Wed, 30 Dec 2015 17:19:03 +0000 (17:19 +0000)]
Move InlineTextBox's text decoration painting to its own class.
https://bugs.webkit.org/show_bug.cgi?id=152587

Reviewed by Myles C. Maxfield.

This is in preparation for adding text decoration support for simple line layout.

No change in functionality.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
(WebCore::compareTuples): Deleted.
(WebCore::translateIntersectionPointsToSkipInkBoundaries): Deleted.
(WebCore::drawSkipInkUnderline): Deleted.
(WebCore::textDecorationStyleToStrokeStyle): Deleted.
(WebCore::adjustStepToDecorationLength): Deleted.
(WebCore::strokeWavyTextDecoration): Deleted.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getTextDecorationColorsAndStyles):
* rendering/RenderObject.h:
* rendering/RenderingAllInOne.cpp:
* rendering/TextDecorationPainter.cpp: Added.
(WebCore::adjustStepToDecorationLength):
(WebCore::strokeWavyTextDecoration):
(WebCore::compareTuples):
(WebCore::translateIntersectionPointsToSkipInkBoundaries):
(WebCore::drawSkipInkUnderline):
(WebCore::textDecorationStyleToStrokeStyle):
(WebCore::TextDecorationPainter::TextDecorationPainter):
(WebCore::TextDecorationPainter::paintTextDecoration):
* rendering/TextDecorationPainter.h: Added.
(WebCore::TextDecorationPainter::setInlineTextBox):
(WebCore::TextDecorationPainter::setFont):
(WebCore::TextDecorationPainter::setIsHorizontal):
(WebCore::TextDecorationPainter::setWidth):
(WebCore::TextDecorationPainter::setBaseline):
(WebCore::TextDecorationPainter::addTextShadow):
* style/InlineTextBoxStyle.cpp:
(WebCore::computeUnderlineOffset):
(WebCore::visualOverflowForDecorations):
* style/InlineTextBoxStyle.h:

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

3 years ago[CoordinatedGraphics] VideoRenderRequestScheduler shouldn't dispatch to main thread...
zandobersek@gmail.com [Wed, 30 Dec 2015 09:48:34 +0000 (09:48 +0000)]
[CoordinatedGraphics] VideoRenderRequestScheduler shouldn't dispatch to main thread in threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=152584

Reviewed by Carlos Garcia Campos.

The VideoRenderRequestScheduler class should only send the repaint-requested
signal dispatch to the main thread when not using the threaded compositor.
In case that is used (guarded via WTF_USE_COORDINATED_GRAPHICS_THREADED), the
signal dispatch can be done on the current thread (normally a GStreamer thread)
since the actual GL texture update will be then dispatched to the compositor
thread (unlike when gstreamer-gl is used, when the update can be done on the
very same thread).

When that is the case we don't need the RunLoop::Timer, Condition and the
video sink GRefPtr protector that are otherwise used by this class, so these
can just be guarded with the USE(...) flag.

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(VideoRenderRequestScheduler::VideoRenderRequestScheduler):
(VideoRenderRequestScheduler::stop):
(VideoRenderRequestScheduler::requestRender):

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

3 years ago[TexMap] Clean up TextureMapperAnimation, TextureMapperAnimations
zandobersek@gmail.com [Wed, 30 Dec 2015 09:47:21 +0000 (09:47 +0000)]
[TexMap] Clean up TextureMapperAnimation, TextureMapperAnimations
https://bugs.webkit.org/show_bug.cgi?id=152112

Reviewed by Darin Adler.

Source/WebCore:

Clean up the TextureMapperAnimation class. Turn AnimationState into an enum
class. Use references for non-null pointer parameters to one version of the
constructor and the apply() and applyInternal() methods. Remove unnecessary
public methods and reorder the remaining ones into something more sensible.
In terms of the implementation of this class, the methods are moved around to
follow the order of declarations, along with some small cleanups and improvements
applied.

TextureMapperAnimations class is also refreshed. The constructor is defaulted,
and the method implementations are reordered a bit and also adjusted to use the
range-based for-loops and some STL utilities.

Static functions in the implementation file are also updated to use range-based
for-loops, references and nullptrs where possible.

There's no change in behavior as this is just a refactoring.

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
* platform/graphics/texmap/TextureMapperAnimation.cpp:
(WebCore::blendFunc):
(WebCore::applyFilterAnimation):
(WebCore::shouldReverseAnimationValue):
(WebCore::applyTransformAnimation):
(WebCore::TextureMapperAnimation::TextureMapperAnimation):
(WebCore::TextureMapperAnimation::apply):
(WebCore::TextureMapperAnimation::pause):
(WebCore::TextureMapperAnimation::resume):
(WebCore::TextureMapperAnimation::computeTotalRunningTime):
(WebCore::TextureMapperAnimation::isActive):
(WebCore::TextureMapperAnimation::applyInternal):
(WebCore::TextureMapperAnimations::add):
(WebCore::TextureMapperAnimations::remove):
(WebCore::TextureMapperAnimations::pause):
(WebCore::TextureMapperAnimations::suspend):
(WebCore::TextureMapperAnimations::resume):
(WebCore::TextureMapperAnimations::apply):
(WebCore::TextureMapperAnimations::hasActiveAnimationsOfType):
(WebCore::TextureMapperAnimations::hasRunningAnimations):
(WebCore::TextureMapperAnimations::getActiveAnimations):
* platform/graphics/texmap/TextureMapperAnimation.h:
(WebCore::TextureMapperAnimation::name):
(WebCore::TextureMapperAnimation::boxSize):
(WebCore::TextureMapperAnimation::animation):
(WebCore::TextureMapperAnimation::startTime):
(WebCore::TextureMapperAnimation::pauseTime):
(WebCore::TextureMapperAnimation::state):
(WebCore::TextureMapperAnimation::setState): Deleted.
(WebCore::TextureMapperAnimation::property): Deleted.
(WebCore::TextureMapperAnimations::TextureMapperAnimations): Deleted.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::syncAnimations):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation):

Source/WebKit2:

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TextureMapperAnimation>::decode):

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

3 years ago[Mac][GTK] Jhbuild support for OSX
philn@webkit.org [Wed, 30 Dec 2015 08:33:32 +0000 (08:33 +0000)]
[Mac][GTK] Jhbuild support for OSX
https://bugs.webkit.org/show_bug.cgi?id=150799

Reviewed by Michael Catanzaro.

* gtk/install-dependencies: Install dependencies on OSX with Homebrew.
* gtk/jhbuild.modules: Moved platform-specific build settings in condition tags.
* gtk/patches/foxbntconfig-fix-osx-cache.diff: Added.
* gtk/jhbuildrc: GTK+ makeargs clean-up, the 3.0.12 hack is no longer needed.

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

3 years ago[GTK][Mac] Disable gtk-doc
philn@webkit.org [Wed, 30 Dec 2015 08:31:15 +0000 (08:31 +0000)]
[GTK][Mac] Disable gtk-doc
https://bugs.webkit.org/show_bug.cgi?id=150798

Reviewed by Michael Catanzaro.

* Source/PlatformGTK.cmake: gtkdoc-scangobj fails due to a clang
link error on Mac, so for now disable gtk-doc support on that
platform.
* Source/cmake/OptionsGTK.cmake: Ditto.

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

3 years agoRename "scrollOffsetForFixedPosition" and related functions to refer to scrollPosition
simon.fraser@apple.com [Wed, 30 Dec 2015 05:02:31 +0000 (05:02 +0000)]
Rename "scrollOffsetForFixedPosition" and related functions to refer to scrollPosition
https://bugs.webkit.org/show_bug.cgi?id=152590

Reviewed by Zalan Bujtas.

FrameView::scrollOffsetForFixedPosition() actually returned a scroll position
(possibly negative for RTL content), not a scroll offset, so rename it and related
functions.

* page/FrameView.cpp:
(WebCore::FrameView::fixedScrollableAreaBoundsInflatedForScrolling):
(WebCore::FrameView::scrollPositionRespectingCustomFixedPosition):
(WebCore::FrameView::viewportConstrainedVisibleContentRect):
(WebCore::FrameView::scrollPositionForFixedPosition):
(WebCore::FrameView::scrollOffsetRespectingCustomFixedPosition): Deleted.
(WebCore::FrameView::scrollOffsetForFixedPosition): Deleted.
* page/FrameView.h:
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::timeToNextService):
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::scrollWasUpdated):
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::setSize):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollLayerPosition):
* rendering/RenderView.cpp:
(WebCore::RenderView::mapLocalToContainer):
(WebCore::RenderView::pushMappingToContainer):
(WebCore::RenderView::mapAbsoluteToLocalPoint):
(WebCore::RenderView::computeRectForRepaint):

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

3 years agoRemove tests for sometimes unsupported calendars, numbering systems, and time zone...
commit-queue@webkit.org [Wed, 30 Dec 2015 04:49:47 +0000 (04:49 +0000)]
Remove tests for sometimes unsupported calendars, numbering systems, and time zone backward links
https://bugs.webkit.org/show_bug.cgi?id=152550

Patch by Andy VanWagoner <andy@instructure.com> on 2015-12-29
Reviewed by Alexey Proskuryakov.

Time zones change often, so only test a few probable backward links.
Remove hanidays numbering system tests, since GTK and EFL don't support it.
Remove islamic-umalqura calendar tests, since GTK and EFL don't support it.

* js/intl-datetimeformat-expected.txt:
* js/script-tests/intl-datetimeformat.js:

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

3 years agoFix Windows build.
simon.fraser@apple.com [Wed, 30 Dec 2015 02:45:34 +0000 (02:45 +0000)]
Fix Windows build.

* WebView.cpp:
(WebView::scrollOffset):

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

3 years agoFix the Windows build.
simon.fraser@apple.com [Wed, 30 Dec 2015 01:03:36 +0000 (01:03 +0000)]
Fix the Windows build.

* page/win/FrameCGWin.cpp:
(WebCore::drawRectIntoContext):

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

3 years agoRemove ScrollView::scrollOffset() in preparation for scrollOffset vs. scrollPosition...
simon.fraser@apple.com [Wed, 30 Dec 2015 00:29:36 +0000 (00:29 +0000)]
Remove ScrollView::scrollOffset() in preparation for scrollOffset vs. scrollPosition clarification
https://bugs.webkit.org/show_bug.cgi?id=152589

Reviewed by Sam Weinig.

Current code uses scrollOffset vs. scrollPosition interchangeably, and confusingly.
Longer term, I plan to make "scrollPosition" be the value that is relative to the
contents, i.e. affected by scrollOrigin, and "scrollOffset" be the zero-based value
that's used to set scrollbar values.

To prepare for this, remove ScrollView::scrollOffset(), which is just the
scrollPosition as an IntSize.

Add some typedefs in ScrollableArea, which will slowly propagate through the
code as position vs. offset is clarified.

Source/WebCore:

* inspector/InspectorOverlay.cpp:
(WebCore::contentsQuadToCoordinateSystem):
(WebCore::InspectorOverlay::highlightQuad):
(WebCore::localPointToRoot):
* page/FrameView.cpp:
(WebCore::FrameView::scrollOffsetRespectingCustomFixedPosition):
(WebCore::FrameView::topContentInsetDidChange):
(WebCore::FrameView::addTrackedRepaintRect):
(WebCore::FrameView::scrollTo):
(WebCore::FrameView::wheelEvent):
(WebCore::FrameView::setScrollPinningBehavior):
* page/FrameView.h:
* page/SpatialNavigation.cpp:
(WebCore::canScrollInDirection):
(WebCore::rectToAbsoluteCoordinates):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setScrollbarModes):
(WebCore::ScrollView::availableContentSizeChanged):
(WebCore::ScrollView::setContentsSize):
(WebCore::ScrollView::maximumScrollPosition):
(WebCore::ScrollView::minimumScrollPosition):
(WebCore::ScrollView::adjustScrollPositionWithinRange):
(WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
(WebCore::ScrollView::documentScrollOffsetRelativeToScrollableAreaOrigin):
(WebCore::ScrollView::setScrollPosition):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::rootViewToTotalContents):
(WebCore::ScrollView::setFrameRect):
(WebCore::ScrollView::scrollbarStyleChanged):
(WebCore::ScrollView::setScrollOrigin):
* platform/ScrollView.h:
(WebCore::ScrollView::convertChildToSelf):
(WebCore::ScrollView::convertSelfToChild):
(WebCore::ScrollView::scrollOffset): Deleted.
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollbarIntrusion):
(WebCore::ScrollableArea::scrollPosition):
(WebCore::ScrollableArea::minimumScrollPosition):
(WebCore::ScrollableArea::maximumScrollPosition):
* platform/ScrollableArea.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateAutoscrollDirection):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollPosition):
(WebCore::RenderLayer::minimumScrollPosition):
(WebCore::RenderLayer::maximumScrollPosition):
* rendering/RenderLayer.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::nodeAtPoint):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::localCoordinateSpaceTransform):

Source/WebKit2:

* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::renderedImage):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::scrollPosition):
(WebKit::PDFPlugin::minimumScrollPosition):
(WebKit::PDFPlugin::maximumScrollPosition):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::scrollOffset):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scrollMainFrameIfNotAtMaxScrollPosition):
(WebKit::WebPage::updateMainFrameScrollOffsetPinning):

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

3 years agoWeb Inspector: Styling of invalid selector persists when changing the selected node
commit-queue@webkit.org [Tue, 29 Dec 2015 18:15:45 +0000 (18:15 +0000)]
Web Inspector: Styling of invalid selector persists when changing the selected node
https://bugs.webkit.org/show_bug.cgi?id=152456

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2015-12-29
Reviewed by Brian Burg.

If the user changes the selector of a CSS rule to be invalid (e.g. having
a { or ; character), it is expected that the invalid indicator will be removed
once the user changes nodes or reverts the selector to its previous value.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section > .header > .icon.toggle-able:hover):
(.style-declaration-section > .header > .icon.toggle-able:active):
(.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover): Deleted.
Added better :hover and :active styles.

* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
(WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked):
If the selector is invalid, simply refresh the section to regenerate the
original selector with correct content, specificity, and highlighting.

(WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector): Deleted.
Moved the state of the invalid selector to a member
variable instead of a DOM class.

(WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon):
Renamed from _markSelector for clarity.

* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item.selector-invalid > .icon:hover):
(.item.visual-style-selector-item.selector-invalid > .icon:active):
(.item.visual-style-selector-item.selector-invalid > .icon):
Added :hover and :active styles.

* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem):
(WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleIconElementClicked):
(WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged): Deleted.
Changed the names of a few functions to provide better
consistency across the classes in the Style sidebar.

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

3 years agoUnreviewed, relax limitation in operationCreateThis
utatane.tea@gmail.com [Tue, 29 Dec 2015 13:57:21 +0000 (13:57 +0000)]
Unreviewed, relax limitation in operationCreateThis
https://bugs.webkit.org/show_bug.cgi?id=152383

Unreviewed. operationCreateThis now can be called with non constructible function.

* dfg/DFGOperations.cpp:

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

3 years ago[ES6][ES7] Drop Constructability of generator function
utatane.tea@gmail.com [Tue, 29 Dec 2015 11:49:35 +0000 (11:49 +0000)]
[ES6][ES7] Drop Constructability of generator function
https://bugs.webkit.org/show_bug.cgi?id=152383

Reviewed by Saam Barati.

We drop the constructability of generator functions.
This functionality is already landed in ES 2016 draft[1].
And this simplifies the existing JSC's generator implementation;
dropping GeneratorThisMode flag.

[1]: https://github.com/tc39/ecma262/releases/tag/es2016-draft-20151201

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/BuiltinExecutables.cpp:
(JSC::createExecutableInternal):
* bytecode/ExecutableInfo.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::generatorThisMode): Deleted.
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::generatorThisMode): Deleted.
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
* bytecode/UnlinkedFunctionExecutable.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator): Deleted.
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
(JSC::BytecodeGenerator::generatorThisMode): Deleted.
* bytecompiler/NodesCodegen.cpp:
(JSC::ThisNode::emitBytecode):
* interpreter/Interpreter.cpp:
(JSC::eval): Deleted.
* runtime/CodeCache.cpp:
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
* runtime/Executable.h:
* runtime/GeneratorThisMode.h: Removed.
* tests/stress/generator-eval-this.js:
(shouldThrow):
* tests/stress/generator-is-not-constructible.js: Added.
(shouldThrow):
(A.staticGen):
(A.prototype.gen):
(A):
(TypeError):
* tests/stress/generator-this.js:
(shouldBe.g.next):
* tests/stress/generator-with-new-target.js:
(shouldThrow):

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

3 years agoFix Windows build, ostensibly after r194424.
achristensen@apple.com [Tue, 29 Dec 2015 05:15:56 +0000 (05:15 +0000)]
Fix Windows build, ostensibly after r194424.

* CMakeLists.txt:
* PlatformWin.cmake:
ml.exe was given too many unneeded parameters (/Idir1 /Idir2 etc.), and it was failing sometimes with long directories.
Instead of compiling makesafeseh.asm as a normal source file, we now put only the parameters that are needed to assemble
the object file, then link with the object file.

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

3 years agoModern IDB: Rename IDBServerOperation to ServerOpenDBRequest.
beidson@apple.com [Tue, 29 Dec 2015 00:50:48 +0000 (00:50 +0000)]
Modern IDB: Rename IDBServerOperation to ServerOpenDBRequest.
https://bugs.webkit.org/show_bug.cgi?id=152577

Reviewed by Andy Estes.

No new tests (Refactor, no behavior change)

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:

* Modules/indexeddb/server/ServerOpenDBRequest.cpp: Renamed from Source/WebCore/Modules/indexeddb/server/IDBServerOperation.cpp.
(WebCore::IDBServer::ServerOpenDBRequest::create):
(WebCore::IDBServer::ServerOpenDBRequest::ServerOpenDBRequest):
(WebCore::IDBServer::ServerOpenDBRequest::isOpenRequest):
(WebCore::IDBServer::ServerOpenDBRequest::isDeleteRequest):
(WebCore::IDBServer::ServerOpenDBRequest::notifyDeleteRequestBlocked):
(WebCore::IDBServer::ServerOpenDBRequest::notifyDidDeleteDatabase):

* Modules/indexeddb/server/ServerOpenDBRequest.h: Renamed from Source/WebCore/Modules/indexeddb/server/IDBServerOperation.h.
(WebCore::IDBServer::ServerOpenDBRequest::connection):
(WebCore::IDBServer::ServerOpenDBRequest::requestData):
(WebCore::IDBServer::ServerOpenDBRequest::hasNotifiedDeleteRequestBlocked):

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::notifyConnectionsOfVersionChangeForUpgrade):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

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

3 years agoUnreviewed, move Sebastian Dröge to committers list
mcatanzaro@igalia.com [Mon, 28 Dec 2015 23:18:25 +0000 (23:18 +0000)]
Unreviewed, move Sebastian Dröge to committers list

He accidentally added himself to the reviewers list because the file is confusing.

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

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

3 years agoFTL B3 should know that used registers are not the same thing as used registers....
fpizlo@apple.com [Mon, 28 Dec 2015 22:46:51 +0000 (22:46 +0000)]
FTL B3 should know that used registers are not the same thing as used registers. Rename the
latter to unavailable registers to avoid future confusion.
https://bugs.webkit.org/show_bug.cgi?id=152572

Reviewed by Saam Barati.

Prior to this change, we used the term "used registers" in two different senses:

- The set of registers that are live at some point in the current compilation unit. A
  register is live at some point if it is read after that point on some path through that
  point.

- The set of registers that are not available for scratch register use at some point. A
  register may not be available if it is live or if it is a callee-save register but it is
  not being saved by the current compilation.

In the old FTL LLVM code, we had some translations from the first sense into the second
sense. We forgot to do those in FTL B3, and so we get crashes, for example in V8/splay. That
benchmark highlighted this issue because it fired some lazy slow paths, and then used an
unsaved callee-save for scratch.

Curiously, we could merge these two definitions by observing that, in some sense, an unsaved
callee save is live at every point in a compilation in the sense that it may contain a value
that will be read when the compilation returns. That's pretty cool, but it feels strange to
me. This isn't how we would normally define liveness of registers. It's not how the
Air::TmpLiveness analysis would do it for any of its other clients.

So, this changes B3 to have two different concepts:

- Used registers. These are the registers that are live.

- Unavailable registers. These are the registers that are not available for scratch. It's
  always a superset of used registers.

This also changes FTLLower to use unavailableRegisters() pretty much everywhere that it
previously used usedRegisters().

This makes it possible to run V8/splay.

* b3/B3StackmapGenerationParams.cpp:
(JSC::B3::StackmapGenerationParams::usedRegisters):
(JSC::B3::StackmapGenerationParams::unavailableRegisters):
(JSC::B3::StackmapGenerationParams::proc):
* b3/B3StackmapGenerationParams.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):

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

3 years ago[ANGLE][EFL][GTK] Remove 'template<class> class std::auto_ptr is deprecated' compile...
jh718.park@samsung.com [Mon, 28 Dec 2015 17:22:51 +0000 (17:22 +0000)]
[ANGLE][EFL][GTK] Remove 'template<class> class std::auto_ptr is deprecated' compile warning
https://bugs.webkit.org/show_bug.cgi?id=152567

Reviewed by Alex Christensen.

Because auto_ptr is deprecated as of C++11, we should use unique_ptr instead.

* src/compiler/preprocessor/MacroExpander.h:

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

3 years ago[CMake][EFL] Fix build breaks when enabling GAMEPAD
gyuyoung.kim@webkit.org [Mon, 28 Dec 2015 17:21:15 +0000 (17:21 +0000)]
[CMake][EFL] Fix build breaks when enabling GAMEPAD
https://bugs.webkit.org/show_bug.cgi?id=152573

Reviewed by Alex Christensen.

When enabling GAMEPAD feature on EFL and GTK, there are build breaks.
Fixed all.

* CMakeLists.txt:

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

3 years agoStop moving local objects in return statements
aestes@apple.com [Mon, 28 Dec 2015 16:26:24 +0000 (16:26 +0000)]
Stop moving local objects in return statements
https://bugs.webkit.org/show_bug.cgi?id=152557

Reviewed by Brady Eidson.

Source/JavaScriptCore:

Calling std::move() on a local object in a return statement prevents the compiler from applying the return value optimization.

Clang can warn about these mistakes with -Wpessimizing-move, although only when std::move() is called directly.
I found these issues by temporarily replacing WTF::move with std::move and recompiling.

* inspector/ScriptCallStack.cpp:
(Inspector::ScriptCallStack::buildInspectorArray):
* inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::buildInspectorObject):
* jit/CallFrameShuffler.h:
(JSC::CallFrameShuffler::snapshot):
* runtime/TypeSet.cpp:
(JSC::TypeSet::allStructureRepresentations):
(JSC::StructureShape::inspectorRepresentation):

Source/WebCore:

Calling std::move() on a local object in a return statement prevents the compiler from applying the return value optimization.

Clang can warn about these mistakes with -Wpessimizing-move, although only when std::move() is called directly.
I found these issues by temporarily replacing WTF::move with std::move and recompiling.

* Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::isolatedCopy):
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::deletedValue):
* Modules/indexeddb/client/IDBDatabaseImpl.cpp:
(WebCore::IDBClient::IDBDatabase::objectStoreNames):
(WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):
* Modules/indexeddb/client/IDBTransactionImpl.cpp:
(WebCore::IDBClient::IDBTransaction::createObjectStore):
(WebCore::IDBClient::IDBTransaction::createIndex):
(WebCore::IDBClient::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBClient::IDBTransaction::requestGetRecord):
(WebCore::IDBClient::IDBTransaction::requestIndexRecord):
(WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
(WebCore::IDBClient::IDBTransaction::requestPutOrAdd):
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
* Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
(WebCore::IDBDatabaseInfo::isolatedCopy):
(WebCore::IDBDatabaseInfo::objectStoreNames):
* Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::error):
(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):
* Modules/indexeddb/shared/IDBTransactionInfo.cpp:
(WebCore::IDBTransactionInfo::versionChange):
(WebCore::IDBTransactionInfo::isolatedCopy):
* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::create):
* Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::create):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::originLockFor):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::create):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::formatNumberValue):
* dom/NodeOrString.cpp:
(WebCore::convertNodesOrStringsIntoNode):
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
(WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
* inspector/InspectorNetworkAgent.cpp:
(WebCore::buildObjectForHeaders):
(WebCore::buildObjectForResourceRequest):
(WebCore::buildObjectForCachedResource):
* inspector/InspectorOverlay.cpp:
(WebCore::buildArrayForQuad):
(WebCore::buildObjectForFlowRegions):
(WebCore::InspectorOverlay::buildObjectForHighlightedNodes):
* inspector/InspectorPageAgent.cpp:
(WebCore::createXHRTextDecoder):
(WebCore::buildArrayForCookies):
(WebCore::InspectorPageAgent::buildObjectForFrame):
* inspector/InspectorStyleSheet.cpp:
(WebCore::buildMediaObject):
(WebCore::InspectorStyle::buildArrayForComputedStyle):
(WebCore::buildObjectForSelectorHelper):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForStyle):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::stopFromConsole):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
(WebCore::TimelineRecordFactory::createFunctionCallData):
(WebCore::TimelineRecordFactory::createConsoleProfileData):
(WebCore::TimelineRecordFactory::createProbeSampleData):
(WebCore::TimelineRecordFactory::createEventDispatchData):
(WebCore::TimelineRecordFactory::createGenericTimerData):
(WebCore::TimelineRecordFactory::createTimerInstallData):
(WebCore::TimelineRecordFactory::createEvaluateScriptData):
(WebCore::TimelineRecordFactory::createTimeStampData):
(WebCore::TimelineRecordFactory::createAnimationFrameData):
(WebCore::createQuad):
(WebCore::TimelineRecordFactory::createPaintData):
(WebCore::buildInspectorObject):
* loader/FrameLoader.cpp:
(WebCore::createWindow):
* loader/NavigationAction.cpp:
(WebCore::NavigationAction::copyWithShouldOpenExternalURLsPolicy):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
* platform/network/ios/QuickLook.mm:
(WebCore::QuickLookHandle::create):
* testing/Internals.cpp:
(WebCore::Internals::openDummyInspectorFrontend):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::createResourceRequest):
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate):

Source/WebKit2:

Calling std::move() on a local object in a return statement prevents the compiler from applying the return value optimization.

Clang can warn about these mistakes with -Wpessimizing-move, although only when std::move() is called directly.
I found these issues by temporarily replacing WTF::move with std::move and recompiling.

* UIProcess/WebPageProxy.cpp:
(WebKit::ExceededDatabaseQuotaRecords::createRecord):

Source/WTF:

* wtf/StdLibExtras.h: Added a FIXME about how using WTF::move() prevents several Clang diagnostics from emitting useful warnings.

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

3 years agoWeb Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet
bburg@apple.com [Mon, 28 Dec 2015 03:01:04 +0000 (03:01 +0000)]
Web Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet
https://bugs.webkit.org/show_bug.cgi?id=152402

Reviewed by Joseph Pecoraro.

Include the UA string, inspected page URL, and a template that includes
steps to reproduce and notes. Other common headings (regression, expected,
results, summary) are omitted because they are unlikely to be known when
an uncaught exception occurs, or are obvious ("shouldn't throw exception").

* UserInterface/Debug/UncaughtExceptionReporter.js:

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

3 years agoShould never be reached failure in WebCore::RenderElement::clearLayoutRootIfNeeded
zalan@apple.com [Sun, 27 Dec 2015 22:56:57 +0000 (22:56 +0000)]
Should never be reached failure in WebCore::RenderElement::clearLayoutRootIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=151590

Reviewed by Simon Fraser.

We should always set the layoutroot when a new subtree layout is requested (and convert it
to a full layout when needed). It ensures that renderers are detached cleanly even when
they are set as layoutroot.

Source/WebCore:

Test: fast/block/assert-when-layout-root-is-not-cleared.html

* page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayoutOfSubtree):

LayoutTests:

* fast/block/assert-when-layout-root-is-not-cleared-expected.txt: Added.
* fast/block/assert-when-layout-root-is-not-cleared.html: Added.

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

3 years ago[WK2][EFL] Use eina_file_path_join at platformDefaultIconDatabasePath in WebProcessPo...
jh718.park@samsung.com [Sun, 27 Dec 2015 07:21:12 +0000 (07:21 +0000)]
[WK2][EFL] Use eina_file_path_join at platformDefaultIconDatabasePath in WebProcessPoolEfl
https://bugs.webkit.org/show_bug.cgi?id=152565

Reviewed by Gyuyoung Kim.

Use eina_file_path_join and EINA_PATH_SEP_S at platformDefaultIconDatabasePath
instead of operator+ and separator "/" respectively
to concatenate paths.

* UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp:
* UIProcess/efl/WebProcessPoolEfl.cpp:
(WebKit::WebProcessPool::platformDefaultIconDatabasePath):

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

3 years ago[CMake] Rearrange new gamepad files with deprecated files
gyuyoung.kim@webkit.org [Sun, 27 Dec 2015 06:34:59 +0000 (06:34 +0000)]
[CMake] Rearrange new gamepad files with deprecated files
https://bugs.webkit.org/show_bug.cgi?id=152564

Reviewed by Alex Christensen.

New gamepad files have been commented out in CMakeLists.txt so far. This patch
rearrange the files with deprecated files using ENABLE_GAMEPAD.

* CMakeLists.txt:

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

3 years agoRename NodeMayOverflowInXXX to NodeMayOverflowInt32InXXX.
mark.lam@apple.com [Sun, 27 Dec 2015 06:27:03 +0000 (06:27 +0000)]
Rename NodeMayOverflowInXXX to NodeMayOverflowInt32InXXX.
https://bugs.webkit.org/show_bug.cgi?id=152555

Reviewed by Alex Christensen.

That's because the NodeMayOverflowInBaseline and NodeMayOverflowInDFG flags only
indicates potential overflowing of Int32 values.  We'll be adding overflow
profiling for Int52 values later, and we should disambiguate between the 2 types.

This is purely a renaming patch.  There are no semantic changes.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* dfg/DFGNodeFlags.cpp:
(JSC::DFG::dumpNodeFlags):
* dfg/DFGNodeFlags.h:
(JSC::DFG::nodeMayOverflowInt32):
(JSC::DFG::nodeCanSpeculateInt32):
(JSC::DFG::nodeMayOverflow): Deleted.

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

3 years ago[Curl] Compile errors.
peavo@outlook.com [Sun, 27 Dec 2015 02:24:29 +0000 (02:24 +0000)]
[Curl] Compile errors.
https://bugs.webkit.org/show_bug.cgi?id=152563

Reviewed by Alex Christensen.

The ResourceError constructor has changed signature.

* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):

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

3 years agoSubpixel rendering: Add subpixel support for outline.
zalan@apple.com [Sat, 26 Dec 2015 05:28:15 +0000 (05:28 +0000)]
Subpixel rendering: Add subpixel support for outline.
https://bugs.webkit.org/show_bug.cgi?id=152560

Source/WebCore:

Reviewed by Simon Fraser.

This patch adds support for subpixel outline-width/outline-offset.

Test: fast/borders/hidpi-outline-hairline-painting.html

* css/CSSPropertyNames.in:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* platform/graphics/GraphicsContext.h:
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawFocusRing):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::computeMaxOutlineSize):
(WebCore::RenderElement::paintOutline):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintAreaElementFocusRing):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutlineForLine):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::adjustRectForOutlineAndShadow):
* rendering/RenderView.cpp:
(WebCore::RenderView::setMaximalOutlineSize):
* rendering/RenderView.h:
* rendering/style/OutlineValue.h:
(WebCore::OutlineValue::offset):
(WebCore::OutlineValue::OutlineValue): Deleted.
* rendering/style/RenderStyle.h:

LayoutTests:

Unable to ref-test other outline types.

Reviewed by Simon Fraser.

* fast/borders/hidpi-outline-hairline-painting-expected.html: Added.
* fast/borders/hidpi-outline-hairline-painting.html: Added.

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

3 years agoASSERT(m_nsResponse) in ResourceResponse::platformCertificateInfo() when running...
ap@apple.com [Fri, 25 Dec 2015 20:46:47 +0000 (20:46 +0000)]
ASSERT(m_nsResponse) in ResourceResponse::platformCertificateInfo() when running tests in iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=152559

Reviewed by Andy Estes.

Fix a regression from r194378.

* platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::platformCertificateInfo):

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

3 years agoResourceError should store failingURL as URL instead of String to avoid reparsing...
ddkilzer@apple.com [Fri, 25 Dec 2015 12:22:16 +0000 (12:22 +0000)]
ResourceError should store failingURL as URL instead of String to avoid reparsing and to address FIXME comments in ResourceErrorCF.cpp and ResourceErrorMac.mm
<http://webkit.org/b/146391>

Reviewed by Antti Koivisto.

Source/WebCore:

* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::preflightFailure):
* loader/DocumentThreadableLoader.h:
(WebCore::DocumentThreadableLoader::preflightFailure):
- Switch type of 'url' argument of preflightFailure() from
  String to URL.
- Update for type change of 'failingURL' argument to
  ResourceError().

* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::responseReceived):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::loadDataURL):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- Update for type change of 'failingURL' argument to
  ResourceError().

* page/EventSource.cpp:
(WebCore::EventSource::didFailAccessControlCheck):
- Convert failingURL() to String explicitly.

* platform/efl/ErrorsEfl.cpp:
(WebCore::cancelledError):
(WebCore::blockedError):
(WebCore::blockedByContentBlockerError):
(WebCore::cannotShowURLError):
(WebCore::interruptedForPolicyChangeError):
(WebCore::cannotShowMIMETypeError):
(WebCore::fileDoesNotExistError):
(WebCore::pluginWillHandleLoadError):
(WebCore::downloadCancelledByUserError):
(WebCore::downloadDestinationError):
* platform/gtk/ErrorsGtk.cpp:
(WebCore::cancelledError):
(WebCore::blockedError):
(WebCore::blockedByContentBlockerError):
(WebCore::cannotShowURLError):
(WebCore::interruptedForPolicyChangeError):
(WebCore::cannotShowMIMETypeError):
(WebCore::fileDoesNotExistError):
(WebCore::pluginWillHandleLoadError):
(WebCore::downloadCancelledByUserError):
(WebCore::downloadDestinationError):
- Update for type change of 'failingURL' argument to
  ResourceError().

* platform/network/ResourceErrorBase.h:
(WebCore::ResourceErrorBase::failingURL):
- Change return type from String to URL.
(WebCore::ResourceErrorBase::ResourceErrorBase):
* platform/network/cf/ResourceError.h:
(WebCore::ResourceError::ResourceError):
- Change type of 'failingURL' from String to URL.

* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::ResourceError):
- Change type of 'failingURL' from String to URL.
(WebCore::ResourceError::platformLazyInit):
- Clean up code and address FIXME by parsing CFURLRef using
  URL() constructor.
(WebCore::ResourceError::cfError):
- Clean up code and address FIXME after switching type of
  m_failingURL.

* platform/network/curl/ResourceError.h:
(WebCore::ResourceError::ResourceError):
- Change type of 'failingURL' from String to URL.

* platform/network/mac/ResourceErrorMac.mm:
(WebCore::createNSErrorFromResourceErrorBase):
(WebCore::ResourceError::platformLazyInit):
- Clean up code and address FIXME after switching type of
  m_failingURL.

* platform/network/soup/ResourceError.h:
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::timeoutError):
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::failingURI):
(WebCore::ResourceError::timeoutError):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::timeoutFired):
- Change type of 'failingURL' from String to URL.

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didFail):
- Convert failingURL() to String explicitly.
- Also switch to using makeString().

Source/WebKit/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::cancelledError):
(WebFrameLoaderClient::blockedError):
(WebFrameLoaderClient::cannotShowURLError):
(WebFrameLoaderClient::interruptedForPolicyChangeError):
(WebFrameLoaderClient::cannotShowMIMETypeError):
(WebFrameLoaderClient::fileDoesNotExistError):
(WebFrameLoaderClient::pluginWillHandleLoadError):
(WebFrameLoaderClient::dispatchDidFailToStartPlugin):
(WebFrameLoaderClient::createJavaAppletWidget):
* WebDownloadCFNet.cpp:
(WebDownload::cancelAuthenticationChallenge):
* WebError.cpp:
(WebError::init):
- Update for type change of 'failingURL' argument to
  ResourceError().

Source/WebKit2:

* NetworkProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp:
(WebKit::platformDownloadNetworkError):
* NetworkProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp:
(WebKit::platformDownloadNetworkError):
* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::DownloadClient::didReceiveResponse):
* NetworkProcess/Downloads/soup/DownloadSoupErrors.h:
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(LoaderClient::didFailLoadWithErrorForFrame):
* UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
(webkit_uri_scheme_request_finish_error):
* WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
(WebKit::internalError):
* WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp:
(WebKit::internalError):
- Update for type change of 'failingURL' argument to
  ResourceError().

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

3 years agoASSERTION FAILED: x2 >= x1 in WebCore::RenderElement::drawLineForBoxSide
zalan@apple.com [Fri, 25 Dec 2015 07:25:29 +0000 (07:25 +0000)]
ASSERTION FAILED: x2 >= x1 in WebCore::RenderElement::drawLineForBoxSide
https://bugs.webkit.org/show_bug.cgi?id=151210

Reviewed by Simon Fraser.

Source/WebCore:

"IntRect outer = snappedIntRect(inner)" explicitly converts inner to LayoutRect first and
returns a snapped IntRect. When inner (after the inflate) overflows LayoutUnit,
the snapped rect might become smaller than the inner rect.

This patch also enables outline painting on subpixel positions.

Tests: fast/borders/hidpi-outline-on-subpixel-position.html
       fast/borders/outline-offset-overflow.html

* rendering/RenderElement.cpp:
(WebCore::RenderElement::paintOutline):

LayoutTests:

"IntRect outer = snappedIntRect(inner)" explicitly converts inner to LayoutRect and
returns a snapped IntRect. When inner (after the inflate) overflows LayoutUnit,
the snapped outer rect becomes smaller than the inner rect.

This patch also enables outline painting on subpixel positions.

* fast/borders/hidpi-outline-on-subpixel-position-expected.html: Added.
* fast/borders/hidpi-outline-on-subpixel-position.html: Added.
* fast/borders/outline-offset-overflow-expected.txt: Added.
* fast/borders/outline-offset-overflow.html: Added.

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

3 years agoUse an enum for RenderElement's baseTypeFlags
simon.fraser@apple.com [Fri, 25 Dec 2015 05:37:22 +0000 (05:37 +0000)]
Use an enum for RenderElement's baseTypeFlags
https://bugs.webkit.org/show_bug.cgi?id=152553

Reviewed by Zalan Bujtas.

Use an enum, rather than unsigned, for the BaseTypeFlags bit mask.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::RenderBoxModelObject):
* rendering/RenderBoxModelObject.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
* rendering/RenderElement.h:
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::RenderLayerModelObject):
* rendering/RenderLayerModelObject.h:

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

3 years agoRemove the unused #define _USE_MATH_DEFINES
simon.fraser@apple.com [Thu, 24 Dec 2015 20:47:50 +0000 (20:47 +0000)]
Remove the unused #define _USE_MATH_DEFINES
https://bugs.webkit.org/show_bug.cgi?id=152034

Reviewed by Tim Horton.

Source/WebCore:

_USE_MATH_DEFINES was added in r123968 but no longer does anything.

* platform/graphics/cg/GraphicsContextCG.cpp:
* platform/graphics/cg/PDFDocumentImage.cpp:
* rendering/mathml/RenderMathMLMenclose.cpp:
* rendering/mathml/RenderMathMLOperator.cpp:

Tools:

Update this test to use piDouble from MathExtras.h, and
std::numeric_limits<>.

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:

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

3 years agoPython SCM should be able to retrieve untracked files - Generic changes
youenn.fablet@crf.canon.fr [Thu, 24 Dec 2015 10:42:53 +0000 (10:42 +0000)]
Python SCM should be able to retrieve untracked files - Generic changes
https://bugs.webkit.org/show_bug.cgi?id=152536

Reviewed by Brent Fulgham.

This patch introduces SCM.untracked_files to retrieve a list of untracked files.
No support is yet added to GIT and SVN specific implementations.

* Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.untracked_files):
* Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(SCMTest._shared_test_untracked_files):

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

3 years agoModern IDB: Don't open any new connections until after version change transactions...
beidson@apple.com [Thu, 24 Dec 2015 07:40:29 +0000 (07:40 +0000)]
Modern IDB: Don't open any new connections until after version change transactions are completely handled.
https://bugs.webkit.org/show_bug.cgi?id=152441

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least 4 failing tests now pass).

When a version change transaction is in progress for a database, the server should not open any new connections
to that database until the version change transaction has been 100% completed.

This means *all* events related to finishing the transaction must fire.

To support this, a new message from client -> server is added.

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
(WebCore::IDBClient::IDBOpenDBRequest::dispatchEvent):
* Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
* Modules/indexeddb/client/IDBRequestImpl.h:

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
* Modules/indexeddb/server/IDBServer.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted): Deleted.
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

* Modules/indexeddb/shared/IDBTransactionInfo.cpp:
(WebCore::IDBTransactionInfo::loggingString):
* Modules/indexeddb/shared/IDBTransactionInfo.h:

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
* Modules/indexeddb/shared/InProcessIDBServer.h:

LayoutTests:

* platform/mac-wk1/TestExpectations: Enable 4 now-passing tests.

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

3 years agoModern IDB: storage/indexeddb/transaction-basics.html fails.
beidson@apple.com [Thu, 24 Dec 2015 07:39:01 +0000 (07:39 +0000)]
Modern IDB: storage/indexeddb/transaction-basics.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152481

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Failing test now passes).

* Modules/indexeddb/client/IDBDatabaseImpl.cpp:
(WebCore::IDBClient::IDBDatabase::transaction): Include the invalid string argument
  in the error message.

LayoutTests:

* platform/mac-wk1/TestExpectations:
* storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
* storage/indexeddb/transaction-basics-expected.txt:

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

3 years agoUnreviewed EFL gardening.
gyuyoung.kim@webkit.org [Thu, 24 Dec 2015 06:39:00 +0000 (06:39 +0000)]
Unreviewed EFL gardening.

Mark shadow dom to Pass with incorrect result. Additionally remove
disappeared storage tests in TestExpectations.

Unskip MSE tests because MSE functionalities have been supported by gstreamer.

* platform/efl/TestExpectations:

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

3 years agoAdd an Animometer developer test which animates text-rich boxes
simon.fraser@apple.com [Thu, 24 Dec 2015 04:26:36 +0000 (04:26 +0000)]
Add an Animometer developer test which animates text-rich boxes
https://bugs.webkit.org/show_bug.cgi?id=152544

Reviewed by Zalan Bujtas.

Add a test that draws lots of international text. This is a particle test,
moving the boxes around with absolution positioning.

* Animometer/resources/debug-runner/tests.js:
* Animometer/tests/text/resources/text-boxes.js: Added.
(BouncingTextBox):
(BouncingTextBox.prototype._move):
(BouncingTextBox.prototype.animate):
(BouncingTextBoxStage):
(BouncingTextBoxStage.prototype.createParticle):
(BouncingTextBoxStage.prototype.particleWillBeRemoved):
(BouncingTextBoxsBenchmark):
(BouncingTextBoxsBenchmark.prototype.createStage):
(window.benchmarkClient.create):
* Animometer/tests/text/text-boxes.html: Added.

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

3 years agoUse "constrainedBetween" in more places
simon.fraser@apple.com [Thu, 24 Dec 2015 03:43:23 +0000 (03:43 +0000)]
Use "constrainedBetween" in more places
https://bugs.webkit.org/show_bug.cgi?id=152543

Reviewed by Zalan Bujtas.

Replace code that contrains points via shrunkTo/expandedTo() with calls
to constrainedBetween(), and implement constrainedBetween() on IntPoint,
FloatPoint and LayoutPoint.

Convert some functions that return points to more modern syntax.

Source/WebCore:

* page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::setScrollPosition):
* platform/ScrollView.cpp:
(WebCore::ScrollView::adjustScrollPositionWithinRange):
* platform/graphics/FloatPoint.cpp:
(WebCore::FloatPoint::constrainedBetween):
* platform/graphics/FloatPoint.h:
(WebCore::FloatPoint::shrunkTo):
(WebCore::FloatPoint::expandedTo):
(WebCore::FloatPoint::transposedPoint):
* platform/graphics/IntPoint.cpp:
* platform/graphics/LayoutPoint.cpp:
(WebCore::LayoutPoint::constrainedBetween):
* platform/graphics/LayoutPoint.h:
(WebCore::LayoutPoint::expandedTo):
(WebCore::LayoutPoint::shrunkTo):
(WebCore::LayoutPoint::transposedPoint):
(WebCore::LayoutPoint::fraction):
(WebCore::LayoutPoint::operator FloatPoint):

Source/WebKit2:

* UIProcess/API/Cocoa/WKWebView.mm:
(constrainContentOffset):

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

3 years agojsc CLI tool crashes on EOF.
akling@apple.com [Thu, 24 Dec 2015 02:17:03 +0000 (02:17 +0000)]
jsc CLI tool crashes on EOF.
<https://webkit.org/b/152522>

Reviewed by Benjamin Poulain.

SourceProvider should treat String() like the empty string for hashing purposes.
This was a subtle behavior change in r194017 due to how zero-length strings are
treated by StringImpl::createSubstringSharingImpl().

I made these SourceProviders store a Ref<StringImpl> internally instead of a
String, to codify the fact that these strings can't be null strings.

I couldn't find a way to cause this crash through the API.

* API/JSScriptRef.cpp:
(OpaqueJSScript::OpaqueJSScript):
* parser/SourceProvider.h:
(JSC::StringSourceProvider::StringSourceProvider):

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

3 years agoSplit benchmark into two different pages
jonlee@apple.com [Thu, 24 Dec 2015 01:36:43 +0000 (01:36 +0000)]
Split benchmark into two different pages
https://bugs.webkit.org/show_bug.cgi?id=152458

Reviewed by Simon Fraser.

Add tests to 'animometer' suite.

* Animometer/resources/runner/tests.js:
* Animometer/tests/master/canvas-stage.html: Added.
* Animometer/tests/master/resources/canvas-stage.js: Added.
* Animometer/tests/master/resources/canvas-tests.js: Added.
* Animometer/tests/master/resources/stage.css: Added.

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

3 years agoSplit benchmark into two different pages
jonlee@apple.com [Thu, 24 Dec 2015 01:31:47 +0000 (01:31 +0000)]
Split benchmark into two different pages
https://bugs.webkit.org/show_bug.cgi?id=152458

Reviewed by Simon Fraser.

Address comments.

* Animometer/resources/debug-runner/benchmark-runner.js:
(BenchmarkRunner.prototype._runTestAndRecordResults): When the testing is complete the frame owning the
sampler goes away, and a later call to get the JSON data is no longer available. Process the data
right here, instead, and just reference it when displaying the results in ResultsDashboard.prototype._processData.
* Animometer/resources/extensions.js:
(Array.prototype.fill.Array.prototype.fill): Add a null check. Remove braces around single-line clause.
(Array.prototype.find.Array.prototype.find): Update the null check.
(ResultsDashboard.prototype._processData): Use the already-processed data.
* Animometer/resources/runner/animometer.css:
(.frame-container > iframe): Remove calc().

Move Array functions to extensions.js since that is included by the harness.
Add ES6 Array polyfills.

* Animometer/resources/algorithm.js:
(Array.prototype.swap): Moved to extensions.js.
* Animometer/resources/extensions.js:
(Array.prototype.swap):
(Array.prototype.fill): Added.
(Array.prototype.find): Added.

Adjust styles for iPad.

* Animometer/resources/runner/animometer.css:
(@media screen and (min-device-width: 768px)): Apply to iPad as well.
(@media screen and (max-device-width: 1024px)): Update width for iPads.

Adjustment styles for iOS.

* Animometer/developer.html: Different divs contain the iframe, so use a class instead and
update the style rules.
* Animometer/index.html:
* Animometer/resources/debug-runner/animometer.css: Remove extraneous rules.
(@media screen and (min-device-width: 1800px)): Move this up.
* Animometer/resources/runner/animometer.css: Add rules to accomodate iOS.

Get rid of prefixed flex properties for now.

* Animometer/resources/debug-runner/animometer.css:
* Animometer/resources/runner/animometer.css:

Update the structure of the harness. Remove the JSON-per-test but keep
the JSON of the whole test run. Use the full page in order to display
the graph.

* Animometer/developer.html: Update several of the JS file includes to UTF-8. Remove header and footer. Test results screen includes score,
average, and worst 5% statistics.
* Animometer/index.html: Make structure similar to developer.html.
* Animometer/resources/debug-runner/animometer.css: Remove most of the
button rules since they are superfluous. Move the progress bar to the
top, fixed. Update the results page rules.
* Animometer/resources/debug-runner/animometer.js: Remove most of the
additions to sectionsManager since they are no longer needed.
(setSectionHeader): Updates header of the section.
(window.suitesManager._updateStartButtonState): Update selector.
(showResults): Add keypress event for selecting different data for
copy/paste. Update how the results are populated. Include full test
JSON in a textarea, rather than requiring a button press.
(showTestGraph):
* Animometer/resources/debug-runner/tests.js: Update structure of Headers. Define different kinds of headers. Headers can control their
title, and the text used as the cell contents, including class name.
* Animometer/resources/extensions.js:
(ResultsTable): Update to include a flattened version of the headers,
used while populating table contents. Remove unneeded helper functions
for creating the table. Rename "show" to "add".
* Animometer/resources/runner/animometer.css: Update rules to
accommodate the new structure.
* Animometer/resources/runner/animometer.js:
(window.sectionsManager.setSectionScore): Helper function to set the
score and mean for a section.
(window.sectionsManager.populateTable): Helper function to set the table.
(window.benchmarkController.showResults): Refactor.
(window.benchmarkController.selectResults): Update selectors.
* Animometer/resources/runner/tests.js: Set Headers. Debug harness
extends it.

Update debug runner to have similar names to the basic runner. Include
that page's CSS and remove extraneous CSS rules.

Get rid of the statistics table #record.

* Animometer/developer.html: Rename #home to #intro. Rename .spacer to hr.
* Animometer/resources/debug-runner/animometer.css: Set to flexbox when selected.
* Animometer/resources/debug-runner/animometer.js: Remove recordTable.
(window.suitesManager._updateStartButtonState): Update selector to #intro.
(setupRunningSectionStyle): Deleted.

* Animometer/resources/runner/animometer.css:
(#test-container.selected): Change to flex-box only when visible.

Remove recordTable.
* Animometer/resources/debug-runner/benchmark-runner.js:
(BenchmarkRunner.prototype._runTestAndRecordResults):
* Animometer/resources/runner/tests.js:
* Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
* Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
* Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
* Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
* Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
* Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
* Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
* Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
* Animometer/tests/examples/resources/canvas-electrons.js:
* Animometer/tests/examples/resources/canvas-stars.js:
* Animometer/tests/misc/resources/compositing-transforms.js:
* Animometer/tests/resources/main.js:
* Animometer/tests/resources/stage.js:
(StageBenchmark): Remove _recordTable.
* Animometer/tests/simple/resources/simple-canvas-paths.js:
* Animometer/tests/simple/resources/simple-canvas.js:
* Animometer/tests/template/resources/template-canvas.js:
* Animometer/tests/template/resources/template-css.js:
* Animometer/tests/template/resources/template-svg.js:
* Animometer/tests/text/resources/layering-text.js:

* Animometer/resources/debug-runner/animometer.js:
(willStartFirstIteration): Fix selector, since results-table is used
in multiple places, so it cannot be an id.

Make it possible to select the scores, or the whole table data,
by cycling through different selections through key press of 's'.

* Animometer/resources/runner/animometer.js:
(window.benchmarkController.showResults): Attach a keypress handler
if it hasn't been added already.
(window.benchmarkController.selectResults):
* Animometer/resources/runner/tests.js: Cycle through different
ranges.

Fix a few fly-by errors.

* Animometer/resources/debug-runner/benchmark-runner.js:
(BenchmarkRunnerState.prototype.prepareCurrentTest): Update the frame relative path
since the files are now in the top directory instead of inside runner/.
(BenchmarkRunner.prototype._runTestAndRecordResults): Incorrect reference to function.
(BenchmarkRunner.prototype.step): Member variable is never used.

A little stylistic cleanup.

* Animometer/resources/debug-runner/benchmark-runner.js:
* Animometer/resources/extensions.js:
(window.DocumentExtension.createElement):
* Animometer/tests/resources/main.js:
(Benchmark.prototype.record):
* Animometer/tests/resources/stage.js:
(StageBenchmark.prototype.showResults): Reverse progress and message.
The message appears less frequently than the progress.
* Animometer/tests/simple/resources/simple-canvas.js:
(SimpleCanvasBenchmark): Remove unused options.

Add newer version of harness in a new page. Consolidate differences between the two
pages.

* Animometer/developer.html: Include runner/animometer.js. Rename the JS function
to run the benchmark to startBenchmark() instead of startTest(). Rename #running to
#test-container.
* Animometer/index.html: Added. Similarly calls startBenchmark() and has #test-container.
* Animometer/resources/debug-runner/animometer.css: Make the canvas 2:1 (1200px x 800px)
instead of 4:3.

Split out benchmarkRunnerClient and benchmarkController.

* Animometer/resources/debug-runner/animometer.js: Move needed functions out of
benchmarkRunnerClient, and leave the rest here to extend that object. Get rid of _resultsTable
and move populating the results table into benchmarkController. Rename _resultsDashboard
to results and make it accessible for other objects to use.
(willAddTestFrame): This is unnecessary. Remove.

(window.sectionsManager.showScore): Grab it from the results object instead of
benchmarkRunnerClient.
(window.sectionsManager.showSection): Deleted. Moved to runner/animometer.js.

(window.benchmarkController._runBenchmark): Deleted. Mostly moved into _startBenchmark.
(window.benchmarkController.startBenchmark): Refactor to call _startBenchmark.
(window.benchmarkController.showResults): Include most of benchmarkRunnerClient.didFinishLastIteration()
here.

* Animometer/resources/debug-runner/benchmark-runner.js:
(BenchmarkRunner.prototype._appendFrame): Remove unneeded call to willAddTestFrame.
* Animometer/resources/extensions.js:
(ResultsDashboard): Change the class to process the sampler data on-demand and hold onto that data
for later referencing.
(ResultsDashboard.prototype.toJSON): Deleted.
(ResultsDashboard.prototype._processData): Rename toJSON to _processData since it's not really
outputting JSON. Store the processed data into a member variable that can be referenced later.
(ResultsDashboard.prototype.get data): Process the data if it hasn't already.
(ResultsDashboard.prototype.get score): Process the data if it hasn't already, then return the
aggregate score.
(ResultsTable.prototype._showHeader): When outputting the results to a table, don't force the
need for an empty children array. This was to allow for a header row in the table that spanned
multiple columns. In the simpler harness, this is not needed.
(ResultsTable.prototype._showEmptyCells):
(ResultsTable.prototype._showTest): This hardcoded the columns. At least for the name and score,
which is the bare minimum needed for the simpler harness, key off of the header name provided.
* Animometer/resources/runner/animometer.css: Added. Use a similar 2:1 ratio. The score tables are
split into the data and the headers, and are also displayed RTL so that a later patch allows a
user to copy-paste the data easily.
* Animometer/resources/runner/animometer.js: Added. Use a simpler version of benchmarkRunnerClient.
The debug harness will extend these classes.
(window.benchmarkController._startBenchmark): Used by both harnesses.
(window.benchmarkController.startBenchmark): Set hard-coded options.
(window.benchmarkController.showResults): Includes most of benchmarkRunnerClient.didFinishLastIteration()
here.

Get rid of utilities.js. Move it all into extensions.js.

* Animometer/resources/extensions.js:
* Animometer/tests/resources/utilities.js: Removed.

* Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Remove script link.
* Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Ditto.
* Animometer/tests/bouncing-particles/bouncing-css-images.html: Ditto.
* Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Ditto.
* Animometer/tests/bouncing-particles/bouncing-svg-images.html: Ditto.
* Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
* Animometer/tests/examples/canvas-electrons.html: Ditto.
* Animometer/tests/examples/canvas-stars.html: Ditto.
* Animometer/tests/misc/compositing-transforms.html: Ditto.
* Animometer/tests/simple/simple-canvas-paths.html: Ditto.
* Animometer/tests/template/template-canvas.html: Ditto.
* Animometer/tests/template/template-css.html: Ditto.
* Animometer/tests/template/template-svg.html: Ditto.
* Animometer/tests/text/layering-text.html: Ditto.

Split tests.js into two. Add a new suite to runner/tests.js.

* Animometer/developer.html: Update the script order. Scripts from
debug-runner/ will always build on those from runner/, and have the
same name.
* Animometer/resources/debug-runner/tests.js: Move "complex examples"
suite into "miscellaneous tests".
(Suite): Deleted.
(Suite.prototype.prepare): Deleted.
(Suite.prototype.run): Deleted.
(suiteFromName): Deleted.
* Animometer/resources/runner/tests.js: Added. Take definitions and
functions needed by the test harness. Leave the test suites behind.
(Suite): Moved from debug script.
(Suite.prototype.prepare): Ditto.
(Suite.prototype.run): Ditto.
(suiteFromName): Ditto.
(testFromName): Ditto.

Move benchmark resources out into resources/debug-runner, and update URLs.

* Animometer/developer.html: Renamed from PerformanceTests/Animometer/runner/animometer.html.
* Animometer/resources/debug-runner/animometer.css: Renamed from PerformanceTests/Animometer/runner/resources/animometer.css.
* Animometer/resources/debug-runner/animometer.js: Renamed from PerformanceTests/Animometer/runner/resources/animometer.js.
* Animometer/resources/debug-runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/runner/resources/benchmark-runner.js.
* Animometer/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/runner/resources/d3.min.js.
* Animometer/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/runner/resources/graph.js.
* Animometer/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/runner/resources/tests.js.

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

3 years agoSVN checkout used by RunBenchmark should be non-interactive
dewei_zhu@apple.com [Thu, 24 Dec 2015 01:10:55 +0000 (01:10 +0000)]
SVN checkout used by RunBenchmark should be non-interactive
https://bugs.webkit.org/show_bug.cgi?id=152542

Reviewed by Ryosuke Niwa.

RunBenchmark should not require user interaction while running.

* Scripts/webkitpy/benchmark_runner/benchmark_builder.py:
(BenchmarkBuilder._checkout_with_subversion):

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

3 years agoREGRESSION (r187593): Scroll position jumps when selecting text in an iframe
simon.fraser@apple.com [Thu, 24 Dec 2015 00:35:04 +0000 (00:35 +0000)]
REGRESSION (r187593): Scroll position jumps when selecting text in an iframe
https://bugs.webkit.org/show_bug.cgi?id=152541
rdar://problem/23886181

Reviewed by Tim Horton.

Source/WebCore:

r154382 added code that modifies parentLayer traversal, looking for ancestor
scrollable layers. However, it confusingly added another code path in which
the ancestor layer traversal cross a frame boundary, when RenderLayer::scrollRectToVisible()
already has one. I fixed this new location to adjust the rect coordinates in r187593,
but then code that hit both crossing points double-mapped the coordinates, causing
autoscroll jumping.

Fix by reverting r154382 and r187593, going back to doing the ancestor walk in
one place. Re-fix r154382 by implementing RenderLayer::allowsCurrentScroll(),
which contains the logic for line clamp, autoscroll and ensuring that overflow:hidden
can be programmatically scrolled.

Form controls are special; they can have overflow:hidden but still be user-scrollable
during autoscroll; this is handled via the confusingly-named canBeProgramaticallyScrolled().
RenderTextControlSingleLine implements this to ensure that readonly text inputs
autoscroll (which is exercised by a test).

The frame-to-parent-frame rect mapping in RenderLayer::scrollRectToVisible() is
fixed to use the coordinate mapping functions from Widget/ScrollView, with the
addition of a new utility function contentsToContainingViewContents().

A "Scrolling" logging channel is added with a few log points.

Test: fast/events/autoscroll-in-iframe-body.html

* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):
use contentsToContainingViewContents().
* platform/Logging.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::contentsToContainingViewContents):
* platform/ScrollView.h:
* platform/graphics/IntPoint.cpp:
(WebCore::IntPoint::constrainedBetween): New helper to constrain a point between
two other points.
* platform/graphics/IntPoint.h:
(WebCore::IntPoint::expandedTo):
(WebCore::IntPoint::shrunkTo):
* rendering/RenderBox.cpp:
* rendering/RenderLayer.cpp:
(WebCore::parentLayerCrossFrame):
(WebCore::RenderLayer::enclosingScrollableLayer):
(WebCore::frameElementAndViewPermitScroll):
(WebCore::RenderLayer::allowsCurrentScroll):
(WebCore::RenderLayer::scrollRectToVisible):
* rendering/RenderLayer.h:
* rendering/RenderTextControlSingleLine.h:

LayoutTests:

New test for autoscrolling iframe contents (an existing test scrolled an overflow:scroll
inside an iframe, and didn't catch the bug).

* fast/events/autoscroll-in-iframe-body-expected.txt: Added.
* fast/events/autoscroll-in-iframe-body.html: Added.
* fast/forms/input-readonly-autoscroll.html: Fix a missing double quote.

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

3 years agoMinor cleanup in RenderBox::canBeProgramaticallyScrolled()
simon.fraser@apple.com [Thu, 24 Dec 2015 00:34:59 +0000 (00:34 +0000)]
Minor cleanup in RenderBox::canBeProgramaticallyScrolled()
https://bugs.webkit.org/show_bug.cgi?id=152515

Reviewed by Tim Horton.

Source/WebCore:

Remove the scrollsOverflow() check in RenderBox::canBeProgramaticallyScrolled(),
since if hasScrollableOverflow is true, scrollsOverflow() must also be true.

Factor clientWidth/Height vs. scrollWidth/Height checks into separate functions,
and call them from two places.

Added a test which is not affected by this particular change, but will verify
that a later change doesn't break anything.

Test: fast/overflow/overflow-hidden-scroll-into-view.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
(WebCore::RenderBox::canBeProgramaticallyScrolled):
* rendering/RenderBox.h:
(WebCore::RenderBox::hasHorizontalOverflow):
(WebCore::RenderBox::hasVerticalOverflow):
(WebCore::RenderBox::hasScrollableOverflowX):
(WebCore::RenderBox::hasScrollableOverflowY):

LayoutTests:

Test that programmatic scrolling works inside overflow:hidden.

* fast/overflow/overflow-hidden-scroll-into-view-expected.html: Added.
* fast/overflow/overflow-hidden-scroll-into-view.html: Added.

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

3 years agoRebaselining storage/domstorage/localstorage/delete-defineproperty-removal.html
ryanhaddad@apple.com [Thu, 24 Dec 2015 00:30:10 +0000 (00:30 +0000)]
Rebaselining storage/domstorage/localstorage/delete-defineproperty-removal.html
https://bugs.webkit.org/show_bug.cgi?id=149179

Unreviewed test gardening.

* storage/domstorage/localstorage/delete-defineproperty-removal-expected.txt:

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

3 years agoFTL B3 should be able to run crypto-sha1 in eager mode
fpizlo@apple.com [Thu, 24 Dec 2015 00:26:04 +0000 (00:26 +0000)]
FTL B3 should be able to run crypto-sha1 in eager mode
https://bugs.webkit.org/show_bug.cgi?id=152539

Reviewed by Saam Barati.

This patch contains one real bug fix and some other fixes that are primarily there for sanity
because I don't believe they are symptomatic.

The real fix is the instruction selector's handling of Phi. It was assuming that the correct
lowering of Phi is to do nothing and the correct lowering of Upsilon is to store into the tmp
that the Phi uses. But this fails for code patterns like:

    @a = Phi()
    Upsilon(@x, ^a)
    use(@a) // this should see the value that @a had at the point that "@a = Phi()" executed.

This arises when we have a lot of Upsilons in a row and they are trying to perform a
shuffling. Prior to this change, "use(@a)" would see the new value of @a, i.e. @x. That's
wrong. So, this changes the lowering to make each Phi have a special shadow Tmp, and Upsilon
stores to it while Phi loads from it. Most of these assignments get copy-propagated by IRC,
so it doesn't really hurt us. I couldn't find any benchmarks that slowed down because of
this. In fact, I believe that the only time that this would lead to extra interference or
extra assignments is when it's actually needed to be correct.

This also contains other fixes, which are probably not for real bugs, but they make me feel
all warm and fuzzy:

- spillEverything() works again.  Previously, it didn't have all of IRC's smarts for handling
  a spill of a ZDef.  I fixed this by creating a helper phase that finds all subwidth ZDefs
  to spill slots and amends them with zero-fills of the top bits.

- IRC no longer requires precise TmpWidth analysis.  Previously, if TmpWidth gave pessimistic
  results, the subwidth ZDef bug would return.  That probably means that it was never fixed
  to begin with, since it's totally cool for just a single def or use of a tmp to cause it
  to become pessimistic. But there may still have been some subwidth ZDefs.  The way that I
  fixed this bug is to have IRC also run the ZDef fixup code that spillEverything() uses.
  This is abstracted behind the beautifully named Air::fixSpillSlotZDef().

- B3::validate() does dominance checks!  So, if you shoot yourself in the foot by using
  something before defining it, validate() will tell you.

- Air::TmpWidth is now easy to "turn off" - i.e. to make it go fully conservative. It's not
  an Option; you have to hack code. But that's better than nothing, and it's consistent with
  what we do for other super-internal compiler options that we use rarely.

- You can now run spillEverything() without hacking code.  Just use
  Options::airSpillSeverything().

* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::LowerToAir):
(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::lower):
* b3/B3Validate.cpp:
* b3/air/AirCode.h:
(JSC::B3::Air::Code::specials):
(JSC::B3::Air::Code::forAllTmps):
(JSC::B3::Air::Code::isFastTmp):
* b3/air/AirFixSpillSlotZDef.h: Added.
(JSC::B3::Air::fixSpillSlotZDef):
* b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
* b3/air/AirIteratedRegisterCoalescing.cpp:
* b3/air/AirSpillEverything.cpp:
(JSC::B3::Air::spillEverything):
* b3/air/AirTmpWidth.cpp:
(JSC::B3::Air::TmpWidth::recompute):
* jit/JITOperations.cpp:
* runtime/Options.h:

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

3 years agoNeed a story for platform-specific Args
fpizlo@apple.com [Thu, 24 Dec 2015 00:14:13 +0000 (00:14 +0000)]
Need a story for platform-specific Args
https://bugs.webkit.org/show_bug.cgi?id=152529

Reviewed by Michael Saboff.

This teaches Arg that some Arg forms are not valid on some targets. The instruction selector now
uses this to avoid immediates and addresses that the target wouldn't like.

This shouldn't change code generation on X86, but is meant as a step towards ARM64 support.

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::crossesInterference):
(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::addr):
(JSC::B3::Air::LowerToAir::loadPromise):
(JSC::B3::Air::LowerToAir::imm):
(JSC::B3::Air::LowerToAir::lower):
* b3/air/AirAllocateStack.cpp:
(JSC::B3::Air::allocateStack):
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::Arg):
(JSC::B3::Air::Arg::imm):
(JSC::B3::Air::Arg::imm64):
(JSC::B3::Air::Arg::callArg):
(JSC::B3::Air::Arg::isValidScale):
(JSC::B3::Air::Arg::tmpIndex):
(JSC::B3::Air::Arg::withOffset):
(JSC::B3::Air::Arg::isValidImmForm):
(JSC::B3::Air::Arg::isValidAddrForm):
(JSC::B3::Air::Arg::isValidIndexForm):
(JSC::B3::Air::Arg::isValidForm):
(JSC::B3::Air::Arg::forEachTmpFast):
* b3/air/opcode_generator.rb:

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

3 years ago[JSC] Bugfix for intrinsic getters with dictionary structures.
keith_miller@apple.com [Wed, 23 Dec 2015 23:45:17 +0000 (23:45 +0000)]
[JSC] Bugfix for intrinsic getters with dictionary structures.
https://bugs.webkit.org/show_bug.cgi?id=152538

Reviewed by Mark Lam.

Intrinsic getters did not check if an object was a dictionary. This meant, if a property on
the prototype chain of a dictionary was an intrinsic getter we would IC it. Later, if a
property is added to the dictionary the IC would still return the result of the intrinsic.
The fix is to no longer IC intrinsic getters if the base object is a dictionary.

* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
* tests/stress/typedarray-length-dictionary.js: Added.
(len):

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

3 years agoSource/WebCore:
bfulgham@apple.com [Wed, 23 Dec 2015 23:31:44 +0000 (23:31 +0000)]
Source/WebCore:
Avoids stack recursion when indexed propertyNames defined using Object.defineProperty are deleted.
https://bugs.webkit.org/show_bug.cgi?id=149179
<rdar://problem/22708019>.

Patch by Pranjal Jumde <pjumde@apple.com> on 2015-12-23
Reviewed by Filip Pizlo.

* runtime/JSObject.cpp:
(JSStorage::deletePropertyByIndex was invoking Base::deleteProperty for indexed propertyNames instead of Base::deletePropertyByIndex leading to a stack recursion)

LayoutTests:
Test to check for stack recursion when indexed propertyNames defined using Object.defineProperty are deleted.
https://bugs.webkit.org/show_bug.cgi?id=149179
<rdar://problem/22708019>.

Patch by Pranjal Jumde <pjumde@apple.com> on 2015-12-23
Reviewed by Filip Pizlo.

* storage/domstorage/localstorage/delete-defineproperty-removal-expected.txt: Added.
* storage/domstorage/localstorage/delete-defineproperty-removal.html: Added.

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

3 years agoWeb Inspector: add support for running protocol-test.js tests on Windows
bfulgham@apple.com [Wed, 23 Dec 2015 23:25:28 +0000 (23:25 +0000)]
Web Inspector: add support for running protocol-test.js tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=148037
<rdar://problem/22292237>

Reviewed by Simon Fraser.

Source/WebKit/win:

Provide API for WebKit.dll clients to request its CFBundleRef.

* WebKitCOMAPI.cpp:
(webKitBundle): Added.
* WebKitCOMAPI.h:

Tools:

* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::inspectorTestStubURL): Provide implementation.

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

3 years ago[MediaStream] MediaDeviceInfo.label must be empty in some situations
eric.carlson@apple.com [Wed, 23 Dec 2015 22:51:28 +0000 (22:51 +0000)]
[MediaStream] MediaDeviceInfo.label must be empty in some situations
https://bugs.webkit.org/show_bug.cgi?id=152000

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, updated fast/mediastream/MediaDevices-enumerateDevices.html.

* Modules/mediastream/CaptureDeviceManager.cpp:
(CaptureDeviceManager::getSourcesInfo): TrackSourceInfo constructor takes persistent ID.

* Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::start): If Document had an active stream track, don't bother
  checking for a persistent permission to access devices.
(WebCore::MediaDevicesRequest::didCompleteCheck): m_hasUserMediaPermission -> m_canShowLabels.
(WebCore::MediaDevicesRequest::getTrackSources): New, factored out of didCompleteCheck so it
  can be called when we don't need to check permissions.
(WebCore::MediaDevicesRequest::didCompleteRequest): m_hasUserMediaPermission -> m_canShowLabels.
* Modules/mediastream/MediaDevicesRequest.h:

* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream): Call setIsActive. Register new stream with MediaStreamRegistry.
(WebCore::MediaStream::~MediaStream): Unregister stream with MediaStreamRegistry.
(WebCore::MediaStream::setIsActive): New. Set m_isActive and call Document if stream is active.
(WebCore::MediaStream::scheduleActiveStateChange): Call setIsActive.
(WebCore::MediaStream::registry): MediaStreamRegistry::registry -> MediaStreamRegistry::shared.
(WebCore::mediaStreams): Deleted. Drive-by cleanup: moved list of all streams to MediaStreamRegistry.
(WebCore::registerMediaStream): Ditto.
(WebCore::unRegisterMediaStream): Ditto.
(WebCore::MediaStream::lookUp): Ditto.
(WebCore::MediaStream::setRegistry): Ditto.
* Modules/mediastream/MediaStream.h:

* Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::shared): Renamed from "registry".
(WebCore::MediaStreamRegistry::MediaStreamRegistry):
(WebCore::MediaStreamRegistry::lookUp): Moved here from MediaStream.
(WebCore::mediaStreams): Ditto.
(WebCore::MediaStreamRegistry::registerStream): Ditto.
(WebCore::MediaStreamRegistry::unregisterStream): Ditto.
(WebCore::MediaStreamRegistry::registry): Deleted.
* Modules/mediastream/MediaStreamRegistry.h:

* dom/Document.h:
(WebCore::Document::setHasActiveMediaStreamTrack): New, set m_hasHadActiveMediaStreamTrack.
(WebCore::Document::hasHadActiveMediaStreamTrack): New, return m_hasHadActiveMediaStreamTrack.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource): MediaStream::lookUp -> MediaStreamRegistry::shared().lookUp.

* platform/mediastream/MediaStreamTrackSourcesRequestClient.h:
(WebCore::TrackSourceInfo::create): Take track persistent ID.
(WebCore::TrackSourceInfo::persistentId): New.
(WebCore::TrackSourceInfo::TrackSourceInfo): Take track persistent ID.

* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::sourceWithUID): TrackSourceInfo::create takes persistent ID.

* platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::trackSourceWithUID): Ditto.

* platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp:
(WebCore::RealtimeMediaSourceCenterMac::sourceWithUID): TrackSourceInfo::create takes persistent ID.

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setUserMediaPermission):
(WTR::InjectedBundle::setUserMediaPermissionForOrigin): New.
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setUserMediaPermissionForOrigin): New.
* WebKitTestRunner/InjectedBundle/TestRunner.h:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setUserMediaPermissionForOrigin):
(WTR::TestController::handleCheckOfUserMediaPermissionForOrigin): Add NULL check.
(WTR::TestController::decidePolicyForUserMediaPermissionRequestIfPossible): Don't add
  persistent permission for origin, that can be done from script now.
* WebKitTestRunner/TestController.h:

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle): Add support for
  SetUserMediaPermissionForOrigin.

LayoutTests:

* fast/mediastream/MediaDevices-enumerateDevices-expected.txt:
* fast/mediastream/MediaDevices-enumerateDevices.html:

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

3 years ago[Win] Unreviewed build fix: Recognize Windows 10 variants.
bfulgham@apple.com [Wed, 23 Dec 2015 22:26:40 +0000 (22:26 +0000)]
[Win] Unreviewed build fix: Recognize Windows 10 variants.

* Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo._determine_win_version):

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

3 years ago[INTL] Implement DateTime Format Functions
commit-queue@webkit.org [Wed, 23 Dec 2015 21:50:47 +0000 (21:50 +0000)]
[INTL] Implement DateTime Format Functions
https://bugs.webkit.org/show_bug.cgi?id=147606

Patch by Andy VanWagoner <andy@instructure.com> on 2015-12-23
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Initialize a UDateFormat from the generated pattern. Use udat_format()
to format the value. Make sure that the UDateFormat is cleaned up when
the DateTimeFormat is deconstructed.

* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::~IntlDateTimeFormat):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::format):
* runtime/IntlDateTimeFormat.h:

LayoutTests:

* js/intl-datetimeformat-expected.txt: Added format tests.
* js/intl-datetimeformat.html: Used utf-8.
* js/script-tests/intl-datetimeformat.js: Added format tests.

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

3 years ago[INTL] Implement String.prototype.localeCompare in ECMA-402
commit-queue@webkit.org [Wed, 23 Dec 2015 20:02:37 +0000 (20:02 +0000)]
[INTL] Implement String.prototype.localeCompare in ECMA-402
https://bugs.webkit.org/show_bug.cgi?id=147607

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2015-12-23
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Add localeCompare in builtin JavaScript that delegates comparing to Intl.Collator.
Keep existing native implementation for use if INTL flag is disabled.
For the common case where no locale or options are specified, avoid creating
a new collator and just use the prototype which is initialized with the defaults.

* CMakeLists.txt:
* DerivedSources.make:
* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/StringPrototype.js: Added.
(localeCompare):
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):

LayoutTests:

* js/script-tests/string-localeCompare.js:
* js/script-tests/string-prototype-properties.js: Update error message.
* js/string-localeCompare-expected.txt:
* js/string-prototype-properties-expected.txt: Update error message.
* js/string-localeCompare.html:

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

3 years agoRebaselining fast/text/emoji.html for Windows
ryanhaddad@apple.com [Wed, 23 Dec 2015 19:15:13 +0000 (19:15 +0000)]
Rebaselining fast/text/emoji.html for Windows
https://bugs.webkit.org/show_bug.cgi?id=152147

Unreviewed test gardening.

* platform/win/fast/text/emoji-expected.txt:

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

3 years agoMarking http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with...
ryanhaddad@apple.com [Wed, 23 Dec 2015 19:06:39 +0000 (19:06 +0000)]
Marking http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-* as failing on Win
https://bugs.webkit.org/show_bug.cgi?id=152411

Unreviewed test gardening.

* platform/win/TestExpectations:

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

3 years ago[Streams API] In RS during enqueuing error should be reported only if readable
calvaris@igalia.com [Wed, 23 Dec 2015 18:13:57 +0000 (18:13 +0000)]
[Streams API] In RS during enqueuing error should be reported only if readable
https://bugs.webkit.org/show_bug.cgi?id=152505

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated imported spec tests.

* web-platform-tests/streams-api/README.txt: Updated spec version.
* web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt: Expectations.
* web-platform-tests/streams-api/readable-streams/bad-strategies.js: Added two new tests.

Source/WebCore:

This commit fixes last spec change done in
https://github.com/whatwg/streams/commit/4ba861e6f60c248060811830e11271c84b439cc3.

Test: imported/w3c/web-platform-tests/streams-api/readable-streams/bad-strategies.html

* Modules/streams/ReadableStreamInternals.js:
(enqueueInReadableStream): Call @errorReadableStream only if state is readable.

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

3 years ago[GTK] Unreviewed gardening
changseok.oh@collabora.com [Wed, 23 Dec 2015 16:56:13 +0000 (16:56 +0000)]
[GTK] Unreviewed gardening

RTCPeerConnection-state.html is removed after r194112. Remove failure expectations
for tests which have been passing. Add new expectations for text-combine-shrink-on-color-change.html

* platform/gtk/TestExpectations:
* platform/gtk/fast/text/text-combine-shrink-on-color-change-expected.png: Added.
* platform/gtk/fast/text/text-combine-shrink-on-color-change-expected.txt: Added.

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

3 years agoFix x86_64 after r194388
benjamin@webkit.org [Wed, 23 Dec 2015 14:03:21 +0000 (14:03 +0000)]
Fix x86_64 after r194388

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::appendShift):
(JSC::B3::Air::LowerToAir::lower):
(JSC::B3::Air::LowerToAir::lowerX86Div):

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

3 years ago[JSC] Get the JavaScriptCore framework to build on ARM64 with B3 enabled
commit-queue@webkit.org [Wed, 23 Dec 2015 11:52:39 +0000 (11:52 +0000)]
[JSC] Get the JavaScriptCore framework to build on ARM64 with B3 enabled
https://bugs.webkit.org/show_bug.cgi?id=152503

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-23
Reviewed by Filip Pizlo.

It is not working but it builds.

* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::vand):
(JSC::ARM64Assembler::vectorDataProcessing2Source):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::add32):
(JSC::MacroAssemblerARM64::add64):
(JSC::MacroAssemblerARM64::countLeadingZeros64):
(JSC::MacroAssemblerARM64::not32):
(JSC::MacroAssemblerARM64::not64):
(JSC::MacroAssemblerARM64::zeroExtend16To32):
(JSC::MacroAssemblerARM64::signExtend16To32):
(JSC::MacroAssemblerARM64::zeroExtend8To32):
(JSC::MacroAssemblerARM64::signExtend8To32):
(JSC::MacroAssemblerARM64::addFloat):
(JSC::MacroAssemblerARM64::ceilFloat):
(JSC::MacroAssemblerARM64::branchDouble):
(JSC::MacroAssemblerARM64::branchFloat):
(JSC::MacroAssemblerARM64::divFloat):
(JSC::MacroAssemblerARM64::moveZeroToDouble):
(JSC::MacroAssemblerARM64::moveFloatTo32):
(JSC::MacroAssemblerARM64::move32ToFloat):
(JSC::MacroAssemblerARM64::moveConditionallyDouble):
(JSC::MacroAssemblerARM64::moveConditionallyFloat):
(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::mulFloat):
(JSC::MacroAssemblerARM64::andDouble):
(JSC::MacroAssemblerARM64::andFloat):
(JSC::MacroAssemblerARM64::sqrtFloat):
(JSC::MacroAssemblerARM64::subFloat):
(JSC::MacroAssemblerARM64::signExtend32ToPtr):
(JSC::MacroAssemblerARM64::moveConditionally32):
(JSC::MacroAssemblerARM64::moveConditionally64):
(JSC::MacroAssemblerARM64::moveConditionallyTest32):
(JSC::MacroAssemblerARM64::moveConditionallyTest64):
(JSC::MacroAssemblerARM64::test32):
(JSC::MacroAssemblerARM64::setCarry):
(JSC::MacroAssemblerARM64::jumpAfterFloatingPointCompare):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::moveDoubleToInts):
(JSC::MacroAssemblerX86::moveIntsToDouble):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::move32ToFloat):
(JSC::MacroAssemblerX86Common::moveFloatTo32):
(JSC::MacroAssemblerX86Common::moveInt32ToPacked): Deleted.
(JSC::MacroAssemblerX86Common::movePackedToInt32): Deleted.
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::appendShift):
(JSC::B3::Air::LowerToAir::lower):
* b3/air/AirInstInlines.h:
(JSC::B3::Air::isX86DivHelperValid):
* b3/air/AirOpcode.opcodes:
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitFunctionEpilogueWithEmptyFrame):
(JSC::AssemblyHelpers::emitFunctionEpilogue):
* jit/FPRInfo.h:
(JSC::FPRInfo::toArgumentRegister):

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

3 years ago[INTL] Implement Intl.DateTimeFormat.prototype.resolvedOptions ()
commit-queue@webkit.org [Wed, 23 Dec 2015 10:48:26 +0000 (10:48 +0000)]
[INTL] Implement Intl.DateTimeFormat.prototype.resolvedOptions ()
https://bugs.webkit.org/show_bug.cgi?id=147603

Patch by Andy VanWagoner <andy@instructure.com> on 2015-12-23
Reviewed by Benjamin Poulain.

.:

* Source/cmake/OptionsWin.cmake: Disable INTL on Windows for now

Source/JavaScriptCore:

Implements InitializeDateTimeFormat and related abstract operations
using ICU. Lazy initialization is used for DateTimeFormat.prototype.
Refactor to align with Collator work.

* icu/unicode/udatpg.h: Added.
* icu/unicode/unumsys.h: Added.
* runtime/CommonIdentifiers.h:
* runtime/IntlDateTimeFormat.cpp:
(JSC::defaultTimeZone):
(JSC::canonicalizeTimeZoneName):
(JSC::localeData):
(JSC::toDateTimeOptions):
(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::weekdayString):
(JSC::IntlDateTimeFormat::eraString):
(JSC::IntlDateTimeFormat::yearString):
(JSC::IntlDateTimeFormat::monthString):
(JSC::IntlDateTimeFormat::dayString):
(JSC::IntlDateTimeFormat::hourString):
(JSC::IntlDateTimeFormat::minuteString):
(JSC::IntlDateTimeFormat::secondString):
(JSC::IntlDateTimeFormat::timeZoneNameString):
(JSC::IntlDateTimeFormat::resolvedOptions):
(JSC::IntlDateTimeFormat::format):
(JSC::IntlDateTimeFormatFuncFormatDateTime): Deleted.
* runtime/IntlDateTimeFormat.h:
* runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::constructIntlDateTimeFormat):
(JSC::callIntlDateTimeFormat):
* runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatFuncFormatDateTime):
(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
* runtime/IntlObject.cpp:
(JSC::resolveLocale):
(JSC::getNumberingSystemsForLocale):
* runtime/IntlObject.h:

LayoutTests:

* js/intl-datetimeformat-expected.txt: Added resolvedOptions tests.
* js/script-tests/intl-datetimeformat.js: Added resolvedOptions tests.
(string_appeared_here):

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

3 years agoContent blockers should be able to promote http to https
commit-queue@webkit.org [Wed, 23 Dec 2015 10:04:44 +0000 (10:04 +0000)]
Content blockers should be able to promote http to https
https://bugs.webkit.org/show_bug.cgi?id=148966

Patch by Chris Aljoudi <chris@chrismatic.io> and Alex Christensen <achristensen@webkit.org> on 2015-12-23
Reviewed by Benjamin Poulain.

Source/WebCore:

Test: http/tests/contentextensions/make-https.html

* contentextensions/ContentExtensionActions.h:
* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::serializeActions):
* contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::loadAction):
* contentextensions/ContentExtensionRule.cpp:
(WebCore::ContentExtensions::Action::deserialize):
(WebCore::ContentExtensions::Action::deserializeType):
(WebCore::ContentExtensions::Action::serializedLength):
* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* platform/URL.cpp:
(WebCore::URL::isBlankURL):
(WebCore::defaultPortsMap):
(WebCore::defaultPortForProtocol):
(WebCore::isDefaultPortForProtocol):
(WebCore::portAllowed):
* platform/URL.h:

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(WebCore::ContentExtensions::operator<<):
(TestWebKitAPI::TEST_F):

LayoutTests:

* http/tests/contentextensions/make-https-expected.txt: Added.
* http/tests/contentextensions/make-https.html: Added.
* http/tests/contentextensions/make-https.html.json: Added.

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

3 years agoREGRESSION(194382): FTL B3 no longer runs V8/encrypt
fpizlo@apple.com [Wed, 23 Dec 2015 03:22:47 +0000 (03:22 +0000)]
REGRESSION(194382): FTL B3 no longer runs V8/encrypt
https://bugs.webkit.org/show_bug.cgi?id=152519

Reviewed by Saam Barati.

A "Move Imm, Tmp" instruction should turn into "Move32 Imm, Tmp" if the Tmp is spilled to a
32-bit slot. Changing where we check isTmp() achieves this. Since all of the logic is only
relevant to when we spill without introducing a Tmp, and since a Move does not have a "Move Addr,
Addr" form, this code ensures that the logic only happens for "Tmp, Tmp" and "Imm, Tmp".

* b3/air/AirIteratedRegisterCoalescing.cpp:
* dfg/DFGOperations.cpp:

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

3 years ago[EFL] ewk_application_cache_manager test failed after r193812
hs85.jeong@samsung.com [Wed, 23 Dec 2015 02:54:39 +0000 (02:54 +0000)]
[EFL] ewk_application_cache_manager test failed after r193812
https://bugs.webkit.org/show_bug.cgi?id=152498

Reviewed by Gyuyoung Kim.

Need to enable the offline_web_application_cache for the ewk_application_cache_manager test.

* UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
(TEST_F):

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

3 years agoFTL B3 should use the right type for comparison slow paths
fpizlo@apple.com [Wed, 23 Dec 2015 02:33:48 +0000 (02:33 +0000)]
FTL B3 should use the right type for comparison slow paths
https://bugs.webkit.org/show_bug.cgi?id=152521

Reviewed by Saam Barati.

Fixes a small goof that was leading to B3 validation failures.

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::nonSpeculativeCompare):

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

3 years agoFTL B3 should be able to run richards
fpizlo@apple.com [Wed, 23 Dec 2015 01:50:19 +0000 (01:50 +0000)]
FTL B3 should be able to run richards
https://bugs.webkit.org/show_bug.cgi?id=152514

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This came down to a liveness bug and a register allocation bug.

The liveness bug was that the code that determined whether we should go around the fixpoint
assumed that BitVector::quickSet() would return true if the bit changed state from false to
true. That's not how it works. It returns the old value of the bit, so it will return false
if the bit changed from false to true. Since there is already a lot of code that relies on
this behavior, I fixed Liveness instead of changing BitVector.

The register allocation bug was that we weren't guarding some checks of tmp()'s with checks
that the Arg isTmp().

The liveness took a long time to track down, and I needed to add a lot of dumping to do it.
It's now possible to dump more of the liveness states, including liveAtHead. I found this
extremely helpful, so I removed the code that cleared liveAtHead.

* b3/air/AirIteratedRegisterCoalescing.cpp:
* b3/air/AirLiveness.h:
(JSC::B3::Air::AbstractLiveness::AbstractLiveness):
(JSC::B3::Air::AbstractLiveness::Iterable::Iterable):
(JSC::B3::Air::AbstractLiveness::Iterable::iterator::iterator):
(JSC::B3::Air::AbstractLiveness::Iterable::iterator::operator*):
(JSC::B3::Air::AbstractLiveness::Iterable::iterator::operator++):
(JSC::B3::Air::AbstractLiveness::Iterable::iterator::operator==):
(JSC::B3::Air::AbstractLiveness::Iterable::iterator::operator!=):
(JSC::B3::Air::AbstractLiveness::Iterable::begin):
(JSC::B3::Air::AbstractLiveness::Iterable::end):
(JSC::B3::Air::AbstractLiveness::liveAtHead):
(JSC::B3::Air::AbstractLiveness::liveAtTail):
* b3/air/AirStackSlot.h:
(WTF::printInternal):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileFTLOSRExit):

Source/WTF:

Change the list dumping helpers to work with a broader set of list kinds.

* wtf/ListDump.h:
(WTF::ListDump::dump):
(WTF::MapDump::dump):
(WTF::sortedMapDump):
(WTF::ListDumpInContext::dump):

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

3 years ago[EFL] MiniBrowser should be able to choose the offline-web-application-cache option
hs85.jeong@samsung.com [Wed, 23 Dec 2015 01:36:03 +0000 (01:36 +0000)]
[EFL] MiniBrowser should be able to choose the offline-web-application-cache option
https://bugs.webkit.org/show_bug.cgi?id=152516

Reviewed by Gyuyoung Kim.

* MiniBrowser/efl/main.c:

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

3 years agoTry to fix the iOS build after r194378
aestes@apple.com [Wed, 23 Dec 2015 00:34:35 +0000 (00:34 +0000)]
Try to fix the iOS build after r194378

* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

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