WebKit-https.git
3 years agoAdd WebKitPrivateFrameworkStubs for iOS 11
jbedard@apple.com [Wed, 5 Jul 2017 18:14:41 +0000 (18:14 +0000)]
Add WebKitPrivateFrameworkStubs for iOS 11
https://bugs.webkit.org/show_bug.cgi?id=173988

Reviewed by David Kilzer.

Source/JavaScriptCore:

* Configurations/Base.xcconfig: iphoneos and iphonesimulator should use the
same directory for private framework stubs.

Source/WebCore:

* Configurations/WebCore.xcconfig: iphoneos and iphonesimulator should use the
same directory for private framework stubs.

Source/WebCore/PAL:

* Configurations/PAL.xcconfig: iphoneos and iphonesimulator should use the
same directory for private framework stubs.

Source/WebKit/mac:

* Configurations/WebKitLegacy.xcconfig: iphoneos and iphonesimulator should
use the same directory for private framework stubs.

Source/WebKit2:

* Configurations/BaseTarget.xcconfig: iphoneos and iphonesimulator should use the
same directory for private framework stubs.

Tools:

* DumpRenderTree/mac/Configurations/Base.xcconfig: iphoneos and iphonesimulator
should use the same directory for private framework stubs.
* WebKitTestRunner/Configurations/Base.xcconfig: Ditto.

WebKitLibraries:

* WebKitPrivateFrameworkStubs/iOS/9: Add Mac architecture for Simulator.
* WebKitPrivateFrameworkStubs/iOS/10: Ditto..
* WebKitPrivateFrameworkStubs/iOS/11: Added.

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

3 years ago[iOS] WKActionSheetAssistants can outlive their host views
aestes@apple.com [Wed, 5 Jul 2017 18:08:32 +0000 (18:08 +0000)]
[iOS] WKActionSheetAssistants can outlive their host views
https://bugs.webkit.org/show_bug.cgi?id=174160
<rdar://problem/20638607>

Reviewed by Tim Horton.

WKActionSheetAssistant keeps a raw pointer to its host UIView, and nothing clears it when
the host view is deallocated. If the assistant outlives the view, we can end up accessing a
pointer to a deallocated UIView and crashing.

I don't know how to reproduce such a crash, but this patch guards against it by doing the
following:

1. Make _view a WeakObjCPtr in WKActionSheetAssistant to ensure it gets set to nil when the
   UIView is deallocated.
2. Call -[WKActionSheetAssistant cleanupSheet] when a WKContentView or WKPDFView is
   deallocated, or when the Web process crashes. This will ensure the action sheet is
   dismissed and prevent the user from tapping on an action that's no longer valid.

* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant superviewForSheet]):
(-[WKActionSheetAssistant _presentationRectForSheetGivenPoint:inHostView:]):
(-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]):
(-[WKActionSheetAssistant presentationRectForIndicatedElement]):
(-[WKActionSheetAssistant _shouldPresentAtTouchLocationForElementRect:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView dealloc]):

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

3 years agoDon't resolve an extra computed style for getComputedStyle in a display: none subtree.
commit-queue@webkit.org [Wed, 5 Jul 2017 18:01:45 +0000 (18:01 +0000)]
Don't resolve an extra computed style for getComputedStyle in a display: none subtree.
https://bugs.webkit.org/show_bug.cgi?id=174145

Before this, we were also resolving the first ancestor's style as
inheriting from itself, which felt pretty wrong (though I think it's
not observable).

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-07-05
Reviewed by Antti Koivisto.

No new tests (non-observable behavior).

* dom/Element.cpp:
(WebCore::Element::resolveComputedStyle):

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

3 years agoMove ScrolledContentsLayer property to ScrollingStateScrollingNode
fred.wang@free.fr [Wed, 5 Jul 2017 17:56:11 +0000 (17:56 +0000)]
Move ScrolledContentsLayer property to ScrollingStateScrollingNode
https://bugs.webkit.org/show_bug.cgi?id=174134

Patch by Frederic Wang <fwang@igalia.com> on 2017-07-05
Reviewed by Simon Fraser.

Source/WebCore:

ScrollingStateFrameScrollingNode and ScrollingStateOverflowScrollingNode both use a
ScrolledContentsLayer property for the same purpose. This commit moves that property into
their parent class ScrollingStateScrollingNode, so that more code is shared between the two
classes. This will also help the refactoring in bug 174130.

No new tests, only dumped tree may change a bit.

* page/scrolling/ScrollingStateFrameScrollingNode.cpp: Remove scrolled contents layer.
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
(WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer): Deleted.
* page/scrolling/ScrollingStateFrameScrollingNode.h: Ditto.
* page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Ditto.
(WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
(WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer): Deleted.
* page/scrolling/ScrollingStateOverflowScrollingNode.h: Ditto.
(): Deleted.
(WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer): Deleted.
* page/scrolling/ScrollingStateScrollingNode.cpp: Add scrolled contents layer.
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer):
(WebCore::ScrollingStateScrollingNode::dumpProperties): Use the label from the overflow class
which is different from the frame class. The dumping order may change a bit too.
* page/scrolling/ScrollingStateScrollingNode.h: Add ScrolledContentsLayer to the enum and
scrolled contents layer.
(WebCore::ScrollingStateScrollingNode::scrolledContentsLayer):
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren): Adjust enum value
to use ScrollingStateScrollingNode::ScrolledContentsLayer.

Source/WebKit2:

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode): Add encoding for scrolled contents
layer.
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode): Remove encoding for scrolled
contents layer.
(ArgumentCoder<ScrollingStateOverflowScrollingNode>::encode): Ditto.
(ArgumentCoder<ScrollingStateScrollingNode>::decode): Add decoding for scrolled contents
layer.
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode): Remove decoding for scrolled
contents layer.
(ArgumentCoder<ScrollingStateOverflowScrollingNode>::decode): Ditto.
(WebKit::dump): Move dumping of scrolled contents layer from overflow/frame nodes to
scrolling node.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): Adjust enum value to use
ScrollingStateScrollingNode::ScrolledContentsLayer.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateBeforeChildren): Ditto.
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): Ditto.

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

3 years agoFix crash in UIKit: +[UIViewController _viewControllerForFullScreenPresentationFromView:]
adachan@apple.com [Wed, 5 Jul 2017 17:43:59 +0000 (17:43 +0000)]
Fix crash in UIKit: +[UIViewController _viewControllerForFullScreenPresentationFromView:]
https://bugs.webkit.org/show_bug.cgi?id=174143
<rdar://problem/28384582>

Reviewed by Wenson Hsieh.

In -[WKActionSheet willRotate], we can't guarantee that the action sheet belongs
in a window, and passing nil to +[UIViewController _viewControllerForFullScreenPresentationFromView:]
throws an exception. To fix this, bail early if the result from -hostViewForSheet is nil.

* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet willRotate]):

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

3 years ago[MediaStream] Protect request and web view during gUM client callback
eric.carlson@apple.com [Wed, 5 Jul 2017 17:41:47 +0000 (17:41 +0000)]
[MediaStream] Protect request and web view during gUM client callback
https://bugs.webkit.org/show_bug.cgi?id=174096
<rdar://problem/32833102>

Reviewed by Youenn Fablet.

Source/WebKit2:

Retain the message and WebView during asynchronous calls so they won't be
released if a navigation happens during a call to the UA for getUserMedia
or enumerateMediaDevices.

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::requestUserMediaAuthorizationForDevices):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
(WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: New test.

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

3 years agoWebAssembly: implement name section's module name, skip unknown sections
jfbastien@apple.com [Wed, 5 Jul 2017 16:51:59 +0000 (16:51 +0000)]
WebAssembly: implement name section's module name, skip unknown sections
https://bugs.webkit.org/show_bug.cgi?id=172008

Reviewed by Keith Miller.

Parse the WebAssembly module name properly, and skip unknown
sections. This is useful because as toolchains support new types
of names we want to keep displaying the information we know about
and simply ignore new information. That capability was designed
into WebAssembly's name section.

Failure to commit this patch would mean that WebKit won't display
stack trace information, which would make developers sad.

Module names were added here: https://github.com/WebAssembly/design/pull/1055

Note that this patch doesn't do anything with the parsed name! Two
reasons for this: module names aren't supported in binaryen yet,
so I can't write a simple binary test; and using the name is a
slightly riskier change because it requires changing StackVisitor
+ StackFrame (where they print "[wasm code]") which requires
figuring out the frame's Module. The latter bit isn't trivial
because we only know wasm frames from their tag bits, and
CodeBlocks are always nullptr.

Binaryen bug: https://github.com/WebAssembly/binaryen/issues/1010

I filed #174098 to use the module name.

* wasm/WasmFormat.h:
(JSC::Wasm::isValidNameType):
* wasm/WasmNameSectionParser.cpp:

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

3 years agoAdjusted test expectations for tiled-drawing/scrolling/fast-scroll-iframe-latched...
jlewis3@apple.com [Wed, 5 Jul 2017 16:40:55 +0000 (16:40 +0000)]
Adjusted test expectations for tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html.
https://bugs.webkit.org/show_bug.cgi?id=168937

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoIncorrect IfModule on Fedora with with PHP 7
commit-queue@webkit.org [Wed, 5 Jul 2017 16:35:41 +0000 (16:35 +0000)]
Incorrect IfModule on Fedora with with PHP 7
https://bugs.webkit.org/show_bug.cgi?id=174159

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-05
Reviewed by Michael Catanzaro.

* http/conf/fedora-httpd-2.4-php7.conf:

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

3 years agoUnreviewed, guard iOS 11-dependent UIPasteboardTests to be iOS 11+ only
wenson_hsieh@apple.com [Wed, 5 Jul 2017 16:17:34 +0000 (16:17 +0000)]
Unreviewed, guard iOS 11-dependent UIPasteboardTests to be iOS 11+ only

* TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

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

3 years agoProcessingInstruction::clearExistingCachedSheet doesn't really exist.
commit-queue@webkit.org [Wed, 5 Jul 2017 16:11:58 +0000 (16:11 +0000)]
ProcessingInstruction::clearExistingCachedSheet doesn't really exist.
https://bugs.webkit.org/show_bug.cgi?id=174146

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-07-05
Reviewed by Chris Dumez.

No new tests (no functionality change).

* dom/ProcessingInstruction.h: Remove dead declaration.

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

3 years agoUnreviewed, rolling out r219128.
jlewis3@apple.com [Wed, 5 Jul 2017 16:07:27 +0000 (16:07 +0000)]
Unreviewed, rolling out r219128.

Spoke with engineer who originally submitted, Patch for APi
test to follow.

Reverted changeset:

"Unreviewed, rolling out r219070."
https://bugs.webkit.org/show_bug.cgi?id=174082
http://trac.webkit.org/changeset/219128

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

3 years agoUnreviewed, rolling out r219070.
jlewis3@apple.com [Wed, 5 Jul 2017 15:59:45 +0000 (15:59 +0000)]
Unreviewed, rolling out r219070.

This revision caused consistent failures of the API test
UIPasteboardTests.DoNotPastePlainTextAsURL on iOS.

Reverted changeset:

"Pasting single words copied to UIPasteboard inserts URLs in
editable areas"
https://bugs.webkit.org/show_bug.cgi?id=174082
http://trac.webkit.org/changeset/219070

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

3 years agoReceiving tracks should be ended when peer connection is being closed
commit-queue@webkit.org [Wed, 5 Jul 2017 15:53:17 +0000 (15:53 +0000)]
Receiving tracks should be ended when peer connection is being closed
https://bugs.webkit.org/show_bug.cgi?id=174109

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-05
Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/peer-connection-track-end.html

As per https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close, tracks should be ended when peer connection is closed.
Also updating transceiver stopped state.

* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::doClose):
* Modules/mediastream/RTCRtpReceiver.cpp:
(WebCore::RTCRtpReceiver::stop):
* Modules/mediastream/RTCRtpReceiver.h:

LayoutTests:

* webrtc/peer-connection-track-end-expected.txt: Added.
* webrtc/peer-connection-track-end.html: Added.

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

3 years ago[GLib] Incorrect <glib/gi18n.h> include in WebKitWebsiteData
zandobersek@gmail.com [Wed, 5 Jul 2017 14:05:47 +0000 (14:05 +0000)]
[GLib] Incorrect <glib/gi18n.h> include in WebKitWebsiteData
https://bugs.webkit.org/show_bug.cgi?id=174093

Reviewed by Michael Catanzaro.

* UIProcess/API/glib/WebKitWebsiteData.cpp: Include <glib/gi18n-lib.h>
rather than <glib/gi18n.h>, since the former has to be included in a
library while the latter should only be included in a standalone application.

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

3 years agoUnreviewed, review follow-up after r218961
said@apple.com [Wed, 5 Jul 2017 04:44:26 +0000 (04:44 +0000)]
Unreviewed, review follow-up after r218961

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::updateFromSettings):

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

3 years ago[WTF] Make double-conversion's cache data constant and drop double_conversion::initia...
utatane.tea@gmail.com [Wed, 5 Jul 2017 00:59:11 +0000 (00:59 +0000)]
[WTF] Make double-conversion's cache data constant and drop double_conversion::initialize()
https://bugs.webkit.org/show_bug.cgi?id=174124

Reviewed by Saam Barati.

We annotate double-conversion's cache data as const and constexpr. And move it out of function.
Since they are not involving global constructors, they are compiled as rodata and initialized
without calling double_conversion::initialize().

And we drop double_conversion::initialize() function since it is no longer necessary.

* wtf/Threading.cpp:
(WTF::initializeThreading):
* wtf/dtoa/cached-powers.cc:
* wtf/dtoa/cached-powers.h:

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

3 years agoRenderThemeCocoa::mediaControlsFormattedStringForDuration is leaking NSDateComponents...
antti@apple.com [Tue, 4 Jul 2017 22:07:53 +0000 (22:07 +0000)]
RenderThemeCocoa::mediaControlsFormattedStringForDuration is leaking NSDateComponentsFormatters
https://bugs.webkit.org/show_bug.cgi?id=174138

