WebKit-https.git
4 months agoUnreviewed test gardening for iOS API tests.
ryanhaddad@apple.com [Fri, 27 Mar 2020 02:31:48 +0000 (02:31 +0000)]
Unreviewed test gardening for iOS API tests.

* TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:
(TEST):
* TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:
(TestWebKitAPI::TEST):

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

4 months agoMake it so RAMification can be run with python 3 and 2 and that it recognizes the...
sbarati@apple.com [Fri, 27 Mar 2020 02:05:53 +0000 (02:05 +0000)]
Make it so RAMification can be run with python 3 and 2 and that it recognizes the new JavaScriptCore.framework directory structure
https://bugs.webkit.org/show_bug.cgi?id=209636

Reviewed by Yusuke Suzuki.

- JavaScriptCore builds now put the jsc shell under JavaScriptCore.framework/Helpers/jsc,
  not JavaScriptCore.framework/Resources/jsc
- It's also helpful to be able to run RAMification with python3.7 and 2.7,
  since there are some contexts where 3.7 is all we have.

* JetStream2/RAMification.py:
(frameworkPathFromExecutablePath):
(BaseRunner.processLine):
(LocalRunner.runOneTest):
(main.runTestList):
(main):

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

4 months agoRegression: Unable to trigger context menu on empty tabs in Safari
cdumez@apple.com [Fri, 27 Mar 2020 01:35:59 +0000 (01:35 +0000)]
Regression: Unable to trigger context menu on empty tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=209628

Reviewed by Geoffrey Garen.

Launch the WebPageProxy's initial process if it starts processing mouse events.
As an optimization, the WebPageProxy only launches its initial process when it
really needs to.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMouseEvent):

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

4 months ago[JSC] Rename ANDEQUAL to BITANDEQUAL (etc.) throughout frontend
ross.kirsling@sony.com [Fri, 27 Mar 2020 00:34:38 +0000 (00:34 +0000)]
[JSC] Rename ANDEQUAL to BITANDEQUAL (etc.) throughout frontend
https://bugs.webkit.org/show_bug.cgi?id=209626

Reviewed by Mark Lam.

Our frontend refers to `&=` `|=` `^=` as `ANDEQUAL` `OREQUAL` `XOREQUAL`, leaving the bitwiseness implied.
It's important to resolve this ambiguity now, as `&&=` `||=` `??=` are expected to reach Stage 3 next week.

* bytecompiler/NodesCodegen.cpp:
(JSC::emitReadModifyAssignment):
* parser/Lexer.cpp:
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
* parser/Nodes.h:
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseAssignmentExpression):
* parser/ParserTokens.h:

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

4 months agoSwipe down gestures cause the video layer to stick for a moment before bouncing back...
peng.liu6@apple.com [Fri, 27 Mar 2020 00:13:25 +0000 (00:13 +0000)]
Swipe down gestures cause the video layer to stick for a moment before bouncing back into place
https://bugs.webkit.org/show_bug.cgi?id=209610

Reviewed by Eric Carlson.

Fix an exit fullscreen animation issue by firing the end fullscreen event
to let the page change the video element back to its original position/size
before exiting fullscreen.

Covered by existing tests.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::dispatchEvent):
(WebCore::HTMLMediaElement::exitFullscreen):

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

4 months agoWeb Inspector: RTL: ArrowLeft and ArrowRight keys select wrong navigation bar items
nvasilyev@apple.com [Fri, 27 Mar 2020 00:11:31 +0000 (00:11 +0000)]
Web Inspector: RTL: ArrowLeft and ArrowRight keys select wrong navigation bar items
https://bugs.webkit.org/show_bug.cgi?id=209617

Reviewed by Devin Rousso.

* UserInterface/Views/NavigationBar.js:
(WI.NavigationBar.prototype._keyDown):
Reverse direction for RTL mode.

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

4 months agoFix various compiler warnings
commit-queue@webkit.org [Thu, 26 Mar 2020 23:54:19 +0000 (23:54 +0000)]
Fix various compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=209438

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-26
Reviewed by Darin Adler.

Source/WebCore:

* dom/Element.cpp: Fix -Wunused-variable warnings.
(WebCore::Element::webAnimations const):
(WebCore::Element::cssAnimations const):
(WebCore::Element::transitions const):
(WebCore::Element::hasCompletedTransitionsForProperty const):
(WebCore::Element::hasRunningTransitionsForProperty const):
(WebCore::Element::hasRunningTransitions const):
* page/scrolling/ThreadedScrollingTree.cpp: Fix -Wunused-variable warning.
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
* platform/network/HTTPParsers.h: Fix -Wredundant-move warning.
(WebCore::parseAccessControlAllowList):

Source/WebKit:

* UIProcess/API/C/WKPage.cpp: Suppress -Wdeprecated-declaration warnings.
(WKPageSetPageLoaderClient):
(WKPageSetPagePolicyClient):

Source/WTF:

Suppress -Wclass-memaccess warning. ConcurrentBuffer is documented to support types that are
bit-copyable but not copy-constructable. This is strange, but who am I to question it?

* wtf/ConcurrentBuffer.h:

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

4 months agoRefactor YARR Stack Overflow Checks
msaboff@apple.com [Thu, 26 Mar 2020 23:27:57 +0000 (23:27 +0000)]
Refactor YARR Stack Overflow Checks
https://bugs.webkit.org/show_bug.cgi?id=209435
rdar://problem/58988252

Reviewed by Mark Lam.

JSTests:

Added a new test and removed a now obsolete test.

* stress/regexp-compile-oom.js: Removed because the test is no longer valid.
Previously when therer where different stack check mechanisims we failed different.
This test was based on the different failure modes.  With these changes, most of
the contain subtests no longer throw as this test expects.
* stress/regexp-huge-oom.js: Added.
(shouldBe):
(shouldThrow):

Source/JavaScriptCore:

Refactored stack checks in YARR code including adding a stack check to the YARR JIT'ed code.
The C++ code including the parser, byte code compiler and interpreter now all use StackCheck.
The JIT'ed code needs a stack limit passed via a parameter since the JIT'ed code can be
called from the compiler thread when compiling DFG / FTL code.

Instead of adding a new parameter, consolidated the two pattern context buffer values, buffer
pointer and size, with the new stack limit into a new MatchingContextHolder, an RAII object.
The MatchingContextHolder constructor uses either the VM stack limit or the current thread's
stack limit depending on how it is called.

* runtime/RegExp.cpp:
(JSC::RegExp::finishCreation):
(JSC::RegExp::byteCodeCompileIfNecessary):
(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
* runtime/RegExp.h:
* runtime/RegExpInlines.h:
(JSC::RegExp::matchInline):
(JSC::PatternContextBufferHolder::PatternContextBufferHolder): Deleted.
(JSC::PatternContextBufferHolder::~PatternContextBufferHolder): Deleted.
(JSC::PatternContextBufferHolder::buffer): Deleted.
(JSC::PatternContextBufferHolder::size): Deleted.
(): Deleted.
* yarr/Yarr.h:
* yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::matchDisjunction):
(JSC::Yarr::Interpreter::isSafeToRecurse):
* yarr/YarrJIT.cpp:
(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):
(JSC::Yarr::MatchingContextHolder::~MatchingContextHolder):
(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::alignCallFrameSizeInBytes):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::YarrGenerator::initCallFrame): Deleted.
* yarr/YarrJIT.h:
(JSC::Yarr::MatchingContextHolder::offsetOfStackLimit):
(JSC::Yarr::MatchingContextHolder::offsetOfPatternContextBuffer):
(JSC::Yarr::MatchingContextHolder::offsetOfPatternContextBufferSize):
(JSC::Yarr::YarrCodeBlock::execute):
* yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse const): Deleted.
* yarr/YarrPattern.h:

LayoutTests:

Updated test for improved stack overflow checking.

* js/script-tests/stack-overflow-regexp.js:
(shouldThrow.recursiveCall):
(shouldThrow):
(recursiveCall):
* js/stack-overflow-regexp-expected.txt:

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

4 months agoRename -_isInteractingWithFocusedElement, add it to the header, and replace calls...
dbates@webkit.org [Thu, 26 Mar 2020 23:10:36 +0000 (23:10 +0000)]
Rename -_isInteractingWithFocusedElement, add it to the header, and replace calls to hasFocusedElement() with it
https://bugs.webkit.org/show_bug.cgi?id=209623

Reviewed by Simon Fraser.

Rename -_isInteractingWithFocusedElement to -_hasFocusedElement. For now, standardize around
the convention of using -_hasFocusedElement instead of hasFocusedElement(_focusedElementInformation).

I think in the ideal world -_hasFocusedElement would not exist and instead -_elementDidBlur would
reset the state of _focusedElementInformation to what it was when a page is first loaded. I will
look to do this in a subsequent patch because it is risky. Doing so requires a careful audit of all
call sites that use _focusedElementInformation as they may have inadvertently depended on stale state.

While I am here, I added -_hasFocusedElement to WKContentViewInteraction.h so that I can make use
of it in the fix for <rdar://problem/60871807>.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
(-[WKContentView inputViewForWebView]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _hasFocusedElement]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]):
(-[WKContentView selectPositionAtPoint:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _updateInputContextAfterBlurringAndRefocusingElement]):
(-[WKContentView _updateSelectionAssistantSuppressionState]):
(-[WKContentView _autofillContext]):
(hasFocusedElement): Deleted.
(-[WKContentView _isInteractingWithFocusedElement]): Deleted.

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

4 months agoREGRESSION(r259034): access to null UniqueIDBDatabase in UniqueIDBDatabaseConnection...
sihui_liu@apple.com [Thu, 26 Mar 2020 23:09:59 +0000 (23:09 +0000)]
REGRESSION(r259034): access to null UniqueIDBDatabase in UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection()
https://bugs.webkit.org/show_bug.cgi?id=209618
<rdar://problem/60919105>

Reviewed by Geoffrey Garen.

It's possible UniqueIDBDatabase is destroyed before UniqueIDBDatabaseConnection in
UniqueIDBDatabase::connectionClosedFromClient, so it's better not access
UniqueIDBDatabase in ~UniqueIDBDatabaseConnection() and let UniqueIDBDatabaseConnection have a IDBServer member.

* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::server):

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

4 months agoRemove hitTestOrder from ElementContext as it is no longer need
dbates@webkit.org [Thu, 26 Mar 2020 23:06:30 +0000 (23:06 +0000)]
Remove hitTestOrder from ElementContext as it is no longer need
https://bugs.webkit.org/show_bug.cgi?id=209561
<rdar://problem/60888305>

Reviewed by Wenson Hsieh.

Revert the temporary workaround made in r257749 as <rdar://problem/59602885>
Source/WebCore:

has been fixed.

* dom/ElementContext.h:
(WebCore::ElementContext::encode const):
(WebCore::ElementContext::decode):

Source/WebKit:

has been fixed: WebKit no longer needs to explicitly annotate the resulting
elements found in textInputContextsInRect() with their hit test order.
Instead client code has been updated to assume these elements are returned
in hit test order.

* UIProcess/API/Cocoa/_WKTextInputContext.mm:
(-[_WKTextInputContext _hitTestOrder]): Deleted.
* UIProcess/API/Cocoa/_WKTextInputContextInternal.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::textInputContextsInRect):
(WebKit::WebPage::contextForElement const):

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

4 months ago[ Mac wk2 Release ] tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky...
lawrence.j@apple.com [Thu, 26 Mar 2020 22:57:04 +0000 (22:57 +0000)]
[ Mac wk2 Release ] tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209624

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

4 months agoPinch to zoom gesture has to be repeated twice if the cursor isn't moved between...
timothy_horton@apple.com [Thu, 26 Mar 2020 22:37:34 +0000 (22:37 +0000)]
Pinch to zoom gesture has to be repeated twice if the cursor isn't moved between gestures
https://bugs.webkit.org/show_bug.cgi?id=203132
<rdar://problem/27439348>

Reviewed by Simon Fraser.

* page/EventHandler.h:

* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::endMagnificationGesture):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::didEndMagnificationGesture):
Plumb the end of a pinch-zoom gesture to EventHandler.

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

4 months ago[ Mac wk2 ] http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html...
lawrence.j@apple.com [Thu, 26 Mar 2020 22:22:56 +0000 (22:22 +0000)]
[ Mac wk2 ] http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209622

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

4 months agoRegression(r258949) Safari sometimes crashes when becoming the foreground application
cdumez@apple.com [Thu, 26 Mar 2020 22:01:57 +0000 (22:01 +0000)]
Regression(r258949) Safari sometimes crashes when becoming the foreground application
https://bugs.webkit.org/show_bug.cgi?id=209620
<rdar://problem/60930466>

Reviewed by Per Arne Vollan.

Make sure m_activationObserver gets unregistered on all Cocoa platforms, not just on iOS.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::unregisterNotificationObservers):

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

4 months ago[ Mac wk1 ] fast/loader/child-frame-add-after-back-forward.html is flaky timing out.
lawrence.j@apple.com [Thu, 26 Mar 2020 21:50:50 +0000 (21:50 +0000)]
[ Mac wk1 ] fast/loader/child-frame-add-after-back-forward.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209621

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

4 months ago[StressGC] ASSERTION FAILED: m_wrapper under WebCore::HTMLMediaElement::dispatchEvent
cdumez@apple.com [Thu, 26 Mar 2020 21:36:35 +0000 (21:36 +0000)]
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::HTMLMediaElement::dispatchEvent
https://bugs.webkit.org/show_bug.cgi?id=209616
<rdar://problem/60541294>

Reviewed by Saam Barati.

HTMLMediaElement::hasPendingActivity() should return true if there are pending tasks on
m_playbackTargetIsWirelessQueue since the tasks we enqueue there dispatch events.

No new tests, covered by media/modern-media-controls/placard-support/placard-support-airplay.html.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::hasPendingActivity const):

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

4 months ago[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchP...
cdumez@apple.com [Thu, 26 Mar 2020 21:33:33 +0000 (21:33 +0000)]
[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchProgressEvent
https://bugs.webkit.org/show_bug.cgi?id=209560
<rdar://problem/60887773>

Reviewed by Geoffrey Garen.

XMLHttpRequest::hasPendingActivity() was returning false if the XMLHttpRequest object did not
have any relevant event listeners. However, the XMLHttpRequestUpload's wrapper lifetime is tried
to the lifetime of its XMLHttpRequest wrapper. As a result, both the XMLHttpRequest and
XMLHttpRequestUpload wrappers could get garbage collected if the XMLHttpRequest did not have a
relevant listener, even though XMLHttpRequestUpload may have a relevant event listeners. We would
then hit the assertion when trying to fire an event on this XMLHttpRequestUpload object.

To address the issue, we update XMLHttpRequest::hasPendingActivity() to return false if both
XMLHttpRequest AND XMLHttpRequestUpload have no relevant event listeners.

No new tests, covered by imported/w3c/web-platform-tests/xhr/send-response-upload-event-progress.htm

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::hasPendingActivity const):
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::eventListenersDidChange):
* xml/XMLHttpRequestUpload.h:

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

4 months agoCrash in RadioButtonGroups::requiredStateChanged
rniwa@webkit.org [Thu, 26 Mar 2020 21:25:21 +0000 (21:25 +0000)]
Crash in RadioButtonGroups::requiredStateChanged
https://bugs.webkit.org/show_bug.cgi?id=209585

Reviewed by Zalan Bujtas.

Source/WebCore:

Like r254722, radio group could be null in RadioButtonGroups::requiredStateChanged. Added a null check.

Test: fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash.html

* dom/RadioButtonGroups.cpp:
(WebCore::RadioButtonGroups::requiredStateChanged):

LayoutTests:

Added a regression test.

* fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash-expected.txt: Added.
* fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash.html: Added.

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

4 months agoWebPage::selectPositionAtPoint() does not focus an element in a non-focused frame
dbates@webkit.org [Thu, 26 Mar 2020 21:10:09 +0000 (21:10 +0000)]
WebPage::selectPositionAtPoint() does not focus an element in a non-focused frame
https://bugs.webkit.org/show_bug.cgi?id=209559
<rdar://problem/60887055>

Reviewed by Wenson Hsieh.

Source/WebKit:

Call setFocusedFrameBeforeSelectingTextAtLocation() in WebPage::selectPositionAtPoint() to
update the focused frame before performing the selection. This way the target element will
be focused by the selection, if not already focused.

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

Tools:

Add a test.

* TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:
(TEST):

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

4 months agoWebKitTestRunner should enable ResourceLoadStatistics also for non-Cocoa ports
Hironori.Fujii@sony.com [Thu, 26 Mar 2020 20:57:33 +0000 (20:57 +0000)]
WebKitTestRunner should enable ResourceLoadStatistics also for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=209410

Reviewed by Youenn Fablet.

Source/WebKit:

NetworkSession's member variables for ResourceLoadStatistics were
initialized only for Cocoa port. They also should be initialized
for non-Cocoa ports.

* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession): Added member initializers for ResourceLoadStatistics.
* NetworkProcess/NetworkSession.h: Have m_resourceLoadStatisticsDirectory only if ENABLE(RESOURCE_LOAD_STATISTICS).
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Removed the code to initialize member variables for ResourceLoadStatistics.

Tools:

Cocoa WebKitTestRunner always enables ResourceLoadStatistics.
Other ports should do so.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::platformAdjustContext): Enable ResourceLoadStatistics
by using WKWebsiteDataStoreSetResourceLoadStatisticsEnabled.

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

4 months ago[ Catalina ] compositing/clipping/border-radius-async-overflow-stacking.html is flaky...
lawrence.j@apple.com [Thu, 26 Mar 2020 20:48:34 +0000 (20:48 +0000)]
[ Catalina ] compositing/clipping/border-radius-async-overflow-stacking.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209619

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

4 months agoGuard AppBound domain protections with PLATFORM(iOS_FAMILY)
katherine_cheney@apple.com [Thu, 26 Mar 2020 20:45:54 +0000 (20:45 +0000)]
Guard AppBound domain protections with PLATFORM(iOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=209615
<rdar://problem/60931014>

Reviewed by Darin Adler.

Source/WebKit:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

Tools:

Tests should only be run on iOS.

* TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

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

4 months ago[GStreamer] Fix missing NULL-check in setSyncOnClock
cturner@igalia.com [Thu, 26 Mar 2020 20:43:53 +0000 (20:43 +0000)]
[GStreamer] Fix missing NULL-check in setSyncOnClock
https://bugs.webkit.org/show_bug.cgi?id=209609

Unreviewed, simple fix.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::setSyncOnClock): Some systems are configured so that
audio sinks are not available. Make sure not to crash when asking
to sync with a NULL sink.

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

4 months ago[iOS] Deny mach lookup to 'com.apple.webinspector' in the WebContent process.
bfulgham@apple.com [Thu, 26 Mar 2020 20:33:36 +0000 (20:33 +0000)]
[iOS] Deny mach lookup to 'com.apple.webinspector' in the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=207170
<rdar://problem/59134038>

Reviewed by Per Arne Vollan.

We now dynamically add access to the 'com.apple.webinspector' service, so we should remove the blanket
allow rule from the sandbox.

* GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
* Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

4 months agoREGRESSION (r258989): ASSERTION FAILED: !isMissingPostLayoutData in WebKit::EditorSta...
dbates@webkit.org [Thu, 26 Mar 2020 20:29:14 +0000 (20:29 +0000)]
REGRESSION (r258989): ASSERTION FAILED: !isMissingPostLayoutData in WebKit::EditorState::PostLayoutData
https://bugs.webkit.org/show_bug.cgi?id=209570
<rdar://problem/60895050>

Reviewed by Darin Adler.

Send an editor state update before responding to a request for position information
to ensure that the UI process has up-to-date selection state. Otherwise, calling code
that uses this information to determine whether to query for the selection text will
cause an assertion failure.

This fixes the test failure TestWebKitAPI.ActionSheetTests.DataDetectorsLinkIsNotPresentedAsALink
caused by r258989. Following r258989 WebKit now accurately reports whether editor state
has or does not have post-layout details. Prior to this the default EditorState was marked
as having post-layout data even if it did not actually have such data.

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

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

4 months ago[ iOS ] http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url...
commit-queue@webkit.org [Thu, 26 Mar 2020 20:27:23 +0000 (20:27 +0000)]
[ iOS ] http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206763

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-26
Reviewed by Youenn Fablet.

* http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
* http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-data-url-iframe.html:
* platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:

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

4 months agoTypedArrays should more gracefully handle OOM during slowDownAndWasteMemory
keith_miller@apple.com [Thu, 26 Mar 2020 20:27:02 +0000 (20:27 +0000)]
TypedArrays should more gracefully handle OOM during slowDownAndWasteMemory
https://bugs.webkit.org/show_bug.cgi?id=209611

Reviewed by Tadeu Zagallo.

JSTests:

* stress/typed-array-oom-in-buffer-accessor.js: Added.
(try.foo):

Source/JavaScriptCore:

Right now if we cannot allocate an ArrayBuffer for a TypedArray we
crash. However, since we use the primitive gigacage for
ArrayBuffer allocations we can likely still allocate an OOM error
object. In order to do this some changes were needed in
slowDownAndWasteMemory. Namely, we should not allocate the
butterfly until we know we have an ArrayBuffer. I also check that
all the transitive callers of slowDownAndWasteMemory can handle
failure.

Lastly, this patch makes it so failure to allocate an ArrayBuffer
for a TypeArray during DFG watchpoint addition causes the code
block to be thrown away, rather than crash the process.