Reviewed by Ryosuke Niwa.

Saw a random spin here during media playback. Looks like we are leaking.

* rendering/RenderThemeCocoa.h:
* rendering/RenderThemeCocoa.mm:
(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

    Reuse NSDateComponentsFormatter.

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

3 years agoRemove unused EFL logo from bot watcher dashboard
mcatanzaro@igalia.com [Tue, 4 Jul 2017 20:14:28 +0000 (20:14 +0000)]
Remove unused EFL logo from bot watcher dashboard
https://bugs.webkit.org/show_bug.cgi?id=174136

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL.png: Removed.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL@2x.png: Removed.

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

3 years agoFrameView should not set RenderView::logicalWidth directly for printing
antti@apple.com [Tue, 4 Jul 2017 17:58:36 +0000 (17:58 +0000)]
FrameView should not set RenderView::logicalWidth directly for printing
https://bugs.webkit.org/show_bug.cgi?id=174135

Reviewed by Zalan Bujtas.

Source/WebCore:

Renderer logicalWidth should be set by layout. Direct override by RenderView when printing means
that we don't layout children in all cases when the width changes. This is currently mostly hidden
by spurious layouts but causes problems when trying to fix other things that reduces those.

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

    Instead of calling setLogicalWidth directly call the new setPageLogicalSize that sets both the width
    and the height uniformly.

* rendering/RenderView.cpp:
(WebCore::RenderView::updateLogicalWidth):

    Use pageLogicalSize->width() in printing state instead of skipping the logical width update entirely.
    This ensures that the layout will progress to children when the page logical width changes.

(WebCore::RenderView::initializeLayoutState):
(WebCore::RenderView::layout):
(WebCore::RenderView::pageOrViewLogicalHeight):
(WebCore::RenderView::setPageLogicalSize):
* rendering/RenderView.h:

    Replace the existing m_pageLogicalHeight with std::optional m_pageLogicalSize.

LayoutTests:

* platform/mac/printing/width-overflow-expected.txt:

    This is a progression, view and root element sizes now match.
    Printing output is not affected.

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

3 years ago[GTK] Add more GTK bots to dashboard
mcatanzaro@igalia.com [Tue, 4 Jul 2017 17:51:30 +0000 (17:51 +0000)]
[GTK] Add more GTK bots to dashboard
https://bugs.webkit.org/show_bug.cgi?id=174129

Reviewed by Carlos Alberto Lopez Perez.

We have a bunch of GTK bots that I never look at because they're not on the dashboard. Add
them.

This also changes the sort order to put WPE above GTK so that it's not buried under all the
less-essential GTK bots.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):

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

3 years ago[WTF] Initialize srandom and srand with cryptographically random number
utatane.tea@gmail.com [Tue, 4 Jul 2017 17:43:18 +0000 (17:43 +0000)]
[WTF] Initialize srandom and srand with cryptographically random number
https://bugs.webkit.org/show_bug.cgi?id=174123

Reviewed by Mark Lam.

Use cryptographically random number instead of current time as a seed.

* wtf/RandomNumberSeed.h:
(WTF::initializeRandomNumberGenerator):

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

3 years ago[WPE] Add WPE to bot watcher dashboard
mcatanzaro@igalia.com [Tue, 4 Jul 2017 14:02:42 +0000 (14:02 +0000)]
[WPE] Add WPE to bot watcher dashboard
https://bugs.webkit.org/show_bug.cgi?id=174119

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/CREDIT: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE@2x.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(table.queue-grid tr.platform.linux-wpe img.logo):

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

3 years agoXcode duplicate UUID for DisallowCType.h and DispatchPtr.h
commit-queue@webkit.org [Tue, 4 Jul 2017 11:43:14 +0000 (11:43 +0000)]
Xcode duplicate UUID for DisallowCType.h and DispatchPtr.h
https://bugs.webkit.org/show_bug.cgi?id=174117

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-07-04
Reviewed by Alexey Proskuryakov.

* WTF.xcodeproj/project.pbxproj:
Give DisallowCType.h and DispatchPtr.h different UUIDs.

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

3 years ago[EME] Solve a couple of compiler warnings
calvaris@igalia.com [Tue, 4 Jul 2017 11:12:26 +0000 (11:12 +0000)]
[EME] Solve a couple of compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=174020

Reviewed by Michael Catanzaro.

* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::isPersistentType): Added default return and
assertion.
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::updateKeyStatuses): This warning was
already solved but I think adding an assertion for the default
case can help catch errors in the future.

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

3 years agoCleanup some StringBuilder use
commit-queue@webkit.org [Tue, 4 Jul 2017 08:03:06 +0000 (08:03 +0000)]
Cleanup some StringBuilder use
https://bugs.webkit.org/show_bug.cgi?id=174118

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-07-04
Reviewed by Andreas Kling.

Source/JavaScriptCore:

* runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
* tools/FunctionOverrides.cpp:
(JSC::parseClause):
* wasm/WasmOMGPlan.cpp:
* wasm/WasmPlan.cpp:
* wasm/WasmValidate.cpp:

Source/WebCore:

* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::filterICECandidate):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
* contentextensions/ContentExtension.cpp:
(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):
* css/CSSFontStyleRangeValue.cpp:
(WebCore::CSSFontStyleRangeValue::customCSSText):
* css/CSSFontStyleValue.cpp:
(WebCore::CSSFontStyleValue::customCSSText):
* css/CSSGridAutoRepeatValue.cpp:
(WebCore::CSSGridAutoRepeatValue::customCSSText):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceDescriptor):
* dom/Attr.cpp:
* html/canvas/WebGPURenderingContext.cpp:
* html/parser/HTMLParserIdioms.cpp:
* platform/network/ParsedContentType.cpp:
* platform/network/cocoa/CookieCocoa.mm:
* platform/text/mac/LocaleMac.mm:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getAllResponseHeaders):

Source/WebKit2:

* NetworkProcess/capture/NetworkCaptureManager.cpp:
(WebKit::NetworkCapture::Manager::hashToPath):
* UIProcess/WebPageProxy.cpp:

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

3 years agoLayoutTest workers/bomb.html is a Crash
sbarati@apple.com [Tue, 4 Jul 2017 05:18:15 +0000 (05:18 +0000)]
LayoutTest workers/bomb.html is a Crash
https://bugs.webkit.org/show_bug.cgi?id=167757
<rdar://problem/33086462>

Reviewed by Keith Miller.

Source/JavaScriptCore:

VMTraps::SignalSender was accessing VM fields even after
the VM was destroyed. This happened when the SignalSender
thread was in the middle of its work() function while VMTraps
was notified that the VM was shutting down. The VM would proceed
to run its destructor even after the SignalSender thread finished
doing its work. This means that the SignalSender thread was accessing
VM field eve after VM was destructed (including itself, since it is
transitively owned by the VM). The VM must wait for the SignalSender
thread to shutdown before it can continue to destruct itself.

* runtime/VMTraps.cpp:
(JSC::VMTraps::willDestroyVM):

Source/WTF:

* wtf/AutomaticThread.cpp:
(WTF::AutomaticThreadCondition::waitFor):
* wtf/AutomaticThread.h:

LayoutTests:

* platform/mac-wk2/TestExpectations:

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

3 years ago[iOS DnD] [WK2] Callout bar should reappear after dragging ends for a text selection
wenson_hsieh@apple.com [Tue, 4 Jul 2017 04:33:21 +0000 (04:33 +0000)]
[iOS DnD] [WK2] Callout bar should reappear after dragging ends for a text selection
https://bugs.webkit.org/show_bug.cgi?id=174116
<rdar://problem/33017845>

Reviewed by Ryosuke Niwa.

-willStartScrollingOverflow -didEndScrollingOverflow are helper methods on both the UIWKTextInteractionAssistant
and UIWebSelectionAssistant that handle hiding selection and callout bar UI during overflow scrolling and making
it reappear after scrolling ends. However, these hooks do not contain logic specific to scrolling, and simply
tell the inner UIWebSelectionView to either show or hide and are safe to invoke outside of the context of
scrolling.

This patch invokes these hooks when beginning a drag on a selection, and when a dragging ends, if it called
-willStartScrollingOverflow to begin with. We should rename these in the future to be something along the lines
of -hideSelectionViewAndControls and -showSelectionViewAndControls, respectively, and adopt these new names in
WebKit. We also move logic to hide the callout out of -itemsForBeginningSession: and into
-willAnimateLiftWithAnimator:, when the lift actually begins.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _restoreCalloutBarIfNeeded]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
(-[WKContentView dragInteraction:session:didEndWithOperation:]):

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

3 years agoFix a typo pointed out by Andreas Kling.
rniwa@webkit.org [Tue, 4 Jul 2017 04:08:16 +0000 (04:08 +0000)]
Fix a typo pointed out by Andreas Kling.

* public/v3/components/instant-file-uploader.js:
(InstantFileUploader.prototype._uploadFiles):
* public/v3/models/uploaded-file.js:
(UploadedFile.fetchUploadedFileWithIdenticalHash): Renamed from fetchUnloadedFileWithIdenticalHash.

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

3 years agoDFGBytecodeParser op_to_this does not access the correct instruction offset for to...
sbarati@apple.com [Tue, 4 Jul 2017 01:34:56 +0000 (01:34 +0000)]
DFGBytecodeParser op_to_this does not access the correct instruction offset for to this status
https://bugs.webkit.org/show_bug.cgi?id=174110

Reviewed by Michael Saboff.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):

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

3 years agohttps://bugs.webkit.org/show_bug.cgi?id=174105
lforschler@apple.com [Tue, 4 Jul 2017 00:16:37 +0000 (00:16 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=174105

Reviewed by Stephanie Lewis.

* BuildSlaveSupport/built-product-archive:
(main): Add a -minify parser option
(createZip): Pass along the optional Minify argument if requested
(minifySource): This will trim down archives, logic limited to Mac platform.

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

3 years agoAdd a new assertion to object allocation sinking phase
sbarati@apple.com [Tue, 4 Jul 2017 00:10:29 +0000 (00:10 +0000)]
Add a new assertion to object allocation sinking phase
https://bugs.webkit.org/show_bug.cgi?id=174107

Rubber stamped by Filip Pizlo.

* dfg/DFGObjectAllocationSinkingPhase.cpp:

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

3 years agoNull RenderLayer* deref in FrameView::adjustTiledBackingCoverage()
akling@apple.com [Mon, 3 Jul 2017 23:44:39 +0000 (23:44 +0000)]
Null RenderLayer* deref in FrameView::adjustTiledBackingCoverage()
https://bugs.webkit.org/show_bug.cgi?id=174106
<rdar://problem/33085838>

Reviewed by Tim Horton.

I haven't been able to reproduce this crash locally, but I have seen
video of someone who can, so here's a null check for the RenderView::layer()
which could be null if we're called between RenderView construction
and the first callback to RenderLayerModelObject::styleDidChange().

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

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

3 years agoRemoved expectations and skipped workers/bomb.html on mac.
jlewis3@apple.com [Mon, 3 Jul 2017 23:34:46 +0000 (23:34 +0000)]
Removed expectations and skipped workers/bomb.html on mac.
https://bugs.webkit.org/show_bug.cgi?id=167757

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

3 years agoAdd/remove appropriate media element behavior restrictions when updateWebsitePolicies...
mrajca@apple.com [Mon, 3 Jul 2017 23:19:31 +0000 (23:19 +0000)]
Add/remove appropriate media element behavior restrictions when updateWebsitePolicies is called
https://bugs.webkit.org/show_bug.cgi?id=174103

Reviewed by Alex Christensen.

Source/WebCore:

Test: Added API test.

Added support for updating rate change behavior restrictions on media elements that have already
been created.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateRateChangeRestrictions):
* html/HTMLMediaElement.h:
* page/Page.cpp:
(WebCore::Page::updateMediaElementRateChangeRestrictions):
* page/Page.h:

Source/WebKit2:

Currently, when -[WKWebView evaluateJavaScript:completionHandler:] is invoked, we end up simulating
a user gesture unconditionally. This is not desireable for some tests, so I added a private variant
of this method that takes a boolean that is ultimately passed to `executeScript` for the
`forceUserGesture` parameter (instead of unconditionally passing `true`).

* UIProcess/API/C/WKPage.cpp:
(WKPageRunJavaScriptInMainFrame):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView evaluateJavaScript:completionHandler:]):
(-[WKWebView _evaluateJavaScript:forceUserGesture:completionHandler:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runJavaScriptInMainFrame):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame):
(WebKit::WebPage::updateWebsitePolicies): Update behavior restrictions on any existing media elements.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

Added an API test.

* TestWebKitAPI/Tests/WebKit2/autoplay-check.html: Expose a pause method.
* TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:
(TEST): Added test.
* TestWebKitAPI/cocoa/TestWKWebView.h:
* TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView stringByEvaluatingJavaScript:]): Don't simulate a user gesture when invoking the script.

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

3 years agoUnreviewed, rolling out r219060.
commit-queue@webkit.org [Mon, 3 Jul 2017 23:12:40 +0000 (23:12 +0000)]
Unreviewed, rolling out r219060.
https://bugs.webkit.org/show_bug.cgi?id=174108