* API/JSTypedArray.cpp:
(JSObjectGetTypedArrayBytesPtr):
(JSObjectGetTypedArrayBuffer):
* bytecode/Watchpoint.h:
* dfg/DFGDesiredWatchpoints.cpp:
(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
* runtime/GenericTypedArrayViewInlines.h:
(JSC::GenericTypedArrayView<Adaptor>::tryCreate):
* runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::unsharedBuffer):
(JSC::JSArrayBufferView::unsharedJSBuffer):
(JSC::JSArrayBufferView::possiblySharedJSBuffer):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::JSArrayBufferView::possiblySharedImpl):
* runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::byteOffsetImpl):

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

4 months agoREGRESSION: ASSERTION FAILED: m_wrapper on storage/indexeddb/modern/abort-requests...
cdumez@apple.com [Thu, 26 Mar 2020 20:25:15 +0000 (20:25 +0000)]
REGRESSION: ASSERTION FAILED: m_wrapper on storage/indexeddb/modern/abort-requests tests
https://bugs.webkit.org/show_bug.cgi?id=209499
<rdar://problem/60842165>

Reviewed by Alex Christensen.

Source/WebCore:

IDBTransaction::hasPendingActivity() was failing to consult ActiveDOMObject::hasPendingActivity()
so the JS wrapper would get garbage collected even though the ActiveDOMObject base class was
aware of some pending activity.

No new tests, unskipped existing tests.

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::hasPendingActivity const):

LayoutTests:

Unskip tests that should no longer be flaky.

* platform/mac-wk1/TestExpectations:

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

4 months agoSequential focus navigation can't get out of a descendent of a slot element in a...
rniwa@webkit.org [Thu, 26 Mar 2020 19:58:32 +0000 (19:58 +0000)]
Sequential focus navigation can't get out of a descendent of a slot element in a document tree
https://bugs.webkit.org/show_bug.cgi?id=199633

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by slot element outside a shadow tree not being treated as a focus navigation
scope owner as specified in the HTML5 specification:
https://html.spec.whatwg.org/multipage/interaction.html#focus-navigation-scope-owner

Fixed the bug by treating it as such unless custom focusing behavior is used.

Test: fast/shadow-dom/focus-across-slot-outside-shadow-tree.html

* page/FocusController.cpp:
(WebCore::isFocusScopeOwner):

LayoutTests:

Skip the newly added test in iOS since eventSender isn't supported on iOS.

* platform/ios/TestExpectations:
* fast/shadow-dom/focus-across-slot-outside-shadow-tree-expected.txt: Added.
* fast/shadow-dom/focus-across-slot-outside-shadow-tree.html: Added.

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

4 months ago[ews] status-bubble for tester queues should point to tester queue while waiting...
aakash_jain@apple.com [Thu, 26 Mar 2020 19:26:21 +0000 (19:26 +0000)]
[ews] status-bubble for tester queues should point to tester queue while waiting in queue (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=209598

Unreviewed follow-up fix.

* BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._build_bubble): Display the tester name in tester's status-bubble hover-over message.

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

4 months ago[ews] status-bubble for tester queues should point to tester queue while waiting...
aakash_jain@apple.com [Thu, 26 Mar 2020 19:05:52 +0000 (19:05 +0000)]
[ews] status-bubble for tester queues should point to tester queue while waiting in queue
https://bugs.webkit.org/show_bug.cgi?id=209598

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._build_bubble):

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

4 months agoScopeRuleSets::initializeUserStyle() should not add console logging if there are...
katherine_cheney@apple.com [Thu, 26 Mar 2020 19:00:08 +0000 (19:00 +0000)]
ScopeRuleSets::initializeUserStyle() should not add console logging if there are no injected user style sheets
https://bugs.webkit.org/show_bug.cgi?id=209548
<rdar://problem/60851745>

Reviewed by Darin Adler.

Logging when there are no injected user style sheets is unnecessary and confusing.

* style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::initializeUserStyle):

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

4 months agoAdd SPI to specify whether file upload panels are uploading to an enterprise-managed...
david_quesada@apple.com [Thu, 26 Mar 2020 18:58:42 +0000 (18:58 +0000)]
Add SPI to specify whether file upload panels are uploading to an enterprise-managed destination
https://bugs.webkit.org/show_bug.cgi?id=209607
rdar://problem/60888386

Reviewed by Darin Adler.

When presenting the file upload panel, set the UIDocumentPickerViewController.isContentManaged
property to a value ultimately provided by the UI delegate. This can be used to prevent the upload
of personal data to enterprise websites on managed devices configured to prevent such a transfer.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/PageClient.h:
(WebKit::PageClient::handleRunOpenPanel):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runOpenPanel):
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleRunOpenPanel):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showRunOpenPanel:frameInfo:resultListener:]):
(-[WKContentView fileUploadPanelDestinationIsManaged:]):
(-[WKContentView _showRunOpenPanel:resultListener:]): Deleted.
* UIProcess/ios/forms/WKFileUploadPanel.h:
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel showFilePickerMenu]):

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

4 months agoAX: WKTR: Don't update isolated tree mode behavior if not required
cfleizach@apple.com [Thu, 26 Mar 2020 18:44:59 +0000 (18:44 +0000)]
AX: WKTR: Don't update isolated tree mode behavior if not required
https://bugs.webkit.org/show_bug.cgi?id=209555
<rdar://problem/60885094>

Reviewed by Darin Adler.

If the isolated tree mode has not changed, then we should not poke at the mechanisms for turning it on/off.
This might have the side effect of turning on accessibility unexpectedly.

* WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::setAccessibilityIsolatedTreeMode):

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

4 months agoSync wpt/domxpath and re-sync wpt/css/cssom-view from upstream
shvaikalesh@gmail.com [Thu, 26 Mar 2020 18:41:49 +0000 (18:41 +0000)]
Sync wpt/domxpath and re-sync wpt/css/cssom-view from upstream
https://bugs.webkit.org/show_bug.cgi?id=209574

Reviewed by Antti Koivisto.