crashing constantly when initializing UIWebView (Requested by
thorton on #webkit).

Reverted changeset:

"WTF::Thread should have the threads stack bounds."
https://bugs.webkit.org/show_bug.cgi?id=173975
http://trac.webkit.org/changeset/219060

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

3 years agoUnreviewed, rolling out r219103.
jlewis3@apple.com [Mon, 3 Jul 2017 23:12:20 +0000 (23:12 +0000)]
Unreviewed, rolling out r219103.

Caused multiple build failures.

Reverted changeset:

"Remove copy of ICU headers from WebKit"
https://bugs.webkit.org/show_bug.cgi?id=116407
http://trac.webkit.org/changeset/219103

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

3 years agoRemove copy of ICU headers from WebKit
jbedard@apple.com [Mon, 3 Jul 2017 22:54:14 +0000 (22:54 +0000)]
Remove copy of ICU headers from WebKit
https://bugs.webkit.org/show_bug.cgi?id=116407

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2017-07-03
Reviewed by Alex Christensen.

Source/JavaScriptCore:

Use WTF's copy of ICU headers.

* Configurations/Base.xcconfig:
* icu/unicode/localpointer.h: Removed.
* icu/unicode/parseerr.h: Removed.
* icu/unicode/platform.h: Removed.
* icu/unicode/ptypes.h: Removed.
* icu/unicode/putil.h: Removed.
* icu/unicode/uchar.h: Removed.
* icu/unicode/ucnv.h: Removed.
* icu/unicode/ucnv_err.h: Removed.
* icu/unicode/ucol.h: Removed.
* icu/unicode/uconfig.h: Removed.
* icu/unicode/ucurr.h: Removed.
* icu/unicode/uenum.h: Removed.
* icu/unicode/uiter.h: Removed.
* icu/unicode/uloc.h: Removed.
* icu/unicode/umachine.h: Removed.
* icu/unicode/unorm.h: Removed.
* icu/unicode/unorm2.h: Removed.
* icu/unicode/urename.h: Removed.
* icu/unicode/uscript.h: Removed.
* icu/unicode/uset.h: Removed.
* icu/unicode/ustring.h: Removed.
* icu/unicode/utf.h: Removed.
* icu/unicode/utf16.h: Removed.
* icu/unicode/utf8.h: Removed.
* icu/unicode/utf_old.h: Removed.
* icu/unicode/utypes.h: Removed.
* icu/unicode/uvernum.h: Removed.
* icu/unicode/uversion.h: Removed.
* runtime/IntlCollator.cpp:
* runtime/IntlDateTimeFormat.cpp:
* runtime/JSGlobalObject.cpp:
* runtime/StringPrototype.cpp:

Source/WebCore:

Use WTF's copy of ICU headers.

No new tests because there is no behavior change.

* Configurations/WebCore.xcconfig:
* icu/unicode/bytestream.h: Removed.
* icu/unicode/localpointer.h: Removed.
* icu/unicode/parseerr.h: Removed.
* icu/unicode/platform.h: Removed.
* icu/unicode/ptypes.h: Removed.
* icu/unicode/putil.h: Removed.
* icu/unicode/rep.h: Removed.
* icu/unicode/std_string.h: Removed.
* icu/unicode/strenum.h: Removed.
* icu/unicode/stringpiece.h: Removed.
* icu/unicode/ubrk.h: Removed.
* icu/unicode/uchar.h: Removed.
* icu/unicode/ucnv.h: Removed.
* icu/unicode/ucnv_err.h: Removed.
* icu/unicode/ucol.h: Removed.
* icu/unicode/uconfig.h: Removed.
* icu/unicode/ucurr.h: Removed.
* icu/unicode/uenum.h: Removed.
* icu/unicode/uiter.h: Removed.
* icu/unicode/uloc.h: Removed.
* icu/unicode/umachine.h: Removed.
* icu/unicode/unistr.h: Removed.
* icu/unicode/unorm.h: Removed.
* icu/unicode/unorm2.h: Removed.
* icu/unicode/uobject.h: Removed.
* icu/unicode/urename.h: Removed.
* icu/unicode/uscript.h: Removed.
* icu/unicode/uset.h: Removed.
* icu/unicode/ustring.h: Removed.
* icu/unicode/utext.h: Removed.
* icu/unicode/utf.h: Removed.
* icu/unicode/utf16.h: Removed.
* icu/unicode/utf8.h: Removed.
* icu/unicode/utf_old.h: Removed.
* icu/unicode/utypes.h: Removed.
* icu/unicode/uvernum.h: Removed.
* icu/unicode/uversion.h: Removed.

Source/WebKit/mac:

Use WTF's copy of ICU headers.

* Configurations/WebKitLegacy.xcconfig:
* icu/unicode/localpointer.h: Removed.
* icu/unicode/parseerr.h: Removed.
* icu/unicode/platform.h: Removed.
* icu/unicode/ptypes.h: Removed.
* icu/unicode/putil.h: Removed.
* icu/unicode/uchar.h: Removed.
* icu/unicode/uconfig.h: Removed.
* icu/unicode/ucurr.h: Removed.
* icu/unicode/uidna.h: Removed.
* icu/unicode/uiter.h: Removed.
* icu/unicode/umachine.h: Removed.
* icu/unicode/unorm.h: Removed.
* icu/unicode/unorm2.h: Removed.
* icu/unicode/urename.h: Removed.
* icu/unicode/uscript.h: Removed.
* icu/unicode/ustring.h: Removed.
* icu/unicode/utf.h: Removed.
* icu/unicode/utf16.h: Removed.
* icu/unicode/utf8.h: Removed.
* icu/unicode/utf_old.h: Removed.
* icu/unicode/utypes.h: Removed.
* icu/unicode/uvernum.h: Removed.
* icu/unicode/uversion.h: Removed.

Source/WebKit2:

Use WTF's copy of ICU headers.

* Configurations/BaseTarget.xcconfig:

Source/WTF:

Add an extra rsync command to CopyWTFHeaders which copies the ICU headers
to DSTROOT/usr/local/include/. These headers already live inside a
"unicode" folder, so an example path of a header is
DSTROOT/usr/local/include/unicode/uchar.h. This is already in the search
path of the other WebKit projects, so those other projects can remove
their explicit listing of the old place these headers lived.

Also add the remaining ICU 55.1 headers which the other projects (like
WebCore) need. Revert any local changes to these headers in favor of
using the GCC_PREPROCESSOR_DEFINITIONS build setting. This is so we can
compile the same way against unmodified headers.

* Configurations/Base.xcconfig:
* Configurations/CopyWTFHeaders.xcconfig:
* WTF.xcodeproj/project.pbxproj:
* icu/unicode/alphaindex.h: Added.
* icu/unicode/appendable.h: Added.
* icu/unicode/basictz.h: Added.
* icu/unicode/brkiter.h: Added.
(BreakIterator::isBufferClone):
* icu/unicode/bytestrie.h: Added.
* icu/unicode/bytestriebuilder.h: Added.
* icu/unicode/calendar.h: Added.
(Calendar::createInstance):
(Calendar::roll):
(Calendar::internalSet):
(Calendar::weekNumber):
* icu/unicode/caniter.h: Added.
* icu/unicode/chariter.h: Renamed from Source/WebCore/icu/unicode/chariter.h.
* icu/unicode/choicfmt.h: Added.
* icu/unicode/coleitr.h: Added.
(CollationElementIterator::primaryOrder):
(CollationElementIterator::secondaryOrder):
(CollationElementIterator::tertiaryOrder):
(CollationElementIterator::isIgnorable):
* icu/unicode/coll.h: Added.
* icu/unicode/compactdecimalformat.h: Added.
* icu/unicode/curramt.h: Added.
(CurrencyAmount::getCurrency):
(CurrencyAmount::getISOCurrency):
* icu/unicode/currpinf.h: Added.
(CurrencyPluralInfo::operator!=):
* icu/unicode/currunit.h: Added.
(CurrencyUnit::getISOCurrency):
* icu/unicode/datefmt.h: Added.
* icu/unicode/dbbi.h: Added.
* icu/unicode/dcfmtsym.h: Added.
(DecimalFormatSymbols::getSymbol):
(DecimalFormatSymbols::getConstSymbol):
(DecimalFormatSymbols::setSymbol):
(DecimalFormatSymbols::getLocale):
(DecimalFormatSymbols::getCurrencyPattern):
* icu/unicode/decimfmt.h: Added.
(DecimalFormat::getConstSymbol):
* icu/unicode/docmain.h: Added.
* icu/unicode/dtfmtsym.h: Added.
* icu/unicode/dtintrv.h: Added.
(DateInterval::getFromDate):
(DateInterval::getToDate):
(DateInterval::operator!=):
* icu/unicode/dtitvfmt.h: Added.
(DateIntervalFormat::operator!=):
* icu/unicode/dtitvinf.h: Added.
(DateIntervalInfo::operator!=):
* icu/unicode/dtptngen.h: Added.
* icu/unicode/dtrule.h: Added.
* icu/unicode/enumset.h: Added.
(EnumSet::EnumSet):
(EnumSet::~EnumSet):
(EnumSet::clear):
(EnumSet::add):
(EnumSet::remove):
(EnumSet::contains):
(EnumSet::set):
(EnumSet::get):
(EnumSet::isValidEnum):
(EnumSet::isValidValue):
(EnumSet::operator=):
(EnumSet::getAll):
(EnumSet::flag):
* icu/unicode/errorcode.h: Added.
* icu/unicode/fieldpos.h: Added.
(FieldPosition::operator=):
(FieldPosition::operator==):
(FieldPosition::operator!=):
* icu/unicode/filteredbrk.h: Added.
* icu/unicode/fmtable.h: Added.
(Formattable::getDate):
(Formattable::getString):
(Formattable::getLong):
(Formattable::toUFormattable):
(Formattable::fromUFormattable):
* icu/unicode/format.h: Added.
* icu/unicode/fpositer.h: Added.
* icu/unicode/gender.h: Added.
* icu/unicode/gregocal.h: Added.
* icu/unicode/icudataver.h: Added.
* icu/unicode/icuplug.h: Added.
* icu/unicode/idna.h: Added.
* icu/unicode/listformatter.h: Added.
(ListFormatData::ListFormatData):
* icu/unicode/locdspnm.h: Added.
(LocaleDisplayNames::createInstance):
* icu/unicode/locid.h: Added.
(Locale::operator!=):
(Locale::getCountry):
(Locale::getLanguage):
(Locale::getScript):
(Locale::getVariant):
(Locale::getName):
(Locale::isBogus):
* icu/unicode/measfmt.h: Added.
* icu/unicode/measunit.h: Added.
* icu/unicode/measure.h: Added.
(Measure::getNumber):
(Measure::getUnit):
* icu/unicode/messagepattern.h: Added.
* icu/unicode/msgfmt.h: Added.
* icu/unicode/normalizer2.h: Added.
* icu/unicode/normlzr.h: Added.
(Normalizer::operator!= ):
(Normalizer::quickCheck):
(Normalizer::isNormalized):
(Normalizer::compare):
* icu/unicode/numfmt.h: Added.
(NumberFormat::isParseIntegerOnly):
(NumberFormat::isLenient):
* icu/unicode/numsys.h: Added.
* icu/unicode/parsepos.h: Added.
(ParsePosition::operator=):
(ParsePosition::operator==):
(ParsePosition::operator!=):
(ParsePosition::getIndex):
(ParsePosition::setIndex):
(ParsePosition::getErrorIndex):
(ParsePosition::setErrorIndex):
* icu/unicode/plurfmt.h: Added.
* icu/unicode/plurrule.h: Added.
* icu/unicode/rbbi.h: Added.
(RuleBasedBreakIterator::operator!=):
* icu/unicode/rbnf.h: Added.
(RuleBasedNumberFormat::isLenient):
(RuleBasedNumberFormat::getDefaultRuleSet):
* icu/unicode/rbtz.h: Added.
* icu/unicode/regex.h: Added.
* icu/unicode/region.h: Added.
* icu/unicode/reldatefmt.h: Added.
* icu/unicode/resbund.h: Added.
* icu/unicode/schriter.h: Added.
* icu/unicode/scientificnumberformatter.h: Added.
* icu/unicode/search.h: Added.
(SearchIterator::operator!=):
* icu/unicode/selfmt.h: Added.
* icu/unicode/simpletz.h: Added.
(SimpleTimeZone::setStartRule):
(SimpleTimeZone::setEndRule):
(SimpleTimeZone::getOffset):
* icu/unicode/smpdtfmt.h: Added.
(SimpleDateFormat::get2DigitYearStart):
* icu/unicode/sortkey.h: Added.
(CollationKey::operator!=):
(CollationKey::isBogus):
(CollationKey::getByteArray):
* icu/unicode/stringtriebuilder.h: Added.
* icu/unicode/stsearch.h: Added.
* icu/unicode/symtable.h: Added.
* icu/unicode/tblcoll.h: Added.
* icu/unicode/timezone.h: Added.
(TimeZone::getID):
(TimeZone::setID):
* icu/unicode/tmunit.h: Added.
* icu/unicode/tmutamt.h: Added.
(TimeUnitAmount::operator!=):
* icu/unicode/tmutfmt.h: Added.
(TimeUnitFormat::operator!=):
* icu/unicode/translit.h: Added.
(Transliterator::getMaximumContextLength):
(Transliterator::setID):
(Transliterator::integerToken):
(Transliterator::pointerToken):
* icu/unicode/tzfmt.h: Added.
* icu/unicode/tznames.h: Added.
* icu/unicode/tzrule.h: Added.
* icu/unicode/tztrans.h: Added.
* icu/unicode/ubidi.h: Added.
* icu/unicode/ucal.h: Renamed from Source/JavaScriptCore/icu/unicode/ucal.h.
* icu/unicode/ucasemap.h: Added.
* icu/unicode/ucat.h: Added.
* icu/unicode/ucharstrie.h: Added.
* icu/unicode/ucharstriebuilder.h: Added.
* icu/unicode/uchriter.h: Added.
* icu/unicode/uclean.h: Added.
* icu/unicode/ucnv_cb.h: Renamed from Source/WebCore/icu/unicode/ucnv_cb.h.
* icu/unicode/ucnvsel.h: Added.
* icu/unicode/ucoleitr.h: Renamed from Source/WebCore/icu/unicode/ucoleitr.h.
* icu/unicode/uconfig.h:
* icu/unicode/ucsdet.h: Renamed from Source/WebCore/icu/unicode/ucsdet.h.
* icu/unicode/udat.h: Renamed from Source/JavaScriptCore/icu/unicode/udat.h.
* icu/unicode/udata.h: Added.
* icu/unicode/udateintervalformat.h: Added.
* icu/unicode/udatpg.h: Renamed from Source/JavaScriptCore/icu/unicode/udatpg.h.
* icu/unicode/udisplaycontext.h: Renamed from Source/JavaScriptCore/icu/unicode/udisplaycontext.h.
* icu/unicode/ufieldpositer.h: Renamed from Source/JavaScriptCore/icu/unicode/ufieldpositer.h.
* icu/unicode/uformattable.h: Renamed from Source/JavaScriptCore/icu/unicode/uformattable.h.
* icu/unicode/ugender.h: Added.
* icu/unicode/uidna.h: Renamed from Source/WebCore/icu/unicode/uidna.h.
* icu/unicode/uldnames.h: Added.
* icu/unicode/ulistformatter.h: Added.
* icu/unicode/ulocdata.h: Added.
* icu/unicode/umisc.h: Renamed from Source/JavaScriptCore/icu/unicode/umisc.h.
* icu/unicode/umsg.h: Added.
* icu/unicode/unifilt.h: Added.
* icu/unicode/unifunct.h: Added.
* icu/unicode/unimatch.h: Added.
* icu/unicode/unirepl.h: Added.
* icu/unicode/uniset.h: Added.
(UnicodeSet::operator!=):
(UnicodeSet::isFrozen):
(UnicodeSet::containsSome):
(UnicodeSet::isBogus):
(UnicodeSet::fromUSet):
(UnicodeSet::toUSet):
(UnicodeSet::span):
(UnicodeSet::spanBack):
* icu/unicode/unum.h: Renamed from Source/JavaScriptCore/icu/unicode/unum.h.
* icu/unicode/unumsys.h: Renamed from Source/JavaScriptCore/icu/unicode/unumsys.h.
* icu/unicode/upluralrules.h: Added.
* icu/unicode/uregex.h: Added.
* icu/unicode/uregion.h: Added.
* icu/unicode/urep.h: Added.
* icu/unicode/ures.h: Added.
(ures_getUnicodeString):
(ures_getNextUnicodeString):
(ures_getUnicodeStringByIndex):
(ures_getUnicodeStringByKey):
* icu/unicode/usearch.h: Renamed from Source/WebCore/icu/unicode/usearch.h.
* icu/unicode/usetiter.h: Added.
(UnicodeSetIterator::isString):
(UnicodeSetIterator::getCodepoint):
(UnicodeSetIterator::getCodepointEnd):
* icu/unicode/ushape.h: Renamed from Source/WebCore/icu/unicode/ushape.h.
* icu/unicode/usprep.h: Added.
* icu/unicode/ustdio.h: Added.
* icu/unicode/ustream.h: Added.
* icu/unicode/ustringtrie.h: Added.
* icu/unicode/utf32.h: Added.
* icu/unicode/utmscale.h: Added.
* icu/unicode/utrace.h: Added.
* icu/unicode/utrans.h: Added.
* icu/unicode/utypes.h:
* icu/unicode/vtzone.h: Added.

Tools:

Use WTF's copy of ICU headers.

* DumpRenderTree/mac/Configurations/Base.xcconfig:
* TestWebKitAPI/Configurations/Base.xcconfig:
* WebKitTestRunner/Configurations/Base.xcconfig:

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

3 years agoREGRESSION(Variation Fonts): Specifying Skia by PostScript name does not yield the...
mmaxfield@apple.com [Mon, 3 Jul 2017 22:46:29 +0000 (22:46 +0000)]
REGRESSION(Variation Fonts): Specifying Skia by PostScript name does not yield the expected result
https://bugs.webkit.org/show_bug.cgi?id=174079
<rdar://problem/33040854>

Reviewed by Alex Christensen.

Source/WebCore:

Because Skia is a variation font, its PostScript name contains values to apply to its variation
axes. However, WebKit's variation code was overwriting these intrinsive values with ones specified
by CSS. Therefore, the intrinsic ones were being ignored. The solution is just to pass a flag from
the lookup code to the variations code describing if the font was created via a PostScript name,
and to not apply the CSS properties to it if it was.

Test: fast/text/variations/skia-postscript-name.html

* platform/graphics/FontCache.h:
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont):
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamily):

LayoutTests:

* fast/text/variations/skia-postscript-name-expected-mismatch.html: Added.
* fast/text/variations/skia-postscript-name.html: Added.
* platform/ios-simulator/TestExpectations:

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

3 years agoFix ifndef in Assertions.h
keith_miller@apple.com [Mon, 3 Jul 2017 22:29:17 +0000 (22:29 +0000)]
Fix ifndef in Assertions.h
https://bugs.webkit.org/show_bug.cgi?id=174104

Reviewed by Saam Barati.

The ifndef should have been checking for
CRASH_WITH_SECURITY_IMPLICATION_AND_INFO since that is what the
ifndef defines.

* wtf/Assertions.h:

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

3 years ago[Win] Update expectations for layout tests.
pvollan@apple.com [Mon, 3 Jul 2017 22:28:17 +0000 (22:28 +0000)]
[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

* platform/win/TestExpectations:

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

3 years agoSwitch all WebKit API related to favicons from WebIconDatabase over to new WebCore...
beidson@apple.com [Mon, 3 Jul 2017 22:17:01 +0000 (22:17 +0000)]
Switch all WebKit API related to favicons from WebIconDatabase over to new WebCore::IconLoader mechanism.
https://bugs.webkit.org/show_bug.cgi?id=174073

Reviewed by Andy Estes.

Source/WebCore:

Covered by existing API test.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startIconLoading):
* loader/EmptyClients.cpp:
* loader/FrameLoaderClient.h:

Source/WebKit/mac:

WebView now keeps a direct copy of its main frame icon as a member variable.
It populates that variable by finding exactly one Favicon LinkIcon from WebCore and loading it.

This change causes a progression in KVO observation of the mainFrameIcon property as we now
have both the old icon and new icon at the time it changes.

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::prepareForDataSourceReplacement):
(WebFrameLoaderClient::getLoadDecisionForIcons):
(WebFrameLoaderClient::finishedLoadingIcon):
(WebFrameLoaderClient::dispatchDidReceiveIcon): Deleted.
(WebFrameLoaderClient::registerForIconNotification): Deleted.

* WebView/WebView.mm:
(+[WebView _setIconLoadingEnabled:]):
(+[WebView _isIconLoadingEnabled]):
(-[WebView mainFrameIcon]):
(-[WebView _setMainFrameIcon:]):
(-[WebView _receivedIconChangedNotification:]): Deleted.
(-[WebView _registerForIconNotification:]): Deleted.
(-[WebView _dispatchDidReceiveIconFromWebFrame:]): Deleted.
* WebView/WebViewData.h:
* WebView/WebViewInternal.h:
* WebView/WebViewPrivate.h:

Source/WebKit/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDidReceiveIcon): Deleted.
(WebFrameLoaderClient::registerForIconNotification): Deleted.
* WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::getLoadDecisionForIcons):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveIcon): Deleted.
(WebKit::WebFrameLoaderClient::registerForIconNotification): Deleted.
(WebKit::WebFrameLoaderClient::getLoadDecisionForIcon): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setIconDatabaseEnabled): Call new SPI for this setting instead of WebIconDatabase stuff.

* TestWebKitAPI/Tests/mac/WebViewIconLoading.mm:
(-[MainFrameIconKVO observeValueForKeyPath:ofObject:change:context:]):

LayoutTests:

* http/tests/security/contentSecurityPolicy/block-favicon-expected.txt: Updated results to actually catch
  the load being blocked due to CSP.

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

3 years agoAdd better crash logging for allocation sinking phase
sbarati@apple.com [Mon, 3 Jul 2017 21:51:01 +0000 (21:51 +0000)]
Add better crash logging for allocation sinking phase
https://bugs.webkit.org/show_bug.cgi?id=174102
<rdar://problem/33112092>

Rubber stamped by Filip Pizlo.

I'm trying to gather better information from crashlogs about why
we're crashing in the allocation sinking phase. I'm adding a allocation
sinking specific RELEASE_ASSERT as well as marking a few functions as
NEVER_INLINE to have the stack traces in the crash trace contain more
actionable information.

* dfg/DFGObjectAllocationSinkingPhase.cpp:

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

3 years ago[WebIDL] Remove more unnecessary uses of the preprocessor in idl files
commit-queue@webkit.org [Mon, 3 Jul 2017 21:49:05 +0000 (21:49 +0000)]
[WebIDL] Remove more unnecessary uses of the preprocessor in idl files
https://bugs.webkit.org/show_bug.cgi?id=174083

Patch by Sam Weinig <sam@webkit.org> on 2017-07-03
Reviewed by Alex Christensen.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:
Add ENABLE_NAVIGATOR_STANDALONE.

Source/WebCore:

Purge as much preprocessor use as possible.

* Configurations/FeatureDefines.xcconfig:
Add ENABLE_NAVIGATOR_STANDALONE.

* animation/Animatable.idl:
Remove unnecessary check for LANGUAGE_OBJECTIVE_C. We no longer generate those bindings.

* html/MediaError.idl:
Use [Conditional] rather than the preprocessor.

* page/Navigator.idl:
Use [Conditional] rather than the preprocessor with the new ENABLE_NAVIGATOR_STANDALONE.

* testing/Internals.cpp:
* testing/Internals.h:
Expose setQuickLookPassword on all platforms, as it doesn't hurt since it is only for testing,
but make the implementation do nothing.

* testing/Internals.idl:
Use [Conditional] rather than the preprocessor.

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:
Add ENABLE_NAVIGATOR_STANDALONE.

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:
Add ENABLE_NAVIGATOR_STANDALONE.

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:
Add ENABLE_NAVIGATOR_STANDALONE.

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

3 years agoMarked media/track/track-cues-sorted-before-dispatch.html as flaky
jlewis3@apple.com [Mon, 3 Jul 2017 21:44:01 +0000 (21:44 +0000)]
Marked media/track/track-cues-sorted-before-dispatch.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=168092

Unreviewed test gardening.

* platform/wk2/TestExpectations:

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

3 years ago[Curl] Fix compilation errors
commit-queue@webkit.org [Mon, 3 Jul 2017 21:43:57 +0000 (21:43 +0000)]
[Curl] Fix compilation errors
https://bugs.webkit.org/show_bug.cgi?id=174085

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-07-03
Reviewed by Alex Christensen.

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlContext::initCookieSession):
* platform/network/curl/CurlContext.h:

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

3 years agoUnreviewed, rolling out r219083.
jlewis3@apple.com [Mon, 3 Jul 2017 21:38:42 +0000 (21:38 +0000)]
Unreviewed, rolling out r219083.

The revision caused an API failure on all testing platforms.

Reverted changeset:

"[MediaStream] Protect request and web view during gUM client
callback"
https://bugs.webkit.org/show_bug.cgi?id=174096
http://trac.webkit.org/changeset/219083

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

3 years agoAdd an admin page to manage uploaded files
rniwa@webkit.org [Mon, 3 Jul 2017 21:16:01 +0000 (21:16 +0000)]
Add an admin page to manage uploaded files
https://bugs.webkit.org/show_bug.cgi?id=174089

Reviewed by Andreas Kling.

Add an admin page to see the disk usage per user as well as the total, and to prune any zombie files (ones marked
as deleted but aren't actually deleted in the filesystem).

* public/admin/files.php: Added.
(format_size): Added.
* public/include/admin-header.php:

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

3 years agoRoots uploaded by bots don't get author specified properly
rniwa@webkit.org [Mon, 3 Jul 2017 21:14:52 +0000 (21:14 +0000)]
Roots uploaded by bots don't get author specified properly
https://bugs.webkit.org/show_bug.cgi?id=174087

Reviewed by Andreas Kling.

When a root file is uploaded from the bot, we manually specify the remote user to upload_file_in_transaction.
However, this was getting ignored by create_uploaded_file_from_form_data since it was always calling
remote_user_name to get the user name off of $_SERVER.

Fixed the bug by passing in the user name from upload_file_in_transaction to create_uploaded_file_from_form_data.

* public/include/uploaded-file-helpers.php:
(create_uploaded_file_from_form_data): Take the remote user as an argument instead of calling remote_user_name.
(upload_file_in_transaction):
* server-tests/api-upload-root-tests.js: Updated an existing test cases to make sure root files' author is set.
(createTestGroupWihPatch): Manually override the author of a test group for testing.

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

3 years agoPrune unused uploaded files when the file quota is reached
rniwa@webkit.org [Mon, 3 Jul 2017 21:13:42 +0000 (21:13 +0000)]
Prune unused uploaded files when the file quota is reached
https://bugs.webkit.org/show_bug.cgi?id=174086

Reviewed by Andreas Kling.

Made /privileged-api/uploaded-file and /api/upload-root automatically delete old uploaded files when
uploading a new file results in the file quota to be exceeded. Also added the notion of the total quota
to avoid running out of a disk when there are hundreds of users each uploading near their quota.

* config.json: Added a sample total disk quota of 100GB.
* public/include/uploaded-file-helpers.php:
(query_file_usage_for_user): Renamed from query_total_file_size.
(query_total_file_usage): Added.
(upload_file_in_transaction):
(delete_file): Added.
(prune_old_files): Added.
* server-tests/privileged-api-upload-file-tests.js: Added tests for deleting old uploaded files as well as
tests for the total quota.
* server-tests/resources/test-server.js:
(TestServer.prototype.testConfig): Added uploadTotalQuotaInMB to the test configuration.

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

3 years agoWebAudioSourceProviderAVFObjC should not reconfigure for each data call
commit-queue@webkit.org [Mon, 3 Jul 2017 21:01:00 +0000 (21:01 +0000)]
WebAudioSourceProviderAVFObjC should not reconfigure for each data call
https://bugs.webkit.org/show_bug.cgi?id=174101

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-03
Reviewed by Eric Carlson.

Source/WebCore:

Covered by manual testing, in particular
https://webrtc.github.io/samples/src/content/peerconnection/webaudio-output/
and https://webrtc.github.io/samples/src/content/getusermedia/volume/.
Also improved LayoutTests web audio peer connection tests to make them more robust.

Before the patch, reconfiguration of the web audio provider was happening for every audioSamplesAvailable call.
It is now happening only when the format of the audio samples is changing.
Changed some member fields from uinque_ptr to optional as a minor improvement.

* platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
* platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:
(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):
(WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable):

LayoutTests:

* TestExpectations:
* webrtc/peer-connection-audio-mute2.html:
* webrtc/peer-connection-remote-audio-mute2.html:

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

3 years agoStop using dispatch_async in ResourceHandleCFURLConnectionDelegateWithOperationQueue
achristensen@apple.com [Mon, 3 Jul 2017 20:17:40 +0000 (20:17 +0000)]
Stop using dispatch_async in ResourceHandleCFURLConnectionDelegateWithOperationQueue
https://bugs.webkit.org/show_bug.cgi?id=174059

Reviewed by Andy Estes.

Use dispatch_async_f and callOnMainThread instead.
No change in behavior.
This will allow me to use this code on Windows.

* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):

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