web-platform-tests revision: 1137f4bff2b7

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/css/cssom-view/*: Updated.
* web-platform-tests/domxpath/*: Added.

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

4 months agoForce Touch preview on file:/// URL works while clicking on the URL is blocked
dino@apple.com [Thu, 26 Mar 2020 18:00:18 +0000 (18:00 +0000)]
Force Touch preview on file:/// URL works while clicking on the URL is blocked
https://bugs.webkit.org/show_bug.cgi?id=209589
<rdar://57687893>

Reviewed by Antoine Quint.

The immediate action for links should never trigger on file: URLs.

* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):

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

4 months ago[win] animations/many-pseudo-animations.html is failing
ryanhaddad@apple.com [Thu, 26 Mar 2020 17:58:07 +0000 (17:58 +0000)]
[win] animations/many-pseudo-animations.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209601

Unreviewed test gardening.

* platform/win/TestExpectations: Mark test as failing.

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

4 months agoREGRESSION(r259042): It creates some test failures (Requested by youenn on #webkit).
ap@apple.com [Thu, 26 Mar 2020 17:51:20 +0000 (17:51 +0000)]
REGRESSION(r259042): It creates some test failures (Requested by youenn on #webkit).
Roll back the patch.

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

4 months agoUnreviewed GTK debug multimedia gardening
aboya@igalia.com [Thu, 26 Mar 2020 17:47:21 +0000 (17:47 +0000)]
Unreviewed GTK debug multimedia gardening
https://bugs.webkit.org/show_bug.cgi?id=209603

I need a clean baseline to check for regressions.

* platform/gtk/TestExpectations:

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

4 months ago[iOS] Deny mach lookup access to frontboard services in the WebContent process
pvollan@apple.com [Thu, 26 Mar 2020 17:47:08 +0000 (17:47 +0000)]
[iOS] Deny mach lookup access to frontboard services in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=209604

Reviewed by Darin Adler.

Source/WebKit:

Deny mach lookup access to "com.apple.frontboard.systemappservices" in the WebContent process on iOS.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

LayoutTests:

* fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
* fast/sandbox/ios/sandbox-mach-lookup.html:

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

4 months agoREGRESSION (r254669): Expand media button doesn't work on first try on photos on...
antti@apple.com [Thu, 26 Mar 2020 17:44:44 +0000 (17:44 +0000)]
REGRESSION (r254669): Expand media button doesn't work on first try on photos on reddit.com
https://bugs.webkit.org/show_bug.cgi?id=209590
<rdar://problem/60461809>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:

Failure here shifts to a different subtest. This one uses fractional pixels and LayoutUnit accuracy is not sufficient to compute the exact ratio.

Source/WebCore:

Image intrinsic size computed from width/height attributes is ignored during preferred width computation
(used for float sizing in this case). This creates a mismatch between layout and preferred width computation,
causing the final image size to be miscomputed.

Test: fast/images/preferred-width-computation-with-attribute-intrinsic-size.html

* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computePreferredLogicalWidths const):

Compute attribute based intrinsic size already during preferred width computation if needed.

LayoutTests:

* fast/images/preferred-width-computation-with-attribute-intrinsic-size-expected.html: Added.
* fast/images/preferred-width-computation-with-attribute-intrinsic-size.html: Added.

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

4 months agoRemove manual redacting of billing contact after wallet fix for rdar://problem/59075234
nmouchtaris@apple.com [Thu, 26 Mar 2020 17:42:43 +0000 (17:42 +0000)]
Remove manual redacting of billing contact after wallet fix for rdar://problem/59075234
https://bugs.webkit.org/show_bug.cgi?id=209557
<rdar://problem/60883506>

Reviewed by Andy Estes.

Removed manual redaction of billing address after wallet fixed
their redaction code.

No new tests. Current tests cover this functionality.

* Modules/applepay/cocoa/PaymentMethodCocoa.mm:
(WebCore::convert):

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

4 months ago[iOS] Adopt ScreenProperties class.
pvollan@apple.com [Thu, 26 Mar 2020 17:04:14 +0000 (17:04 +0000)]
[iOS] Adopt ScreenProperties class.
https://bugs.webkit.org/show_bug.cgi?id=191767

Reviewed by Brent Fulgham.

Source/WebCore:

On macOS, the ScreenProperties class is used to collect screen properties in the UI process
and forward these to the Web process. We should also do this on iOS, in order to be able
to block frontboard services.

No new tests. Covered by existing tests.

* Sources.txt:
* platform/PlatformScreen.h:
* platform/ScreenProperties.h:
(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenSupportsExtendedColor):
(WebCore::collectScreenProperties):
* platform/mac/PlatformScreenMac.mm:
(WebCore::primaryOpenGLDisplayMask):
(WebCore::displayMaskForDisplay):
(WebCore::primaryGPUID):
(WebCore::gpuIDForDisplay):
(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenRectForDisplay):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::screenColorSpace):
(WebCore::screenSupportsExtendedColor):
(WebCore::screenProperties): Deleted.
(WebCore::primaryScreenDisplayID): Deleted.
(WebCore::setScreenProperties): Deleted.
(WebCore::screenData): Deleted.
(WebCore::getScreenProperties): Deleted.

Source/WebKit:

Make relevent macOS platform code cross platform.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setScreenProperties):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

4 months agoUnreviewed, make GC a bit less aggressive on test to decrease runtime.
cdumez@apple.com [Thu, 26 Mar 2020 16:51:58 +0000 (16:51 +0000)]
Unreviewed, make GC a bit less aggressive on test to decrease runtime.

* http/tests/inspector/network/har/har-page-aggressive-gc.html:

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

4 months agoMESSAGE_CHECK base macros should use UNLIKELY()
ddkilzer@apple.com [Thu, 26 Mar 2020 16:26:04 +0000 (16:26 +0000)]
MESSAGE_CHECK base macros should use UNLIKELY()
<https://webkit.org/b/209581>
<rdar://problem/60901307>

Reviewed by Youenn Fablet.

* Platform/IPC/Connection.h:
(MESSAGE_CHECK_COMPLETION_BASE):
(MESSAGE_CHECK_WITH_RETURN_VALUE_BASE):
- Add UNLIKELY() macro since these code paths should not be
  taken under normal conditions.
- Add curly braces to multi-line do-while loops per WebKit style
  guidelines, and is required after moving the ASSERT().
- Move the ASSERT() outside the if statement since that's more
  idomatic.

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

4 months ago[Cocoa] Fix incorrect rebase
pvollan@apple.com [Thu, 26 Mar 2020 16:12:49 +0000 (16:12 +0000)]
[Cocoa] Fix incorrect rebase
https://bugs.webkit.org/show_bug.cgi?id=209600

Reviewed by Brent Fulgham.

A rebase went wrong in <https://bugs.webkit.org/show_bug.cgi?id=203214> and placed the method call to
enableRemoteInspectorIfNeeded() in the wrong method. It should be called in WebProcessProxy::didFinishLaunching.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::mayBecomeUnresponsive):
(WebKit::WebProcessProxy::didFinishLaunching):

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

4 months ago[Flatpak SDK] Pass all the arguments of build-webkit to webkit-flatpak
philn@webkit.org [Thu, 26 Mar 2020 15:24:51 +0000 (15:24 +0000)]
[Flatpak SDK] Pass all the arguments of build-webkit to webkit-flatpak
https://bugs.webkit.org/show_bug.cgi?id=209558

Reviewed by Žan Doberšek.

When using flatpak some of the arguments we pass to build-webkit
are not meant to be used by that script but by webkit-flatpak. However we are
not passing all of them to webkit-flatpak but just the configuration ones
(port, release/debug...). This means that all the arguments that configure the
behaviour of webkit-flatpak are lost.

* Scripts/webkitdirs.pm:
(runInFlatpak): Filter-out Flatpak SDK-specific arguments to a
separate array, passed to webkit-flatpak.

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

4 months ago[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
commit-queue@webkit.org [Thu, 26 Mar 2020 15:22:42 +0000 (15:22 +0000)]
[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-26
Reviewed by Carlos Garcia Campos.

Don't bind the WaylandCompositor socket unless we're running under Wayland and it's actually
started successfully.

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindWayland):

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

4 months agoUnreviewed, reverting r259035.
commit-queue@webkit.org [Thu, 26 Mar 2020 14:31:28 +0000 (14:31 +0000)]
Unreviewed, reverting r259035.
https://bugs.webkit.org/show_bug.cgi?id=209597

broke windows layout-tests (Requested by aakashjain on
#webkit).

Reverted changeset:

"[Win] lld-link: error: /manifestdependency: is not allowed in
.drectve"
https://bugs.webkit.org/show_bug.cgi?id=204831
https://trac.webkit.org/changeset/259035

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

4 months agoBump boringssl version to M82
youenn@apple.com [Thu, 26 Mar 2020 11:43:14 +0000 (11:43 +0000)]
Bump boringssl version to M82
https://bugs.webkit.org/show_bug.cgi?id=209538

Reviewed by Eric Carlson.

* CMakeLists.txt:
* Source/third_party/boringssl: Updated.
* WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
* libwebrtc.xcodeproj/project.pbxproj:

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

4 months agoVideoFullscreenManagerProxy::setupFullscreenWithID should message check videoLayerID
ddkilzer@apple.com [Thu, 26 Mar 2020 10:39:08 +0000 (10:39 +0000)]
VideoFullscreenManagerProxy::setupFullscreenWithID should message check videoLayerID
<https://webkit.org/b/209578>
<rdar://problem/60703503>

Reviewed by Eric Carlson.

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(MESSAGE_CHECK): Define (and undef) new macro for assertions.
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
Change ASSERT() to MESSAGE_CHECK().

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

4 months ago[GTK] Gardening, add missing expectation files
dpino@igalia.com [Thu, 26 Mar 2020 10:10:59 +0000 (10:10 +0000)]
[GTK] Gardening, add missing expectation files
https://bugs.webkit.org/show_bug.cgi?id=209588

Unreviewed gardening.

* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
* platform/gtk/fast/html/details-marker-style-mixed-expected.txt: Added.
* platform/gtk/fast/html/details-writing-mode-mixed-expected.txt: Added.
* platform/gtk/fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
* platform/gtk/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/background-vertical-lr-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/background-vertical-rl-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/basic-vertical-line-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
* platform/gtk/fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.

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

4 months ago[Flatpak SDK] update-webkitgtk-libs fails
philn@webkit.org [Thu, 26 Mar 2020 10:06:18 +0000 (10:06 +0000)]
[Flatpak SDK] update-webkitgtk-libs fails
https://bugs.webkit.org/show_bug.cgi?id=209546

Reviewed by Žan Doberšek.

Simplify the code a bit, add a `--assumeyes` argument to the
`flatpak update` command to make it non-interactive and improve
error handling/reporting a bit as well.

* flatpak/flatpakutils.py:
(FlatpakObject.flatpak):
(WebkitFlatpak.main):
(WebkitFlatpak.run):
(WebkitFlatpak.install_all):
(WebkitFlatpak.update_all): Deleted.

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

4 months ago[Flatpak SDK] Crash post-mortem debugging is broken
philn@webkit.org [Thu, 26 Mar 2020 10:05:11 +0000 (10:05 +0000)]
[Flatpak SDK] Crash post-mortem debugging is broken
https://bugs.webkit.org/show_bug.cgi?id=209537

Reviewed by Žan Doberšek.

webkit-flatpak --gdb now properly launches gdb to inspect the last
crash reported to coredumpctl. The -m argument can be used to
select another crash dump.

* flatpak/flatpakutils.py:
(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.run_gdb):

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

4 months agoSyscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connect...
commit-queue@webkit.org [Thu, 26 Mar 2020 09:01:53 +0000 (09:01 +0000)]
Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=146729

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-26
Reviewed by Carlos Garcia Campos.

The entire MessageInfo is passed to write(), so we have to zero the padding bytes to avoid
writing uninitialized memory.

* Platform/IPC/unix/UnixMessage.h:
(IPC::MessageInfo::MessageInfo):

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

4 months agoTake into account referrer-policy in append Origin header algorithm
commit-queue@webkit.org [Thu, 26 Mar 2020 07:38:24 +0000 (07:38 +0000)]
Take into account referrer-policy in append Origin header algorithm
https://bugs.webkit.org/show_bug.cgi?id=209066

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-26
Reviewed by Youenn Fablet.

Start taking into account referrer-policy in more places when we
append the origin header [1]. To prevent computing SecurityOrigin
needlessly add a helper function doesRequestNeedHTTPOriginHeader.

[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header

* loader/FormSubmission.cpp:
(WebCore::FormSubmission::populateFrameLoadRequest):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addHTTPOriginIfNeeded): Deleted.
* loader/FrameLoader.h:
* loader/NavigationScheduler.cpp:
* loader/PingLoader.cpp:
(WebCore::PingLoader::sendPing):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):
* platform/network/ResourceRequestBase.cpp:
(WebCore::doesRequestNeedHTTPOriginHeader):
* platform/network/ResourceRequestBase.h:

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

4 months ago[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
Hironori.Fujii@sony.com [Thu, 26 Mar 2020 06:43:11 +0000 (06:43 +0000)]
[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
https://bugs.webkit.org/show_bug.cgi?id=204831

Reviewed by Ross Kirsling.

.:

clang-cl doesn't support #pragma comment(linker, "/manifestdependency ..").
Use an linker option instead.

* Source/cmake/WebKitMacros.cmake (WEBKIT_EXECUTABLE): Added -manifestdependency linkder option if WIN32.

Source/JavaScriptCore:

* shell/DLLLauncherMain.cpp: Removed /manifestdependency for Microsoft.VC80.CRT which seems leftover of Bug 116562 (r178530).

Tools:

* TestWebKitAPI/win/main.cpp:
* win/DLLLauncher/DLLLauncherMain.cpp:

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

4 months agoIndexedDB: destroy UniqueIDBDatabase when it's not used
sihui_liu@apple.com [Thu, 26 Mar 2020 06:26:51 +0000 (06:26 +0000)]
IndexedDB: destroy UniqueIDBDatabase when it's not used
https://bugs.webkit.org/show_bug.cgi?id=209532

Reviewed by Geoffrey Garen.

Reviewed by Geoffrey Garen.

When all connections of a UniqueIDBDatabase object are closed and there are no pending reuqests, the
object may not be used any more. We should delete it for better memory use.

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::removeUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::closeAndTakeUniqueIDBDatabase): Deleted.
* Modules/indexeddb/server/IDBServer.h:
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::tryCloseAndRemoveFromServer):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

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

4 months agoUnreviewed test gardening for Win10.
ryanhaddad@apple.com [Thu, 26 Mar 2020 04:44:08 +0000 (04:44 +0000)]
Unreviewed test gardening for Win10.

* platform/win/TestExpectations: Skip two webanimations tests that are consistently timing out.

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

4 months agoUnreviewed, reimport test262 once more to make bot green.
ross.kirsling@sony.com [Thu, 26 Mar 2020 04:29:26 +0000 (04:29 +0000)]
Unreviewed, reimport test262 once more to make bot green.

* test262/expectations.yaml:
* test262/harness/assert.js:
* test262/harness/propertyHelper.js:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js: Removed.
* test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js:
* test262/test/harness/assert-samevalue-zeros.js:
* test262/test/language/expressions/class/elements/private-field-after-optional-chain.js: Added.
* test262/test/language/statements/class/elements/private-field-after-optional-chain.js: Added.
* test262/test262-Revision.txt:

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

4 months ago[ macOS ] svg/custom/textPath-change-id-pattern.svg is flakey failing
commit-queue@webkit.org [Thu, 26 Mar 2020 04:28:40 +0000 (04:28 +0000)]
[ macOS ] svg/custom/textPath-change-id-pattern.svg is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=208532

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-25
Reviewed by Darin Adler.

Source/WebCore:

In this layout test, the id of a <path> element changes. This <path> is
referenced by a <textPath> element which is a child of a <pattern> element.
The <pattern> element is used to fill a <rect> element.

This patch ensures all clients (<rect>) of the resource ancestor (<pattern>)
of any sub-resource (<textPath>) is marked for repaint when the id of a
sub-sub-resource (<path>) changes.

* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForRepaint):
* rendering/svg/RenderSVGResourceContainer.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::invalidateInstances):
Unrelated change. This is a leftover from r179807 which was converting a
"do { } while();" statement to "while() { }" statement.

LayoutTests:

* platform/mac-wk1/TestExpectations:

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

4 months agoUnable to build WebKit with iOS 13.4 SDK
timothy_horton@apple.com [Thu, 26 Mar 2020 03:26:41 +0000 (03:26 +0000)]
Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

* Platform/spi/ios/UIKitSPI.h:
Address post-landing review comment; use SDK conditionals, not deployment
target conditionals, since SPI headers are mimicing SDK content.

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

4 months agoRegExp.prototype[@@replace] relies on globals and doesn't perform ToLength
shvaikalesh@gmail.com [Thu, 26 Mar 2020 02:24:29 +0000 (02:24 +0000)]
RegExp.prototype[@@replace] relies on globals and doesn't perform ToLength
https://bugs.webkit.org/show_bug.cgi?id=173867

Reviewed by Ross Kirsling.

JSTests:

* test262/expectations.yaml: Mark 4 test cases as passing.

Source/JavaScriptCore:

This change:

a) Adds "lastIndex" ToLength coercion [1], which is observable, unlike ToLength coercion
   of RegExpExec result [2] that we omit, just like the one in @@split [3].

b) Removes `lastPosition` checks/updates, as there are none in the spec, and it was
   equivalent to checking `nextSourcePosition`.

c) Removes reliance of @@replace on globals and also replaces @stringSubstrInternal
   built-in with @stringSubstringInternal, as the former is Annex B and accepts size
   as 2nd paramter, which is not very handy because ECMA-262 usually says "substring
   of S consisting of the code units at indices X (inclusive) through Y (exclusive)".

[1]: https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 11.c.iii.2.a)
[2]: https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 14.a)
[3]: https://tc39.es/ecma262/#sec-regexp.prototype-@@split (step 19.d.iv.6)

* builtins/BuiltinNames.h:
* builtins/RegExpPrototype.js:
(getSubstitution):
(Symbol.replace):
(Symbol.split):
* builtins/StringPrototype.js:
(globalPrivate.repeatCharactersSlowPath):
* bytecode/LinkTimeConstant.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/StringPrototype.cpp:
(JSC::stringIndexOfImpl):
(JSC::stringProtoFuncIndexOf):
(JSC::builtinStringIndexOfInternal):
(JSC::stringProtoFuncSubstr):
(JSC::stringSubstringImpl):
(JSC::stringProtoFuncSubstring):
(JSC::builtinStringSubstringInternal):
(JSC::stringProtoFuncSubstrImpl): Deleted.
(JSC::builtinStringSubstrInternal): Deleted.
* runtime/StringPrototype.h:

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

4 months agoMini browser immediately hit an assertion in debug build
rniwa@webkit.org [Thu, 26 Mar 2020 02:10:38 +0000 (02:10 +0000)]
Mini browser immediately hit an assertion in debug build
https://bugs.webkit.org/show_bug.cgi?id=209575

Reviewed by Simon Fraser.

Use 1 instead of 0 as the desination ID to avoid hitting assertions.

* WebProcess/GPU/media/RemoteAudioSession.cpp:
(WebKit::RemoteAudioSession::RemoteAudioSession):
(WebKit::RemoteAudioSession::~RemoteAudioSession):

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

4 months agoNullptr crash in WebCore::Node::isDescendantOf when inserting list
shihchieh_lee@apple.com [Thu, 26 Mar 2020 01:51:14 +0000 (01:51 +0000)]
Nullptr crash in WebCore::Node::isDescendantOf when inserting list
https://bugs.webkit.org/show_bug.cgi?id=209529
<rdar://problem/60693542>

Reviewed by Darin Adler.

Source/WebCore:

The visible positions may be null if the DOM tree is altered before an edit command is applied.
Add null check for visible positions at the beginning of InsertListCommand::doApply.

Test: editing/inserting/insert-list-during-node-removal-crash.html

* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply):

LayoutTests:

Added a regression test for the crash.

* editing/inserting/insert-list-during-node-removal-crash-expected.txt: Added.
* editing/inserting/insert-list-during-node-removal-crash.html: Added.

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

4 months agoInvalid numeric and named references should be early syntax errors
shvaikalesh@gmail.com [Thu, 26 Mar 2020 01:24:05 +0000 (01:24 +0000)]
Invalid numeric and named references should be early syntax errors
https://bugs.webkit.org/show_bug.cgi?id=178175

Reviewed by Ross Kirsling.

JSTests:

* test262/expectations.yaml: Mark 44 test cases as passing.

Source/JavaScriptCore:

This patch:

1. Fixes named reference parsing in parseEscape(), making /\k/u throw SyntaxError per spec [1].

2. Reworks containsIllegalNamedForwardReferences(), making dangling (e.g. /\k<a>(?<b>.)/) and
   incomplete (e.g. /\k<(?<a>.)/) named references throw SyntaxError if the non-Unicode pattern
   contains a named group [2].

3. Moves reparsing logic from YarrPattern to YarrParser, ensuring syntax errors due to illegal
   references (named & numeric) are thrown at parse time; drops isValidNamedForwardReference()
   from Delegate, refactors saveUnmatchedNamedForwardReferences(), and overall improves cohesion
   of illegal references logic.

[1]: https://tc39.es/ecma262/#prod-IdentityEscape
[2]: https://tc39.es/ecma262/#sec-regexpinitialize (step 7.b)

* yarr/YarrErrorCode.cpp:
(JSC::Yarr::errorMessage):
(JSC::Yarr::errorToThrow):
* yarr/YarrErrorCode.h:
* yarr/YarrParser.h:
(JSC::Yarr::Parser::CharacterClassParserDelegate::atomNamedBackReference):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parse):
(JSC::Yarr::Parser::handleIllegalReferences):
(JSC::Yarr::Parser::containsIllegalNamedForwardReference):
(JSC::Yarr::Parser::resetForReparsing):
(JSC::Yarr::parse):
(JSC::Yarr::Parser::CharacterClassParserDelegate::isValidNamedForwardReference): Deleted.
* yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::atomBackReference):
(JSC::Yarr::YarrPatternConstructor::atomNamedForwardReference):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPatternConstructor::saveUnmatchedNamedForwardReferences): Deleted.
(JSC::Yarr::YarrPatternConstructor::isValidNamedForwardReference): Deleted.
* yarr/YarrPattern.h:
(JSC::Yarr::YarrPattern::resetForReparsing):
(JSC::Yarr::YarrPattern::containsIllegalBackReference): Deleted.
(JSC::Yarr::YarrPattern::containsIllegalNamedForwardReferences): Deleted.
* yarr/YarrSyntaxChecker.cpp:
(JSC::Yarr::SyntaxChecker::atomNamedBackReference):
(JSC::Yarr::SyntaxChecker::resetForReparsing):
(JSC::Yarr::SyntaxChecker::isValidNamedForwardReference): Deleted.

Source/WebCore:

Accounts for changes of YarrParser's Delegate interface, no behavioral changes.
resetForReparsing() is never called because we disable numeric backrefences
and named forward references (see arguments of Yarr::parse() call).

Test: TestWebKitAPI.ContentExtensionTest.ParsingFailures

* contentextensions/URLFilterParser.cpp:
(WebCore::ContentExtensions::PatternParser::resetForReparsing):
(WebCore::ContentExtensions::URLFilterParser::addPattern):
(WebCore::ContentExtensions::PatternParser::isValidNamedForwardReference): Deleted.

Tools:

Removes FIXME as YarrParser is correct not to throw errors as it is
parsing in non-Unicode mode. Also adds a few named groups tests.

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

LayoutTests:

* js/regexp-named-capture-groups-expected.txt:
* js/script-tests/regexp-named-capture-groups.js:

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

4 months agoUnable to build WebKit with iOS 13.4 SDK
timothy_horton@apple.com [Thu, 26 Mar 2020 00:32:00 +0000 (00:32 +0000)]
Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

Reviewed by Megan Gardner.

* Platform/spi/ios/UIKitSPI.h:
Stop defining some UIKit SPI that is now API (hurray!).

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

4 months agoCanvasRenderingContext2D.putImageData() should not process neutered ImageData
commit-queue@webkit.org [Thu, 26 Mar 2020 00:28:36 +0000 (00:28 +0000)]
CanvasRenderingContext2D.putImageData() should not process neutered ImageData
https://bugs.webkit.org/show_bug.cgi?id=208303

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-03-25
Reviewed by Said Abou-Hallawa.

Source/WebCore:

Test: fast/canvas/canvas-putImageData-neutered-ImageData.html

The crash happens when putImageData is called on a neutered ImageData object.
Added a check to exit from CanvasRenderingContext2D.putImageData() function when ImageData object is neutered.

* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::putImageData):

LayoutTests:

Added slightly modified version of testcase from bugzilla.
This testcase checks that a neutered ImageData object is not considered to be put onto the canvas.

* fast/canvas/canvas-putImageData-neutered-ImageData-expected.txt: Added.
* fast/canvas/canvas-putImageData-neutered-ImageData.html: Added.

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

4 months ago[macOS] Fix sandbox violations related to media playback
pvollan@apple.com [Wed, 25 Mar 2020 23:52:24 +0000 (23:52 +0000)]
[macOS] Fix sandbox violations related to media playback
https://bugs.webkit.org/show_bug.cgi?id=209568
<rdar://problem/60262125>

Reviewed by Brent Fulgham.

Fix observed sandbox violations during media playback.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::mediaRelatedMachServices):

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

4 months agoUse JSC::EnsureStillAliveScope RAII object in the generated bindings code
cdumez@apple.com [Wed, 25 Mar 2020 23:41:50 +0000 (23:41 +0000)]
Use JSC::EnsureStillAliveScope RAII object in the generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=209552

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Add method to EnsureStillAliveScope to retrieve its internal JSValue.

* runtime/JSCJSValue.h:
(JSC::EnsureStillAliveScope::value const):

Source/WebCore:

Use JSC::EnsureStillAliveScope RAII object in the generated bindings code
instead of explicit ensureStillAlive() calls. This makes the bindings
generator code simpler and results in nicer generated code too.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(GenerateWriteBarriersForArguments):
(GenerateImplementationFunctionCall):
(GenerateEnsureStillAliveCallsForArguments): Deleted.
* bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):
* bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):
* bindings/scripts/test/JS/JSSetLike.cpp:
(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):
* bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):
* bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::construct):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItemBody):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethodBody):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
* bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):
* bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::callJSTestObj1):
(WebCore::callJSTestObj2):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::JSTestPromiseRejectionEventConstructor::construct):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):

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

4 months agoUnreviewed, fix the watchOS build after r259008
wenson_hsieh@apple.com [Wed, 25 Mar 2020 23:26:37 +0000 (23:26 +0000)]
Unreviewed, fix the watchOS build after r259008

Put a call to Pasteboard::nameOfDragPasteboard behind ENABLE(DRAG_SUPPORT); additionally, update an out-of-date
comment to reflect the fact that arbitrary UIPasteboards can be converted to a list of NSItemProviders, whose
data can be traversed in fidelity order.

* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::respectsUTIFidelities const):

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

4 months ago[Timeline] A better default get label function, which fit the assumpation the label...
zhifei_fang@apple.com [Wed, 25 Mar 2020 23:19:32 +0000 (23:19 +0000)]
[Timeline] A better default get label function, which fit the assumpation the label is always a string
https://bugs.webkit.org/show_bug.cgi?id=209567

Reviewed by Jonathan Bedard.

* resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

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

4 months ago[PlayStation] Specify a 16 KB minimum page size
chris.reid@sony.com [Wed, 25 Mar 2020 23:19:01 +0000 (23:19 +0000)]
[PlayStation] Specify a 16 KB minimum page size
https://bugs.webkit.org/show_bug.cgi?id=209566

Reviewed by Ross Kirsling.

* wtf/PageBlock.h:

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

4 months ago[Timeline] Fix the out of bound dot index
zhifei_fang@apple.com [Wed, 25 Mar 2020 23:05:41 +0000 (23:05 +0000)]
[Timeline] Fix the out of bound dot index
https://bugs.webkit.org/show_bug.cgi?id=209492

Reviewed by Jonathan Bedard.

* resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
(Timeline.CanvasSeriesComponent):

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

4 months agoRemove unused suspend functions in CrossThreadTaskHandler
sihui_liu@apple.com [Wed, 25 Mar 2020 22:53:10 +0000 (22:53 +0000)]
Remove unused suspend functions in CrossThreadTaskHandler
https://bugs.webkit.org/show_bug.cgi?id=209553

Reviewed by Geoffrey Garen.

* wtf/CrossThreadTaskHandler.cpp:
(WTF::CrossThreadTaskHandler::taskRunLoop):
(WTF::CrossThreadTaskHandler::suspendAndWait): Deleted.
(WTF::CrossThreadTaskHandler::resume): Deleted.
* wtf/CrossThreadTaskHandler.h:

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

4 months agoFlashing and partly visible elements
simon.fraser@apple.com [Wed, 25 Mar 2020 22:28:41 +0000 (22:28 +0000)]
Flashing and partly visible elements
https://bugs.webkit.org/show_bug.cgi?id=204605

Reviewed by Zalan Bujtas.

Source/WebCore:

If, during a compositing update, a layer becomes non-composited, then we repaint its
location in its new target compositing layer. However, that layer might be in the list
of BackingSharingState's layers that may paint into backing provided by some ancestor,
so they'd be in a limbo state where their repaint target was unknown. We'd erroneously
repaint in some ancestor, resulting in missing content.

Fix by having BackingSharingState track a set of layers that can't be repainted currently
because their ancestor chain contains a maybe-sharing layer, and repaint them when
the backing sharing state is resolved.

This is only an issue during RenderLayerCompositor::computeCompositingRequirements()
when the backing sharing state is being computed, so most repaints are not affected.

Test: compositing/shared-backing/repaint-into-shared-backing.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::BackingSharingState::isPotentialBackingSharingLayer const):
(WebCore::RenderLayerCompositor::BackingSharingState::addLayerNeedingRepaint):
(WebCore::RenderLayerCompositor::BackingSharingState::endBackingSharingSequence):
(WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):
(WebCore::RenderLayerCompositor::layerRepaintTargetsBackingSharingLayer const):
* rendering/RenderLayerCompositor.h:

LayoutTests:

* compositing/shared-backing/repaint-into-shared-backing-expected.html: Added.
* compositing/shared-backing/repaint-into-shared-backing.html: Added.

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

4 months agoElement context character rects may be in wrong coordinate system
dbates@webkit.org [Wed, 25 Mar 2020 21:56:03 +0000 (21:56 +0000)]
Element context character rects may be in wrong coordinate system
https://bugs.webkit.org/show_bug.cgi?id=209493
<rdar://problem/60840261>

Reviewed by Wenson Hsieh.

Source/WebKit:

Convert the character rects from content view coordinates to root view coordinates
as that is the coordinate system callers of -requestDocumentContext expect.

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

Tools:

Add some tests.

* TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):

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

4 months agoUnreviewed, add new committer to contributors.json
dougk@apple.com [Wed, 25 Mar 2020 21:36:05 +0000 (21:36 +0000)]
Unreviewed, add new committer to contributors.json

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

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

4 months ago[ Mac wk2 ] svg/as-image/svg-image-with-data-uri-background.html is flaky failing.
lawrence.j@apple.com [Wed, 25 Mar 2020 21:27:07 +0000 (21:27 +0000)]
[ Mac wk2 ] svg/as-image/svg-image-with-data-uri-background.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209564

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

4 months agoEvent listeners registered with 'once' option may get garbage collected too soon
cdumez@apple.com [Wed, 25 Mar 2020 21:16:13 +0000 (21:16 +0000)]
Event listeners registered with 'once' option may get garbage collected too soon
https://bugs.webkit.org/show_bug.cgi?id=209504
<rdar://problem/60541567>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Add EnsureStillAliveScope RAII object for ensureStillAliveHere().

* runtime/JSCJSValue.h:
(JSC::EnsureStillAliveScope::EnsureStillAliveScope):
(JSC::EnsureStillAliveScope::~EnsureStillAliveScope):

Source/WebCore:

In EventTarget::innerInvokeEventListeners, if the listener we're about to call is a one-time
listener (has 'once' flag set), we would first unregister the event listener and then call
it, as per the DOM specification. However, once unregistered, the event listener is no longer
visited for GC purposes and its internal JS Function may get garbage collected before we get
a chance to call it.

To address the issue, we now make sure the JS Function (and its wrapper) stay alive for the
duration of the scope using ensureStillAliveHere().

Test: http/tests/inspector/network/har/har-page-aggressive-gc.html

* bindings/js/JSEventListener.h:
* dom/EventListener.h:
(WebCore::EventListener::jsFunction const):
(WebCore::EventListener::wrapper const):
* dom/EventTarget.cpp:
(WebCore::EventTarget::innerInvokeEventListeners):

LayoutTests:

Add layout test coverage.

* http/tests/inspector/network/har/har-page-aggressive-gc-expected.txt: Added.
* http/tests/inspector/network/har/har-page-aggressive-gc.html: Added.
* platform/gtk/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/win/TestExpectations:

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

4 months agoRename "data interaction pasteboard" to "drag and drop pasteboard"
wenson_hsieh@apple.com [Wed, 25 Mar 2020 21:13:55 +0000 (21:13 +0000)]
Rename "data interaction pasteboard" to "drag and drop pasteboard"
https://bugs.webkit.org/show_bug.cgi?id=209556

Reviewed by Tim Horton.

Source/WebCore:

"Data interaction" is an obsolete term for drag and drop on iOS, and was meant only to be used early on in
development. Replace this with the more descriptive name "drag and drop pasteboard", and additionally hide the
name behind a Cocoa-only Pasteboard helper method so that each call site won't need to repeat the string.

* platform/Pasteboard.h:
* platform/cocoa/DragDataCocoa.mm:
(WebCore::DragData::DragData):
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::nameOfDragPasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::respectsUTIFidelities const):
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::PlatformPasteboard):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::nameOfDragPasteboard):

Source/WebKit:

Adopt Pasteboard::nameOfDragPasteboard instead of the literal string "data interaction pasteboard".

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView dropInteraction:sessionDidEnter:]):
(-[WKContentView dropInteraction:sessionDidUpdate:]):
(-[WKContentView dropInteraction:sessionDidExit:]):
(-[WKContentView dropInteraction:performDrop:]):

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

4 months ago[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchP...
lawrence.j@apple.com [Wed, 25 Mar 2020 20:48:55 +0000 (20:48 +0000)]
[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchProgressEvent
https://bugs.webkit.org/show_bug.cgi?id=209560

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

4 months agoUnprefix -webkit-text-orientation
commit-queue@webkit.org [Wed, 25 Mar 2020 20:12:54 +0000 (20:12 +0000)]
Unprefix -webkit-text-orientation
https://bugs.webkit.org/show_bug.cgi?id=196139

Source/WebCore:

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield

In order to unprefix -webkit-text-orientation to be text-orientation,
a new property, "text-orientation" is added to CSSProperties.json.
I didn't use alias because the prefixed version still supports non-standard values,
and we want the unprefixed version to strictly follow the specs.
However only adding a new property is not enough because -webkit-text-orientation
is a high-priority property, and without extra logic, the CSS property
"last-one-wins" ordering rule cannot be enforced because high-priority properties
are applied to elements in the order they appear in the generated CSSPropertyNames.cpp file.
Therefore a codegen flag, "related-property" is added to both
-webkit-text-orientation and text-orientation to point to each other,
so that when applying high priorities, the algorithm will know that the
two properties are modifying the same style of the element (in our case, text orientation)
and thus the CSS property "last-one-wins" ordering rule will take effect.

This code change also helps future developments when we want to unprefix other high-priority properties.

Tests: fast/text/orientation-inheritance.html
       fast/text/orientation-mixed-unprefix.html
       fast/text/orientation-sideways-prefix-unprefix.html
       fast/text/orientation-sideways-unprefix.html
       fast/text/orientation-upright-unprefix.html
       fast/text/test-orientation-parsing-001.html
       fast/text/text-orientation-parse-competition.html
       fast/text/text-orientation-parse.html
       imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-001.html

* css/CSSComputedStyleDeclaration.cpp:
    - added support for parsing "text-orientation"
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    - added a new RenderStyle, CSSPropertyTextOrientation
* css/CSSProperties.json:
    - added a new codegen property, "related-property"
* css/makeprop.pl:
    - added new rules for generating code to parse related properties
(addProperty):
    - inserts new rule in the generated code to parse related properties
* css/parser/CSSParserFastPaths.cpp:
    - Specified the CSS property values that the unprefixed "text-orientation" can take
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
    - Only supports the standard values for text-orientation
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
    - Added switch case value CSSPropertyTextOrientation
* css/parser/CSSParserImpl.cpp:
    - Added rules to treat related properties differently
(WebCore::filterProperties):
    - For related rules that are also high priority,
      if we saw one in the property list, we will mark all the related property
      as seen, in order to enforce the "last-one-wins" ordering rule
* style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueTextOrientation):
    - added functionality to parse the newly added "text-orientation" property

Tools:

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

This change is made to add the extra flag "related-property" in CSSProperty.json
in the jsonchecker so that the jsonchecker would not complain about unrecognized key

* Scripts/webkitpy/style/checkers/jsonchecker.py: added check for related-property
(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

Added test cases to check that Webkit can now parse text-orientation correctly,
as well as that the precedence rule for CSS property still applies when both
-webkit-text-orientation and text-orientation property are present, the second
one takes precedence.

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield

* fast/text/orientation-inheritance-expected.html: Added.
* fast/text/orientation-inheritance.html: Added.
* fast/text/orientation-mixed-unprefix-expected.html: Added.
* fast/text/orientation-mixed-unprefix.html: Added.
* fast/text/orientation-sideways-prefix-unprefix-expected.html: Added.
* fast/text/orientation-sideways-prefix-unprefix.html: Added.
* fast/text/orientation-sideways-unprefix-expected.html: Added.
* fast/text/orientation-sideways-unprefix.html: Added.
* fast/text/orientation-upright-unprefix-expected.html: Added.
* fast/text/orientation-upright-unprefix.html: Added.
* fast/text/test-orientation-parsing-001-expected.txt: Added.
* fast/text/test-orientation-parsing-001.html: Added.
* fast/text/text-orientation-parse-competition-expected.txt: Added.
* fast/text/text-orientation-parse-competition.html: Added.
* fast/text/text-orientation-parse-expected.txt: Added.
* fast/text/text-orientation-parse.html: Added.
* fast/text/text-orientation-parse-stylesheet-expected.txt: Added.
* fast/text/text-orientation-parse-stylesheet.html: Added.

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

4 months agoSome WKWebView.h header doc cleanup.
beidson@apple.com [Wed, 25 Mar 2020 20:02:59 +0000 (20:02 +0000)]
Some WKWebView.h header doc cleanup.
https://bugs.webkit.org/show_bug.cgi?id=209549

Reviewed by Simon Fraser.

* UIProcess/API/Cocoa/WKWebView.h:

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

4 months agoAdd ref test for apple pay button corner radius change
nmouchtaris@apple.com [Wed, 25 Mar 2020 19:49:39 +0000 (19:49 +0000)]
Add ref test for apple pay button corner radius change
https://bugs.webkit.org/show_bug.cgi?id=208959

Reviewed by Andy Estes.

Add ref test to check that providing a border-radius does not result in rendering
a default apple pay button.

* http/tests/ssl/applepay/ApplePayButtonCornerRadius-expected-mismatch.html: Added.
* http/tests/ssl/applepay/ApplePayButtonCornerRadius.html: Added.

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

4 months agoLayout Test fast/images/async-image-multiple-clients-repaint.html is flaky
said@apple.com [Wed, 25 Mar 2020 19:29:30 +0000 (19:29 +0000)]
Layout Test fast/images/async-image-multiple-clients-repaint.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=202328
<rdar://problem/54325032>

Unreviewed test gardening.

Put the skip statement for this test back in mac-wk1/TestExpectations
since <rdar://problem/42625657> has not been fixed yet.

* platform/mac-wk1/TestExpectations:

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

4 months agoRemove CompositingChangeRepaint which was always CompositingChangeRepaintNow
simon.fraser@apple.com [Wed, 25 Mar 2020 18:34:21 +0000 (18:34 +0000)]
Remove CompositingChangeRepaint which was always CompositingChangeRepaintNow
https://bugs.webkit.org/show_bug.cgi?id=209551

Reviewed by Zalan Bujtas.

All callers to updateBacking() passed CompositingChangeRepaintNow, so remove this argument
and the enum.

No behavior change.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::layerStyleChanged):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):
* rendering/RenderLayerCompositor.h:

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

4 months ago[ews] commit-queue should comment on bug if it fails to find any modified ChangeLog
aakash_jain@apple.com [Wed, 25 Mar 2020 18:24:31 +0000 (18:24 +0000)]
[ews] commit-queue should comment on bug if it fails to find any modified ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=209550

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(FindModifiedChangeLogs): Set haltOnFailure to false.
(FindModifiedChangeLogs.getResultSummary):
(FindModifiedChangeLogs.evaluateCommand): Add build steps to comment on bug and set cq- on patch appropriately.
* BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.

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

4 months agoUnreviewed build fix for GTK.
svillar@igalia.com [Wed, 25 Mar 2020 18:11:47 +0000 (18:11 +0000)]
Unreviewed build fix for GTK.

In wkb.ug/209536 we replaced ENABLE_WEBGL by ENABLE_WEBXR for cmake
builds. We just forgot to do it the same for derived sources.

* Sources.txt: replaced ENABLE_WEBGL by ENABLE_WEBXR.

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

4 months ago[ews] status-bubble should link to buildbot queue while waiting in queue
aakash_jain@apple.com [Wed, 25 Mar 2020 18:08:01 +0000 (18:08 +0000)]
[ews] status-bubble should link to buildbot queue while waiting in queue
https://bugs.webkit.org/show_bug.cgi?id=209543

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._build_bubble): Link to buildbot queue whil patch is waiting in queue.
* BuildSlaveSupport/ews-app/ews/common/buildbot.py:
(Buildbot.update_icons_for_queues_mapping): Generate the mapping for shortname to full queue name.

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

4 months ago[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky...
jacob_uphoff@apple.com [Wed, 25 Mar 2020 17:37:04 +0000 (17:37 +0000)]
[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209514

Fixing expectations.

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

4 months agoRemove newline that I accidentally added in r258989.
dbates@webkit.org [Wed, 25 Mar 2020 17:32:07 +0000 (17:32 +0000)]
Remove newline that I accidentally added in r258989.

* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

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

4 months agoAvoid logging sensitive information for all network sessions
bfulgham@apple.com [Wed, 25 Mar 2020 17:27:01 +0000 (17:27 +0000)]
Avoid logging sensitive information for all network sessions
https://bugs.webkit.org/show_bug.cgi?id=209522
<rdar://problem/54807157>

Reviewed by Alex Christensen.

We avoid logging sensitive information (such as visited URLs) on production builds and for ephemeral sessions.

We should also avoid such logging for engineering and prerelease builds to reduce the possibility of any
personally identifiable information being retained in logs.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::configurationForSessionID): Deny senstive logging for all sessions.

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

4 months agoLayout Test fast/images/async-image-multiple-clients-repaint.html is flaky
said@apple.com [Wed, 25 Mar 2020 17:15:12 +0000 (17:15 +0000)]
Layout Test fast/images/async-image-multiple-clients-repaint.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=202328
<rdar://problem/54325032>

Unreviewed test gardening.

Remove flaky expectation for this test since it has been passing on all
Mac and iOS platforms. Make the iOS expected result the same for the
device and for the simulator.

* platform/ios-simulator/fast/images: Removed.
* platform/ios/TestExpectations:
* platform/ios/fast/images/async-image-multiple-clients-repaint-expected.txt: Added.
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

4 months agoFix build after https://trac.webkit.org/changeset/258977/webkit
youenn@apple.com [Wed, 25 Mar 2020 17:05:23 +0000 (17:05 +0000)]
Fix build after https://trac.webkit.org/changeset/258977/webkit
https://bugs.webkit.org/show_bug.cgi?id=209545

Unreviewed.

* dom/Document.cpp:
(WebCore::Document::visibilityStateChanged):
Add ENABLE(MEDIA_STREAM) compilation flag.

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

4 months agoLayoutTests/imported/w3c:
commit-queue@webkit.org [Wed, 25 Mar 2020 17:03:50 +0000 (17:03 +0000)]
LayoutTests/imported/w3c:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

Those -expected.txt files need to be updated since previously they are expecting
failures, but after the code change those failures are actually passing, so the
expected.txt files need to be updated.

* web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-008-expected.txt:
* web-platform-tests/css/css-grid/alignment/grid-container-baseline-001-expected.txt:

Source/WebCore:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

According to the CSS documentation, https://drafts.csswg.org/css-writing-modes/#text-orientation and
https://drafts.csswg.org/css-writing-modes/#text-baselines "In vertical typographic mode,
the central baseline is used as the dominant baseline when text-orientation is mixed or upright.
Otherwise the alphabetic baseline is used."

However, InlineFlowBox::requiresIdeographicsBaseline returns true only when text orientation is
"upright", meaning it applies the same baseline for mixed and sideways text orientation.
Therefore, a new clause is added to check if text-orientation is "mixed"

Currently in our implementation, text orientation is determinted by the following:
        - mixed:    FontDescription returns Vertical   and   nonCJKGlyphOrientation returns Mixed
        - upright:  FontDescription returns Vertical   and   nonCJKGlyphOrientation returns Upright
        - sideways: FontDescription returns Horizontal and   nonCJKGlyphOrientation returns Mixed
Original code only checks if FontDescription returns Vertical and nonCJKGlyphOrientation returns Mixed, which
is only checking if text orientation is "upright", and returns true for requiresIdeographicBaseline, treating
"mixed" and "sideways" the same, requesting alphabetic baseline, which is incorrect.

Therefore, to correct this bahavior, change the code so that requiresIdeographicsBaseline returns true either
when text-orientation is "mixed" or "upright". Equivalently, we return true when FontDescription returns Vertical
false otherwise.

Test: imported/w3c/web-platform-tests/css/css-writing-modes/

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::requiresIdeographicBaseline const):

LayoutTests:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

Fixed errors in existing test files and expected results regarding
baseline alignment. This baseline alignment bug is probably in the codebase
for a long time, and all the following tests are based on
two incorrect behaviors within WebKit, which is
   1) WebKit cannot parse "text-orientation" since it's not supported yet,
   2) WebKit doesn't distinguish "mixed" and "sideways" when selecting baselines,
so both orientations alphabetic baseline is selected. Therefore, for those test
cases, the expected files are actually reflecting the behavior of
"sideways" instead of "mixed". Now after this patch, "mixed" now
selects ideographic baseline, which will cause the tests to fail,
so I added "-webkit-text-orientation: sideways" to these tests, and
I also created new tests to cover "mixed" text orientation.

* editing/selection/vertical-rl-rtl-extend-line-backward-br.html:
* editing/selection/vertical-rl-rtl-extend-line-backward-p.html:
* editing/selection/vertical-rl-rtl-extend-line-forward-br.html:
* editing/selection/vertical-rl-rtl-extend-line-forward-p.html:
* fast/backgrounds/background-leakage-transforms.html:
* fast/css/vertical-text-overflow-ellipsis-text-align-center.html:
* fast/css/vertical-text-overflow-ellipsis-text-align-justify.html:
* fast/css/vertical-text-overflow-ellipsis-text-align-left.html:
* fast/css/vertical-text-overflow-ellipsis-text-align-right.html:
* fast/html/details-marker-style.html:
* fast/html/details-writing-mode.html:
* fast/inline-block/baseline-vertical-01-expected.html:
* fast/inline-block/baseline-vertical-01.html:
* fast/inline-block/baseline-vertical-02-expected.html:
* fast/inline-block/baseline-vertical-02.html:
* fast/inline-block/baseline-vertical-03-expected.html:
* fast/inline-block/baseline-vertical-03.html:
* fast/inline-block/baseline-vertical-04-expected.html:
* fast/inline-block/baseline-vertical-04.html:
* fast/inline-block/baseline-vertical-05-expected.html:
* fast/inline-block/baseline-vertical-05.html:
* fast/inline-block/baseline-vertical-06-expected.html:
* fast/inline-block/baseline-vertical-06.html:
* fast/inline-block/baseline-vertical-07-expected.html:
* fast/inline-block/baseline-vertical-07.html:
* fast/inline-block/baseline-vertical-08-expected.html:
* fast/inline-block/baseline-vertical-08.html:
* fast/lists/003-vertical.html:
* fast/lists/009-vertical.html:
* fast/multicol/tall-image-behavior-lr.html:
* fast/multicol/vertical-rl/rule-style.html:
* fast/ruby/overhang-vertical-no-overlap2.html:
* fast/ruby/overhang-vertical.html:
* fast/text/vertical-rl-rtl-linebreak.html:
* fast/writing-mode/background-vertical-lr.html:
* fast/writing-mode/background-vertical-rl.html:
* fast/writing-mode/basic-vertical-line.html:
* fast/writing-mode/border-image-vertical-lr.html:
* fast/writing-mode/border-image-vertical-rl.html:
* fast/writing-mode/border-styles-vertical-lr.html:
* fast/writing-mode/border-styles-vertical-rl.html:
* fast/writing-mode/vertical-lr-replaced-selection.html:
* fast/writing-mode/vertical-rl-replaced-selection.html:
* platform/ios/media/track/track-cue-rendering-vertical-expected.txt:
* platform/mac/fast/ruby/bopomofo-expected.txt:
* platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
* platform/mac/fast/ruby/bopomofo-rl-expected.txt:
* platform/mac/fast/text/orientation-sideways-expected.png: Removed.
* platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
* platform/mac/fast/writing-mode/vertical-baseline-alignment-expected.txt:
* platform/win/fast/ruby/bopomofo-expected.txt:
* platform/win/fast/ruby/bopomofo-letter-spacing-expected.txt:
* platform/win/fast/ruby/bopomofo-rl-expected.txt:
* platform/win/fast/writing-mode/text-orientation-basic-expected.txt:
* platform/win/fast/writing-mode/vertical-align-table-baseline-expected.txt:
* platform/win/fast/writing-mode/vertical-baseline-alignment-expected.txt:
* platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
* platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
* platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
* platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
* platform/win/fast/html/details-marker-style-mixed-expected.txt: Added.
* platform/win/fast/html/details-writing-mode-mixed-expected.txt: Added.
* platform/win/fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
* platform/win/fast/ruby/bopomofo-mixed-expected.txt: Added.
* platform/win/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
* platform/win/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
* platform/win/fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
* platform/win/fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
* printing/resources/iframe-subframe-vertical-rl.html:
* editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
* editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed.html: Added.
* editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
* editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed.html: Added.
* editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
* editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed.html: Added.
* editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
* editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed.html: Added.
* fast/html/details-marker-style-mixed-expected.txt: Added.
* fast/html/details-marker-style-mixed.html: Added.
* fast/html/details-writing-mode-mixed-expected.txt: Added.
* fast/html/details-writing-mode-mixed.html: Added.
* fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
* fast/multicol/tall-image-behavior-lr-mixed.html: Added.
* fast/ruby/bopomofo-mixed-expected.txt: Added.
* fast/ruby/bopomofo-mixed.html: Added.
* fast/ruby/overhang-vertical-mixed-expected.txt: Added.
* fast/ruby/overhang-vertical-mixed.html: Added.
* fast/ruby/overhang-vertical-no-overlap2-mixed-expected.txt: Added.
* fast/ruby/overhang-vertical-no-overlap2-mixed.html: Added.
* fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
* fast/text/vertical-rl-rtl-linebreak-mixed.html: Added.
* fast/writing-mode/background-vertical-lr-mixed-expected.txt: Added.
* fast/writing-mode/background-vertical-lr-mixed.html: Added.
* fast/writing-mode/background-vertical-rl-mixed-expected.txt: Added.
* fast/writing-mode/background-vertical-rl-mixed.html: Added.
* fast/writing-mode/basic-vertical-line-mixed-expected.txt: Added.
* fast/writing-mode/basic-vertical-line-mixed.html: Added.
* fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Added.
* fast/writing-mode/border-styles-vertical-lr-mixed.html: Added.
* fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt: Added.
* fast/writing-mode/border-styles-vertical-rl-mixed.html: Added.
* fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
* fast/writing-mode/vertical-baseline-alignment-mixed.html: Added.
* fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
* fast/writing-mode/vertical-lr-replaced-selection-mixed.html: Added.
* fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
* fast/writing-mode/vertical-rl-replaced-selection-mixed.html: Added.
* LayoutTests/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:

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

4 months ago[iOS] ASSERTION FAILURE: !isMissingPostLayoutData in WebKit::EditorState::postLayoutD...
dbates@webkit.org [Wed, 25 Mar 2020 16:50:27 +0000 (16:50 +0000)]
[iOS] ASSERTION FAILURE: !isMissingPostLayoutData in WebKit::EditorState::postLayoutData()
https://bugs.webkit.org/show_bug.cgi?id=199960
<rdar://problem/53323966>

Reviewed by Simon Fraser.

Source/WebKit:

Refactor the computation of editor state so that we can request that a layout be performed
each time we compute the editor state as part of asking the UI process to interpret a key
event. The full (read: after layout) editor state is needed for UIKit to perform a deletion
because UIKit wants to know how many characters are before the selection. Otherwise, we hit
an assert due to the fact the last editor state sent (when the Web process asked the UI process
to interpret the key) is missing layout data.

The refactoring also moves the Cocoa-common code out of the platform-independent WebPage.cpp
file into WebPageCocoa.mm.

One side effect of the refactoring is that we no longer allow the platformEditorState() function
to override the isMissingPostLayoutData bit. Currently it can even though the calling code, the
platform independent code (PIE) in WebPage, may have attached layout data. Now the PIE code sets
this bit if it attached layout data and the platformEditorState() function only attaches more
layout data if that bit is set. platformEditorState() never unsets that bit (i.e. sets isMissingPostLayoutData
to true).

The patch also removes m_isEditorStateMissingPostLayoutData in WebPage.h. This instance variable
has been unused since <https://trac.webkit.org/changeset/221064/webkit>. Also we haven't been using
IncludePostLayoutDataHint::No since the last reference to it was removed in <https://trac.webkit.org/changeset/244494/webkit>.

I also renamed platformEditorState() to getPlatformEditorState() since it has an out argument.

Test: editing/deleting/ios/backspace-last-character.html

* Shared/EditorState.h:
* UIProcess/API/glib/WebKitEditorState.cpp:
(webkitEditorStateCreate): Initialize _WebKitEditorStatePrivate::typingAttributes to WEBKIT_EDITOR_TYPING_ATTRIBUTE_NONE.
* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::getPlatformEditorStateCommon const): Added. Moved Cocoa-common code from WebPage.cpp to here.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState const): Move Cocoa-common code to WebPageCocoa.mm. Change enum to
track whether a layout should be performed. Keep the current behavior of only including post layout
data if the frame view does not need a layout. This behavior is encoded in the enumerator ShouldPerformLayout::Default.
which is the default argument value for the argument shouldPerformLayout.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::platformNeedsLayoutForEditorState const): Added. Non-Cocoa port implementation
that returns false.
* WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::getPlatformEditorState const): Early return if isMissingPostLayoutData is true.
(WebKit::WebPage::platformEditorState const): Deleted.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformNeedsLayoutForEditorState const): Added. Keep the current behavior of
performing a layout if we have a composition or a hardware keyboard is attached.
(WebKit::WebPage::getPlatformEditorState const): Call platformEditorStateCommon(). Bail out early
if isMissingPostLayoutData is true.
(WebKit::WebPage::handleEditingKeyboardEvent): The important part of this patch. Request a layout
when computing the editor state that we will send to the UI process.
(WebKit::WebPage::platformEditorState const): Deleted.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getPlatformEditorState const): Call platformEditorStateCommon(). Bail out early
if isMissingPostLayoutData is true.
(WebKit::WebPage::platformEditorState const): Deleted.
* WebProcess/WebPage/playstation/WebPagePlayStation.cpp:
(WebKit::WebPage::getPlatformEditorState const): Update as needed.
(WebKit::WebPage::platformEditorState const): Deleted.
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::getPlatformEditorState const): Update as needed.
(WebKit::WebPage::platformEditorState const): Deleted.

LayoutTests:

Add a test to ensure we do not assert when using the software keyboard to type a character
into a <textarea> and then delete it.

* TestExpectations: Skip tests in editing/deleting/ios on all platforms.
* editing/deleting/ios/backspace-last-character-expected.txt: Added.
* editing/deleting/ios/backspace-last-character.html: Added.
* platform/ios/TestExpectations: Unskip tests in editing/deleting/ios on iOS.

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

4 months agoUse ENABLE_WEBXR to guard WebXR IDL files in CMakeLists.txt
svillar@igalia.com [Wed, 25 Mar 2020 16:32:00 +0000 (16:32 +0000)]
Use ENABLE_WEBXR to guard WebXR IDL files in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=209536

Reviewed by Darin Adler.

* CMakeLists.txt: replaced ENABLE_WEBGL by ENABLE_WEBXR.

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

4 months agoApp-bound domain checks should provide more debugging details at script evaluation...
katherine_cheney@apple.com [Wed, 25 Mar 2020 16:29:54 +0000 (16:29 +0000)]
App-bound domain checks should provide more debugging details at script evaluation sites
https://bugs.webkit.org/show_bug.cgi?id=209521
<rdar://problem/60837954>

Reviewed by Chris Dumez.

Source/WebCore:

* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeScriptInWorld):
Return makeUnexpected object with an error message instead of null to
provide more details as to why the executeScriptInWorld()
call was not completed. Also add console logging and release logging.

* page/Frame.cpp:
(WebCore::Frame::injectUserScriptImmediately):
There is no option to return an exception here, so this patch adds
console logging and release logging.

Source/WebKit:

Return an exception because that option is available here, and also add
console and release logging for consistency across app-bound domain checks.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScript):

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