3 years agowebkitpy: Properly number duplicated crashlogs
jbedard@apple.com [Mon, 3 Jul 2017 20:15:04 +0000 (20:15 +0000)]
webkitpy: Properly number duplicated crashlogs
https://bugs.webkit.org/show_bug.cgi?id=172002

Reviewed by Aakash Jain.

* Scripts/webkitpy/common/system/crashlogs.py:
(CrashLogs._find_all_logs_darwin): Number multiple crash logs for a single process with
an increasing integer.
* Scripts/webkitpy/common/system/crashlogs_unittest.py:
(CrashLogsTest.create_crash_logs_darwin): Create duplicated crashlog for testing.
(CrashLogsTest.test_find_all_log_darwin): Now 7 Darwin logs instead of 5.
(CrashLogsTest.test_duplicate_log_darwin): Test that duplicated logs are correctly numbered.

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

3 years agoWebContent processes crash when the network process crashes with pending connection...
rniwa@webkit.org [Mon, 3 Jul 2017 19:47:11 +0000 (19:47 +0000)]
WebContent processes crash when the network process crashes with pending connection requests
https://bugs.webkit.org/show_bug.cgi?id=174065
<rdar://problem/30359835>

Reviewed by Tim Horton.

Source/WebKit2:

The bug was caused by the UI process clearing away pending network connection requests whenever the existing
network process crashed. This resulted in WebContent process killing itself inside ensureNetworkProcessConnection.

Fixed the bug by re-launching a new network process when this happens. We don't try to re-launch a new process
if the previous attempt to launch a network process had failed.

This patch splits NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch into networkProcessFailedToLaunch
and networkProcessCrashed to differentiate those two cases, and invoke the respective callbacks in WebProcessPool.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _networkProcessIdentifier]): Added.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashed): Added.
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch): Split into the two following functions.
(WebKit::NetworkProcessProxy::networkProcessFailedToLaunch): Extracted from networkProcessCrashedOrFailedToLaunch.
(WebKit::NetworkProcessProxy::clearCallbackStates): Extracted from networkProcessCrashedOrFailedToLaunch
(WebKit::NetworkProcessProxy::didClose): Call networkProcessCrashed.
(WebKit::NetworkProcessProxy::didFinishLaunching): Call networkProcessFailedToLaunch.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::networkProcessCrashed): Start a new network process when there are pending connection
requests the crached network failed to fullfil.
(WebKit::WebProcessPool::networkProcessFailedToLaunch):
* UIProcess/WebProcessPool.h:

Tools:

Add a API to ensure UI process tries to relaunch a new network process when the network process
crashes with pending network connection requests.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2/NetworkProcessCrashWithPendingConnection.mm: Added.
* TestWebKitAPI/cocoa/TestNavigationDelegate.h:
* TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
(-[TestNavigationDelegate webViewWebContentProcessDidTerminate:]): Added.

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

3 years agoRebase test after r219024
achristensen@apple.com [Mon, 3 Jul 2017 19:11:55 +0000 (19:11 +0000)]
Rebase test after r219024
https://bugs.webkit.org/show_bug.cgi?id=174051

* fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt:

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

3 years agoRun webgl tests on iOS ports
jbedard@apple.com [Mon, 3 Jul 2017 19:04:55 +0000 (19:04 +0000)]
Run webgl tests on iOS ports
https://bugs.webkit.org/show_bug.cgi?id=173000

Unreviewed test gardening.

* platform/ios-device/TestExpectations: Garden webgl tests.
* platform/ios-simulator/TestExpectations: Ditto.
* platform/ios/TestExpectations: Ditto.
* platform/ios/fast/canvas/webgl: Added.
* platform/ios/fast/canvas/webgl/css-webkit-canvas-expected.txt: Added.
* platform/ios/fast/canvas/webgl/css-webkit-canvas-repaint-expected.txt: Added.

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

3 years agoExpose unobscuredSafeAreaInsets on WebView
timothy_horton@apple.com [Mon, 3 Jul 2017 18:55:31 +0000 (18:55 +0000)]
Expose unobscuredSafeAreaInsets on WebView
https://bugs.webkit.org/show_bug.cgi?id=174075
<rdar://problem/33096997>

Reviewed by Beth Dakin.

* WebView/WebView.mm:
(-[WebView _setUnobscuredSafeAreaInsets:]):
(-[WebView _unobscuredSafeAreaInsets]):
* WebView/WebViewPrivate.h:
Expose unobscuredSafeAreaInsets as a new private property on WebView,
similar to how it is exposed in WebKit2.

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

3 years ago[MediaStream] Protect request and web view during gUM client callback
eric.carlson@apple.com [Mon, 3 Jul 2017 18:55:01 +0000 (18:55 +0000)]
[MediaStream] Protect request and web view during gUM client callback
https://bugs.webkit.org/show_bug.cgi?id=174096
<rdar://problem/32833102>

Reviewed by Youenn Fablet.

Source/WebKit2:

Retain the message and WebView during asynchronous calls so they won't be
released if a navigation happens during a call to the UA for getUserMedia
or enumerateMediaDevices.

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::requestUserMediaAuthorizationForDevices):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
(WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: New test.

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

3 years ago[Xcode] Add an experimental setting to build with ccache
aestes@apple.com [Mon, 3 Jul 2017 18:36:06 +0000 (18:36 +0000)]
[Xcode] Add an experimental setting to build with ccache
https://bugs.webkit.org/show_bug.cgi?id=173875

Reviewed by Tim Horton.

Source/bmalloc:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/JavaScriptCore:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/ThirdParty/ANGLE:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/ThirdParty/libwebrtc:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebCore:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebCore/PAL:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebKit/mac:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebKit2:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WTF:

* Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Tools:

On systems that already have ccache(1) installed, this patch adds experimental support for
it to Xcode builds. It can be enabled with the WK_USE_CCACHE build setting.

When ccache is enabled, CC is overridden to invoke Tools/ccache/ccache-clang. This script
finds the "-isysroot" argument to determine the active SDK, uses xcrun(1) and the SDK to
find the toolchain from which to run clang, and then invokes ccache with the required
arguments.

ccache is invoked with CCACHE_SLOPPINESS="pch_defines,time_macros", which is required for
precompiled headers to work properly [1].

LDPLUSPLUS is overridden to invoke Tools/ccache/ccache-clang++. It behaves the same as
ccache-clang, except it tells ccache to execute clang++ instead of clang. This is important
during linking.

[1] https://ccache.samba.org/manual.html#_precompiled_headers

* DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.
* MiniBrowser/Configurations/DebugRelease.xcconfig: Ditto.
* MobileMiniBrowser/Configurations/DebugRelease.xcconfig: Ditto.
* TestWebKitAPI/Configurations/DebugRelease.xcconfig: Ditto.
* WebKitTestRunner/Configurations/DebugRelease.xcconfig: Ditto.
* ccache/README.md: Added.
* ccache/ccache-clang: Added.
* ccache/ccache-clang++: Added.
* ccache/ccache.xcconfig: Added. Overrides CC and LDPLUSPLUS when WK_USE_CACHE=YES.

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

3 years agoREGRESSION(r218910): Crash inside textMarkerDataForFirstPositionInTextControl
rniwa@webkit.org [Mon, 3 Jul 2017 18:35:07 +0000 (18:35 +0000)]
REGRESSION(r218910): Crash inside textMarkerDataForFirstPositionInTextControl
https://bugs.webkit.org/show_bug.cgi?id=174077
<rdar://problem/33083972>

Reviewed by Chris Fleizach.

Source/WebCore:

The bug was caused by textMarkerDataForFirstPositionInTextControl assuming that
there is always a root editable element (a.k.a. editing host) in the text control.
When the text control is readonly or disabled, this is not the case.

Fixed the bug by adding an early exit when there is no editing host.

Test: accessibility/mac/input-type-change-crash.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):

LayoutTests:

Added a regression test for changing the input element's type during editing.

* accessibility/mac/input-type-change-crash-expected.txt: Added.
* accessibility/mac/input-type-change-crash.html: Added.

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

3 years agoUnreviewed. Mark workers/bomb.html as flaky.
sbarati@apple.com [Mon, 3 Jul 2017 18:31:02 +0000 (18:31 +0000)]
Unreviewed. Mark workers/bomb.html as flaky.

* platform/ios-device/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

3 years agoSkip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes...
sbarati@apple.com [Mon, 3 Jul 2017 18:23:04 +0000 (18:23 +0000)]
Skip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes a long time to run.

* stress/unshiftCountSlowCase-correct-postCapacity.js:

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

3 years agoWeb Inspector: Support listing WebGL2 and WebGPU contexts
drousso@apple.com [Mon, 3 Jul 2017 18:21:24 +0000 (18:21 +0000)]
Web Inspector: Support listing WebGL2 and WebGPU contexts
https://bugs.webkit.org/show_bug.cgi?id=173396

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/Canvas.json:
* inspector/scripts/codegen/generator.py:
(Generator.stylized_name_for_enum_value):
Add cases for handling new Canvas.ContextType protocol enumerations:
 - "webgl2" maps to `WebGL2`
 - "webgpu" maps to `WebGPU`

Source/WebCore:

Tests: inspector/canvas/create-context-2d.html
       inspector/canvas/create-context-webgl.html
       inspector/canvas/create-context-webgl2.html
       inspector/canvas/create-context-webgpu.html

Split "inspector/canvas/create-canvas-contexts.html" into a test for each context type.

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContextWebGPU):
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::buildObjectForCanvas):

Source/WebInspectorUI:

* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.displayNameForContextType):

LayoutTests:

* inspector/canvas/create-canvas-contexts-expected.txt: Removed.
* inspector/canvas/create-canvas-contexts.html: Removed.
* inspector/canvas/create-context-2d-expected.txt: Added.
* inspector/canvas/create-context-2d.html: Added.
* inspector/canvas/create-context-webgl-expected.txt: Added.
* inspector/canvas/create-context-webgl.html: Added.
* inspector/canvas/create-context-webgl2-expected.txt: Added.
* inspector/canvas/create-context-webgl2.html: Added.
* inspector/canvas/create-context-webgpu-expected.txt: Added.
* inspector/canvas/create-context-webgpu.html: Added.
* inspector/canvas/resources/create-context-utilities.css: Added.
(.canvas):
* inspector/canvas/resources/create-context-utilities.js: Added.
(createAttachedCanvas):
(createDetachedCanvas):
(createCSSCanvas):
(destroyCanvases):
(TestPage.registerInitializer.awaitCanvasAdded):
(TestPage.registerInitializer.awaitCanvasRemoved):
(TestPage.registerInitializer.window.initializeTestSuite):
(TestPage.registerInitializer.window.addSimpleTestCase):
(TestPage.registerInitializer.window.addCSSCanvasTestCase):
* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:
Split the existing canvas lifecycle tests into one for each context type. This allows
platforms that don't support certain context types to ignore just those tests (e.g. WebGPU).

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

3 years agoREGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encod...
achristensen@apple.com [Mon, 3 Jul 2017 17:20:25 +0000 (17:20 +0000)]
REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes
https://bugs.webkit.org/show_bug.cgi?id=174051

Reviewed by Tim Horton.

Source/WebCore:

In r215096 I added ' to the set of characters to be percent-encoded in queries,
but for interoperability and compatibility we need to do this only for special schemes, like http.

Covered by new API tests.

* platform/URLParser.cpp:
(WebCore::isC0Control):
(WebCore::shouldPercentEncodeQueryByte):
(WebCore::URLParser::utf8QueryEncode):
(WebCore::URLParser::encodeQuery):

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):

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

3 years agoAX: role="none" (or presentation) does not work on iframes
cfleizach@apple.com [Mon, 3 Jul 2017 17:18:34 +0000 (17:18 +0000)]
AX: role="none" (or presentation) does not work on iframes
https://bugs.webkit.org/show_bug.cgi?id=173930
<rdar://problem/33034347>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy.
Accomplish this by adding children for attachment and scroll view elements the way other children are added.
That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.)

Test: accessibility/presentation-role-iframe.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
(WebCore::AccessibilityNodeObject::insertChild): Deleted.
(WebCore::AccessibilityNodeObject::addChild): Deleted.
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild):
(WebCore::nodeHasPresentationRole):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::addChild): Deleted.
(WebCore::AccessibilityObject::insertChild): Deleted.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::webAreaIsPresentational):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::addAttachmentChildren):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addChildren):

LayoutTests:

* accessibility/presentation-role-iframe-expected.txt: Added.
* accessibility/presentation-role-iframe.html: Added.

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

3 years agoRebase test after r219024
achristensen@apple.com [Mon, 3 Jul 2017 17:17:24 +0000 (17:17 +0000)]
Rebase test after r219024
https://bugs.webkit.org/show_bug.cgi?id=174051

LayoutTests/imported/w3c:

* web-platform-tests/url/url-setters-expected.txt:

LayoutTests:

* http/tests/security/no-popup-from-sandbox-top-expected.txt:

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

3 years agoUnreviewed, rolling out r219024.
jlewis3@apple.com [Mon, 3 Jul 2017 16:57:25 +0000 (16:57 +0000)]
Unreviewed, rolling out r219024.

This patch cause 3 didferent test to fail.

Reverted changeset:

"REGRESSION(r215096) Queries of URLs with non-special schemes
should not percent-encode single quotes"
https://bugs.webkit.org/show_bug.cgi?id=174051
http://trac.webkit.org/changeset/219024

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

3 years agoUnreviewed, rolling out r219030.
jlewis3@apple.com [Mon, 3 Jul 2017 16:56:05 +0000 (16:56 +0000)]
Unreviewed, rolling out r219030.

This was a rebaseline of a test that was broken with revision
r219024

Reverted changeset:

"Rebase test after r219024"
https://bugs.webkit.org/show_bug.cgi?id=174051
http://trac.webkit.org/changeset/219030

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

3 years agoDrop ResourceLoadStatisticsStore's statisticsLock
bfulgham@apple.com [Mon, 3 Jul 2017 16:02:45 +0000 (16:02 +0000)]
Drop ResourceLoadStatisticsStore's statisticsLock
https://bugs.webkit.org/show_bug.cgi?id=174080

Patch by Chris Dumez <cdumez@apple.com> on 2017-07-03
Reviewed by Brent Fulgham.

Source/WebKit2:

Drop ResourceLoadStatisticsStore's statisticsLock. It added complexity and was only needed
do that the SPI exposed to WebKitTestRunner would query the store synchronously from the
main thread. Instead, I made the SPI asynchronous and make sure we always access the store
from the same background thread. As a result, there is no longer any need for locking.

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsIsPrevalentResource:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsHadUserInteraction:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsIsGrandfathered:completionHandler:]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/Storage/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::ResourceLoadStatisticsStore::isGrandFathered):
(WebKit::ResourceLoadStatisticsStore::ensureResourceStatisticsForPrimaryDomain):
(WebKit::ResourceLoadStatisticsStore::createEncoderFromData):
(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder):
(WebKit::ResourceLoadStatisticsStore::clearInMemory):
(WebKit::ResourceLoadStatisticsStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler):
(WebKit::ResourceLoadStatisticsStore::processStatistics):
(WebKit::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebKit::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry):
(WebKit::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):
(WebKit::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
* UIProcess/Storage/ResourceLoadStatisticsStore.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::refreshFromDisk):
(WebKit::WebResourceLoadStatisticsStore::clearInMemoryData):
(WebKit::WebResourceLoadStatisticsStore::submitTelemetry):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
* UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

Port WebKitTestRunner to new Asynchronous Cocoa SPI.

* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsGrandfathered):

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

3 years agoPasting single words copied to UIPasteboard inserts URLs in editable areas
wenson_hsieh@apple.com [Mon, 3 Jul 2017 11:26:36 +0000 (11:26 +0000)]
Pasting single words copied to UIPasteboard inserts URLs in editable areas
https://bugs.webkit.org/show_bug.cgi?id=174082
<rdar://problem/33046992>

Reviewed by Tim Horton.

Source/WebCore:

Currently, our heuristics for coercing plain text to URLs when reading URLs off of the UIPasteboard allows URLs
to be created as long as -[UIPasteboard valuesForPasteboardType:inItemSet:] returns a non-null NSURL. However,
UIPasteboard automatically coerces any NSString into an NSURL if it initializes an NSURL via +URLWithString:.
Thus, single-word strings such as "hello" that are written to the pasteboard as "public.utf8-plain-text" can
be read back as NSURLs for "public.url". This currently causes bugs in shipping software: e.g. copying and
pasting a single word from an editable input or textarea and pasting into a rich contenteditable area using
WebKit1 inserts a link. However, when combined with another change in WebKit that attempts to read "public.url"
before "public.text" when reading plain text from the pasteboard, this now also affects pasting in plain text
areas, where pasted plain-text strings that are not URLs will paste as URL-encoded strings anyways (for
instance, replacing "[hello]" with "%5Bhello%5D").

To fix this, and existing issues with pasting single words in contenteditables, we make
PlatformPasteboard::readString and PlatformPasteboard::readURL only accept a coerced NSURL as an URL if it also
parses as a valid URL in WebKit (otherwise, we return an empty string).

Tests:
    UIPasteboardTests.DoNotPastePlainTextAsURL
    UIPasteboardTests.PastePlainTextAsURL
    UIPasteboardTests.PasteURLWithPlainTextAsURL

* platform/PlatformPasteboard.h:
* platform/ios/AbstractPasteboard.h:
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::allowReadingURLAtIndex):

Allow an URL to be read if either (1) an URL was explicitly specified in the UIPasteboard, or (2) the "proposed"
URL returned from -valuesForPasteboardType: is valid.

(WebCore::PlatformPasteboard::readString):
(WebCore::PlatformPasteboard::readURL):

Consult allowReadingURLAtIndex here (in the case of ::readString, only if the given pasteboard type is
"public.url").

* platform/ios/WebItemProviderPasteboard.h:
* platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard itemProviders]):
(-[WebItemProviderPasteboard setItemProviders:]):

Source/WebKit2:

Add a hook to WKPreferences to allow programatic pasting.

* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setDOMPasteAllowed:]):
(-[WKPreferences _domPasteAllowed]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

Adds 3 new unit tests to UIPasteboardTests to test cases of pasting plain text and URLs.

* TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
(TestWebKitAPI::setUpWebViewForPasteboardTests):
(TestWebKitAPI::TEST):

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

3 years agoUnreviewed GTK+ and WPE build fix when building with GCC 4.9.
zandobersek@gmail.com [Mon, 3 Jul 2017 10:58:41 +0000 (10:58 +0000)]
Unreviewed GTK+ and WPE build fix when building with GCC 4.9.

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::renderNextFrame): Don't use brace-list
initialization to override the m_forceRepaintAsync struct. Instead, manually
assign the OptionalCallbackID() value to the m_forceRepaintAsync.callbackID
member variable, and override the m_forceRepaintAsync.needsFreshFlush member
variable with `false`.

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

3 years agoRemove an unused function export
commit-queue@webkit.org [Mon, 3 Jul 2017 10:11:20 +0000 (10:11 +0000)]
Remove an unused function export
https://bugs.webkit.org/show_bug.cgi?id=174084

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-07-03
Reviewed by Yusuke Suzuki.

* wtf/Threading.h:

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

3 years ago[ThreadedCompositor] Update and retrieve scene attributes under a Lock
zandobersek@gmail.com [Mon, 3 Jul 2017 09:56:45 +0000 (09:56 +0000)]
[ThreadedCompositor] Update and retrieve scene attributes under a Lock
https://bugs.webkit.org/show_bug.cgi?id=173762

Reviewed by Carlos Garcia Campos.

Instead of dispatching separate tasks on the composition run loop, update
various scene attributes by locking a common lock object and updating the
appropriate attribute.

In ThreadedCompositor::renderLayerTree(), where these attributes are used
in scene composition, the lock is again obtained and the attributes copied
into local variables, releasing the lock afterwards. The attribute values
in local copies are then used for that renderLayerTree() invocation.

This approach is more efficient than dispatching separate tasks that can
race against renderLayerTree() dispatches.

* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::setScaleFactor):
(WebKit::ThreadedCompositor::setScrollPosition):
(WebKit::ThreadedCompositor::setViewportSize):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::renderLayerTree):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:

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

3 years agoExpose WebPreferences for viewport-fit and constant() properties
timothy_horton@apple.com [Mon, 3 Jul 2017 09:00:49 +0000 (09:00 +0000)]
Expose WebPreferences for viewport-fit and constant() properties
https://bugs.webkit.org/show_bug.cgi?id=174072
<rdar://problem/33096639>

Reviewed by Ryosuke Niwa.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences viewportFitEnabled]):
(-[WebPreferences setViewportFitEnabled:]):
(-[WebPreferences constantPropertiesEnabled]):
(-[WebPreferences setConstantPropertiesEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

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

3 years agoUnreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited
utatane.tea@gmail.com [Mon, 3 Jul 2017 08:42:59 +0000 (08:42 +0000)]
Unreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited

It requires too much memory.

* stress/dont-reserve-huge-capacity-lexer.js:

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

3 years ago[GCrypt] Implement CryptoKeyEC SPKI exports
zandobersek@gmail.com [Mon, 3 Jul 2017 07:46:09 +0000 (07:46 +0000)]
[GCrypt] Implement CryptoKeyEC SPKI exports
https://bugs.webkit.org/show_bug.cgi?id=173646

Reviewed by Jiewen Tan.

Source/WebCore:

No new tests -- affected tests are now passing and are unskipped.

Implement libgcrypt-based support for SPKI exports of EC keys.

Initially, the ECParameters structure is created so that it will be later embedded
into the SubjectPublicKeyInfo structure. First the root element of this structure
is written into, specifying namedCurve as the chosen member (even if other choices
are not really available). We then write out the object identifier into this
namedCurve member that properly represents this key's curve type.

The SubjectPublicKeyInfo structure is created next. We write out id-ecPublicKey
identifier as the chosen algorithm identifier. Web Crypto specification demands
that the id-ecDH identifier is used in case of ECDH keys, but no existing test in
the W3C test suite expects this, so this should be revisited later. Data of the
previously-constructed ECParameters structure is written out into the
AlgorithmIdentifier's parameters member.

The `q` MPI data is then retrieved. Its size is validated, as well as the first
byte of data in order to ensure the MPI represents an uncompressed EC point.
The data is then written into the subjectPublicKey member.

Finally the encoded SubjectPublicKeyInfo structure data is extracted and returned
from the platformExportSpki() function, completion the export operation.

* crypto/gcrypt/CryptoKeyECGCrypt.cpp:
(WebCore::curveIdentifier):
(WebCore::CryptoKeyEC::platformExportSpki):

Source/WebCore/PAL:

No new tests -- covered by existing Web Crypto tests.

Add three new libtasn1 utility functions.

createStructure() is a simple wrapper around asn1_create_element(), creating a new
ASN.1 structure for the specified definition that's listed in WebCrypto.asn. The
existing decodeStructure() is modified to use this new addition.

encodedData() retrieves the ASN.1-encoded data of the specified element that's
located in the passed-in asn1_node. This is used when retrieving SPKI or PKCS#8
data from filled-out ASN.1 structures.

writeElement() writes the provided data to the given asn1_node object under the
specified element, using the given size. True is returned if this operation was
successful.

* pal/crypto/tasn1/Utilities.cpp:
(PAL::TASN1::createStructure):
(PAL::TASN1::decodeStructure):
(PAL::TASN1::encodedData):
(PAL::TASN1::writeElement):
* pal/crypto/tasn1/Utilities.h:

LayoutTests:

* platform/gtk/TestExpectations:
Unskip tests that cover SPKI exports of EC keys.

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

3 years ago[WebIDL] Remove special casing for RegExp which is no longer required by the spec
commit-queue@webkit.org [Mon, 3 Jul 2017 03:42:35 +0000 (03:42 +0000)]
[WebIDL] Remove special casing for RegExp which is no longer required by the spec
https://bugs.webkit.org/show_bug.cgi?id=174025

Patch by Sam Weinig <sam@webkit.org> on 2017-07-02
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/FileAPI/blob/Blob-constructor-expected.txt:
Update results to passing.

Source/WebCore:

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent):
(GenerateOverloadDispatcher):
Remove special casing.

* bindings/scripts/IDLParser.pm:
(parseNonAnyType):
Remove parsing of RegExp.

* bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
* bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
Update test results.

LayoutTests:

* fast/files/blob-constructor-expected.txt:
* fast/files/blob-constructor.html:
* fast/files/file-constructor-expected.txt:
* fast/files/file-constructor.html:
Update tests/results for change in conversions of RegExp.

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

3 years agoWTF::Thread should have the threads stack bounds.
utatane.tea@gmail.com [Mon, 3 Jul 2017 00:50:54 +0000 (00:50 +0000)]
WTF::Thread should have the threads stack bounds.
https://bugs.webkit.org/show_bug.cgi?id=173975

Reviewed by Mark Lam.

Source/JavaScriptCore:

There is a site in JSC that try to walk another thread's stack.
Currently, stack bounds are stored in WTFThreadData which is located
in TLS. Thus, only the thread itself can access its own WTFThreadData.
We workaround this situation by holding StackBounds in MachineThread in JSC,
but StackBounds should be put in WTF::Thread instead.

This patch moves StackBounds from WTFThreadData to WTF::Thread. StackBounds
information is tightly coupled with Thread. Thus putting it in WTF::Thread
is natural choice.

* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::MachineThread::MachineThread):
(JSC::MachineThreads::MachineThread::captureStack):
* heap/MachineStackMarker.h:
(JSC::MachineThreads::MachineThread::stackBase):
(JSC::MachineThreads::MachineThread::stackEnd):
* runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::updateStackLimits):
(JSC::VM::committedStackByteCount):
* runtime/VM.h:
(JSC::VM::isSafeToRecurse):
* runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
* runtime/VMInlines.h:
(JSC::VM::ensureStackCapacityFor):
* runtime/VMTraps.cpp:
* yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):

Source/WTF:

We move StackBounds from WTFThreadData to WTF::Thread.
One important thing is that we should make valid StackBounds
visible to Thread::create() caller. When the caller get
WTF::Thread from Thread::create(), this WTF::Thread should
have a valid StackBounds. But StackBounds information can be
retrived only in the WTF::Thread's thread itself.

* wtf/StackBounds.h:
(WTF::StackBounds::emptyBounds):
(WTF::StackBounds::StackBounds):
* wtf/StackStats.cpp:
(WTF::StackStats::PerThreadStats::PerThreadStats):
* wtf/Threading.cpp:
(WTF::threadEntryPoint):
(WTF::Thread::create):
(WTF::Thread::currentMayBeNull):
(WTF::Thread::initialize):
* wtf/Threading.h:
(WTF::Thread::stack):
* wtf/ThreadingPthreads.cpp:
(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::current):
(WTF::initializeCurrentThreadEvenIfNonWTFCreated): Deleted.
(WTF::Thread::currentMayBeNull): Deleted.
* wtf/ThreadingWin.cpp:
(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::initializeCurrentThreadInternal):
(WTF::Thread::current):
* wtf/WTFThreadData.cpp:
(WTF::WTFThreadData::WTFThreadData):
* wtf/WTFThreadData.h:
(WTF::WTFThreadData::stack): Deleted.

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

3 years agoAdd API test for all parts of WebKit1 API related to favicons.
beidson@apple.com [Sun, 2 Jul 2017 19:38:57 +0000 (19:38 +0000)]
Add API test for all parts of WebKit1 API related to favicons.
https://bugs.webkit.org/show_bug.cgi?id=174069

Reviewed by Andy Estes.

These two API tests cover all WebKit1 API related to icons.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/mac/WebViewIconLoading.mm: Added.
(mainResourceData):
(defaultFaviconData):
(customFaviconData):
(imageFromData):
(+[IconLoadingProtocol canInitWithRequest:]):
(+[IconLoadingProtocol canonicalRequestForRequest:]):
(-[IconLoadingProtocol startLoading]):
(-[IconLoadingProtocol stopLoading]):
(-[IconLoadingFrameLoadDelegate webView:didReceiveIcon:forFrame:]):
(-[MainFrameIconKVO observeValueForKeyPath:ofObject:change:context:]):
(TestWebKitAPI::TEST):

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

3 years agoRealtimeOutgoingVideoSource should pass frame timestamp
commit-queue@webkit.org [Sun, 2 Jul 2017 18:43:23 +0000 (18:43 +0000)]
RealtimeOutgoingVideoSource should pass frame timestamp
https://bugs.webkit.org/show_bug.cgi?id=174055

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-02
Reviewed by Eric Carlson.

Covered by manual testing since this only affects video encoding quality.

* platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::sendFrame):

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

3 years agoExpose viewport-fit value to UIKit via viewport arguments dictionary
timothy_horton@apple.com [Sun, 2 Jul 2017 06:48:02 +0000 (06:48 +0000)]
Expose viewport-fit value to UIKit via viewport arguments dictionary
https://bugs.webkit.org/show_bug.cgi?id=174071
<rdar://problem/33096620>

Reviewed by Wenson Hsieh.

Source/WebKit/ios:

* WebCoreSupport/WebChromeClientIOS.mm:
(nameForViewportFitValue):
(dictionaryForViewportArguments):
Make use of the named constants we already have for these; the code
that reads this dictionary uses them, so we might as well!

Add viewport-fit -> { auto, contain, cover } to the dictionary.

* WebKit.iOS.exp:

Source/WebKit/mac:

* History/WebHistoryItem.mm:
* History/WebHistoryItemPrivate.h:
Add another dictionary key and three values.

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

3 years ago<rdar://problem/33096441> r219055 broke non-iOS builds.
mitz@apple.com [Sun, 2 Jul 2017 04:40:34 +0000 (04:40 +0000)]
<rdar://problem/33096441> r219055 broke non-iOS builds.

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::lookupFallbackFont):

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

3 years ago[iOS] Remove code only needed when building for iOS 9.x
mitz@apple.com [Sun, 2 Jul 2017 02:06:40 +0000 (02:06 +0000)]
[iOS] Remove code only needed when building for iOS 9.x
https://bugs.webkit.org/show_bug.cgi?id=174068

Reviewed by Tim Horton.

Source/bmalloc:

* bmalloc/BPlatform.h:
* bmalloc/VMAllocate.h:
(bmalloc::vmPageSizePhysical):

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:
* jit/ExecutableAllocator.cpp:
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::constructURLStringForResult):
(WebCore::DataDetection::detectContentInRange):
* page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::vmPageSize):
* platform/cocoa/DataDetectorsCoreSoftLink.h:
* platform/cocoa/DataDetectorsCoreSoftLink.mm:
* platform/graphics/FontPlatformData.cpp:
* platform/graphics/FontPlatformData.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(layerContentsFormat):
(PlatformCALayerCocoa::updateContentsFormat):
(PlatformCALayerCocoa::backingStoreBytesPerPixel):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::extendedSRGBColorSpaceRef):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::drawPDFPage):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::lookupFallbackFont):
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::variantCapsSupportsCharacterForSynthesis):
(WebCore::Font::platformWidthForGlyph):
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::ctFont):
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::sinkIntoImage):
* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::setTimebase):
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::systemFontModificationAttributes):
(WebCore::systemFontDescriptor):
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::supportsFormat):
* platform/ios/LegacyTileGridTile.mm:
(WebCore::LegacyTileGridTile::LegacyTileGridTile):
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenSupportsExtendedColor):
* platform/ios/RemoteCommandListenerIOS.mm:
(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands):
* platform/spi/cf/CFNetworkSPI.h:
* platform/spi/cg/CoreGraphicsSPI.h:
* platform/spi/cocoa/DataDetectorsCoreSPI.h:
* platform/spi/cocoa/QuartzCoreSPI.h:
* platform/spi/mac/AVFoundationSPI.h:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:
* Configurations/WebKit.xcconfig:
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView dealloc]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession setSuggestions:]):
(-[WKFormInputSession invalidate]):
(-[WKContentView insertTextSuggestion:]):
(contentTypeFromFieldName):
(-[WKContentView textInputTraits]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
* config.h:

Source/WTF:

* wtf/Platform.h:
* wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
* wtf/spi/darwin/dyldSPI.h:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
* WebKitTestRunner/ios/HIDEventGenerator.mm:
(-[HIDEventGenerator _createIOHIDEventType:]):

WebKitLibraries:

* WebKitPrivateFrameworkStubs/iOS/9: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework/AppSupport.tbd: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework/AssertionServices.tbd: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework/CorePDF.tbd: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework/GraphicsServices.tbd: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework: Removed.
* WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework/IOSurface.tbd: Removed.

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

3 years agoREGRESSION(r218371): Reeder's default font is Times instead of San Francisco
mmaxfield@apple.com [Sat, 1 Jul 2017 23:29:07 +0000 (23:29 +0000)]
REGRESSION(r218371): Reeder's default font is Times instead of San Francisco
https://bugs.webkit.org/show_bug.cgi?id=173617
<rdar://problem/32969819>

Reviewed by Simon Fraser.

Source/WebCore:

On systems where USE_PLATFORM_SYSTEM_FALLBACK_LIST is set to true, the code in
platformFontWithFamilySpecialCase() is still used when @font-face blocks specify
src:local(system-ui), which made the assertion erroneously fire.

Unfortunately, our architecture is such that an @font-face block represents a
single entry in the font-family fallback list, which means it would be quite
difficult to make local(system-ui) in an @font-face block expand at the level
of the font cascade. So, this patch simply reverts to the previous behavior for
local(system-ui) (which doesn't include the entire Core Text cascade list).
This means that "font-family: system-ui" and "src: local(system-ui)" have
different behavior, which is undesirable, but architecturally difficult to
solve. I've added some FIXMEs to the code in the relevant places and filed
https://bugs.webkit.org/show_bug.cgi?id=174023.

Test: fast/text/font-face-local-system.html

* platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyAt):
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::systemFontDescriptor):
(WebCore::platformFontWithFamilySpecialCase):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::platformFontWithFamilySpecialCase):

LayoutTests:

* fast/text/font-face-local-system-expected.html: Added.
* fast/text/font-face-local-system.html: Added.

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

3 years ago[JSC] WTFGetBacktrace can return numberOfFrames == 0 in some architectures
ticaiolima@gmail.com [Sat, 1 Jul 2017 21:42:43 +0000 (21:42 +0000)]
[JSC] WTFGetBacktrace can return numberOfFrames == 0 in some architectures
https://bugs.webkit.org/show_bug.cgi?id=172768

Reviewed by Mark Lam.

In some architectures, like ARMv6 running on a Raspberry pi, the
backtrace function from "execinfo.h" is returning 0. In
that case, the RELEASE_ASSERT in StackTrace::captureStackTrace
fails causing a runtime crash.
This patch is adding a guard for the case described above to
avoid a runtime crash in such case.

* wtf/StackTrace.cpp:
(WTF::StackTrace::captureStackTrace):

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

3 years agoWhen setting a custom cookie storage location on a WKWebsiteDataStore, cookies aren...
beidson@apple.com [Sat, 1 Jul 2017 21:37:54 +0000 (21:37 +0000)]
When setting a custom cookie storage location on a WKWebsiteDataStore, cookies aren't actually removed.
<rdar://problem/32410662> and https://bugs.webkit.org/show_bug.cgi?id=174035

Reviewed by Alex Christensen.

Source/WebKit2:

* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _terminateNetworkProcess]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess): Take an optional WebsiteDataStore. If one is passed in,
  send it to either the existing or new network process.
* UIProcess/WebProcessPool.h:

* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters): Resolve paths first.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm:

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

3 years agoFrame.h doesn't need to include FrameLoader.h, IntRect.h, and NavigationScheduler.h
rniwa@webkit.org [Sat, 1 Jul 2017 21:26:31 +0000 (21:26 +0000)]
Frame.h doesn't need to include FrameLoader.h, IntRect.h, and NavigationScheduler.h
https://bugs.webkit.org/show_bug.cgi?id=174004

Reviewed by Simon Fraser.

Source/WebCore:

Made FrameLoader and NavigationScheduler UniqueRef in Frame so that we can forward declare them,
and forward declared IntPoint and IntRect to avoid including FrameLoader.h, IntRect.h,
and NavigationScheduler.h in Frame.h

* Modules/mediastream/MediaStream.cpp:
* Modules/webaudio/AudioContext.cpp:
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect): Avoid calling loader().mixedContentChecker().canRunInsecureContent(~)
on a nullptr even though this used to work because we weren't de-referencing it.
* bindings/js/ScriptController.cpp:
* dom/Document.cpp:
* dom/EventDispatcher.cpp:
* editing/Editor.cpp:
* editing/cocoa/EditorCocoa.mm:
* editing/ios/EditorIOS.mm:
* editing/mac/EditorMac.mm:
* history/CachedPage.cpp:
* html/HTMLObjectElement.cpp:
* html/parser/HTMLDocumentParser.cpp:
(WebCore::DocumentLoader::~DocumentLoader): Check !isLoading() before accessing frameLoader to avoid
accessing m_frame->loader() inside ~FrameLoader.
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/InspectorInstrumentation.h:
* loader/CrossOriginPreflightChecker.cpp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::setOpener): Avoid accessing this FrameLoader via m_opener->loader() when it's
this FrameLoader inside ~FrameLoader since UniqueRef<FrameLoader> is clears itself before calling
the destructor of FrameLoader.
* loader/ImageLoader.cpp:
* loader/LinkLoader.cpp:
* loader/SubframeLoader.cpp:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/DOMApplicationCache.cpp:
* mathml/MathMLElement.cpp:
* page/DOMWindow.cpp:
* page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore::Frame::init): Moved here from Frame.h
(WebCore::Frame::setDocument):
* page/Frame.h:
(WebCore::Frame::loader):
(WebCore::Frame::navigationScheduler):
* page/History.cpp:
* page/Location.cpp:
* page/PerformanceLogging.cpp:
* page/PerformanceNavigation.cpp:
* page/UserContentProvider.cpp:
* page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument):
* plugins/PluginInfoProvider.cpp:
* replay/ReplayInputCreationMethods.cpp:
* replay/UserInputBridge.cpp:
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParserLibxml2.cpp:

Source/WebKit/mac:

* WebCoreSupport/WebPluginInfoProvider.mm:

Source/WebKit/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::transitionToCommittedForNewPage):

Source/WebKit2:

* WebProcess/Plugins/WebPluginInfoProvider.cpp:
* WebProcess/WebPage/WebInspector.cpp:

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

3 years ago[macOS] Remove code only needed when building for OS X Yosemite
mitz@apple.com [Sat, 1 Jul 2017 21:12:04 +0000 (21:12 +0000)]
[macOS] Remove code only needed when building for OS X Yosemite
https://bugs.webkit.org/show_bug.cgi?id=174067

Reviewed by Tim Horton.

Source/bmalloc:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

* API/WebKitAvailability.h:
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:

Source/ThirdParty/ANGLE:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:

Source/WebCore:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility):
* html/HTMLCanvasElement.cpp:
* page/WheelEventDeltaFilter.cpp:
(WebCore::WheelEventDeltaFilter::create):
* page/mac/WheelEventDeltaFilterMac.h:
* page/mac/WheelEventDeltaFilterMac.mm:
* page/scrolling/ScrollingMomentumCalculator.cpp:
* page/scrolling/mac/ScrollingMomentumCalculatorMac.h:
* page/scrolling/mac/ScrollingMomentumCalculatorMac.mm:
* platform/cocoa/NetworkExtensionContentFilter.mm:
(replacementDataFromDecisionInfo):
(WebCore::NetworkExtensionContentFilter::initialize):
(WebCore::NetworkExtensionContentFilter::willSendRequest):
(WebCore::NetworkExtensionContentFilter::responseReceived):
(WebCore::NetworkExtensionContentFilter::addData):
(WebCore::NetworkExtensionContentFilter::finishedAddingData):
(WebCore::NetworkExtensionContentFilter::unblockHandler):
* platform/graphics/ComplexTextController.h:
* platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(PlatformCAAnimationCocoa::setTimingFunction):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformInit):
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::sinkIntoImage):
* platform/graphics/cocoa/WebGPULayer.mm:
(-[WebGPULayer initWithGPUDevice:]):
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
* platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]):
* platform/mac/BlacklistUpdater.mm:
* platform/mac/PlatformScreenMac.mm:
(WebCore::screenSupportsExtendedColor):
* platform/mac/ValidationBubbleMac.mm:
(WebCore::ValidationBubble::ValidationBubble):
* platform/mac/WebGLBlacklist.mm:
(WebCore::WebGLBlacklist::create):
* platform/network/cocoa/WebCoreNSURLSession.h:
* platform/network/cocoa/WebCoreNSURLSession.mm:
* platform/network/mac/CertificateInfoMac.mm:
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate):
* platform/network/mac/CookieJarMac.mm:
(WebCore::setCookiesFromDOM):
* platform/spi/cf/CFNetworkSPI.h:
* platform/spi/cg/CoreGraphicsSPI.h:
* platform/spi/cocoa/NEFilterSourceSPI.h:
* platform/spi/cocoa/NSURLConnectionSPI.h:
* platform/spi/cocoa/QuartzCoreSPI.h:
* platform/spi/mac/NSScrollingInputFilterSPI.h:
* platform/spi/mac/NSScrollingMomentumCalculatorSPI.h:
* platform/spi/mac/TUCallSPI.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::levelIndicatorFor):
* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendKERNTable):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

Source/WebCore/PAL:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:

Source/WebInspectorUI:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:

Source/WebKit/mac:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Plugins/WebBasePluginPackage.mm:
(-[WebBasePluginPackage getPluginInfoFromPLists]):
* WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show):
* WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::startWindowDrag):
(-[WebInspectorWindowController window]):
* WebView/WebView.mm:
(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):

Source/WebKit2:

* Configurations/Base.xcconfig:
* Configurations/BaseTarget.xcconfig:
* Configurations/BaseXPCService.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/NetworkService.xcconfig:
* Configurations/PluginService.32.xcconfig:
* Configurations/PluginService.64.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebContentService.xcconfig:
* Configurations/WebKit.xcconfig:
* DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Removed.
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::platformInvalidate):
(IPC::Connection::platformInitialize):
(IPC::Connection::open):
(IPC::Connection::exceptionSourceEventHandler): Deleted.
(IPC::Connection::setShouldCloseConnectionOnMachExceptions): Deleted.
* Platform/mac/LayerHostingContext.h:
* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::createFencePort):
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Removed.
* PluginProcess/mac/PluginControllerProxyMac.mm:
(WebKit::PluginControllerProxy::updateLayerHostingContext):
* PluginProcess/mac/PluginProcessShim.mm:
* PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
* Shared/ChildProcess.h:
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::getPluginInfoFromPropertyLists):
(WebKit::NetscapePluginModule::getPluginInfo):
(WebKit::contentsOfPropertyListAtURL): Deleted.
(WebKit::getMIMETypesFromPluginBundle): Deleted.
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::setSharedHTTPCookieStorage):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
(fixUpBotchedPageUIClient): Deleted.
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateLayer):
(WebKit::WebViewImpl::startWindowDrag):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate): Deleted.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformInitializePluginProcess):
(WebKit::PluginProcessProxy::createPropertyListFile): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setTopContentInset):
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::rootViewToWindow):
(WebKit::PageClientImpl::startWindowDrag):
* UIProcess/mac/RemoteWebInspectorProxyMac.mm:
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate): Deleted.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createFrontendWindow):
(WebKit::WebInspectorProxy::platformStartWindowDrag):
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Removed.
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::addAnimationToLayer):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* wtf/Platform.h:
* wtf/mac/AppKitCompatibilityDeclarations.h:
* wtf/spi/cocoa/SecuritySPI.h:
* wtf/text/TextBreakIterator.cpp:

Tools:

* DumpRenderTree/mac/Configurations/Base.xcconfig:
* DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
* DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting):
* DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:
(-[DumpRenderTreeDraggingInfo resetSpringLoading]):
* MiniBrowser/Configurations/Base.xcconfig:
* MiniBrowser/Configurations/DebugRelease.xcconfig:
* TestWebKitAPI/Configurations/Base.xcconfig:
* TestWebKitAPI/Configurations/DebugRelease.xcconfig:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
* TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:
* TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm:
* TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/mac/StringTruncator.mm:
(TestWebKitAPI::TEST):
* WebKitTestRunner/Configurations/Base.xcconfig:
* WebKitTestRunner/Configurations/DebugRelease.xcconfig:
* WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize):
* WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:
(-[WebKitTestRunnerDraggingInfo resetSpringLoading]):

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

3 years agoReplace ResourceLoadStatisticsStore C API with Cocoa SPI
cdumez@apple.com [Sat, 1 Jul 2017 16:10:07 +0000 (16:10 +0000)]
Replace ResourceLoadStatisticsStore C API with Cocoa SPI
https://bugs.webkit.org/show_bug.cgi?id=174060

Reviewed by Brent Fulgham.

Source/WebKit2:

Replace ResourceLoadStatisticsStore C API by Cocoa SPI. The new Cocoa SPI is on
WKWebsiteDataStore, which allows us to get rid of the WebResourceLoadStatisticsManager
singleton as the SPI can now interact directly with the WebResourceLoadStatisticsStore.

* UIProcess/API/C/WKResourceLoadStatisticsManager.cpp: Removed.
* UIProcess/API/C/WKResourceLoadStatisticsManager.h: Removed.
Drop old C API.

* UIProcess/WebResourceLoadStatisticsManager.cpp: Removed.
* UIProcess/WebResourceLoadStatisticsManager.h: Removed.
Drop WebResourceLoadStatisticsManager singleton which was only required by the
C API. This is because the C API was global, rather than working on a specific
store.

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
Add new Cocoa SPI on WKWebsiteDataStore. This is only used for testing.

* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
Stop registering the store with the WebResourceLoadStatisticsManager singleton,
as this singleton is gone.

* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::resourceLoadStatistics):
Add new getter to retrieve the WebResourceLoadStatisticsStore from the
WebsiteDataStore. This is needed by the new Cocoa SPI.

* WebKit2.xcodeproj/project.pbxproj:
Drop some files.

Tools:

Port WebKitTestRunner over to the new Cocoa SPI.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
Drop calls to the WKResourceLoadStatisticsStore C API here. Those were
no-ops since this code runs in the WebContent process, not the
UIProcess.

* WebKitTestRunner/TestController.cpp:
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:

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

3 years agoAdd a warning if WEBGL2 is enabled without WEBGL
commit-queue@webkit.org [Sat, 1 Jul 2017 14:28:12 +0000 (14:28 +0000)]
Add a warning if WEBGL2 is enabled without WEBGL
https://bugs.webkit.org/show_bug.cgi?id=174054

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

* wtf/FeatureDefines.h:

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

3 years agoUnreviewed, build fix for GCC
utatane.tea@gmail.com [Sat, 1 Jul 2017 09:36:35 +0000 (09:36 +0000)]
Unreviewed, build fix for GCC
https://bugs.webkit.org/show_bug.cgi?id=174034

* b3/testb3.cpp:
(JSC::B3::testDoubleLiteralComparison):

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

3 years agoForce crashWithInfo to be out of line.
keith_miller@apple.com [Sat, 1 Jul 2017 06:24:44 +0000 (06:24 +0000)]
Force crashWithInfo to be out of line.
https://bugs.webkit.org/show_bug.cgi?id=174028

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Update DFG_ASSERT macro to call CRASH_WITH_SECURITY_IMPLICATION_AND_INFO.

* dfg/DFGGraph.cpp:
(JSC::DFG::logDFGAssertionFailure):
(JSC::DFG::Graph::logAssertionFailure):
(JSC::DFG::crash): Deleted.
(JSC::DFG::Graph::handleAssertionFailure): Deleted.
* dfg/DFGGraph.h:

Source/WTF:

The first pass at making crashes hold information about why they
were crashing had the problem that it would inline the assertion.
This meant that clang could coalesce DFG_ASSERTS with other
assertion failures in the same function. This patch moves it out
of line to help fix that issue.

* wtf/Assertions.cpp:
(WTFCrashWithInfo):
* wtf/Assertions.h:
(WTF::isIntegralType):

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

3 years agoIf an image appears more than once on a page, decoding for painting one instance...
commit-queue@webkit.org [Sat, 1 Jul 2017 06:23:31 +0000 (06:23 +0000)]
If an image appears more than once on a page, decoding for painting one instance repaints them all
https://bugs.webkit.org/show_bug.cgi?id=169944

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-06-30
Reviewed by Simon Fraser.

Source/WebCore:

Make the Image::draw*() and GraphicsContext::draw*() functions return an
ImageDrawResult which indicates whether the image is drawn or has requested
an asynchronous image decoding.

If the image requested an asynchronous image decoding, the issuer of the
Image::draw(), which is of type CachedImageClient, will add itself to a
set of m_pendingImageDrawingClients, which owned by CachedImage.

When receiving the imageFrameAvailable() notification for a lrage image
from the decoding thread, CachedImage will loop through the clients that
are only in m_pendingImageDrawingClients to ask them to repaint their
rectangles.

Test: fast/images/async-image-multiple-clients-repaint.html

* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::didRemoveClient):
(WebCore::CachedImage::addPendingImageDrawingClient):
(WebCore::CachedImage::allClientsRemoved):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::imageFrameAvailable):
* loader/cache/CachedImage.h:
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::draw):
* platform/graphics/GradientImage.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
* platform/graphics/GraphicsContext.h:
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
* platform/graphics/ImageTypes.h:
* platform/graphics/NamedImageGeneratedImage.cpp:
(WebCore::NamedImageGeneratedImage::draw):
* platform/graphics/NamedImageGeneratedImage.h:
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/cg/PDFDocumentImage.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::draw):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::draw):
* svg/graphics/SVGImageForContainer.h:

LayoutTests:

* fast/images/async-image-multiple-clients-repaint-expected.txt: Added.
* fast/images/async-image-multiple-clients-repaint.html: Added.
* platform/ios-simulator/fast/images: Added.
* platform/ios-simulator/fast/images/async-image-multiple-clients-repaint-expected.txt: Added.

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

3 years agoRun webgl tests on iOS ports
jbedard@apple.com [Sat, 1 Jul 2017 05:57:41 +0000 (05:57 +0000)]
Run webgl tests on iOS ports
https://bugs.webkit.org/show_bug.cgi?id=173000

Unreviewed test gardening.

* platform/ios/TestExpectations: Enable webgl, fast/canvas/webgl and http/tests/webgl.

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

3 years ago[JSC] Use AbstractMacroAssembler::random instead of holding WeakRandom in JIT
utatane.tea@gmail.com [Sat, 1 Jul 2017 05:24:30 +0000 (05:24 +0000)]
[JSC] Use AbstractMacroAssembler::random instead of holding WeakRandom in JIT
https://bugs.webkit.org/show_bug.cgi?id=174053

Reviewed by Geoffrey Garen.

We already have AbstractMacroAssembler::random() function. Use it instead.

* jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::compileWithoutLinking):
* jit/JIT.h:

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

3 years ago[WTF] Drop SymbolRegistry::keyForSymbol
utatane.tea@gmail.com [Sat, 1 Jul 2017 05:09:40 +0000 (05:09 +0000)]
[WTF] Drop SymbolRegistry::keyForSymbol
https://bugs.webkit.org/show_bug.cgi?id=174052

Reviewed by Sam Weinig.

Source/JavaScriptCore:

* runtime/SymbolConstructor.cpp:
(JSC::symbolConstructorKeyFor):

Source/WTF:

Since we can know whether a given symbol is registered by checking RegisteredSymbolImpl,
we do not need to query key string for a given symbol by using SymbolRegistry::keyForSymbol.

* wtf/text/SymbolImpl.h:
(WTF::SymbolImpl::extractFoldedString): Deleted.
* wtf/text/SymbolRegistry.cpp:
(WTF::SymbolRegistry::keyForSymbol): Deleted.
* wtf/text/SymbolRegistry.h:

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

3 years agoWeb Inspector: Type token background color in debugger looks poor
commit-queue@webkit.org [Sat, 1 Jul 2017 05:06:40 +0000 (05:06 +0000)]
Web Inspector: Type token background color in debugger looks poor
https://bugs.webkit.org/show_bug.cgi?id=174063

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-06-30
Reviewed by Devin Rousso.

* UserInterface/Views/TextEditor.css:
CodeMirror widgets do not get range styles like our (.execution-range-highlight).
Make a best effort to carry over the styles to widgets. It isn't perfect, but it
covers all common situations unless a selection ends inside the widget. The
ultimate solution would be to get the expected range styles.

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

3 years agoAdd a WebRTC example for a blog post
jonlee@apple.com [Sat, 1 Jul 2017 04:53:14 +0000 (04:53 +0000)]
Add a WebRTC example for a blog post
https://bugs.webkit.org/show_bug.cgi?id=174049

Reviewed by Youenn Fablet.

Example does a typical WebRTC video call, but uses canvas to do some image effects.
Image effects will last for 30 seconds.
After that time, the video stream is directly sent.
This illustrates using RTCPeerConnection, replaceTrack and canvas capture.

* blog-files/webrtc/pc-with-effects/LICENSE: Added.
* blog-files/webrtc/pc-with-effects/glfx.js: Added.
* blog-files/webrtc/pc-with-effects/index.html: Added.
* blog-files/webrtc/pc-with-effects/main.css: Added.
* blog-files/webrtc/pc-with-effects/main.js: Added.

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

3 years agoREGRESSION(r214194): Safari leaves a popup window open opened during before unload
rniwa@webkit.org [Sat, 1 Jul 2017 03:39:09 +0000 (03:39 +0000)]
REGRESSION(r214194): Safari leaves a popup window open opened during before unload
https://bugs.webkit.org/show_bug.cgi?id=174016

Reviewed by Chris Dumez.

Address Dan's review comments.

* loader/NavigationDisabler.h:
(WebCore::NavigationDisabler::NavigationDisabler):
(WebCore::NavigationDisabler::~NavigationDisabler):

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

3 years agoB3ReduceStrength should reduce EqualOrUnordered over const float input
sbarati@apple.com [Sat, 1 Jul 2017 03:35:47 +0000 (03:35 +0000)]
B3ReduceStrength should reduce EqualOrUnordered over const float input
https://bugs.webkit.org/show_bug.cgi?id=174039

Reviewed by Michael Saboff.

We perform this folding for ConstDoubleValue. It is simply
an oversight that we didn't do it for ConstFloatValue.

* b3/B3ConstFloatValue.cpp:
(JSC::B3::ConstFloatValue::equalOrUnorderedConstant):
* b3/B3ConstFloatValue.h:
* b3/testb3.cpp:
(JSC::B3::testFloatEqualOrUnorderedFolding):
(JSC::B3::testFloatEqualOrUnorderedFoldingNaN):
(JSC::B3::testFloatEqualOrUnorderedDontFold):
(JSC::B3::run):

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