Timeline



Mar 5, 2021:

11:52 PM Changeset in webkit [274032] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

[GPU Process] Tests under imported/blink/fast/canvas are now fixed by r273956
https://bugs.webkit.org/show_bug.cgi?id=222341

Reviewed by Said Abou-Hallawa.

  • gpu-process/TestExpectations:
10:33 PM Changeset in webkit [274031] by Wenson Hsieh
  • 8 edits in trunk/Source

[iOS] Implement additional accessibility support for image overlays
https://bugs.webkit.org/show_bug.cgi?id=222811
<rdar://problem/73203775>

Reviewed by Tim Horton and Devin Rousso.

Source/WebCore:

Add a helper method to check whether a given Node is a text node inside an image overlay. See WebKit ChangeLog
for more detail.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::isImageOverlayText):

  • html/HTMLElement.h:

Source/WebKit:

Adds additional support for accessible image extraction. See below for more details.

  • UIProcess/ios/WKContentViewInteraction.h:

(WebKit::SuppressInteractionToken::SuppressInteractionToken): Deleted.
(WebKit::SuppressInteractionToken::~SuppressInteractionToken): Deleted.

Remove SuppressInteractionToken, along with its only use as a member on WKContentView. This was used to
temporarily suppress the image extraction interaction when editing, but is now no longer necessary, since we're
removing all dependence on this interaction object.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setIsEditable:]):

Remove _suppressImageExtractionToken.

(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

There's no need to cancel the regular text interaction in favor of the image extraction interaction after this
patch, since the former will be used for both. However, we do need to temporarily suppress regular text
interaction while image extraction is still pending, to avoid prematurely selecting the entire image element.

To do this, we keep track of the element pending image extraction (_elementPendingImageExtraction), and avoid
allowing text interactions to begin if we're over this exact element.

(-[WKContentView _singleTapIdentified:]):

We don't need to explicitly cancel the image extraction interaction on single tap anymore; this behavior will
automatically fall out of using default text interactions for image extraction.

(-[WKContentView _didStartProvisionalLoadForMainFrame]):
(-[WKContentView _dragInteraction:prepareForSession:completion:]):

Remove explicit image extraction cancellation here as well, and instead bail from the drag only if we're about
to proceed with the image extraction gesture (which is indicated by the argument to the completion handler).
See comment below.

(-[WKContentView _doAfterPendingImageExtraction:]):

Add an enum flag to the completion handler block here, to determine whether or not we'll want to immediately
proceed with image extraction. The value of this flag will be determined by the hit-test after updating the page
with image extraction results in WebPage::updateWithImageExtractionResult.

(-[WKContentView _invokeAllActionsToPerformAfterPendingImageExtraction:]):
(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):
(-[WKContentView _invokeAllActionsToPerformAfterPendingImageExtraction]): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateWithImageExtractionResult):

Remove a FIXME and implement hit-testing logic, to return whether or not the given location hit-tests to the
image overlay we've just injected.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setFocusedFrameBeforeSelectingTextAtLocation):
(WebKit::elementPositionInformation):

Avoid extracting image data for a position information request, if the hit-tested node is actually a text node
in an image overlay, instead of an image.

(WebKit::selectionPositionInformation):
(WebKit::WebPage::positionInformation):

Allow text interactions to begin in user-agent shadow roots. This matches behavior on macOS, and was
(presumably) initially disallowed on iOS to avoid activating the editable text interaction
(UIWKTextInteractionAssistant), as opposed to block text selection interactions, when long pressing text
inside textareas and text fields. However, since we only use the normal text interaction assistant now for both
non-editable and editable text, this distinction no longer matters.

7:28 PM Changeset in webkit [274030] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, suppress warning as it is done in DFGOperations.cpp

We are intentionally using this feature to reduce size of JIT memory.

  • dfg/DFGOSRExit.cpp:
7:28 PM Changeset in webkit [274029] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Inline isDisabledFormControl() in isDisabledOrReadOnly() by making it final rather than duplicating code
https://bugs.webkit.org/show_bug.cgi?id=222783

Reviewed by Simon Fraser.

Inline isDisabledFormControl into isDisabledOrReadOnly by making it final and defining in the header file
instead of manually duplicating the code as done in r272299.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::isDisabledFormControl const): Deleted.

  • html/HTMLFormControlElement.h:

(WebCore::HTMLFormControlElement::isDisabledFormControl const): Moved the definition here.
(WebCore::HTMLFormControlElement::isDisabledOrReadOnly const): Call isDisabledFormControl instead of
duplicating the code as done in r272299.

7:14 PM Changeset in webkit [274028] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Replaced and non-replaced inline level box should not be called inline boxes.
https://bugs.webkit.org/show_bug.cgi?id=222817

Reviewed by Darin Adler.

Not every inline level box is an inline box (but every inline box is an inline level box).

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
(WebCore::Layout::Line::appendReplacedInlineLevelBox):
(WebCore::Layout::Line::appendNonReplacedInlineBox): Deleted.
(WebCore::Layout::Line::appendReplacedInlineBox): Deleted.

  • layout/inlineformatting/InlineLine.h:
6:56 PM Changeset in webkit [274027] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[IPC Hardening] Protect against bad navigationID in WebPageProxy::didDestroyNavigation()
https://bugs.webkit.org/show_bug.cgi?id=222842
<rdar://problem/75119560>

Reviewed by Darin Adler.

  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didDestroyNavigation):

6:55 PM Changeset in webkit [274026] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Potential crash under NotificationPermissionRequestManagerProxy::invalidateRequests()
https://bugs.webkit.org/show_bug.cgi?id=222841

Reviewed by Darin Adler.

Make sure we copy the HashMap before iterating over it and calling deny() on the requests.

  • UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:

(WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):

6:26 PM Changeset in webkit [274025] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

CanvasRenderingContext2DBase::canDrawTextWithParams() needs to resolve styles before using the drawingContext
https://bugs.webkit.org/show_bug.cgi?id=221257
<rdar://problem/73878095>

Reviewed by Ryosuke Niwa.

Simply call fontProxy() (which internally resolves styles) before calling drawingContext().

Test: fast/text/canvas-synchronous-events.html

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::canDrawTextWithParams):

6:25 PM Changeset in webkit [274024] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Simplify OSRExit side state materialization
https://bugs.webkit.org/show_bug.cgi?id=222648

Reviewed by Keith Miller.

Currently, JIT probe with lambda function has memory leaking issue. So we must not use it in production code.
To avoid the future use, we rename probe to probeDebug.

And to avoid using probe function in OSR exit side state materialization, we simplify the OSRExit side state materialization code,
and making it just a function call. To achieve that, we materialize exit values into scratch buffer before restoring them to
the stack. This aligns DFG to what FTL is doing. And DFG and FTL can use the same materialization operation function.

Caio helped me to fix 32bit issue in DFG.

  • assembler/MacroAssembler.cpp:

(JSC::MacroAssembler::probeDebug):
(JSC::MacroAssembler::probe): Deleted.

  • assembler/MacroAssembler.h:
  • assembler/testmasm.cpp:

(JSC::testClearBits64WithMask):
(JSC::testClearBits64WithMaskTernary):
(JSC::testShiftAndAdd):
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):
(JSC::testProbePreservesGPRS):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesProgramCounter):
(JSC::testProbeModifiesStackValues):

  • b3/air/testair.cpp:
  • dfg/DFGOSRExit.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGOSRExit.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

6:07 PM Changeset in webkit [274023] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[Win] Fix compile error
https://bugs.webkit.org/show_bug.cgi?id=222802
<rdar://problem/75052309>

Reviewed by Dean Jackson.

Declare CTFontTransformOptions if associated header file has not been included.

  • pal/spi/win/CoreTextSPIWin.h:
5:23 PM Changeset in webkit [274022] by Chris Dumez
  • 10 edits in trunk/Source

Update ApplicationCacheStorage::originsWithCache() to return a HashSet<SecurityOriginData> instead of a Vector<Ref<SecurityOrigin>>
https://bugs.webkit.org/show_bug.cgi?id=222828

Reviewed by Darin Adler.

Update ApplicationCacheStorage::originsWithCache() to return a HashSet<SecurityOriginData> instead of a Vector<Ref<SecurityOrigin>>.
Using a HashSet makes sure we do not return duplicates (which do occur as per ApplicationCacheStorage implementation) and makes typing
more consistent with other similar storage functions. Using SecurityOriginData is more lightweight and sufficient for our use cases.
It also takes care of a FIXME comment in WebsiteDataStore::fetchDataAndApply about switching to SecurityOriginData.

Source/WebCore:

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::originsWithCache):
(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):
(WebCore::ApplicationCacheStorage::diskUsageForOrigin):

  • loader/appcache/ApplicationCacheStorage.h:

Source/WebKit:

This patch also updates WebsiteDataStore::fetchDataAndApply() to crossThreadCopy() the securityOriginData before sending them from
the data store queue to the main thread. The previous code as sending SecurityOrigins and WebsiteData to the main thread without
any isolated copy, which was fragile and would not have been thread-safe if ApplicationCacheStorage::originsWithCache() had cached
the origins it returned for example.

Also update WebsiteDataStore::removeData() to make sure we crossThreadCopy() the origins before sending them from the main thread
to the data store queue. This code did not look thread-safe.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageClearApplicationCacheForOrigin):
(WKBundlePageGetAppCacheUsageForOrigin):
(WKBundlePageCopyOriginsWithApplicationCache):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache diskUsageForOrigin:]):
(+[WebApplicationCache deleteCacheForOrigin:]):
(+[WebApplicationCache originsWithCache]):

  • WebCoreSupport/WebApplicationCacheQuotaManager.mm:

(-[WebApplicationCacheQuotaManager usage]):

5:03 PM Changeset in webkit [274021] by Chris Dumez
  • 15 edits in trunk/Source

Make HTMLMediaElement::clearMediaCacheForOrigins() take in SecurityOriginData objects
https://bugs.webkit.org/show_bug.cgi?id=222832

Reviewed by Geoffrey Garen.

Make HTMLMediaElement::clearMediaCacheForOrigins() take in SecurityOriginData instead of
SecurityOrigin objects. The call site has SecurityOriginData objects and there was a FIXME
comment about switching clearMediaCacheForOrigins() to SecurityOriginData.

SecurityOriginData also has the benefits of being lighter weight, and it can be sent over
IPC, while being sufficient for our use cases here.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::clearMediaCacheForOrigins):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::clearMediaCacheForOrigins):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerFactory::clearMediaCacheForOrigins const):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::clearMediaCacheForOrigins):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::clearMediaCacheForOrigins):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
4:11 PM Changeset in webkit [274020] by rniwa@webkit.org
  • 5 edits in trunk/LayoutTests

Add leak tests for Range and StaticRange
https://bugs.webkit.org/show_bug.cgi?id=222786

Reviewed by Dean Jackson.

Added test cases for Range and StaticRange.

  • fast/dom/reference-cycle-leaks-expected.txt
  • fast/dom/reference-cycle-leaks.html:
  • platform/ios-wk2/fast/dom/reference-cycle-leaks-expected.txt:
  • platform/mac-wk2/fast/dom/reference-cycle-leaks-expected.txt:
4:10 PM Changeset in webkit [274019] by Chris Dumez
  • 15 edits in trunk/Source

Update HTMLMediaElement::originsInMediaCache() to return SecurityOriginData instead of SecurityOrigin objects
https://bugs.webkit.org/show_bug.cgi?id=222820

Reviewed by Darin Adler.

Update HTMLMediaElement::originsInMediaCache() to return SecurityOriginData instead of SecurityOrigin
objects. The caller only needs SecurityOriginData objects and there was a FIXME comment about switching
to SecurityOriginData. SecurityOriginData is beneficial here because it is a smaller object and it
can be easily passed over IPC.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::originsInMediaCache):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::originsInMediaCache):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerFactory::originsInMediaCache const):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::originsInMediaCache):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache):

Source/WebKit:

Also update the code at WebsiteDataStore::fetchDataAndApply() to crossThreadCopy() the originDatas
before sending them to the main thread. The previous code was passing both the SecurityOrigins
and the WebsiteDatas from the data store queue to the main thread without isolated copy, which was
fragile. For example, if HTMLMediaElement::originsInMediaCache() was caching the security origins
it returned, the code would not have been thread safe.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::originsInMediaCache):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::originsInMediaCache):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
4:08 PM Changeset in webkit [274018] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Use WTF::DestructionThread::MainRunLoop for CallbackAggregators in WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=222831

Reviewed by Geoffrey Garen.

Use WTF::DestructionThread::MainRunLoop for CallbackAggregators in WebsiteDataStore to make sure
the CallbackAggregators get destroyed on the main thread. Previously, the code was letting the
CallbackAggregators get destroyed on any thread and then dispatching to the main thread in their
destructor their WebsiteDataStore data member to make sure it gets destroyed on the main thread.

It is simpler and safer to have the CallbackAggregators get destroyed on the main thread.

Also add threading assertions whenever the pendingCallbacks is used since this counter is not
atomic.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

4:08 PM Changeset in webkit [274017] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Fix potential thread safety issue in WebsiteDataStore::fetchDataAndApply()
https://bugs.webkit.org/show_bug.cgi?id=222830

Reviewed by Geoffrey Garen.

The previous code was passing SecurityOriginData objects from the data store queue to the main
thread without isolated copy. This code would not be thread-safe if the function we got the
origins from would keep a copy of the origins (e.g. caching). To make this more robust from a
thread-safety standpoint, we now crossThreadCopy() to origins before passing them to the main
thread.

I also updated these to construct the WebsiteData on the data store queue instead of the main
thread for consistency with other cases inside WebsiteDataStore::fetchDataAndApply().

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

4:02 PM Changeset in webkit [274016] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Change test to not ASSERT in Debug
https://bugs.webkit.org/show_bug.cgi?id=221442

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-05
Reviewed by Ryosuke Niwa.

Change test to not ASSERT in Debug.

  • ipc/pasteboard-write-custom-data.html:
3:49 PM Changeset in webkit [274015] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

[Payment Request] expose dispatchIfShowing in MockPaymentCoordinator.cpp for WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=222833
<rdar://problem/74525927>

Reviewed by Wenson Hsieh.

  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::dispatchIfShowing): added.
(WebCore::dispatchIfShowing): Deleted.

3:47 PM Changeset in webkit [274014] by Russell Epstein
  • 5 edits in branches/safari-612.1.5-branch

Cherry-pick r273997. rdar://problem/75115235

Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809

Reviewed by Michael Catanzaro.

Source/WebKit:

There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessTermination):
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: (TEST):

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

3:47 PM Changeset in webkit [274013] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273866. rdar://problem/75115229

Nulllptr crash in DeleteSelectionCommand::handleGeneralDelete()
https://bugs.webkit.org/show_bug.cgi?id=222681

Reviewed by Wenson Hsieh.

Skip the loop when m_downstreamEnd.isNull() or im_downstreamEnd.isOrphan() is true
to avoid dereferencing a nullptr.

No new tests since we don't have any reproduction for this crash,
and it's not obvious how we're getting into that state.

  • editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::handleGeneralDelete):

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

3:29 PM Changeset in webkit [274012] by Devin Rousso
  • 8 edits in trunk

[Payment Request] if requestShipping: false then we should not show any PaymentShippingOption in the Apple Pay sheet
https://bugs.webkit.org/show_bug.cgi?id=222810
<rdar://problem/74550889>

Reviewed by Andy Estes and Tim Horton.

Source/WebCore:

When constructing a PaymentRequest, the spec has logic for ensuring that shippingOptions
is an array by overriding [[details]].shippingOptions if requestShipping: true [1]. It
also won't update [[details]].shippingOptions unless update.ShippingOptions is provided
and requestShipping: true [2]. Currently, this means that if requestShipping: false, we
don't perform any validation of [[details]].shippingOptions and even provide that data to
the Apple Pay sheet. Since there is no way to look at the selected (or even the list of)
shipping option without requestShipping: true, we now clear [[details]].shippingOptions
if requestShipping: false.

[1]: https://www.w3.org/TR/payment-request/#constructor
[2]: https://www.w3.org/TR/payment-request/#update-a-paymentrequest-s-details-algorithm

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::checkAndCanonicalizeDetails):

LayoutTests:

  • http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html:
  • http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt:
  • http/tests/paymentrequest/updateWith-shippingOptions.https.html:
  • http/tests/ssl/applepay/PaymentRequest.https.html:
  • http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
3:07 PM Changeset in webkit [274011] by commit-queue@webkit.org
  • 9 edits
    4 moves in trunk

[GTK] Clean up GTK-specific text checker stuff
https://bugs.webkit.org/show_bug.cgi?id=222818

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-05
Reviewed by Don Olmstead.

Source/WebKit:

This moves the GTK-specific classes WebTextChecker and WebTextCheckerClient into
GTK-specific directories.

This also moves most of WKTextChecker, except for WKTextCheckerSetTestingMode, which is
cross-platform. This is not quite how we normally do it -- normally we try to have one
cross-platform header with platform-specific conditionals and only separate out platform-
specific source files -- but in this case the header is almost entirely GTK-specific, so it
makes sense to do it this way.

This also exposes WKTextCheckerSetContinuousSpellCheckingEnabled and uses it in
UIScriptControllerGtk, which is needed for bug #181916.

This code is all pretty messy, especially the WKTextCheckerClient (which actually has its
own WKTextCheckerSetContinuousSpellCheckingEnabled!), but now it's a *platform-specific*
mess, which is a small improvement.

  • SourcesGTK.txt:
  • UIProcess/API/C/WKTextChecker.cpp:

(WKTextCheckerSetTestingMode):
(WKTextCheckerSetClient): Deleted.
(WKTextCheckerContinuousSpellCheckingEnabledStateChanged): Deleted.
(WKTextCheckerGrammarCheckingEnabledStateChanged): Deleted.
(WKTextCheckerCheckSpelling): Deleted.
(WKTextCheckerChangeSpellingToWord): Deleted.

  • UIProcess/API/C/WKTextChecker.h:
  • UIProcess/API/C/gtk/WKTextCheckerGtk.cpp:

(WKTextCheckerSetClient):
(WKTextCheckerContinuousSpellCheckingEnabledStateChanged):
(WKTextCheckerGrammarCheckingEnabledStateChanged):
(WKTextCheckerCheckSpelling):
(WKTextCheckerChangeSpellingToWord):
(WKTextCheckerSetContinuousSpellCheckingEnabled):

  • UIProcess/API/C/gtk/WKTextCheckerGtk.h:
  • UIProcess/gtk/WebTextChecker.cpp: Renamed from Source/WebKit/UIProcess/WebTextChecker.cpp.

(WebKit::WebTextChecker::singleton):
(WebKit::WebTextChecker::WebTextChecker):
(WebKit::WebTextChecker::setClient):
(WebKit::updateStateForAllContexts):
(WebKit::WebTextChecker::continuousSpellCheckingEnabledStateChanged):
(WebKit::WebTextChecker::grammarCheckingEnabledStateChanged):
(WebKit::WebTextChecker::checkSpelling):
(WebKit::WebTextChecker::changeSpellingToWord):

  • UIProcess/gtk/WebTextChecker.h: Renamed from Source/WebKit/UIProcess/WebTextChecker.h.

(WebKit::WebTextChecker::client):

  • UIProcess/gtk/WebTextCheckerClient.cpp: Renamed from Source/WebKit/UIProcess/WebTextCheckerClient.cpp.

(WebKit::WebTextCheckerClient::continuousSpellCheckingAllowed):
(WebKit::WebTextCheckerClient::continuousSpellCheckingEnabled):
(WebKit::WebTextCheckerClient::setContinuousSpellCheckingEnabled):
(WebKit::WebTextCheckerClient::grammarCheckingEnabled):
(WebKit::WebTextCheckerClient::setGrammarCheckingEnabled):
(WebKit::WebTextCheckerClient::uniqueSpellDocumentTag):
(WebKit::WebTextCheckerClient::closeSpellDocumentWithTag):
(WebKit::WebTextCheckerClient::checkSpellingOfString):
(WebKit::WebTextCheckerClient::checkGrammarOfString):
(WebKit::WebTextCheckerClient::spellingUIIsShowing):
(WebKit::WebTextCheckerClient::toggleSpellingUIIsShowing):
(WebKit::WebTextCheckerClient::updateSpellingUIWithMisspelledWord):
(WebKit::WebTextCheckerClient::updateSpellingUIWithGrammarString):
(WebKit::WebTextCheckerClient::guessesForWord):
(WebKit::WebTextCheckerClient::learnWord):
(WebKit::WebTextCheckerClient::ignoreWord):

  • UIProcess/gtk/WebTextCheckerClient.h: Renamed from Source/WebKit/UIProcess/WebTextCheckerClient.h.

Tools:

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:
  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::setContinuousSpellCheckingEnabled):

2:56 PM Changeset in webkit [274010] by commit-queue@webkit.org
  • 4 edits in trunk

[GTK] Remove ADD_WHOLE_ARCHIVE_TO_LIBRARIES
https://bugs.webkit.org/show_bug.cgi?id=222826

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-05
Reviewed by Don Olmstead.

.:

I don't know why it's no longer needed, but GTK links without it, so it can go away.

  • Source/cmake/OptionsGTK.cmake:

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
2:34 PM Changeset in webkit [274009] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitscmpy] Standardize timezone of mock svn server (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=222762
<rdar://problem/75058478>

Unreviewed follow-up fix.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:

(Svn.request): Only import dateutils when using it.

2:31 PM Changeset in webkit [274008] by Alan Bujtas
  • 4 edits
    2 adds in trunk

word-wrap/overflow-wrap "overwrite" hyphens
https://bugs.webkit.org/show_bug.cgi?id=222548
<rdar://problem/75061741>

Reviewed by Antti Koivisto.

Source/WebCore:

According to https://drafts.csswg.org/css-text-3/#overflow-wrap-property

"overflow-wrap/word-wrap property specifies whether the UA may break at otherwise disallowed points within a line to prevent overflow,
when an otherwise-unbreakable string is too long to fit within the line box."

which means that in case of "hyphen: auto", we should only try to break the content at arbitrary position when there's no prior hyphenation opportunity.
This patch turns WordBreakRule into and OptionSet so that we can put both the hyphenation and arbitrary position break runles in there and prioritize them
in tryBreakingTextRun (check for the hyphenation value first/break the content at hyphenation position and do arbitrary position only
if no hyphenation opportunities are found).

Test: fast/inline/hyphenation-when-overflow-wrap-is-break-word.html

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/inlineformatting/InlineContentBreaker.h:

LayoutTests:

  • fast/inline/hyphenation-when-overflow-wrap-is-break-word-expected.html: Added.
  • fast/inline/hyphenation-when-overflow-wrap-is-break-word.html: Added.
2:28 PM Changeset in webkit [274007] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r269627?): ASSERTION FAILED: &layoutState().establishedFormattingState(layoutBox.formattingContextRoot()) == this in WebCore::Layout::FormattingState::boxGeometry
https://bugs.webkit.org/show_bug.cgi?id=219905

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Skip this test on debug since it frequently asserts.
1:37 PM Changeset in webkit [274006] by Russell Epstein
  • 1 copy in tags/Safari-612.1.6.1

Tag Safari-612.1.6.1.

1:35 PM Changeset in webkit [274005] by Russell Epstein
  • 8 edits in branches/safari-612.1.6-branch/Source

Versioning.

WebKit-7612.1.6.1

1:21 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
1:21 PM Changeset in webkit [274004] by Russell Epstein
  • 1 copy in tags/Safari-612.1.6

Tag Safari-612.1.6.

1:18 PM Changeset in webkit [274003] by Russell Epstein
  • 1 delete in tags/Safari-612.1.6

Delete tag.

1:16 PM Changeset in webkit [274002] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] fast/selectors/selection-window-inactive-text-shadow.html flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=221011

Uneviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass ImageOnlyFailure until test is fixed.
1:15 PM Changeset in webkit [274001] by Russell Epstein
  • 1 copy in branches/safari-612.1.6-branch

New branch.

1:11 PM Changeset in webkit [274000] by Russell Epstein
  • 1 copy in tags/Safari-612.1.6

Tag Safari-612.1.6.

1:11 PM Changeset in webkit [273999] by Jonathan Bedard
  • 6 edits in trunk/Tools

[run-webkit-tests] Delete old results server code
https://bugs.webkit.org/show_bug.cgi?id=222393
<rdar://problem/74722220>

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._end_test_run): Remove upload code.
(Manager._save_json_files): Renamed from _upload_json_files.
(Manager._upload_json_files): Renamed to _save_json_files.
(Manager.upload_results): Deleted.

  • Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:

(JSONLayoutResultsGenerator.init): Remove buildbot arguments.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(JSONResultsGenerator):
(JSONResultsGenerator.init): Remove buildbot arguments.
(JSONResultsGenerator.get_json): Remove concept of builder.
(JSONResultsGenerator.upload_json_files): Deleted.
(JSONResultsGenerator._get_svn_revision): Deleted.
(JSONResultsGenerator._get_archived_json_results): Deleted.
(JSONResultsGenerator._insert_generic_metadata): Deleted.
(JSONResultsGenerator._convert_json_to_current_version): Deleted.
(JSONResultsGenerator._convert_tests_to_trie): Deleted.
(JSONResultsGenerator._remove_items_over_max_number_of_builds): Deleted.
(JSONResultsGenerator._normalize_results_json): Deleted.
(JSONResultsGenerator._is_results_all_of_type): Deleted.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:

(JSONGeneratorTest.setUp):
(JSONGeneratorTest._test_json_generation):
(JSONGeneratorTest._verify_json_results):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Remove arguments used to upload to old results database.

1:09 PM Changeset in webkit [273998] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.7

12:53 PM Changeset in webkit [273997] by Chris Dumez
  • 5 edits in trunk

Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809

Reviewed by Michael Catanzaro.

Source/WebKit:

There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessTermination):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(TEST):

12:49 PM Changeset in webkit [273996] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Fix potential thread-safety issue in WebsiteDataStore::fetchDataAndApply()
https://bugs.webkit.org/show_bug.cgi?id=222807

Reviewed by Geoffrey Garen.

Fix an issue when WebsiteDataStore::fetchDataAndApply() failed to create an isolated
copy of the WebsiteDataRecords before passing them to its internal dispatch queue.
Also add more threading assertions to help catch issues since we have crashes in this
area of the code.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::isolatedCopy const):

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

12:47 PM Changeset in webkit [273995] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the build with recent SDKs.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController loadView]):

12:24 PM Changeset in webkit [273994] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ iOS/macOS wk2 ] imported/w3c/web-platform-tests/webrtc/protocol/candidate-exchange.https.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222808

Uneviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Updating test expectations as Pass Failure unti test can be fixed.
  • platform/mac-wk2/TestExpectations: Updating test expectations as Pass Failure unti test can be fixed.
12:00 PM Changeset in webkit [273993] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Don't open a new window in MiniBrowser if already opening a file from the command line
https://bugs.webkit.org/show_bug.cgi?id=222776

Patch by Cameron McCormack <Cameron McCormack> on 2021-03-05
Reviewed by Dean Jackson.

  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate applicationDidFinishLaunching:]):
(-[BrowserAppDelegate application:openFile:]):

11:54 AM Changeset in webkit [273992] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: border color of "grid" badge should match color of corresponding outline
https://bugs.webkit.org/show_bug.cgi?id=222747
<rdar://problem/75042342>

Reviewed by BJ Burg.

  • UserInterface/Views/DOMTreeElement.css:

(.tree-outline.dom .badge-css-grid):
Drive-by: decrease the font size and align the badge in the middle of the selected tree element (i.e. keep 1px space
above and below the badge).

(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .badge-css-grid):
(@media (prefers-color-scheme: dark) .tree-outline.dom .badge-css-grid):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._updateGridBadgeStatus):
For text and background color, only use the hue of the selected color to keep "grid" text always readable.

11:51 AM Changeset in webkit [273991] by Ruben Turcios
  • 11 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273935. rdar://problem/75101642

"precustomized" state of custom elements can become HTMLUnknownElement
https://bugs.webkit.org/show_bug.cgi?id=221652

Reviewed by Darin Adler.

The bug was caused by createJSHTMLWrapper in JSHTMLElementWrapperFactory.cpp relying on
!isCustomElementUpgradeCandidate() to create HTMLUnknownElement as JS wrapper of the element.

This is problematic after r266269 since that change re-purposes CustomElementState::Failed
on a custom element as "precustomized" state instead of introducing another enum value in
CustomElementState as RareDataBitFields has no more bits available.

This patch fixes the problem by introducing a new NodeFlag::IsUnknownElement and using that
to check whether JSHTMLUnknownElement should be created for a given element or not. Note that
HTMLElement had a virtual function, isHTMLUnknownElement, to check this condition but invoking
a virtual function proved to incur too much runtime cost.

  • dom/Node.h: (WebCore::Node::isUnknownElement const): Added. (WebCore::Node::isHTMLUnknownElement const): Added. (WebCore::Node::isSVGUnknownElement const): Added. (WebCore::Node::isMathMLUnknownElement const): Added. (WebCore::Node::NodeFlag): Added NodeFlag::IsUnknownElement.
  • dom/make_names.pl: (printWrapperFactoryCppFile): Treat the element as HTMLUnknownElement only if isUnknownElement returns true instead of isCustomElementUpgradeCandidate returning false.
  • html/HTMLElement.h: (WebCore::HTMLElement::isHTMLUnknownElement const): Deleted.
  • html/HTMLUnknownElement.h:
  • mathml/MathMLElement.cpp: (WebCore::MathMLElement::MathMLElement): Added ConstructionType as an argument.
  • mathml/MathMLElement.h:
  • mathml/MathMLUnknownElement.h: (WebCore::MathMLUnknownElement::MathMLUnknownElement): Set NodeFlag::IsUnknownElement.
  • svg/SVGElement.cpp: (WebCore::SVGElement::SVGElement): Added ConstructionType as an argument.
  • svg/SVGElement.h:
  • svg/SVGUnknownElement.h: (WebCore::SVGUnknownElement::SVGUnknownElement): Set NodeFlag::IsUnknownElement.

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

11:51 AM Changeset in webkit [273990] by Ruben Turcios
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273543. rdar://problem/75101709

REGRESSION (r269824): macCatalyst WKWebView shows chunks of other tiles in the middle of content
https://bugs.webkit.org/show_bug.cgi?id=222460
<rdar://problem/74102753>

Reviewed by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): Reinstate some code that was accidentally deleted in r269824 that ensures that we do not use an in-use IOSurface as our front buffer, so that we don't paint into it while it's being composited in the render server.

Also, add some comments, since this code is all a little confusing
with its fronts and backs.

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

11:51 AM Changeset in webkit [273989] by Ruben Turcios
  • 2 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273498. rdar://problem/75101801

[iOS] Crash when playing Dolby Atmos audio tracks with AVAudioTimePitchAlgorithmTimeDomain
https://bugs.webkit.org/show_bug.cgi?id=222420
<rdar://74612532>

Reviewed by Eric Carlson.

CoreAudio throws an assertion when using the TimeDomain pitch-correction algorithm on tracks
with > 2 channels. To work around this assertion for now, only set the pitch-correction
algorithm when the playbackRate is set to a non 0 or 1 value.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::audioTimePitchAlgorithmForMediaPlayerPitchCorrectionAlgorithm): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPreservesPitch): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPitchCorrectionAlgorithm): (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange):

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

11:51 AM Changeset in webkit [273988] by Ruben Turcios
  • 5 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273286. rdar://problem/75101889

[Cocoa] Send sandbox extensions for Network Extension services in load parameters
https://bugs.webkit.org/show_bug.cgi?id=222284
<rdar://problem/74402532>

Reviewed by Brent Fulgham.

Currently, sandbox extensions for Network Extension services are sent from the UI process to the WebContent process when the
policy decision is made, but that is not soon enough in all cases. They should also be sent as part of the load parameters.

  • Shared/Cocoa/LoadParametersCocoa.mm: (WebKit::LoadParameters::platformEncode const): (WebKit::LoadParameters::platformDecode):
  • Shared/LoadParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::addPlatformLoadParameters):
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):

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

11:49 AM Changeset in webkit [273987] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add python 3 support in send_email
https://bugs.webkit.org/show_bug.cgi?id=222806

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/send_email.py:

(send_email):

11:26 AM Changeset in webkit [273986] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Canvas: drawImage should normalize srcRect before checking if it's empty
https://bugs.webkit.org/show_bug.cgi?id=222774

Reviewed by Dean Jackson.

From 4.12.5.1.14 Drawing images, step 4:

"The source rectangle is the rectangle whose corners are the four
points (sx, sy), (sx+sw, sy), (sx+sw, sy+sh), (sx, sy+sh)."

When a negative height/width is given, e.g. y:100 and height:-50, it
should be treated like the rect with y:50, height: 50 (i.e. normalized), to
avoid FloatRect:isEmpty returning true.

Covered by existing test:

imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.negativedir.html

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

11:19 AM Changeset in webkit [273985] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[GPUP] Test platform/mac/media/encrypted-media/fps-encrypted-event.html times out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221847

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: The test is frequently failing on EWS, so re-add a timeout expectation.
11:12 AM Changeset in webkit [273984] by don.olmstead@sony.com
  • 13 edits in trunk

[CMake] Bump cmake_minimum_required version to 3.12 or later
https://bugs.webkit.org/show_bug.cgi?id=221727
<rdar://problem/74454980>

Reviewed by Konstantin Tokarev.

.:

Updates the minimum version to 3.12. In CMake 3.12 OBJECT library functionality was
expanded to the point where they can successfully be used as a replacement for
--whole-archive within WebKit. The check in JSCOnly for the minimum version before
using hidden visibility was removed accordingly.

  • CMakeLists.txt:
  • Source/cmake/OptionsJSCOnly.cmake:

Source/JavaScriptCore:

Sync cmake_minimum_required version for AppleWin internal builds.

  • CMakeLists.txt:

Source/WebCore:

Sync cmake_minimum_required version for AppleWin internal builds.

  • CMakeLists.txt:

Source/WebKitLegacy:

Sync cmake_minimum_required version for AppleWin internal builds.

  • CMakeLists.txt:

Source/WebKitLegacy/win:

Sync cmake_minimum_required version for AppleWin internal builds.

  • WebKitQuartzCoreAdditions/CMakeLists.txt:

Source/WTF:

Sync cmake_minimum_required version for AppleWin internal builds.

  • CMakeLists.txt:
10:53 AM Changeset in webkit [273983] by Matt Lewis
  • 2 edits in trunk/Tools

Unreviewed Dashboard Fix.

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

10:51 AM Changeset in webkit [273982] by Simon Fraser
  • 3 edits
    2 adds in trunk

sticky position incorrect behavior in table with dir=RTL
https://bugs.webkit.org/show_bug.cgi?id=221624
<rdar://problem/74403616>

Reviewed by Zalan Bujtas.
Source/WebCore:

We use scroll offsets when computing sticky constraints, so we should also use them
when computing layer positions in the scrolling tree.

Test: fast/css/sticky/sticky-in-rtl-overflow.html

  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

LayoutTests:

  • fast/css/sticky/sticky-in-rtl-overflow-expected.html: Added.
  • fast/css/sticky/sticky-in-rtl-overflow.html: Added.
10:34 AM Changeset in webkit [273981] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] Test fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html times out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221794

Reviewed by Dean Jackson.

  • platform/wk2/TestExpectations: Remove expectation now that it passes on the bots.
10:15 AM Changeset in webkit [273980] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Run ews unit-tests with Python 3
https://bugs.webkit.org/show_bug.cgi?id=222800

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunEWSUnitTests):

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests.
10:07 AM Changeset in webkit [273979] by Razvan Caliman
  • 2 edits in trunk/Tools

Mark myself as committer in contributors.json.

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
9:55 AM Changeset in webkit [273978] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Big Sur Wk2 ] imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https.html is flakey text failing
https://bugs.webkit.org/show_bug.cgi?id=221487

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating flakey test expectations to Pass Failure until test can be fixed.
9:43 AM Changeset in webkit [273977] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Refactor CSSPropertyAnimation to specify fewer wrappers and use value() functions
https://bugs.webkit.org/show_bug.cgi?id=222751

Reviewed by Dean Jackson.

We clean up CSSPropertyAnimation by removing a few dedicated wrappers which added little value
over passing in parameters to existing wrappers: PropertyWrapperColor, PropertyWrapperAcceleratedOpacity,
PropertyWrapperAcceleratedTransform, PropertyWrapperScale, PropertyWrapperRotate and PropertyWrapperTranslate
are out. For most of those we introduce the new AcceleratedPropertyWrapper to replace them.

Additionally, there is a value() method that can be used instead of using m_getter in lots of places,
which makes the code much more readable.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::AcceleratedPropertyWrapper::AcceleratedPropertyWrapper):
(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::PropertyWrapperColor::PropertyWrapperColor): Deleted.
(WebCore::PropertyWrapperAcceleratedOpacity::PropertyWrapperAcceleratedOpacity): Deleted.
(WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform): Deleted.

9:38 AM Changeset in webkit [273976] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Correct BitBucket timestamp conversion
https://bugs.webkit.org/show_bug.cgi?id=222766
<rdar://problem/75063548>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py:

(BitBucket.request): Bitbucket timestamps are in milliseconds.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.commit): Bitbucket timestamps are in milliseconds.

9:20 AM Changeset in webkit [273975] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] Test fast/mediastream/media-element-current-time.html fails when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221826

Reviewed by Dean Jackson.

  • platform/mac-wk2/TestExpectations: Remove expectation since the test passes on the bots.
9:16 AM Changeset in webkit [273974] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Transition LineBox::InlineLevelBoxList from a list of std::unique_ptr<InlineLevelBox> to a list of InlineLevelBox objects
https://bugs.webkit.org/show_bug.cgi?id=222761

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::addInlineLevelBox):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::nonRootInlineLevelBoxes):
(WebCore::Layout::LineBox::inlineLevelBoxForLayoutBox):
(WebCore::Layout::LineBox::InlineLevelBox::createAtomicInlineLevelBox):
(WebCore::Layout::LineBox::InlineLevelBox::createInlineBox):
(WebCore::Layout::LineBox::InlineLevelBox::createLineBreakBox):
(WebCore::Layout::LineBox::InlineLevelBox::createGenericInlineLevelBox):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

8:33 AM Changeset in webkit [273973] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Standardize timezone of mock svn server
https://bugs.webkit.org/show_bug.cgi?id=222762
<rdar://problem/75058478>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, add dateutils.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:

(Svn.request): Lock timezone of SVN server.

  • Scripts/webkitpy/init.py: Move dateutils to webkitcorepy.
8:24 AM Changeset in webkit [273972] by Tadeu Zagallo
  • 4 edits
    1 add in trunk

OpGetPrivateName needs to be listed in FOR_EACH_OPCODE_WITH_VALUE_PROFILE
https://bugs.webkit.org/show_bug.cgi?id=222775
<rdar://74982634>

Reviewed by Michael Saboff.

JSTests:

  • stress/private-name-assignment-in-constructor.js: Added.

(Foo):

Source/JavaScriptCore:

Right now valueProfileForBytecodeIndex incorrectly returns null for op_get_private_name.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::valueProfileForBytecodeIndex):

  • bytecode/Opcode.h:
8:20 AM Changeset in webkit [273971] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix after r273966.

  • platform/win/DragImageCGWin.cpp:

(WebCore::scaleDragImage):

8:15 AM Changeset in webkit [273970] by ChangSeok Oh
  • 12 edits
    12 adds in trunk

AVIF decoding support
https://bugs.webkit.org/show_bug.cgi?id=207750

Reviewed by Philippe Normand.

This patch brings an initial support of AVIF image format to the gtk port.
AVIF is a new royalty-free image format derived from the keyframes of AV1 video.
FireFox and Chromium-variant browsers already support it. Its specification can be found
at https://rawcdn.githack.com/AOMediaCodec/av1-avif/67a92add6cd642a8863e386fa4db87954a6735d1/index.html
This patch aims to land a build option for AVIF and a basic decoding ability
for still images by using libavif. Animated AVIF images will be covered later.

.:

  • Source/cmake/FindAVIF.cmake: Added to find libavif.
  • Source/cmake/OptionsGTK.cmake: A build option, USE_AVIF is added.

Source/WebCore:

A mimetype and a decoder for AVIF are newly added. The new tests verify
if an avif image can be decoded and properly rendered. Only the gtk port performs
these tests for now.

Tests: fast/images/avif-as-image.html

fast/images/avif-image-decoding.html

  • PlatformGTK.cmake: Add AVIFImageDecoder.cpp and AVIFImageReader.cpp as build targets
  • platform/MIMETypeRegistry.cpp: avif mimetype added.

(WebCore::MIMETypeRegistry::supportedImageMIMETypes):

  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::create): AVIF file signature added.

  • platform/image-decoders/avif/AVIFImageDecoder.cpp: Added.

(WebCore::AVIFImageDecoder::AVIFImageDecoder):
(WebCore::AVIFImageDecoder::frameBufferAtIndex): Decode a frame of avif image.
The first frame is decoded for now.
(WebCore::AVIFImageDecoder::setFailed):
(WebCore::AVIFImageDecoder::tryDecodeSize): Parses header of avif images.
(WebCore::AVIFImageDecoder::decode):

  • platform/image-decoders/avif/AVIFImageDecoder.h: Added.
  • platform/image-decoders/avif/AVIFImageReader.cpp: Added.

(WebCore::AVIFImageReader::AVIFImageReader):
(WebCore::AVIFImageReader::~AVIFImageReader):
(WebCore::AVIFImageReader::parseHeader): Actual parsing of the header with libavif
(WebCore::AVIFImageReader::decodeFrame): Actual decoding of an avif frame.

  • platform/image-decoders/avif/AVIFImageReader.h: Added.
  • platform/image-decoders/avif/AVIFUniquePtr.h: Added a smart pointer template for avifDecoder.

(WebCore::AVIFPtrDeleter<avifDecoder>::operator() const):

Tools:

  • gtk/install-dependencies: Add dependencies of libavif for jhbuild
  • gtk/jhbuild.modules: Add libavif for jhbuild

LayoutTests:

The new tests verify if an avif image can be decoded and properly rendered.
Only the gtk port performs these tests for now.

  • TestExpectations: Skip avif tests for non-gtk ports
  • fast/images/avif-as-image-expected.html: Added.
  • fast/images/avif-as-image.html: Added.
  • fast/images/avif-image-decoding-expected.txt: Added.
  • fast/images/avif-image-decoding.html: Added.
  • fast/images/resources/green-313x313.avif: Added.
  • platform/gtk/TestExpectations: The gtk port should pass the tests.
8:10 AM Changeset in webkit [273969] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix after r273966.

  • platform/win/DragImageCGWin.cpp:

(WebCore::scaleDragImage):

8:10 AM Changeset in webkit [273968] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix my iOS Simulator build.
https://bugs.webkit.org/show_bug.cgi?id=222041

  • pal/spi/cocoa/AVStreamDataParserSPI.h:

My build couldn't find what CMSampleBufferRef was supposed to mean, so I include CoreMedia.h.
I have no idea why all the bots build successfully.

7:50 AM Changeset in webkit [273967] by eric.carlson@apple.com
  • 21 edits in trunk/Source

[GPU Process] Remote control command should only go to the current NowPlaying session
https://bugs.webkit.org/show_bug.cgi?id=222759
<rdar://problem/75053393>

Reviewed by Jer Noble.

Source/WebCore:

Don't register a remote command listener for every web process, or every remote control
commands will go to every web process. Instead, register a single listener for the
GPU process and route commands to only the current NowPlaying process.

Tested manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Drive-by: SkipForward
and SkipBackwards should seek relative to current time.

  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::setSupportedRemoteCommands): New, pass through to the
command listener.

  • platform/NowPlayingManager.h:
  • platform/RemoteCommandListener.cpp:

(WebCore::RemoteCommandListener::addSupportedCommand): m_registeredCommands -> m_supportedCommands.
(WebCore::RemoteCommandListener::removeSupportedCommand): Ditto.
(WebCore::RemoteCommandListener::setSupportedCommands): Ditto. Schedule update.
(WebCore::RemoteCommandListener::updateSupportedCommands):

  • platform/RemoteCommandListener.h:
  • platform/audio/NowPlayingInfo.h:

(WebCore::NowPlayingInfo::operator== const): Add operator so we can avoid updating
when nothing has changed.
(WebCore::NowPlayingInfo::operator!= const):

  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): Always set string properties
so we don't show stale information after switching to a session that doesn't provide
all of the same properties.
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo): Only update when we have
new state.

  • platform/mac/MediaRemoteSoftLink.h:
  • platform/mac/MediaRemoteSoftLink.mm: Soft link kMRMediaRemoteCommandInfoPreferredIntervalsKey.

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::clearNowPlayingInfo): Track being the active
NowPlaying process.
(WebKit::GPUConnectionToWebProcess::setNowPlayingInfo): Ditto.
(WebKit::GPUConnectionToWebProcess::updateSupportedRemoteCommands): Pass supported
commands and seeking to NowPlayingManager so it can pass them to the remote command
listener.
(WebKit::GPUConnectionToWebProcess::createRemoteCommandListener): We only ever need
one listener.
(WebKit::GPUConnectionToWebProcess::releaseRemoteCommandListener): Ditto.
(WebKit::GPUConnectionToWebProcess::dispatchMessage): Dispatch RemoteRemoteCommandListenerProxy
messages.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteRemoteCommandListenerProxy.cpp:

(WebKit::RemoteRemoteCommandListenerProxy::RemoteRemoteCommandListenerProxy): Don't
create a remote command listener, we only need one for the GPU process.
(WebKit::RemoteRemoteCommandListenerProxy::updateSupportedCommands): New.
(WebKit::RemoteRemoteCommandListenerProxy::didReceiveRemoteControlCommand): Deleted.

  • GPUProcess/media/RemoteRemoteCommandListenerProxy.h:

(WebKit::RemoteRemoteCommandListenerProxy::create):
(WebKit::RemoteRemoteCommandListenerProxy::supportsSeeking const):
(WebKit::RemoteRemoteCommandListenerProxy::supportedCommands const):
(WebKit::RemoteRemoteCommandListenerProxy::identifier const):

  • GPUProcess/media/RemoteRemoteCommandListenerProxy.messages.in:
  • WebProcess/GPU/media/RemoteRemoteCommandListener.cpp:

(WebKit::RemoteRemoteCommandListener::RemoteRemoteCommandListener): Use m_process
instead of calling WebProcess::singleton().
(WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener): Ditto.
(WebKit::RemoteRemoteCommandListener::didReceiveRemoteControlCommand): Use client(),
m_client is now private.
(WebKit::RemoteRemoteCommandListener::updateSupportedCommands):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.h:
7:44 AM Changeset in webkit [273966] by Chris Dumez
  • 92 edits in trunk

Reduce use of CFRetain() / CFRelease() / CFAutoRelease() in WebKit
https://bugs.webkit.org/show_bug.cgi?id=222760

Reviewed by Darin Adler.

Reduce use of CFRetain() / CFRelease() / CFAutoRelease() in WebKit by using RetainPtr<>.

Source/JavaScriptCore:

  • API/JSContext.mm:

(-[JSContext name]):

  • API/JSValue.mm:

(valueToObjectWithoutCopy):
(valueToString):

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::deserializeMessage):

Source/WebCore:

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXTextMarkerRange):
(WebCore::AXTextMarkerRangeStart):
(WebCore::AXTextMarkerRangeEnd):
(WebCore::textMarkerForVisiblePosition):
(WebCore::textMarkerForCharacterOffset):
(WebCore::startOrEndTextMarkerForRange):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
(-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(nextTextMarkerForCharacterOffset):
(previousTextMarkerForCharacterOffset):
(-[WebAccessibilityObjectWrapper textMarkerForFirstPositionInTextControl:]):
(AXAttributeStringSetElement):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_processText):

  • loader/cocoa/DiskCacheMonitorCocoa.mm:

(WebCore::DiskCacheMonitor::DiskCacheMonitor):

  • page/mac/EventHandlerMac.mm:

(WebCore::selfRetainingNSScrollViewScrollWheel):

  • page/win/FrameCGWin.cpp:

(WebCore::imageFromRect):

  • platform/cf/MainThreadSharedTimerCF.cpp:

(WebCore::sharedTimer):
(WebCore::MainThreadSharedTimer::restartSharedTimer):
(WebCore::MainThreadSharedTimer::invalidate):
(WebCore::MainThreadSharedTimer::setFireInterval):
(WebCore::MainThreadSharedTimer::stop):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::exernalDeviceDisplayNameForPlayer):

  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::initialize):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::patternReleaseCallback):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::strokeRect):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::patternReleaseCallback):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::autoActivateFont):

  • platform/graphics/win/FontCGWin.cpp:

(WebCore::FontCascade::getPlatformGlyphAdvances):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContext::drawFocusRing):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):

  • platform/ios/wak/WebCoreThread.mm:

(SendDelegateMessage):
(RunWebThread):
(WebThreadUnlockGuardForMail):

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(WebCore::speechSynthesisGetVoiceIdentifiers):
(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

  • platform/mac/PluginBlocklist.mm:

(WebCore::PluginBlocklist::create):

  • platform/mac/WebGLBlocklist.mm:

(WebCore::WebGLBlocklist::create):

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::setCompressionSessionProperty):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::closeCurrentStream):
(WebCore::advanceCurrentStream):
(WebCore::openNextStream):
(WebCore::formRead):
(WebCore::formCanRead):
(WebCore::formSchedule):
(WebCore::formUnschedule):

  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:

(WebCore::createPrivateStorageSession):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::setClientCertificateInSSLProperties):
(WebCore::ResourceHandle::createCFURLConnection):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdateResourceRequest):

  • platform/win/DragImageCGWin.cpp:

(WebCore::createCgContextFromBitmap):
(WebCore::scaleDragImage):

  • platform/win/WebCoreBundleWin.cpp:

(WebCore::createWebKitBundle):
(WebCore::webKitBundle):

  • rendering/RenderThemeMac.mm:

(-[WebCoreTextFieldCell _adjustedCoreUIDrawOptionsForDrawingBordersOnly:]):

  • testing/cocoa/WebArchiveDumpSupport.h:
  • testing/cocoa/WebArchiveDumpSupport.mm:

(WebCoreTestSupport::createXMLStringFromWebArchiveData):

  • testing/cocoa/WebViewVisualIdentificationOverlay.mm:

(identificationFont):

Source/WebKit:

  • Platform/mac/StringUtilities.mm:

(WebKit::nsStringFromWebCoreString):
(WebKit::formattedPhoneNumberString):

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::initializeCocoaOverrides):

  • Shared/mac/PasteboardTypes.mm:

(WebKit::PasteboardTypes::forEditing):
(WebKit::PasteboardTypes::forURL):
(WebKit::PasteboardTypes::forImages):
(WebKit::PasteboardTypes::forImagesWithArchive):
(WebKit::PasteboardTypes::forSelection):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::acceptsFirstMouse):
(WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent):
(WebKit::WebViewImpl::validAttributesForMarkedText):
(WebKit::WebViewImpl::performKeyEquivalent):

  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(layerPathWithHole):
(layerPath):

  • UIProcess/_WKTouchEventGenerator.mm:

(-[_WKTouchEventGenerator dealloc]):
(-[_WKTouchEventGenerator _sendHIDEvent:]):

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _EVOrganizationName]):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::webProcessLoaderAccessibilityBundlePath):

Source/WebKitLegacy/ios:

  • Misc/WebUIKitSupport.mm:

(LoadWebLocalizedStrings):

  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView finishedLoadingWithDataSource:]):

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder finishedLoadingWithDataSource:]):

Source/WebKitLegacy/mac:

  • Misc/WebLocalizableStrings.mm:
  • Misc/WebNSDataExtras.mm:

(-[NSString _web_capitalizeRFC822HeaderFieldName]):

  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::preferredBundleLocalizationName):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView status:]):

  • WebCoreSupport/WebProgressTrackerClient.mm:

(WebProgressTrackerClient::progressEstimateChanged):

  • WebInspector/WebNodeHighlightView.mm:

(layerPathWithHole):
(layerPath):

  • WebView/WebFrame.mm:

(createUniqueWebDataURL):

  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):

Source/WebKitLegacy/win:

  • CFDictionaryPropertyBag.cpp:

(ConvertVariantToCFType):
(CFDictionaryPropertyBag::Read):
(CFDictionaryPropertyBag::Write):

  • MarshallingHelpers.cpp:

(MarshallingHelpers::PathStringToFileCFURLRef):
(MarshallingHelpers::FileCFURLRefToPathString):
(MarshallingHelpers::BSTRToCFURLRef):
(MarshallingHelpers::BSTRToCFStringRef):
(MarshallingHelpers::LPCOLESTRToCFStringRef):
(MarshallingHelpers::intToCFNumberRef):
(MarshallingHelpers::safeArrayToStringArray):
(MarshallingHelpers::safeArrayToIntArray):
(MarshallingHelpers::safeArrayToIUnknownArray):

  • MarshallingHelpers.h:
  • WebApplicationCache.cpp:

(WebApplicationCache::originsWithCache):

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidFailToStartPlugin const):

  • WebDownloadCFNet.cpp:

(WebDownload::initToResumeWithBundle):
(WebDownload::setDestination):
(WebDownload::willSendRequest):

  • WebHistory.cpp:

(createUserInfoFromArray):

  • WebLocalizableStrings.cpp:

(createWebKitBundle):

Source/WTF:

  • wtf/cocoa/NSURLExtras.mm:

(WTF::decodePercentEscapes):
(WTF::URLByTruncatingOneCharacterBeforeComponent):
(WTF::URLWithData):
(WTF::URLByRemovingComponentAndSubsequentCharacter):

Tools:

  • DumpRenderTree/TestNetscapePlugIn/PluginObjectMac.mm:

(createCoreAnimationLayer):

  • DumpRenderTree/mac/AccessibilityCommonMac.mm:

(+[NSString stringWithJSStringRef:]):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(activateFontIOS):
(dumpRenderTree):
(invalidateAnyPreviousWaitToDumpWatchdog):
(setWaitToDumpWatchdog):
(dump):
(runTest):

  • DumpRenderTree/mac/DumpRenderTreeMac.h:
  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController mouseScrollByX:andY:continuously:]):
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]):

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(takeWindowSnapshot):
(createBitmapContextFromWebView):

  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::addDisallowedURL):
(TestRunner::setWaitToDump):

  • FontWithFeatures/FontWithFeatures/main.cpp:

(constructFontWithTrueTypeFeature):
(constructFontWithOpenTypeFeature):
(drawText):
(main):

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dumpDOMAsWebArchive):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(+[NSString stringWithJSStringRef:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm:

(+[NSString stringWithJSStringRef:]):

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator _createIOHIDEventWithInfo:]):

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::cfString):
(WTR::UIScriptControllerMac::replaceTextAtRange):

7:31 AM Changeset in webkit [273965] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Bubblewrap sandbox should not break X11 forwarding
https://bugs.webkit.org/show_bug.cgi?id=221990

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-05
Reviewed by Carlos Alberto Lopez Perez.

If $DISPLAY points to a TCP socket, or a Unix socket on a different host, then we cannot
isolate the web process from the network and must grant access to the host network
namespace.

Also, clean up some related code by adding PLATFORM(X11) guards where appropriate and
removing a redundant display type check.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):
(WebKit::shouldUnshareNetwork):
(WebKit::bubblewrapSpawn):

7:05 AM Changeset in webkit [273964] by Chris Lord
  • 14 edits in trunk

Allow CSS font-styling for canvas without RenderStyle
https://bugs.webkit.org/show_bug.cgi?id=222665

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage-expected.txt: Now passes

Source/WebCore:

Refactor CSSPrimitiveValue::computeNonCalcLengthDouble to allow for
its use without requiring CSSToLengthConversionData and RenderStyle.

No new tests, already covered by existing tests.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeUnzoomedNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):

  • css/CSSPrimitiveValue.h:
  • css/CSSToLengthConversionData.h:

(WebCore::CSSToLengthConversionData::propertyToCompute const):
(WebCore::CSSToLengthConversionData::renderView const):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::FontProxy::initialize):

  • html/canvas/CanvasRenderingContext2DBase.h:
  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::setFont):

  • style/StyleFontSizeFunctions.cpp:

(WebCore::Style::computedFontSizeFromSpecifiedSize):
(WebCore::Style::computedFontSizeFromSpecifiedSizeForSVGInlineText):
(WebCore::Style::fontSizeForKeyword):

  • style/StyleFontSizeFunctions.h:
  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

  • style/StyleResolveForFontRaw.h:
5:15 AM Changeset in webkit [273963] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK] Clang warnings in MiniBrowser build
https://bugs.webkit.org/show_bug.cgi?id=222797

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-05
Reviewed by Carlos Garcia Campos.

Fix unused-value warnings.

  • MiniBrowser/gtk/BrowserCellRendererVariant.c:

(browser_cell_renderer_variant_init):

  • MiniBrowser/gtk/BrowserTab.c:

(runColorChooserCallback):

4:16 AM Changeset in webkit [273962] by commit-queue@webkit.org
  • 16 edits in trunk

[WASM-Function-References] Update ref.func to produce (ref $t)
https://bugs.webkit.org/show_bug.cgi?id=222779

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-03-05
Reviewed by Yusuke Suzuki.

Make ref.func to produce non nullable reference type which
incorporates signature index. Since in JSC signature index represents
type of the function from Type section we use it instead of type_idx
for representing type of function references.

JSTests:

  • wasm/wasm.json:

Source/JavaScriptCore:

  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addTableGrow):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::unify):

  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):
(JSC::Wasm::isSubtype):
(JSC::Wasm::isRefType):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::checkBranchTarget):
(JSC::Wasm::FunctionParser<Context>::unify):
(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseGlobal):

  • wasm/generateWasmOpsHeader.py:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/wasm.json:
4:05 AM Changeset in webkit [273961] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

XRFrame getViewerPose has emulatedPosition set properly
https://bugs.webkit.org/show_bug.cgi?id=222785

Patch by Imanol Fernandez <imanol> on 2021-03-05
Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update getViewerPose_emulatedPosition test expectations.

  • web-platform-tests/webxr/getViewerPose_emulatedPosition.https-expected.txt: Added.

Source/WebCore:

emulatedPosition in set in WebXR DOM code and OpenXR platform, but not set in FakeWebXRDevice.

Tested by getViewerPose_emulatedPosition.html.

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::frameTimerFired): set emulatedPosition

LayoutTests:

Update getViewerPose_emulatedPosition test expectations.

  • platform/wpe/TestExpectations:
3:53 AM Changeset in webkit [273960] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Add support for gstreamer's h264 stateless codecs
https://bugs.webkit.org/show_bug.cgi?id=222787

Patch by Guido Günther <agx@sigxcpu.org> on 2021-03-05
Reviewed by Philippe Normand.

Manually tested, there is currently no automatic tests for it

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindV4l):

3:15 AM Changeset in webkit [273959] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

Unreviewed, final (hopefully) WPE/GTK follow-up to r273951

Rubber-stamped by Xabier Rodriguez-Calvar.

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerSampleFromLibWebRTCVideoFrame): Move WARN_UNUSED_RETURN to header file
and fix pessimizing-move warning.

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
2:54 AM Changeset in webkit [273958] by svillar@igalia.com
  • 4 edits in trunk

[css-flexbox] Fix mainAxisLengthIsDefinite for orthogonal items with percentage sizes
https://bugs.webkit.org/show_bug.cgi?id=222684

Reviewed by Javier Fernandez.

Source/WebCore:

r260055 fixed a crash in flexbox code by not caching the definiteness of the logical height of the flexbox
container in case of having orthogonal items because in that case, the logical heights of the flex container
and the flex item are not in the same axis. That made a lot of sense, however we should still let the method
return whether or not the child main axis is definite instead of unconditionally return false.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childMainSizeIsDefinite const):

LayoutTests:

  • TestExpectations: Unskipped flexbox-basic-canvas-vert-001v.xhtml which is now passing.
2:50 AM Changeset in webkit [273957] by commit-queue@webkit.org
  • 18 edits
    3 adds in trunk

Implement WebXRBoundedReferenceSpace bounds geometry
https://bugs.webkit.org/show_bug.cgi?id=222737

Patch by Imanol Fernandez <imanol> on 2021-03-05
Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update WebXRBoundedReferenceSpace test expectations.

  • web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https-expected.txt: Added.

Source/WebCore:

Having bounds geometry in WebXRBoundedReferenceSpace enables WebXR room-scale applications. XR systems may have limited
real world spatial ranges in which users can freely move around while remaining tracked. WebXR Applications can query
these boundaries and alter application behavior or content placement to ensure the user can complete the experience while
remaining within the boundary.

Tested by WebXR WPT tests.

  • Modules/webxr/WebXRBoundedReferenceSpace.cpp:

(WebCore::WebXRBoundedReferenceSpace::boundsGeometry): Call updateIfNeeded
(WebCore::WebXRBoundedReferenceSpace::getOffsetReferenceSpace): Use Exception instead of null RefPtr<>
(WebCore::WebXRBoundedReferenceSpace::updateIfNeeded): Updates boundsGeometry vector when data changed.
(WebCore::WebXRBoundedReferenceSpace::quantize): Utility method to avoid fingerprinting.

  • Modules/webxr/WebXRBoundedReferenceSpace.h:
  • Modules/webxr/WebXRBoundedReferenceSpace.idl: Add CustomToJSObject
  • Modules/webxr/WebXRReferenceSpace.cpp:

(WebCore::WebXRReferenceSpace::getOffsetReferenceSpace): Use Exception instead of null RefPtr<>

  • Modules/webxr/WebXRReferenceSpace.h:
  • Modules/webxr/WebXRReferenceSpace.idl: Add CustomToJSObject
  • Modules/webxr/WebXRSpace.idl: Add CustomToJSObject
  • Sources.txt: Add CustomToJSObject implementations
  • bindings/js/JSWebXRReferenceSpaceCustom.cpp: Added.

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSWebXRSpaceCustom.cpp: Added.

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • platform/xr/PlatformXR.h: Add StageParameters to FrameData.
  • platform/xr/openxr/PlatformXROpenXR.cpp: Implement boundsGeometry using OpenXR.

(PlatformXR::OpenXRDevice::initializeReferenceSpace):
(PlatformXR::OpenXRDevice::requestFrame):
(PlatformXR::OpenXRDevice::collectEnabledFeatures):
(PlatformXR::OpenXRDevice::pollEvents):
(PlatformXR::OpenXRDevice::resetSession):
(PlatformXR::OpenXRDevice::updateStageParameters):

  • platform/xr/openxr/PlatformXROpenXR.h:
  • testing/WebFakeXRDevice.cpp: Implement boundsGeometry for tests.

(WebCore::SimulatedXRDevice::setNativeBoundsGeometry):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::WebFakeXRDevice::setBoundsGeometry):

  • testing/WebFakeXRDevice.h:

LayoutTests:

Update WebXRBoundedReferenceSpace test expectations.

  • platform/wpe/TestExpectations:
2:18 AM Changeset in webkit [273956] by Said Abou-Hallawa
  • 9 edits in trunk

[GPU Process] RemoteImageBuffer recording GraphicsContext should report its backend RenderingMode
https://bugs.webkit.org/show_bug.cgi?id=222772

Reviewed by Simon Fraser.

Source/WebCore:

This will allow compositing the 2D canvas elements when GPU rendering is
enabled for 2D canvas.

  • platform/graphics/GraphicsContextImpl.h:

(WebCore::GraphicsContextImpl::renderingMode const):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setIsCALayerContext):
(WebCore::GraphicsContext::isCALayerContext const):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext const):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::renderingMode const):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::renderingMode const):

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

LayoutTests:

  • gpu-process/TestExpectations:
2:14 AM Changeset in webkit [273955] by svillar@igalia.com
  • 4 edits in trunk

WPT test css/css-flexbox/flex-minimum-height-flex-items-023.html fails
https://bugs.webkit.org/show_bug.cgi?id=214292

Reviewed by Javier Fernandez.

Source/WebCore:

CSS flex specs define how to compute the main axis automatic minimum size of a flex item in order to
provide a more reasonable minimum size (as grid does). So far we've considered "automatic minimum size"
as either min-{width|height}:auto. However the css-sizing-3 specs mention that for the block size
either min-content, max-content or fit-content are (unless otherwise specified) equivalent to the
automatic size (see https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content).

This means that we need to expand our check to consider those intrinsic sizes as automatic whenever the
block axis of the flex item is the flexbible box main size.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const): Consider intrinsic sizes as automatic
in case the child block axis is the flex container main axis.
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Let intrinsic sizes be handled by the code
that computes min-size:auto.

LayoutTests:

2:07 AM Changeset in webkit [273954] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, WPE/GTK build fix after r273953

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerSampleFromLibWebRTCVideoFrame):

1:54 AM Changeset in webkit [273953] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] Unreviewed follow-up to r273951

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerSampleFromLibWebRTCVideoFrame): Add &&, forgotten during review cycle.

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
1:50 AM Changeset in webkit [273952] by commit-queue@webkit.org
  • 4 edits in trunk

Fix flex-aspect-ratio-009.html
https://bugs.webkit.org/show_bug.cgi?id=222780

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-05
Reviewed by Sergio Villar Senin.

Source/WebCore:

Since CSS aspect-ratio does not rely on intrinsic size for
calculating the ratio, the check for intrinsic height should
not apply to it.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const):

LayoutTests:

Enable test that passes now.

1:38 AM Changeset in webkit [273951] by commit-queue@webkit.org
  • 9 edits in trunk

REGRESSION(r273309) [GStreamer] webrtc/captureCanvas-webrtc-software-h264-baseline.html is flaky crashing inside libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=222451

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-05
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The main issue here was related with bad memory management in the VideoFrameLibWebRTC
implementation, the video converter was writing to a buffer allocated by the libwebrtc
aligned-malloc allocator and that was triggering various issues. There's little benefit of
using a buffer pool anyway since we end-up doing buffer copies.

The patch also includes a bunch of coding style fixes, a few smart-pointer improvements, and
improved error handling in the decoder factory, which was previously handling warnings only.

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerSampleFromLibWebRTCVideoFrame):
(WebCore::GStreamerVideoFrameLibWebRTC::create):
(WebCore::LibWebRTCVideoFrameFromGStreamerSample):
(WebCore::GStreamerVideoFrameLibWebRTC::ToI420):

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:

(WebCore::GStreamerVideoFrameLibWebRTC::GStreamerVideoFrameLibWebRTC):
(WebCore::GStreamerVideoFrameLibWebRTC::takeSample):

  • platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):

  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

(WebCore::GStreamerVideoDecoder::handleError):
(WebCore::GStreamerVideoDecoder::pullSample):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerEncodedImageBuffer::create):
(WebCore::GStreamerEncodedImageBuffer::getBuffer const):
(WebCore::GStreamerEncodedImageBuffer::getVideoResolution const):
(WebCore::GStreamerEncodedImageBuffer::GStreamerEncodedImageBuffer):

LayoutTests:

  • platform/glib/TestExpectations: Update expectations for webrtc h264 tests that are

slightly less broken now.

Mar 4, 2021:

11:05 PM Changeset in webkit [273950] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Add internal preference to disable HTTPS upgrade
https://bugs.webkit.org/show_bug.cgi?id=222778

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-04
Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

Source/WTF:

This is needed for an internal performance benchmark, which serves canned content from a local http server
pretending to be from different domains that are in our internal HTTPS upgrade list because the real server
supports HTTPS. That internal benchmark should eventually change, but that's not going to happen this year.
This is also likely going to be useful for QA purposes to be able to easily tell on an internal build
whether HTTPS upgrade is breaking something.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
9:47 PM Changeset in webkit [273949] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Fix clean build after r273946
https://bugs.webkit.org/show_bug.cgi?id=222706

  • DerivedSources-output.xcfilelist:
  • WebKit.xcodeproj/project.pbxproj:
9:46 PM Changeset in webkit [273948] by Russell Epstein
  • 3 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273485. rdar://problem/75075088

Temporarily stop enforcing notification filtering
https://bugs.webkit.org/show_bug.cgi?id=222386
<rdar://problem/73987767>

Reviewed by Brent Fulgham.

Temporarily stop enforcing notification filtering on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:

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

8:48 PM Changeset in webkit [273947] by Aditya Keerthi
  • 7 edits
    1 move in trunk/Source/WebCore

[iOS] Add legacy prefix to the form controls UA stylesheet
https://bugs.webkit.org/show_bug.cgi?id=222741
<rdar://problem/75039764>

Reviewed by Ryosuke Niwa.

Followup to r273839. Rename the iOS form controls UA stylesheet to
indicate it contains outdated styles.

  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/legacyFormControlsIOS.css: Renamed from Source/WebCore/css/formControlsIOS.css.

Removed redundant comment after the rename.

  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h:
8:41 PM Changeset in webkit [273946] by achristensen@apple.com
  • 2 edits
    2 deletes in trunk/Source/WebKit

Remove the HTTPSUpgradeEnabled experimental feature
https://bugs.webkit.org/show_bug.cgi?id=222706

Reviewed by Simon Fraser.

  • DerivedSources.make:
  • Scripts/generate-https-upgrade-database.sh: Removed.
  • Shared/HTTPSUpgrade/HTTPSUpgradeList.txt: Removed.
8:36 PM Changeset in webkit [273945] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.2.2

Tag Safari-612.1.5.2.2.

8:36 PM Changeset in webkit [273944] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Make RegistrableDomain() private constructor take the String as an rvalue reference
https://bugs.webkit.org/show_bug.cgi?id=222767

Reviewed by Alex Christensen.

Make RegistrableDomain() private constructor take the String as an rvalue reference.
Most call sites have an rvalue reference and it reduces ref counting churn this way.

  • platform/RegistrableDomain.h:

(WebCore::RegistrableDomain::uncheckedCreateFromRegistrableDomainString):
(WebCore::RegistrableDomain::uncheckedCreateFromHost):
(WebCore::RegistrableDomain::RegistrableDomain):

8:36 PM Changeset in webkit [273943] by Russell Epstein
  • 3 edits in branches/safari-612.1.5.2-branch/Source/WebKit

Cherry-pick r273485. rdar://problem/75075050

Temporarily stop enforcing notification filtering
https://bugs.webkit.org/show_bug.cgi?id=222386
<rdar://problem/73987767>

Reviewed by Brent Fulgham.

Temporarily stop enforcing notification filtering on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:

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

8:35 PM Changeset in webkit [273942] by Russell Epstein
  • 8 edits in branches/safari-612.1.5.2-branch/Source

Versioning.

WebKit-7612.1.5.2.2

8:33 PM Changeset in webkit [273941] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

NetworkProcessProxy::deleteWebsiteDataInUIProcessForRegistrableDomains() can take domains as an rvalue reference
https://bugs.webkit.org/show_bug.cgi?id=222768

Reviewed by Geoffrey Garen.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::deleteWebsiteDataInUIProcessForRegistrableDomains):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForRegistrableDomains):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
8:17 PM Changeset in webkit [273940] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Cocoa] REGRESSION(r272752): fix some internal builds that use WTFString::WTFString(NSString *)
https://bugs.webkit.org/show_bug.cgi?id=222610

Reviewed by Chris Dumez.

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.objc_protocol_import_expression_for_member):
(ObjCGenerator.objc_protocol_import_expression_for_parameter):
(ObjCGenerator.protocol_to_objc_expression_for_member):
(ObjCGenerator.payload_to_objc_expression_for_member):

7:21 PM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
6:57 PM Changeset in webkit [273939] by Devin Rousso
  • 4 edits in trunk/Source

[Payment Request] remove some unnecessary WebKitAdditions hooks
https://bugs.webkit.org/show_bug.cgi?id=222765
<rdar://problem/75060894>

Reviewed by Andy Estes.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

Source/WebKit:

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
5:50 PM Changeset in webkit [273938] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Deploy Ref<T> in SVGUseElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=222637

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-04
Reviewed by Ryosuke Niwa.

Remove usage of raw pointers in a few functions here
that showed issues in 222397.

Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.

  • svg/SVGUseElement.cpp:

(WebCore::disassociateAndRemoveClones):
(WebCore::removeDisallowedElementsFromSubtree):
(WebCore::removeSymbolElementsFromSubtree):

5:45 PM Changeset in webkit [273937] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.4

Tag Safari-611.1.21.0.4.

5:44 PM Changeset in webkit [273936] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.5

Tag Safari-611.1.21.1.5.

5:28 PM Changeset in webkit [273935] by rniwa@webkit.org
  • 11 edits in trunk/Source/WebCore

"precustomized" state of custom elements can become HTMLUnknownElement
https://bugs.webkit.org/show_bug.cgi?id=221652

Reviewed by Darin Adler.

The bug was caused by createJSHTMLWrapper in JSHTMLElementWrapperFactory.cpp relying on
!isCustomElementUpgradeCandidate() to create HTMLUnknownElement as JS wrapper of the element.

This is problematic after r266269 since that change re-purposes CustomElementState::Failed
on a custom element as "precustomized" state instead of introducing another enum value in
CustomElementState as RareDataBitFields has no more bits available.

This patch fixes the problem by introducing a new NodeFlag::IsUnknownElement and using that
to check whether JSHTMLUnknownElement should be created for a given element or not. Note that
HTMLElement had a virtual function, isHTMLUnknownElement, to check this condition but invoking
a virtual function proved to incur too much runtime cost.

  • dom/Node.h:

(WebCore::Node::isUnknownElement const): Added.
(WebCore::Node::isHTMLUnknownElement const): Added.
(WebCore::Node::isSVGUnknownElement const): Added.
(WebCore::Node::isMathMLUnknownElement const): Added.
(WebCore::Node::NodeFlag): Added NodeFlag::IsUnknownElement.

  • dom/make_names.pl:

(printWrapperFactoryCppFile): Treat the element as HTMLUnknownElement only if isUnknownElement
returns true instead of isCustomElementUpgradeCandidate returning false.

  • html/HTMLElement.h:

(WebCore::HTMLElement::isHTMLUnknownElement const): Deleted.

  • html/HTMLUnknownElement.h:
  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::MathMLElement): Added ConstructionType as an argument.

  • mathml/MathMLElement.h:
  • mathml/MathMLUnknownElement.h:

(WebCore::MathMLUnknownElement::MathMLUnknownElement): Set NodeFlag::IsUnknownElement.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::SVGElement): Added ConstructionType as an argument.

  • svg/SVGElement.h:
  • svg/SVGUnknownElement.h:

(WebCore::SVGUnknownElement::SVGUnknownElement): Set NodeFlag::IsUnknownElement.

5:18 PM Changeset in webkit [273934] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

Undeprecate many more webkit-patch commands
https://bugs.webkit.org/show_bug.cgi?id=222745

Patch by Sam Sneddon <Sam Sneddon> on 2021-03-04
Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/commands/download.py:

(ChangeStyleLocal):

  • Scripts/webkitpy/tool/commands/queries.py:

(SuggestReviewers):

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone):

  • Scripts/webkitpy/tool/commands/suggestnominations.py:

(SuggestNominations):

  • Scripts/webkitpy/tool/commands/upload.py:

(Post):
(Prepare):
(MarkBugFixed):

4:45 PM Changeset in webkit [273933] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some tests in imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221697

Unreviewed test gardening.

Remove the tests which are consistently passing on bots from the test expectations.

  • platform/wk2/TestExpectations:
4:43 PM Changeset in webkit [273932] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreivewed test gardening, remove failure expectation for some tests that are consistently passing.

  • platform/ios-wk2/TestExpectations:
4:18 PM Changeset in webkit [273931] by sbarati@apple.com
  • 17 edits
    1 add in trunk

Don't trust parsing information to tell us if we've emitted op_call_eval
https://bugs.webkit.org/show_bug.cgi?id=222694
rdar://74778016

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/eval-liveness-should-not-come-from-parser.js: Added.

(foo):

Source/JavaScriptCore:

In the DFG, op_call_eval can't be inlined. Not inlining is required for how
eval is currently implemented in the DFG. For CodeBlocks with eval in them,
the scope register is also alive everywhere.

When doing spread of arguments in eval, we end up emitting a call varargs
instead of a direct eval. This seems like a spec bug:
https://bugs.webkit.org/show_bug.cgi?id=222671

However, this leads to something that had eval textually in it leading to
us reporting the scope register is always alive, even if op_call_eval isn't
in the bytecode stream. This leads to a validation error, since the DFG
isn't actually keeping this scope register alive everywhere, because
op_call_eval isn't in the bytecode stream.

This patch fixes this by having a bit indicating if op_call_eval is in
the bytecode stream or not.

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeIndex):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::usesCallEval const):
(JSC::CodeBlock::usesEval const): Deleted.

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::usesEval const): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::usesCallEval const):
(JSC::UnlinkedCodeBlock::setUsesCallEval):
(JSC::UnlinkedCodeBlock::usesEval const): Deleted.

  • bytecode/UnlinkedCodeBlockGenerator.h:

(JSC::UnlinkedCodeBlockGenerator::usesCallEval const):
(JSC::UnlinkedCodeBlockGenerator::setUsesCallEval):
(JSC::UnlinkedCodeBlockGenerator::usesEval const): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::isThisUsedInInnerArrowFunction):
(JSC::BytecodeGenerator::isNewTargetUsedInInnerArrowFunction):
(JSC::BytecodeGenerator::isSuperUsedInInnerArrowFunction):
(JSC::BytecodeGenerator::isSuperCallUsedInInnerArrowFunction):

  • dfg/DFGGraph.h:
  • runtime/CachedTypes.cpp:

(JSC::CachedCodeBlock::usesCallEval const):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedCodeBlock<CodeBlockType>::encode):
(JSC::CachedCodeBlock::usesEval const): Deleted.

  • runtime/CodeCache.cpp:

(JSC::generateUnlinkedCodeBlockImpl):

  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::executableInfo const): Deleted.

  • runtime/ModuleProgramExecutable.h:
  • runtime/ProgramExecutable.h:
  • runtime/ScriptExecutable.h:

(JSC::ScriptExecutable::usesEval const): Deleted.

4:14 PM Changeset in webkit [273930] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Reduce unnecessary logging in ews-app
https://bugs.webkit.org/show_bug.cgi?id=222764

Reviewed by Jonathan Bedard.

  • CISupport/ews-app/ews/views/retrypatch.py:

(RetryPatch.post):

4:12 PM Changeset in webkit [273929] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebKit

Validate documentState of FrameState when setting and getting it
https://bugs.webkit.org/show_bug.cgi?id=222587

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-03-04
Reviewed by Geoffrey Garen.

In rdar://48634553, strings of documentState can be invalid when they are encoded in encodeFrameStateNode
in UI process. To get a better idea of when the strings become invalid, add checks for documentState when
getting and setting it.

No test as no behavior change.

  • Shared/SessionState.cpp:

(WebKit::FrameState::encode const):
(WebKit::FrameState::decode):
(WebKit::FrameState::validateDocumentState const):
(WebKit::FrameState::setDocumentState):

  • Shared/SessionState.h:

(WebKit::FrameState::FrameState):
(WebKit::FrameState::~FrameState):
(WebKit::FrameState::documentState const):

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::~WebBackForwardListItem):

  • UIProcess/API/glib/WebKitWebViewSessionState.cpp:

(encodeFrameState):
(decodeFrameState):

  • UIProcess/Cocoa/SessionStateCoding.h:
  • UIProcess/LegacySessionStateCoding.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::sessionState const):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::encodeFrameStateNode):
(WebKit::decodeBackForwardTreeNode):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFrameState):
(WebKit::applyFrameState):

3:58 PM Changeset in webkit [273928] by don.olmstead@sony.com
  • 6 edits in trunk/Source/WebCore

Non-unified build fixes, early March 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=222755

Unreviewed non-unified build fixes.

  • dom/EventContext.cpp:
  • html/canvas/ImageBitmapRenderingContext.cpp:
  • inspector/agents/worker/WorkerNetworkAgent.cpp:
  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:
  • rendering/RenderModel.cpp:
3:46 PM Changeset in webkit [273927] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] Test platform/mac/media/encrypted-media/fps-encrypted-event.html times out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221847

Reviewed by Simon Fraser.

  • platform/mac-wk2/TestExpectations: The test no longer times out. Remove expectation.
3:37 PM Changeset in webkit [273926] by Matt Lewis
  • 3 edits in trunk/Tools

Add Apple Silicon Devices to Big Sur builders and testers.
https://bugs.webkit.org/show_bug.cgi?id=222616

Reviewed by Aakash Jain.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

3:30 PM Changeset in webkit [273925] by Russell Epstein
  • 16 edits
    1 copy in branches/safari-612.1.5-branch

Cherry-pick r273784. rdar://problem/75059445

REGRESSION(r270691): It's impossible to use MobileAsset fonts on macOS
https://bugs.webkit.org/show_bug.cgi?id=222582
<rdar://problem/74877450>

Reviewed by Per Arne Vollan.

Source/WebKit:

Simply apply the iOS codepath to macOS.

There is also an additional change here to the Mac sandbox.
On Big Sur and earlier, before this patch, com.apple.mobileassetd was allowed,
and com.apple.mobileassetd.v2 was disallowed. After this patch, they both are
allowed, but only with the com.apple.webkit.extension.mach extension.
On other OSes, before this patch, nothing was allowed, whereas after this patch,
only com.apple.mobileassetd.v2 is allowed with the com.apple.webkit.extension.mach
extension.

Test: WebKit.MobileAssetSandboxCheck

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _grantAccessToAssetServices]): (-[WKWebView _revokeAccessToAssetServices]):
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _grantAccessToAssetServices]): Deleted. (-[WKWebView _revokeAccessToAssetServices]): Deleted.
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::grantAccessToAssetServices): (WebKit::WebPageProxy::revokeAccessToAssetServices):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::grantAccessToAssetServices): Deleted. (WebKit::WebPageProxy::revokeAccessToAssetServices): Deleted.
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::revokeAccessToAssetServices):
  • WebProcess/com.apple.WebProcess.sb.in:
  • WebProcess/glib/WebProcessGLib.cpp: (WebKit::WebProcess::grantAccessToAssetServices): (WebKit::WebProcess::revokeAccessToAssetServices):
  • WebProcess/playstation/WebProcessPlayStation.cpp: (WebKit::WebProcess::grantAccessToAssetServices): (WebKit::WebProcess::revokeAccessToAssetServices):
  • WebProcess/win/WebProcessWin.cpp: (WebKit::WebProcess::grantAccessToAssetServices): (WebKit::WebProcess::revokeAccessToAssetServices):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/MobileAssetSandboxCheck.mm: Copied from Source/WebKit/WebProcess/win/WebProcessWin.cpp. (TEST):

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

3:22 PM Changeset in webkit [273924] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build after r273904

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::setPreferenceValue):
auto's evilness rears its head again. -mutableCopy returns id, so
we infer RetainPtr<id>, so depending on what headers are included
we get ambiguous selector errors. De-auto to fix.

3:14 PM Changeset in webkit [273923] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Clean up API::ResourceLoadStatisticsThirdParty / API::ResourceLoadStatisticsFirstParty
https://bugs.webkit.org/show_bug.cgi?id=222701

Reviewed by Geoffrey Garen.

Clean up API::ResourceLoadStatisticsThirdParty / API::ResourceLoadStatisticsFirstParty:

  1. Make constructors private since there is a create() factory function.
  2. Mark constructor as explicit since they take a single parameter.
  3. Update ResourceLoadStatisticsFirstParty constructor to take parameter as a const reference instead of passing it by value.
  4. Add assertions to make sure those are constructed and destroyed on the main thread.
  • UIProcess/API/APIResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/APIResourceLoadStatisticsThirdParty.h:
3:06 PM Changeset in webkit [273922] by Devin Rousso
  • 9 edits
    1 copy
    1 add in trunk/Source/WebCore

[Payment Request] increment the current version
https://bugs.webkit.org/show_bug.cgi?id=222742
<rdar://problem/74502674>

Reviewed by Wenson Hsieh.

  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current):

  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
(WebCore::MockPaymentCoordinator::completeShippingContactSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodModeChange):

  • Modules/paymentrequest/PaymentRequestUtilities.h: Added.
  • Modules/paymentrequest/PaymentRequestUtilities.cpp: Added.

(isValidDecimalMonetaryValue):

  • Modules/paymentrequest/PaymentRequest.cpp:

(isValidDecimalMonetaryValue): Deleted.

  • Modules/applepay/ApplePaySession.cpp:

(convertAndValidateTotal):
(convertAndValidate):
(validateAmount): Deleted.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

Move isValidDecimalMonetaryValue so it can be used in other files.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
3:06 PM Changeset in webkit [273921] by Russell Epstein
  • 5 edits
    4 adds in branches/safari-611.1.21.0-branch

Cherry-pick r273901. rdar://problem/75058982

window proxy of detached iframe doesn't respect updates to global values
https://bugs.webkit.org/show_bug.cgi?id=206445

Reviewed by Chris Dumez.

Source/WebCore:

According to the html spec the frame should only be needing for
COOP access violation reporting, which we don't support. This
patch removes our old behavior of blocking stores to windows that
have been detached.

I also removed some stale caching code from
getOwnPropertySlotByIndex since it's only accessed once now.

  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlotByIndex): (WebCore::JSDOMWindow::doPutPropertySecurityCheck): (WebCore::JSDOMWindow::put): (WebCore::JSDOMWindow::putByIndex):

LayoutTests:

  • fast/frames/iframe-detached-window-still-writable-eval-expected.txt: Added.
  • fast/frames/iframe-detached-window-still-writable-eval.html: Added.
  • fast/frames/iframe-detached-window-still-writable-expected.txt: Added.
  • fast/frames/iframe-detached-window-still-writable.html: Added.
  • http/tests/dom/cross-origin-detached-window-properties-expected.txt:
  • http/tests/dom/cross-origin-detached-window-properties.html:

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

3:04 PM Changeset in webkit [273920] by Russell Epstein
  • 5 edits
    4 adds in branches/safari-611.1.21.1-branch

Cherry-pick r273901. rdar://problem/75058990

window proxy of detached iframe doesn't respect updates to global values
https://bugs.webkit.org/show_bug.cgi?id=206445

Reviewed by Chris Dumez.

Source/WebCore:

According to the html spec the frame should only be needing for
COOP access violation reporting, which we don't support. This
patch removes our old behavior of blocking stores to windows that
have been detached.

I also removed some stale caching code from
getOwnPropertySlotByIndex since it's only accessed once now.

  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlotByIndex): (WebCore::JSDOMWindow::doPutPropertySecurityCheck): (WebCore::JSDOMWindow::put): (WebCore::JSDOMWindow::putByIndex):

LayoutTests:

  • fast/frames/iframe-detached-window-still-writable-eval-expected.txt: Added.
  • fast/frames/iframe-detached-window-still-writable-eval.html: Added.
  • fast/frames/iframe-detached-window-still-writable-expected.txt: Added.
  • fast/frames/iframe-detached-window-still-writable.html: Added.
  • http/tests/dom/cross-origin-detached-window-properties-expected.txt:
  • http/tests/dom/cross-origin-detached-window-properties.html:

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

2:51 PM Changeset in webkit [273919] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Garden encrypted media tests
https://bugs.webkit.org/show_bug.cgi?id=221687

Reviewed by Simon Fraser.

  • platform/mac-wk2/TestExpectations: All but platform/mac/media/encrypted-media/fps-clearkey-crash.html are now passing. Remove expectations.
2:16 PM Changeset in webkit [273918] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] LineStatus::availableWidth should always be a valid number
https://bugs.webkit.org/show_bug.cgi?id=222752
<rdar://problem/75028043>

Reviewed by Antti Koivisto.

Source/WebCore:

A NaN available width value can confuse the line breaking logic. This patch ensures we always provide a valid value.

Test: fast/inline/crash-when-negative-spacing-produce-nan.html

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::handleInlineContent):

LayoutTests:

  • fast/inline/crash-when-negative-spacing-produce-nan-expected.txt: Added.
  • fast/inline/crash-when-negative-spacing-produce-nan.html: Added.
2:05 PM Changeset in webkit [273917] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r273906.

Broke internal build

Reverted changeset:

"[Cocoa] REGRESSION(r272752): fix some internal builds that
use WTFString::WTFString(NSString *)"
https://bugs.webkit.org/show_bug.cgi?id=222610
https://commits.webkit.org/r273906

1:43 PM Changeset in webkit [273916] by achristensen@apple.com
  • 13 edits
    2 deletes in trunk/Source

Remove the HTTPSUpgradeEnabled experimental feature
https://bugs.webkit.org/show_bug.cgi?id=222706

Reviewed by Simon Fraser.

Source/WebKit:

  • NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Removed.
  • NetworkProcess/NetworkHTTPSUpgradeChecker.h: Removed.
  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const): Deleted.

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::networkHTTPSUpgradeChecker): Deleted.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):

Source/WTF:

It was a good experimental implementation, but the feature is now implemented in makeSecureIfNecessary
and turned on and off by WKWebViewConfiguration.upgradeKnownHostsToHTTPS.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:06 PM Changeset in webkit [273915] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[iOS] Add support for a new image-extraction-related responder action
https://bugs.webkit.org/show_bug.cgi?id=222743
<rdar://problem/75001149>

Reviewed by Devin Rousso.

Add support for the new action, such that we return YES if and only if we're in an editable context, and also
such that we return a non-null target for the new action.

  • UIProcess/ios/WKContentViewInteraction.h:

Add a fallback definition for FOR_EACH_ADDITIONAL_WKCONTENTVIEW_ACTION, which can be used by WebKitAdditions
to inject additional responder actions when generating selector forwarding code between WKContentView and
WKWebView.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):

1:00 PM Changeset in webkit [273914] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some media tests are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221693

Unreviewed test gardening.

Remove the tests which are consistently passing on bots from the test expectations.

  • platform/wk2/TestExpectations:
12:42 PM Changeset in webkit [273913] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Add python 3 support - part 5
https://bugs.webkit.org/show_bug.cgi?id=222744

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(CheckPatchRelevance._patch_is_relevant): Ensure that in python 3, path and changes are bytes. This is because buildbot
stores patch as bytes, as mentioned in https://github.com/buildbot/buildbot/issues/5812#issuecomment-790175979

  • CISupport/ews-build/steps_unittest.py: Updated one unit-test to test binary patch.
12:16 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
12:12 PM Changeset in webkit [273912] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Persist CSS Grid overlay colors
https://bugs.webkit.org/show_bug.cgi?id=222319
<rdar://problem/74647242>

Patch by Razvan Caliman <Razvan Caliman> on 2021-03-04
Reviewed by Devin Rousso.

Save and restore CSS Grid overlay colors edited by a user.

  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype.getGridColorForNode):
(WI.OverlayManager.prototype.setGridColorForNode):
(WI.OverlayManager.prototype._handleMainResourceDidChange):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.layout):

11:52 AM Changeset in webkit [273911] by Alan Coon
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Cherry-pick r273842. rdar://problem/75049285

Crash under SubresourceLoader::notifyDone()
https://bugs.webkit.org/show_bug.cgi?id=222683
<rdar://70342402>

Reviewed by Geoffrey Garen.

We were crashing doing a null-dereference of m_documentLoader under
SubresourceLoader::notifyDone(). This adds null checks for m_documentLoader
similarly to what is already done elsewhere in ResourceLoader.

No new tests, I do not know how to reproduce this.

  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::notifyDone):

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

11:51 AM Changeset in webkit [273910] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.5

11:46 AM Changeset in webkit [273909] by Alan Coon
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Cherry-pick r273842. rdar://problem/75049263

Crash under SubresourceLoader::notifyDone()
https://bugs.webkit.org/show_bug.cgi?id=222683
<rdar://70342402>

Reviewed by Geoffrey Garen.

We were crashing doing a null-dereference of m_documentLoader under
SubresourceLoader::notifyDone(). This adds null checks for m_documentLoader
similarly to what is already done elsewhere in ResourceLoader.

No new tests, I do not know how to reproduce this.

  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::notifyDone):

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

11:44 AM Changeset in webkit [273908] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.4

11:41 AM Changeset in webkit [273907] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r272629.

  • UIProcess/Cocoa/WKBlankOverlayView.mm:
11:40 AM Changeset in webkit [273906] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Cocoa] REGRESSION(r272752): fix some internal builds that use WTFString::WTFString(NSString *)
https://bugs.webkit.org/show_bug.cgi?id=222610

Reviewed by Chris Dumez.

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.objc_protocol_import_expression_for_member):
(ObjCGenerator.objc_protocol_import_expression_for_parameter):
(ObjCGenerator.protocol_to_objc_expression_for_member):
(ObjCGenerator.payload_to_objc_expression_for_member):

11:30 AM Changeset in webkit [273905] by youenn@apple.com
  • 3 edits
    3 adds in trunk

In case of POST navigation redirected by a 302, the 'Origin' header is kept in the redirected request
https://bugs.webkit.org/show_bug.cgi?id=222653
<rdar://problem/74983521>

Reviewed by Alex Christensen.

Source/WebCore:

Remove Origin header if the navigation request goes from POST to GET.
This aligns with other browsers and removes some known interop issues.
This is consistent with WebKit not sending Origin headers for GET navigations.

Test: http/wpt/fetch/navigation-post-to-get-origin.html

  • loader/DocumentLoader.cpp:

(WebCore::isRedirectToGetAfterPost):
(WebCore::DocumentLoader::willSendRequest):

LayoutTests:

  • http/wpt/fetch/echo-origin.py: Added.
  • http/wpt/fetch/navigation-post-to-get-origin-expected.txt: Added.
  • http/wpt/fetch/navigation-post-to-get-origin.html: Added.
11:02 AM Changeset in webkit [273904] by Chris Dumez
  • 11 edits in trunk

[macOS][WK2] Changing the system language does not update navigator.language
https://bugs.webkit.org/show_bug.cgi?id=222619

Reviewed by Per Arne Vollan.

Source/WebKit:

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::setAppleLanguagesPreference):
Fix a memory leak for newArguments.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
If CFPREFS_DIRECT_MODE is not enabled, we need to listen for AppleLanguagePreferencesChangedNotification
inside the WebProcess. This used to happen implicitly inside WTF::platformUserPreferredLanguages() but
it is now explicit since we don't want/need it when using CFPREFS_DIRECT_MODE.

(WebKit::setPreferenceValue):

  • If preference is AppleLanguages, set it for the volatile domain to match what we do in XPCServiceMain.mm. This is needed because the preference in the volatile domain seems to take precedence.
  • Call WTF::languageDidChange() when the AppleLanguages preference gets updated so that language change listeners get notified of the language change (e.g. we fire a languagechange event at the Window).

Source/WebKitLegacy/mac:

We need to listen for AppleLanguagePreferencesChangedNotification on mac WK1.
This used to happen implicitly inside WTF::platformUserPreferredLanguages() but
it is now explicit since we don't want/need it when using CFPREFS_DIRECT_MODE in WK2.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WTF:

Update WTF::languageDidChange() to clear preferredLanguages() on Cocoa platforms
so that we get updated values from the system the next time
platformUserPreferredLanguages() is called.

platformUserPreferredLanguages() used to implicitly register a AppleLanguagePreferencesChangedNotification
listener. We've now made this registering opt-in by moving it to a separate
listenForLanguageChangeNotifications() function. This function is getting called
on Mac WK1 and WK2 when CFPREFS_DIRECT_MODE is disabled (legacy).
When CFPREFS_DIRECT_MODE is enabled in WK2, we don't want/need to listen for this
notification because the AppleLanguages preference gets pushed by the UIProcess
down to the WebProcesses. Even though we could listen for this notification,
the WebProcess would not have the latest AppleLanguages preference when receiving
the notification. This would cause us to fire the languagechange event at the
Window too early and navigator.language would keep returning the old language.
For WK2 with CFPREFS_DIRECT_MODE enabled, we now explicitly call
WTF::languageDidChange() when the "AppleLanguages" preference gets sync'd from
the UIProcess instead.

  • wtf/Language.cpp:

(WTF::languageDidChange):
(WTF::platformLanguageDidChange):

  • wtf/Language.h:
  • wtf/cf/LanguageCF.cpp:

(WTF::languagePreferencesDidChange):
(WTF::platformLanguageDidChange):
(WTF::listenForLanguageChangeNotifications):
(WTF::platformUserPreferredLanguages):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(TEST):

10:41 AM Changeset in webkit [273903] by Chris Dumez
  • 14 edits in trunk/Source

Set ownership of IOSurfaces from the GPUProcess instead of the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=222391
Source/WebCore:

<rdar://problem/74748353>

Reviewed by Simon Fraser.

Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::setOwnershipIdentity):

Source/WebCore/PAL:

<rdar://74748353>

Reviewed by Simon Fraser.

Add declaration for new IOSurfaceSetOwnershipIdentity() SPI, for the open source
SDK.

  • pal/spi/cocoa/IOSurfaceSPI.h:

Source/WebKit:

<rdar://problem/74748353>

Reviewed by Simon Fraser.

Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::setProcessOwnership):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::setProcessOwnership):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:

Source/WTF:

<rdar://74748353>

Reviewed by Simon Fraser.

Add HAVE_IOSURFACE_SET_OWNERSHIP_IDENTITY feature flag to protect uses of the
new IOSurfaceSetOwnershipIdentity() SPI.

  • wtf/PlatformHave.h:
10:28 AM Changeset in webkit [273902] by Said Abou-Hallawa
  • 3 edits in trunk/LayoutTests

Followup (r273764): Use different container sizes in background-svg-image-loading.html
https://bugs.webkit.org/show_bug.cgi?id=222679

Reviewed by Antti Koivisto.

This will force different SVGImageForContainers in SVGImageCache one for
each SVGImage client (<div> element in this test).

  • fast/css/background-svg-image-loading-expected.html:
  • fast/css/background-svg-image-loading.html:
10:26 AM Changeset in webkit [273901] by keith_miller@apple.com
  • 5 edits
    4 adds in trunk

window proxy of detached iframe doesn't respect updates to global values
https://bugs.webkit.org/show_bug.cgi?id=206445

Reviewed by Chris Dumez.

Source/WebCore:

According to the html spec the frame should only be needing for
COOP access violation reporting, which we don't support. This
patch removes our old behavior of blocking stores to windows that
have been detached.

I also removed some stale caching code from
getOwnPropertySlotByIndex since it's only accessed once now.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::JSDOMWindow::doPutPropertySecurityCheck):
(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::putByIndex):

LayoutTests:

  • fast/frames/iframe-detached-window-still-writable-eval-expected.txt: Added.
  • fast/frames/iframe-detached-window-still-writable-eval.html: Added.
  • fast/frames/iframe-detached-window-still-writable-expected.txt: Added.
  • fast/frames/iframe-detached-window-still-writable.html: Added.
  • http/tests/dom/cross-origin-detached-window-properties-expected.txt:
  • http/tests/dom/cross-origin-detached-window-properties.html:
10:19 AM Changeset in webkit [273900] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audits Tab: nothing happens when clicking "Start" button in the content area placeholder text
https://bugs.webkit.org/show_bug.cgi?id=222740
rdar://75008042

Patch by Razvan Caliman <Razvan Caliman> on 2021-03-04
Reviewed by Devin Rousso.

  • UserInterface/Views/AuditTestContentView.js:

(WI.AuditTestContentView.prototype.showNoResultPlaceholder):

10:10 AM Changeset in webkit [273899] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Garden GPU Process TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=222729

Reviewed by Said Abou-Hallawa.

  • gpu-process/TestExpectations: Complete filing bugs for failing tests.

Remove expectations for some tests which are now passing on the bot.

10:08 AM Changeset in webkit [273898] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] inspector/page/empty-or-missing-resources.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222692

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updating test expectations until test flakiness can be resolved.
10:00 AM Changeset in webkit [273897] by commit-queue@webkit.org
  • 14 edits in trunk

Introduce "websocket", "fetch", and "other" resource types to WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=222709
<rdar://problem/71552078>

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

Source/WebCore:

"raw" didn't give the desired granularity. This keeps support for "raw", but splits it into 3 subcategories:
"websocket" which only applies to WebSocket requests,
"fetch" which applies to XMLHTTPRequest and fetch API requests.
"other" which applies to other "raw" requests, such as beacons.

Covered by API tests.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getTypeFlags):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::subresourcesAllowReuse const):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::toResourceType):
(WebCore::ContentExtensions::readResourceType):
(WebCore::ContentExtensions::readLoadType):
(WebCore::ContentExtensions::ResourceLoadInfo::getResourceFlags const):

  • loader/ResourceLoadInfo.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/ResourceLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::SubresourceLoader):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):
(webSocketAcceptValue):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::statusText):

9:57 AM Changeset in webkit [273896] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Adjust progress parameter before calling blend() for discrete interpolations
https://bugs.webkit.org/show_bug.cgi?id=222736

Reviewed by Antti Koivisto.

In the case of discrete interpolation, we must treat progress as 0 for progress < 0.5
and 1 otherwise. Currently we do it separately in at two places. So that we don't do
it in more places, let's do this directly in CSSPropertyAnimation::blendProperties()
so that the progress is already set before any of the blend() methods are called.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimation::blendProperties):

9:55 AM Changeset in webkit [273895] by Peng Liu
  • 8 edits
    2 deletes in trunk

[GPUProcess] MediaController is using a ClockCM
https://bugs.webkit.org/show_bug.cgi?id=222094

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix test failures.

  • html/MediaController.cpp: Some minor clean-up.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:

A minor clean-up.

Source/WebCore/PAL:

Remove ClockCM and use ClockGeneric instead because ClockCM::currentTime()
always returns NaN when "Media in GPU Process" is enabled.

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/system/mac/ClockCM.h: Removed.
  • pal/system/mac/ClockCM.mm: Removed.

LayoutTests:

  • platform/wk2/TestExpectations:
9:49 AM Changeset in webkit [273894] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices is unnecessarily creating a NSArray twice
https://bugs.webkit.org/show_bug.cgi?id=222732

Reviewed by Eric Carlson.

Before the patch, [m_audioSession availableInputs] was called twice.
This creates two NSArray which is not create from a memory standpoint.
There is also the risk that the two NSArrays have two different size, in which case Vector::uncheckedAppend would fail.

Cannot be easily tested, no observable change expected.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices const):

9:49 AM Changeset in webkit [273893] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Use NO_MAIN_THREAD_WRAPPING to compile libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=222717
<rdar://problem/74988599>

Reviewed by Eric Carlson.

  • Configurations/libwebrtc.xcconfig:

This prevents creating socket server in Web Process.

9:48 AM Changeset in webkit [273892] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

REGRESSION (r273732): ASSERTION FAILED: Completion handler should always be called under WebKit::RemoteRealtimeMediaSourceProxy::~RemoteRealtimeMediaSourceProxy
https://bugs.webkit.org/show_bug.cgi?id=222691
<rdar://problem/75006211>

Reviewed by Eric Carlson.

Make sure to return a ApplyConstraints completed message in all cases.
Call completion handler when source gets destroyed.
Covered by existing tests.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::applyConstraints):

  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:

(WebKit::RemoteRealtimeMediaSourceProxy::~RemoteRealtimeMediaSourceProxy):

  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

8:44 AM Changeset in webkit [273891] by youenn@apple.com
  • 30 edits in trunk

Update camera and microphone capture state control WKWebView API
https://bugs.webkit.org/show_bug.cgi?id=222166

Reviewed by Eric Carlson.

Source/WebCore:

Introduce the possibility to mute either camera and/or microphone capture independently.
Covered by existing tests.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):
(WebCore::MediaStreamTrack::updateToPageMutedState):
(WebCore::trackMatchesKind):
(WebCore::MediaStreamTrack::endCapture):

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::stopMediaCapture):

  • dom/Document.h:
  • page/MediaProducer.h:
  • page/Page.cpp:

(WebCore::Page::stopMediaCapture):

  • page/Page.h:

Source/WebKit:

Introduce KVO states for microphone and camera capture states.
Add two APIs to set microphone and camera state.
This allows to mute/unmute or stop microphone or camera state.
We needed to introduce muting of either microphone or camera since this was tied together before the patch.
These two APIs take a completion handler.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _cameraCaptureState]):
(-[WKWebView _microphoneCaptureState]):
(-[WKWebView setMicrophoneCaptureState:completionHandler:]):
(-[WKWebView setCameraCaptureState:completionHandler:]):
(-[WKWebView _stopMediaCapture]):
(-[WKWebView _mediaCaptureState]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/MediaUtilities.h:
  • UIProcess/Cocoa/MediaUtilities.mm:

(WebKit::toWKMediaCaptureStateDeprecated):
(WebKit::toWKMediaCaptureState): Deleted.

  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::microphoneCaptureChanged):
(WebKit::PageClientImplCocoa::cameraCaptureChanged):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::mediaCaptureStateDidChange):

  • UIProcess/PageClient.h:

(WebKit::PageClient::microphoneCaptureChanged):
(WebKit::PageClient::cameraCaptureChanged):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::stopMediaCapture):
(WebKit::WebPageProxy::updateReportedMediaCaptureState):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::stopMediaCapture):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::setMuted):
(WebKit::WebPage::stopMediaCapture):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Updaed according renaming of _WKMediaCaptureState in _WKMediaCaptureStateDeprecated.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::wkMediaCaptureStateString):
(TestWebKitAPI::waitUntilCaptureState):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:

(-[MediaStreamTrackDetachedUIDelegate _webView:mediaCaptureStateDidChange:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[GetUserMediaUIDelegate _webView:mediaCaptureStateDidChange:]):

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(-[SpeechRecognitionUIDelegate _webView:mediaCaptureStateDidChange:]):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::isDoingMediaCapture const):

8:32 AM Changeset in webkit [273890] by youenn@apple.com
  • 3 edits
    2 adds in trunk

Handle the case of synchronous failure in loading blob.
https://bugs.webkit.org/show_bug.cgi?id=222724

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Test: http/tests/fetch/blob-in-unload-event-handler.html

  • fileapi/Blob.cpp:

(WebCore::Blob::stream):
In case of synchronous failure, wait for the stream to be started to error it.

LayoutTests:

  • http/tests/fetch/blob-in-unload-event-handler-expected.txt: Added.
  • http/tests/fetch/blob-in-unload-event-handler.html: Added.
8:26 AM Changeset in webkit [273889] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] LineBox::m_rootInlineBox does not need to be a UniqueRef
https://bugs.webkit.org/show_bug.cgi?id=222705

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::m_rootInlineBox):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRectForRootInlineBox const):
(WebCore::Layout::LineBox::alignmentBaseline const):
(WebCore::Layout::LineBox::inlineLevelBoxForLayoutBox):

6:23 AM Changeset in webkit [273888] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] InlineContentBuilder::createDisplayNonRootInlineBoxes should check if the line has inline boxes at all
https://bugs.webkit.org/show_bug.cgi?id=222707

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

6:22 AM Changeset in webkit [273887] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Make LineBox::m_inlineLevelBoxRectMap a non-root inline level box map
https://bugs.webkit.org/show_bug.cgi?id=222704

Reviewed by Antti Koivisto.

Let's not trigger hash lookup for the most common inlineLevelBoxForLayoutBox() call (when we lookup the root inline box
as the parent of a text content).

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::addInlineLevelBox):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::inlineLevelBoxForLayoutBox const):
(WebCore::Layout::LineBox::inlineLevelBoxForLayoutBox):

5:53 AM Changeset in webkit [273886] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check platformData when decoding
https://bugs.webkit.org/show_bug.cgi?id=221442

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-04
Reviewed by Ryosuke Niwa.

Source/WebKit:

Null check platformData when decoding.

Test: ipc/pasteboard-write-custom-data.html

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode):

LayoutTests:

Add test for this.

  • ipc/pasteboard-write-custom-data-expected.txt: Added.
  • ipc/pasteboard-write-custom-data.html: Added.
5:22 AM Changeset in webkit [273885] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk/Source/WebCore

[Nicosia] Move shared scrolling animation code into a ScrollingTreeScrollingNodeDelegate
https://bugs.webkit.org/show_bug.cgi?id=222714

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-04
Reviewed by Žan Doberšek.

No new tests. This should not change behavior.

  • PlatformMac.cmake: Remove delegate parent class from Mac-specific list.
  • PlatformPlayStation.cmake: Added new class to source list.
  • Sources.txt: Added delegate parent class to shared source list.
  • SourcesGTK.txt: Added new class.
  • SourcesWPE.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Remove source file from project, since

it is now in Sources.txt.

  • page/scrolling/ScrollingTreeScrollingNodeDelegate.cpp: Changed import to include.
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

Moved shared code to ScrollingTreeScrollingNodeDelegate.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h: Ditto.
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp: Ditto.
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h: Dito.
  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp: Added

shared code from ScrollingTreeFrameScrollingNodeNicosia and ScrollingTreeOverflowScrollingNodeNicosia

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h: Added.
5:18 AM Changeset in webkit [273884] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r273644 ): [GStreamer] new webrtc failures
https://bugs.webkit.org/show_bug.cgi?id=222649

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-04
Reviewed by Xabier Rodriguez-Calvar.

Since the mediastreamsrc element maintains static source pads, it now needs to remove pads
left unused resulting from a track removal.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcRemovePad):
(webkitMediaStreamSrcRemoveTrackByType):

5:01 AM Changeset in webkit [273883] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Detect unrecognized options in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=221186

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-03-04
Reviewed by Keith Miller.

run-javascriptcore-tests saves unrecognized arguments to pass
through to build-jsc even when --no-build is used. However, when
we're not building, nothing will ever use or look at the extra
arguments. This means that those arguments are silently eaten
up and, consequently, typos in option names can go undetected.

Change the script to fail when --no-build has been passed and
there are unrecognized options.

  • Scripts/run-javascriptcore-tests:
3:26 AM Changeset in webkit [273882] by graouts@webkit.org
  • 20 edits in trunk

initial value for border-image-outset should be 0
https://bugs.webkit.org/show_bug.cgi?id=222721

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Pass one extra WPT test.

  • web-platform-tests/css/css-backgrounds/inheritance.sub-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

The initial value for border-image-outset was a Length with Fixed type (0px)
instead of Relative type (0).

  • rendering/style/NinePieceImage.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):

LayoutTests:

Update some tests to make the correct assumption on the border-image-ouset initial value.

  • css3/calc/reflection-computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-border-image-expected.txt:
  • fast/css/getComputedStyle/computed-style-border-image.html:
  • fast/css/getComputedStyle/computed-style-with-zoom-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-border-image-expected.txt:
  • fast/reflections/reflection-computed-style-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
1:39 AM Changeset in webkit [273881] by youenn@apple.com
  • 3 edits
    3 adds in trunk

FileReader::enqueueTask should validate that its context is not stopped before executing the task
https://bugs.webkit.org/show_bug.cgi?id=222472
Source/WebCore:

Reviewed by Alex Christensen.

The event loop might run tasks even though active dom objects are stopped.
Protect from this by adding a check since m_state checks are not sufficient.
A follow-up patch should probably try to neuter FileReader if it is stopped.

Covered by http/wpt/filereader/filereader-stop.html.

  • fileapi/FileReader.cpp:

(WebCore::FileReader::fireEvent):
(WebCore::FileReader::enqueueTask):

LayoutTests:

<rdar://problem/74753571>

Reviewed by Alex Christensen.

  • http/wpt/filereader/filereader-stop.html: Added.
1:39 AM Changeset in webkit [273880] by Chris Lord
  • 3 edits in trunk/Source/WebCore

Make the data backing generated global AtomString values accessible
https://bugs.webkit.org/show_bug.cgi?id=222552

Reviewed by Darin Adler.

Modify name header generation script to make the const string data public.

No new tests because there is no behavior change.

  • bindings/scripts/StaticString.pm:

(GenerateStrings):

  • dom/make_names.pl:
1:32 AM Changeset in webkit [273879] by youenn@apple.com
  • 4 edits
    4 adds in trunk

Can not read blobs in sandboxed iframes
https://bugs.webkit.org/show_bug.cgi?id=170075
<rdar://problem/31282427>

Reviewed by Alex Christensen.

Source/WebCore:

In case of blob with an opaque origin, get the document that created the blob and use the document for mixed content check.
Further refactoring should be done once specs are updated to clarify this.
See https://github.com/w3c/webappsec-mixed-content/issues/41 for more information.

Tests: http/wpt/fetch/blob-of-opaque-origin-iframe.html

http/wpt/fetch/blob-of-opaque-origin-worker.html

  • loader/MixedContentChecker.cpp:

(WebCore::MixedContentChecker::isMixedContent):

LayoutTests:

  • http/wpt/fetch/blob-of-opaque-origin-iframe-expected.txt: Added.
  • http/wpt/fetch/blob-of-opaque-origin-iframe.html: Added.
  • http/wpt/fetch/blob-of-opaque-origin-worker-expected.txt: Added.
  • http/wpt/fetch/blob-of-opaque-origin-worker.html: Added.
  • platform/win/TestExpectations:
1:09 AM Changeset in webkit [273878] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

IPC stream feature should use client/server naming instead of sender/receiver
https://bugs.webkit.org/show_bug.cgi?id=222592

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-04
Reviewed by Antti Koivisto.

Attempt to simplify already complicated implementation of the stream
implementation. Uses of "sender" and "receiver" were a leftover from
early phase of the implementation.

Rename all remaining instances of "sender" with "client".
Rename all remaining instances of "receiver" with "server".

No new tests, a refactor.

  • Platform/IPC/StreamClientConnection.cpp:

(IPC::StreamClientConnection::StreamClientConnection):
(IPC::StreamClientConnection::setWakeUpSemaphore):
(IPC::StreamClientConnection::wakeUpServer):

  • Platform/IPC/StreamClientConnection.h:

(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::tryAcquire):
(IPC::StreamClientConnection::release):

  • Platform/IPC/StreamConnectionBuffer.cpp:

(IPC::StreamConnectionBuffer::StreamConnectionBuffer):
(IPC::StreamConnectionBuffer::operator=):
(IPC::StreamConnectionBuffer::encode const):

  • Platform/IPC/StreamConnectionBuffer.h:

(IPC::StreamConnectionBuffer::clientOffset):
(IPC::StreamConnectionBuffer::serverOffset):
(IPC::StreamConnectionBuffer::clientWaitSemaphore):
(IPC::StreamConnectionBuffer::maximumSize):

  • Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnectionBase::tryAquire):
(IPC::StreamServerConnectionBase::release):

  • Platform/IPC/StreamServerConnection.h:

(IPC::StreamServerConnectionBase::sharedClientOffset):
(IPC::StreamServerConnectionBase::sharedServerOffset):

1:00 AM Changeset in webkit [273877] by commit-queue@webkit.org
  • 24 edits in trunk

Adding new test conditions for WebGL should be simpler
https://bugs.webkit.org/show_bug.cgi?id=222593

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-04
Reviewed by Kenneth Russell.

Source/WebCore:

Replace Internals functions:

Internals.setFailNextGPUStatusCheck()
Internals.simulateContextChanged()

with

Internals.simulateEventForWebGLContext(SimulatedWebGLContextEvent, WebGLRenderingContext)

Most envisioned test simulation environment triggers do not need parameters. It is simpler
to implement the triggers from one call site.

No new tests, a refactor.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::simulateEventForTesting):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::simulateEventForTesting):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::simulateEventForTesting):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • testing/Internals.h:
  • testing/Internals.idl:

Implement the feature by replacing

Internals.setFailNextGPUStatusCheck()
Internals.simulateContextChanged()

with

Internals.simulateEventForWebGLContext(SimulatedWebGLContextEvent, WebGLRenderingContext)

with eventName taking invented events that can happen to a
webgl context:

"GPUStatusFailure" and "ContextChange".

Future commits will add at least "Timeout".

The Internals function name was chosen not to contain "ForTesting" suffix, as
all the functions in the class should have that suffix.
The function names in the implementation path for the feature contains
"ForTesting" in order to highlight the feature not being in the normal
path.

Source/WebKit:

Replace simulateContextChanged and
setFailNextGPUStatusCheck with simulateEventForTesting.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::simulateEventForTesting):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

Tools:

Add SimulateEventForTesting(String eventName) to manually
implemented RemoteGraphicsContextGL functions.
Use manually generated function because next commit for
timeout implementation will add some logic to RemoteGraphicsContextGL
while forwarding rest of the events to the underlying GraphicsContextGL.

  • Scripts/generate-gpup-webgl:

LayoutTests:

  • fast/canvas/webgl/webglcontextchangedevent.html:

Replace internals.simulateContextChanged(context) with
internals.simulateEventForWebGLContext("ContextChange", context)

  • fast/canvas/webgl/lose-context-on-status-failure.html:

Similarly replace internals.setFailNextGPUStatusCheck(context) with
internals.simulateEventForWebGLContext("GPUStatusFailure", context).

12:48 AM Changeset in webkit [273876] by svillar@igalia.com
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: contentSize >= 0 in WefbCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=222711

Unreviewed test gardening.

  • TestExpectations: Adding a test that is ASSERTing in Debug builds since it was imported.

Mar 3, 2021:

11:22 PM Changeset in webkit [273875] by commit-queue@webkit.org
  • 6 edits in trunk

WKRemoteObjectCoder should be able to handle NSErrors from TLS failures
https://bugs.webkit.org/show_bug.cgi?id=222401
Source/WebKit:

<rdar://problem/72103865>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-03
Reviewed by Chris Dumez.

NSErrors from TLS failures contain values like a SecTrustRef or a SecCertificateRef,
which are not ObjC objects, and they don't like it when you call encodeWithCoder: on them.
Until r273141 it would crash when we do, but even after that we just decode a nil NSError.
Add a special case like we did in encodeNSError to successfully encode and decode these errors.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(decodeObjCObject):
(transformCertificatesToData):
(transformTrustToData):
(encodeError):
(transformDataToCertificates):
(transformDataToTrust):
(decodeError):
(encodeObject):
(decodeObject):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-03
Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:
  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn sendError:completionHandler:]):

10:13 PM Changeset in webkit [273874] by ysuzuki@apple.com
  • 7 edits
    1 copy
    4 adds
    1 delete in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=222710

Reviewed by Ross Kirsling.

Update test262. New failure is due to the spec change, tracked in https://bugs.webkit.org/show_bug.cgi?id=222526.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Array/prototype/sort/call-with-primitive.js: Added.
  • test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
  • test262/test/language/expressions/object/dstr/object-rest-proxy-get-not-called-on-dontenum-keys.js: Added.

(getOwnPropertyDescriptor):
(ownKeys):

  • test262/test/language/expressions/object/dstr/object-rest-proxy-gopd-not-called-on-excluded-keys.js: Added.

(getOwnPropertyDescriptor):
(ownKeys):

  • test262/test/language/expressions/object/object-spread-proxy-get-not-called-on-dontenum-keys.js: Added.

(getOwnPropertyDescriptor):
(ownKeys):

  • test262/test/language/expressions/object/object-spread-proxy-no-excluded-keys.js: Copied from JSTests/test262/test/language/expressions/object/object-spread-proxy-ownkeys-returned-keys-order.js.

(getOwnPropertyDescriptor):
(ownKeys):

  • test262/test/language/expressions/object/object-spread-proxy-ownkeys-returned-keys-order.js:
  • test262/test/language/statements/class/constructor-inferred-observable-iteration.js: Removed.
  • test262/test/language/statements/class/subclass/default-constructor-spread-override.js:

(Array.prototype.Symbol.iterator):
(Base):

  • test262/test262-Revision.txt:
9:59 PM Changeset in webkit [273873] by commit-queue@webkit.org
  • 4 edits
    2 moves
    2 deletes in trunk/Source/WebCore

Remove RemoteCommandListenerIOS in favor of a common RemoteCommandListenerCocoa
https://bugs.webkit.org/show_bug.cgi?id=222342
rdar://problem/74773837

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-03
Reviewed by Eric Carlson.

There is no change in behavior with this commit.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/RemoteCommandListener.cpp:

(WebCore::RemoteCommandListener::resetCreationFunction):

  • platform/cocoa/RemoteCommandListenerCocoa.h: Renamed from Source/WebCore/platform/mac/RemoteCommandListenerMac.h.
  • platform/cocoa/RemoteCommandListenerCocoa.mm: Renamed from Source/WebCore/platform/mac/RemoteCommandListenerMac.mm.

(WebCore::RemoteCommandListenerCocoa::create):
(WebCore::RemoteCommandListenerCocoa::defaultCommands):
(WebCore::RemoteCommandListenerCocoa::updateSupportedCommands):
(WebCore::RemoteCommandListenerCocoa::RemoteCommandListenerCocoa):
(WebCore::RemoteCommandListenerCocoa::~RemoteCommandListenerCocoa):

  • platform/ios/RemoteCommandListenerIOS.h: Removed.
  • platform/ios/RemoteCommandListenerIOS.mm: Removed.
9:00 PM Changeset in webkit [273872] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Limit HashTable entry size to 500 bytes
https://bugs.webkit.org/show_bug.cgi?id=222658

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-03
Reviewed by Yusuke Suzuki.

Source/WebCore:

Moving large structures inside HashTables is slower than just moving a pointer.
There is a point at which it becomes more efficient to add a separate allocation
rather than have gigantic HashTables that use all that memory for each empty slot
and use all those read and write operations to move when rehashing. I'm not sure
exactly where that point is, but I'm pretty sure it's less than 500 bytes. This
introduces a limit and removes the two largest HashTables in WebKit, replacing their
values with std::unique_ptr to save memory and time.

  • Modules/cache/DOMCacheEngine.h:
  • platform/network/NetworkLoadInformation.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::getNetworkLoadInformationResponse):
(WebKit::NetworkConnectionToWebProcess::getNetworkLoadIntermediateInformation):
(WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformation):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::writeRecord):
(WebKit::CacheStorage::Caches::readRecord):

  • NetworkProcess/cache/CacheStorageEngineCaches.h:

Source/WTF:

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):

8:35 PM Changeset in webkit [273871] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ Catalina wk1 ews ] media/remote-control-command-seek.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215325

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Update test expectations since EWS moved to Catalina.
8:19 PM Changeset in webkit [273870] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

[JSC] ENABLE(JIT_CAGE) requires HAVE(JIT_CAGE)
https://bugs.webkit.org/show_bug.cgi?id=222695

Reviewed by Saam Barati.

HAVE(JIT_CAGE) is internally defined. We use HAVE(JIT_CAGE) when defining ENABLE(JIT_CAGE).

  • wtf/PlatformEnable.h:
6:31 PM Changeset in webkit [273869] by Andres Gonzalez
  • 9 edits in trunk

Replace the multiple WebAccessibilityObjectWrapperIOS postXXXNotification methods with a single postNotification method.
https://bugs.webkit.org/show_bug.cgi?id=221707

Reviewed by Chris Fleizach.

Source/WebCore:

Instead of having a postXXXNotification method per notification in the
iOS WebAccessibilitObjectWrapper implementation, we now have a single
method that takes the name of the notification. This cleans up the
existing notification posting code and simplifies adding new notifications.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<): Added a new notification constant AXPageScrolled.

  • accessibility/AXObjectCache.h:
  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::notificationPlatformName):
Handles all notifications used on iOS.
(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityScroll:]):
Uses the helper AXObjectCache::notificationPlatformName to get page scrolled notification name.
(-[WebAccessibilityObjectWrapper postFocusChangeNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postSelectedTextChangeNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postLayoutChangeNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postLiveRegionChangeNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postLiveRegionCreatedNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postLoadCompleteNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postChildrenChangedNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postInvalidStatusChangedNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postValueChangedNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postExpandedChangedNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postScrollStatusChangeNotification]): Deleted.
(-[WebAccessibilityObjectWrapper postCurrentStateChangedNotification]): Deleted.

LayoutTests:

The name of the notification is now "AXPageScrolled". Adjusted the script
and the expected output accordingly.

  • accessibility/ios-simulator/scroll-in-overflow-div-expected.txt:
  • accessibility/ios-simulator/scroll-in-overflow-div.html:
6:13 PM Changeset in webkit [273868] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in removeSymbolElementsFromSubtree()
https://bugs.webkit.org/show_bug.cgi?id=222397

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-03
Reviewed by Ryosuke Niwa.

Skip children in removeSymbolElementsFromSubtree(), so that
we don't see nodes that have been removed in disassociateAndRemoveClones.

Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.

  • svg/SVGUseElement.cpp:

(WebCore::removeSymbolElementsFromSubtree):

5:49 PM Changeset in webkit [273867] by Chris Dumez
  • 11 edits in trunk

Unreviewed, reverting r273851.

Caused some tests failures on macOS Big Sur

Reverted changeset:

"[macOS][WK2] Changing the system language does not update
navigator.language"
https://bugs.webkit.org/show_bug.cgi?id=222619
https://commits.webkit.org/r273851

5:48 PM Changeset in webkit [273866] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Nulllptr crash in DeleteSelectionCommand::handleGeneralDelete()
https://bugs.webkit.org/show_bug.cgi?id=222681

Reviewed by Wenson Hsieh.

Skip the loop when m_downstreamEnd.isNull() or im_downstreamEnd.isOrphan() is true
to avoid dereferencing a nullptr.

No new tests since we don't have any reproduction for this crash,
and it's not obvious how we're getting into that state.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::handleGeneralDelete):

5:34 PM Changeset in webkit [273865] by Devin Rousso
  • 38 edits
    2 moves
    1 add
    2 deletes in trunk

Web Inspector: RecordCanvasActionVariant causes a huge symbol to be created in WebCore
https://bugs.webkit.org/show_bug.cgi?id=222639
<rdar://problem/73728057>

Reviewed by Tim Horton and Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Recording.json:

Drive-by: Add info about snapshot to the "description" of "actions" in "Frame".

Source/WebCore:

The only reason that RecordCanvasActionVariant exists is so that the generated IDL code
can pass all arguments at once to the function defined by CallTracingCallback. Instead,
change CallTracingCallback (which expects a static function on CallTracer) to be
CallTracer (which expects a class) so that more than one function can be used in the
generated IDL code (and so that not every usage has to be part of `CallTracer). These new
functions are:

  • processArgument, which is used to convert the argument to a more generic type
  • recordAction, which is basically what CallTracingCallback used to be

In the case of InspectorCanvasCallTracer (which is what recordCanvasAction used to be),
processArgument converts to a struct of JSON::Value and RecordingSwizzleType, which
used to happen way later in InspectorCanvas::buildAction (which is why there used to be
RecordCanvasActionVariant as there was no other good way of handling all the various
arguments of all the various functions). The only effect that this change has is that now
the deduplicated data in the Recording payload might have a different order, as
arguments are deduplicated before action names, but this shouldn't have any noticable effect
as the Web Inspector frontend handles the "unpacking" of the deduplicated data in the same
way (and the tests confirm it).

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateImplementationFunctionCall):
(GenerateCallTracer):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/TestCallTracer.idl:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

Replace CallTracingCallback with CallTracer

  • inspector/InspectorCanvasCallTracer.h: Added.

(WebCore::InspectorCanvasCallTracer::recordAction):

  • inspector/InspectorCanvasCallTracer.cpp: Added.

(WebCore::enabledCanvasAgent):
(WebCore::InspectorCanvasCallTracer::recordAction):
(WebCore::InspectorCanvasCallTracer::processArgument):

  • bindings/js/CallTracer.h: Removed.
  • bindings/js/CallTracer.cpp: Removed.
  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::recordCanvasAction): Deleted.
(WebCore::InspectorInstrumentation::recordCanvasActionImpl): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::recordCanvasActionImpl): Deleted.
Rather than piping through InspectorInstrumentation (which would require adding #include
for all the argument types in the .h), just pull out the InspectorCanvasAgent and use it
locally here.

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::canvasChanged):
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::InspectorCanvas::processArgument):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::valueIndexForData): Added.
(WebCore::InspectorCanvas::buildAction):

  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::recordAction): Added.
(WebCore::InspectorCanvasAgent::recordCanvasAction): Deleted.
Create individual processArgument member function for each type used by the various canvas
contexts instead of having one giant WTF::switchOn for RecordCanvasActionVariant.

  • html/HTMLCanvasElement.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/ImageBitmapRenderingContext.idl:
  • html/canvas/OffscreenCanvasRenderingContext2D.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContext.idl:

Replace CallTracingCallback=recordCanvasAction with CallTracer=InspectorCanvasCallTracer.

  • html/CanvasBase.h:
  • html/CanvasBase.cpp:

(WebCore::CanvasBase::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::CanvasBase::callTracingActive const): Deleted.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint):

  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::CanvasRenderingContext::setHasActiveInspectorCanvasCallTracer): Added.
(WebCore::CanvasRenderingContext::callTracingActive const): Deleted.
(WebCore::CanvasRenderingContext::setCallTracingActive): Deleted.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::didComposite):
Replace callTracingActive with hasActiveInspectorCanvasCallTracer.

  • inspector/RecordingSwizzleType.h: Renamed from Source/WebCore/inspector/RecordingSwizzleTypes.h.

Drive-by: Rename RecordingSwizzleTypes to RecordingSwizzleType.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGL2RenderingContext.cpp:
  • html/canvas/WebGLRenderingContext.cpp:
  • loader/DocumentThreadableLoader.cpp:
  • loader/ImageLoader.cpp:
  • loader/TextTrackLoader.cpp:
  • page/Page.cpp:

Drive-by: unified sources include fixes

Source/WebInspectorUI:

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction):
Don't use || for the fallback of _payloadSnapshot as it can be 0.

  • UserInterface/Models/Recording.js:

Drive-by: Rename RecordingSwizzleTypes to RecordingSwizzleType.

LayoutTests:

  • inspector/canvas/resources/recording-webgl2.js:
  • inspector/canvas/recording-webgl2-full-expected.txt:

Use an actual uniform name instead of a random test string.

5:19 PM Changeset in webkit [273864] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.3

Tag Safari-611.1.21.0.3.

5:00 PM Changeset in webkit [273863] by Alan Coon
  • 4 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273839. rdar://problem/75009410

REGRESSION (r273154): Speedometer 2 is 1-2% regressed on iOS
https://bugs.webkit.org/show_bug.cgi?id=222663
<rdar://problem/74715929>

Reviewed by Ryosuke Niwa.

A 1-2% regression was observed in Speedometer 2 after enabling the iOS
Form Control Refresh (FCR). Traces indicated an increased amount of time
spent in style resolution. Note that currently the FCR styles are
appended to the base UA stylesheet at runtime, to apply the necessary
changes for the new appearance, while making it possible to toggle the
feature.

To fix, the FCR stylesheet is merged into the base UA stylesheet. This
avoids ruleset duplication, which made it more expensive to resolve
styles. To preserve the old appearance when the feature is runtime
disabled, the old styles are moved into a separate stylesheet, appended
at runtime.

The fix was verified as an equivalent progression using internal A/B
testing infrastructure.

Note that this solution means that disabling the FCR will result in a
Speedometer regression, due to ruleset duplication. However, this should
not be a concern since the feature is controlled by an internal switch,
is enabled by default, and is not intended to be disabled.

  • css/formControlsIOS.css:
  • css/html.css:
  • style/UserAgentStyle.cpp: (WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

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

5:00 PM Changeset in webkit [273862] by Alan Coon
  • 4 edits
    2 adds in branches/safari-612.1.5-branch

Cherry-pick r273821. rdar://problem/75009461

REGRESSION (r266288): Web Inspector: ::marker shows on every element now
https://bugs.webkit.org/show_bug.cgi?id=222384

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeMarkerPseudoId.html

Add filtering of the ::marker CSS rule for elements that are not list items, as they do no apply to the
element.

  • inspector/agents/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
  • Added filtering for *::marker rules on non-display:list-item elements. (WebCore::InspectorCSSAgent::buildObjectForRule):
  • Drive-by refactoring to reduce code duplication.

LayoutTests:

Added test for the filtering of *::marker selector from the rule results of CSS.getMatchedStyleForNode on
elements that don't support ::marker.

  • inspector/css/getMatchedStylesForNode-expected.txt:
  • Updated expectations to account for the abscence of the ::marker rule on non-list elements.
  • inspector/css/getMatchedStylesForNodeMarkerPseudoId-expected.txt: Added.
  • inspector/css/getMatchedStylesForNodeMarkerPseudoId.html: Added.

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

5:00 PM Changeset in webkit [273861] by Alan Coon
  • 4 edits
    2 adds in branches/safari-612.1.5-branch

Cherry-pick r273764. rdar://problem/75009398

The layout of SVGImage should force the layout for its clients
https://bugs.webkit.org/show_bug.cgi?id=221253
<rdar://problem/74138641>

Reviewed by Simon Fraser.

Source/WebCore:

Unlike the bitmap image, the intrinsic size of SVGImage can only be known
after running its layout. Because SVGImage can be used by multiple clients,
CachedImage maintains an SVGImageCache which maps a client to an
SVGImageForContainer. SVGImageForContainer is just a wrapper of SVGImage
with the intrinsic size of the client. Because we may set an entry for
the renderer in SVGImageCache early before running a layout for SVGImage
and because the renderer intrinsic size depends on the intrinsic size of
SVGImage, SVGImageForContainer may have an empty intrinsic size.

So basically it is a race condition: knowing the intrinsic size of the
SVGImage client depends on the intrinsic size of SVGImage itself. And the
intrinsic size of SVGImageForContainer depends on the intrinsic size of
the client. This may lead to not rendering the clients because their sizes
are empty. To fix this issue we need to force calculateBackgroundImageGeometry()
once we finish the layout of the SVGImage which happens after receiving all
its data and calling RenderBox::imageChanged().

Test: fast/css/background-svg-image-loading.html

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::finishLoading):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::repaintLayerRectsForImage):

LayoutTests:

  • fast/css/background-svg-image-loading-expected.html: Added.
  • fast/css/background-svg-image-loading.html: Added.

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

5:00 PM Changeset in webkit [273860] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch

Cherry-pick r273699. rdar://problem/75009467

[Win] Fix build failure
https://bugs.webkit.org/show_bug.cgi?id=222576
<rdar://problem/74590803>
Reviewed by Brent Fulgham.

It appears a recent change has unintentionally enabled WebInspectorUI on Apple Win. Address this by explicitly disabling it.

  • Source/cmake/OptionsAppleWin.cmake:

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

4:49 PM Changeset in webkit [273859] by Ryan Haddad
  • 9 edits in trunk/Source

Unreviewed, reverting r273832.

26 inspector tests failing a new assert added with this change

Reverted changeset:

"Limit HashTable entry size to 500 bytes"
https://bugs.webkit.org/show_bug.cgi?id=222658
https://commits.webkit.org/r273832

4:41 PM Changeset in webkit [273858] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.4

Tag Safari-611.1.21.1.4.

4:40 PM Changeset in webkit [273857] by Russell Epstein
  • 1 delete in tags/Safari-611.1.21.1.4

Delete tag.

4:39 PM Changeset in webkit [273856] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.4

4:29 PM Changeset in webkit [273855] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.21.1.4

Tag Safari-611.1.21.1.4.

4:15 PM Changeset in webkit [273854] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk/Tools

Make LayoutTestFinder.find_tests/find_tests_by_path return List[Test]
https://bugs.webkit.org/show_bug.cgi?id=222662

Patch by Sam Sneddon <Sam Sneddon> on 2021-03-03
Reviewed by Jonathan Bedard.

This introduces a Test class, to later be able to migrate finding
expectations to LayoutTestFinder.

  • Scripts/open-layout-test:

(main):

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder.find_tests):
(LayoutTestFinder.find_tests_by_path):

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py:

(LayoutTestFinderTests.test_find_with_skipped_directories):

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.run):
(Manager.print_expectations):

  • Scripts/webkitpy/layout_tests/models/test.py: Added.

(Test):
(Test.init):
(Test.repr):
(Test.eq):

  • Scripts/webkitpy/layout_tests/models/test_input.py:

(TestInput):

  • Scripts/webkitpy/tool/commands/queries.py:

(PrintExpectations.execute):

3:54 PM Changeset in webkit [273853] by Peng Liu
  • 7 edits in trunk/LayoutTests

[GPUP] Two tests related to media element state are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221688

Reviewed by Jer Noble.

This patch fixes two flaky tests by updating the expected value of a media element's "networkState"
in a "loadstart" event handler.

A video/audio element's network state may have changed from LOADING to IDLE before the "loadstart"
event handler executes. That will happen when the media player notifies the element with a network
state change (by calling HTMLMediaElement::setNetworkState()) from LOADING to LOADED quickly.
The code snippet is below:

`
void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state)
{

...
if (state == MediaPlayer::NetworkState::Loaded) {

if (m_networkState != NETWORK_IDLE)

changeNetworkStateFromLoadingToIdle();

m_completelyLoaded = true;

}

}
`

  • media/W3C/audio/networkState/networkState_during_loadstart-expected.txt:
  • media/W3C/audio/networkState/networkState_during_loadstart.html:
  • media/W3C/video/networkState/networkState_during_loadstart-expected.txt:
  • media/W3C/video/networkState/networkState_during_loadstart.html:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
3:46 PM Changeset in webkit [273852] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Send console.log() etc. to stdout in MiniBrowser on macOS
https://bugs.webkit.org/show_bug.cgi?id=222629

Patch by Cameron McCormack <Cameron McCormack> on 2021-03-03
Reviewed by Tim Horton.

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate defaultConfiguration]):

3:46 PM Changeset in webkit [273851] by Chris Dumez
  • 11 edits in trunk

[macOS][WK2] Changing the system language does not update navigator.language
https://bugs.webkit.org/show_bug.cgi?id=222619

Reviewed by Per Arne Vollan.

Source/WebKit:

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::setAppleLanguagesPreference):

  • When ENABLE(CFPREFS_DIRECT_MODE), we don't need to set the AppleLanguages

in a volatile domain. This does not change behavior but I made this change
so that I don't need to set AppleLanguages in the volatile domain in
WebProcessCocoa when the preference changes.

  • Also fix a memory leak for newArguments.
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
If CFPREFS_DIRECT_MODE is not enabled, we need to listen for AppleLanguagePreferencesChangedNotification
inside the WebProcess. This used to happen implicitly inside WTF::platformUserPreferredLanguages() but
it is now explicit since we don't want/need it when using CFPREFS_DIRECT_MODE.

(WebKit::setPreferenceValue):

  • Call CFPreferencesSetAppValue() instead of CFPreferencesSetValue(). Without this change

trying to set AppleLanguages here would have no effect and CFLocaleCopyPreferredLanguages()
would keep returning outdated languages.

  • Call WTF::languageDidChange() when the AppleLanguages preference gets updated so that language change listeners get notified of the language change (e.g. we fire a languagechange event at the Window).

Source/WebKitLegacy/mac:

We need to listen for AppleLanguagePreferencesChangedNotification on mac WK1.
This used to happen implicitly inside WTF::platformUserPreferredLanguages() but
it is now explicit since we don't want/need it when using CFPREFS_DIRECT_MODE in WK2.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WTF:

Update WTF::languageDidChange() to clear preferredLanguages() on Cocoa platforms
so that we get updated values from the system the next time
platformUserPreferredLanguages() is called.

platformUserPreferredLanguages() used to implicitly register a AppleLanguagePreferencesChangedNotification
listener. We've now made this registering opt-in by moving it to a separate
listenForLanguageChangeNotifications() function. This function is getting called
on Mac WK1 and WK2 when CFPREFS_DIRECT_MODE is disabled (legacy).
When CFPREFS_DIRECT_MODE is enabled in WK2, we don't want/need to listen for this
notification because the AppleLanguages preference gets pushed by the UIProcess
down to the WebProcesses. Even though we could listen for this notification,
the WebProcess would not have the latest AppleLanguages preference when receiving
the notification. This would cause us to fire the languagechange event at the
Window too early and navigator.language would keep returning the old language.
For WK2 with CFPREFS_DIRECT_MODE enabled, we now explicitly call
WTF::languageDidChange() when the "AppleLanguages" preference gets sync'd from
the UIProcess instead.

  • wtf/Language.cpp:

(WTF::languageDidChange):
(WTF::platformLanguageDidChange):

  • wtf/Language.h:
  • wtf/cf/LanguageCF.cpp:

(WTF::languagePreferencesDidChange):
(WTF::platformLanguageDidChange):
(WTF::listenForLanguageChangeNotifications):
(WTF::platformUserPreferredLanguages):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(TEST):

3:38 PM Changeset in webkit [273850] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur WK1 Release] media/video-aspect-ratio.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222693

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-03-03

  • platform/mac-wk1/TestExpectations:
3:31 PM Changeset in webkit [273849] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

[WTF] Add System.framework PrivateHeaders to header path of WTF
https://bugs.webkit.org/show_bug.cgi?id=222688

Reviewed by Tim Horton.

The other non-third-party components excluding WTF have System.framework PrivateHeaders in their header search path.
This causes the problem that we cannot use some system headers (e.g. <machine/cpu_capabilities.h>) in WTF while it is
usable in JavaScriptCore and the other components. This patch adds it as the other components did.

  • Configurations/Base.xcconfig:
3:07 PM Changeset in webkit [273848] by Chris Dumez
  • 17 edits in trunk

Use adoptNS() right away after calling [obj copy] / [obj mutableCopy]
https://bugs.webkit.org/show_bug.cgi?id=222634

Reviewed by Darin Adler.

Use adoptNS() right away after calling [obj copy] / [obj mutableCopy] to minimize the chance of leaks.

Source/WebCore:

  • editing/cocoa/HTMLConverter.mm:

(defaultParagraphStyle):

  • platform/cocoa/SystemVersion.mm:

(WebCore::createSystemMarketingVersion):
(WebCore::systemMarketingVersion):

Source/WebKit:

  • Shared/ApplePay/ApplePayPaymentSetupFeatures.mm:

(WebKit::PaymentSetupFeatures::decode):

  • Shared/ApplePay/PaymentSetupConfiguration.mm:

(WebKit::PaymentSetupConfiguration::decode):

  • Shared/ApplePay/cocoa/PaymentSetupConfiguration.mm:

(WebKitAdditions::PaymentSetupConfiguration::decode):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::systemDirectoryPath):

  • UIProcess/mac/ServicesController.mm:

(WebKit::ServicesController::refreshExistingServices):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::temporaryPDFDirectoryPath):

Source/WebKitLegacy/mac:

  • Misc/WebNSPasteboardExtras.mm:

(_writableTypesForImageWithArchive):

  • WebCoreSupport/WebApplicationCache.mm:

(overrideBundleIdentifier):
(+[WebApplicationCache initializeWithBundleIdentifier:]):
(applicationCacheBundleIdentifier):

  • WebView/WebPreferences.mm:

(classIBCreatorID):
(+[WebPreferences _setIBCreatorID:]):
(+[WebPreferences _IBCreatorID]):

Tools:

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuMouseEvents.mm:

(TestWebKitAPI::runTest):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST):

3:00 PM Changeset in webkit [273847] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Refine CSS Grid overlay options
https://bugs.webkit.org/show_bug.cgi?id=222428
<rdar://problem/74751569>

Patch by Razvan Caliman <Razvan Caliman> on 2021-03-03
Reviewed by BJ Burg.

Move CSS Grid overlay settings above node list, simplify labels, reorder and set default values.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.initialLayout):

  • UserInterface/Views/LayoutDetailsSidebarPanel.css:

(.details-section.layout-css-grid.collapsed > .content):
Drive-by: Fix a bug which prevented the contents from being hidden when the section is collapsed.

3:00 PM Changeset in webkit [273846] by Caio Lima
  • 3 edits
    1 add in trunk

[ESNext] Private methods can't be named as '#constructor'
https://bugs.webkit.org/show_bug.cgi?id=222680

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/private-method-and-field-named-constructor.js: Added.

Source/JavaScriptCore:

It's a SyntaxError when we try to use #constructor as private name
for methods, accessors, and fields. This patch is fixing such bug for
methods and accessors.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseGetterSetter):

2:57 PM Changeset in webkit [273845] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Enable simplified vertical alignment for non-empty inline boxes
https://bugs.webkit.org/show_bug.cgi?id=222666

Reviewed by Antti Koivisto.

This patch enables the simplified vertical alignment for cases when the line has non-stretching, baseline aligned non-empty inline boxes
even when the inline box spans multiple lines.
e.g.
<div><span>text content</span></div>

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):

2:55 PM Changeset in webkit [273844] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Move LayoutTestFinder.skip_tests to Manager._skip_tests
https://bugs.webkit.org/show_bug.cgi?id=222661

Patch by Sam Sneddon <Sam Sneddon> on 2021-03-03
Reviewed by Jonathan Bedard.

This has nothing to do with finding tests, and everything to do about
test selection depending on the CLI.

Additionally, this removes the unused LayoutTestFinder.skip_tests
all_tests_list argument.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder._skip_tests):

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._skip_tests):
(Manager._prepare_lists):

2:39 PM Changeset in webkit [273843] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk

Unreviewed, reverting r273727.
https://bugs.webkit.org/show_bug.cgi?id=222689

Landed broken test

Reverted changeset:

"Null check platformData when decoding"
https://bugs.webkit.org/show_bug.cgi?id=221442
https://trac.webkit.org/changeset/273727

2:37 PM Changeset in webkit [273842] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under SubresourceLoader::notifyDone()
https://bugs.webkit.org/show_bug.cgi?id=222683
<rdar://70342402>

Reviewed by Geoffrey Garen.

We were crashing doing a null-dereference of m_documentLoader under
SubresourceLoader::notifyDone(). This adds null checks for m_documentLoader
similarly to what is already done elsewhere in ResourceLoader.

No new tests, I do not know how to reproduce this.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::notifyDone):

2:33 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
2:23 PM Changeset in webkit [273841] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

std::is_literal_type causes -Wdeprecated-declarations warning with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=220662
<rdar://problem/73509470>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-03
Reviewed by Darin Adler.

Ignore the warning. It would be better to not use the deprecated std::is_literal_type, but
this works for now.

  • wtf/Variant.h:
2:23 PM Changeset in webkit [273840] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ] inspector/model/auditTestCase.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222677

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Timeout until test is fixed.
2:16 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
2:04 PM Changeset in webkit [273839] by Aditya Keerthi
  • 4 edits in trunk/Source/WebCore

REGRESSION (r273154): Speedometer 2 is 1-2% regressed on iOS
https://bugs.webkit.org/show_bug.cgi?id=222663
<rdar://problem/74715929>

Reviewed by Ryosuke Niwa.

A 1-2% regression was observed in Speedometer 2 after enabling the iOS
Form Control Refresh (FCR). Traces indicated an increased amount of time
spent in style resolution. Note that currently the FCR styles are
appended to the base UA stylesheet at runtime, to apply the necessary
changes for the new appearance, while making it possible to toggle the
feature.

To fix, the FCR stylesheet is merged into the base UA stylesheet. This
avoids ruleset duplication, which made it more expensive to resolve
styles. To preserve the old appearance when the feature is runtime
disabled, the old styles are moved into a separate stylesheet, appended
at runtime.

The fix was verified as an equivalent progression using internal A/B
testing infrastructure.

Note that this solution means that disabling the FCR will result in a
Speedometer regression, due to ruleset duplication. However, this should
not be a concern since the feature is controlled by an internal switch,
is enabled by default, and is not intended to be disabled.

  • css/formControlsIOS.css:
  • css/html.css:
  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

2:00 PM Changeset in webkit [273838] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add python 3 support - part 4
https://bugs.webkit.org/show_bug.cgi?id=222672

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/events.py:

(JSONProducer): Use implementer (python 3 compatible) instead of implements.
(JSONProducer.init): Encode data as utf-8 explicitly.
(Events):
(Events.sendData):

1:56 PM Changeset in webkit [273837] by Robert Jenner
  • 2 edits in trunk/Tools

Adding myself as a committer in the contributors file.
N/A

N/A

  • Scripts/webkitpy/common/config/contributors.json: Added myself as a committer.
1:29 PM Changeset in webkit [273836] by commit-queue@webkit.org
  • 26 edits in trunk

Unreviewed, reverting r273814.
https://bugs.webkit.org/show_bug.cgi?id=222676

Unresolved types in JavaScriptCore-4.0.gir

Reverted changeset:

"[CMake] JavaScriptCore GLib headers should be copies"
https://bugs.webkit.org/show_bug.cgi?id=222625
https://trac.webkit.org/changeset/273814

1:23 PM Changeset in webkit [273835] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Remove LayoutTestFinder.touched_tests, which is now dead code
https://bugs.webkit.org/show_bug.cgi?id=222660

Patch by Sam Sneddon <Sam Sneddon> on 2021-03-03
Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder.find_touched_tests): Removed.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py:

Remove related tests.

1:05 PM Changeset in webkit [273834] by Jonathan Bedard
  • 6 edits in trunk/Tools

[resultsdbpy] Make testing compatible with Python 3.8
https://bugs.webkit.org/show_bug.cgi?id=222678
<rdar://problem/74997936>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/flask_test_context.py:

(FlaskTestContext):
(FlaskTestContext.start_webserver): Make function pickle able.
(FlaskTestContext.init): Pass class to owning webserver setup.
(FlaskTestContext.enter):

  • Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/flask_testcase.py:

(FlaskTestCase.run_with_real_webserver.decorator.real_method):

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/cassandra_context.py:

(filter_for_argument): Style fix.

  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
1:04 PM Changeset in webkit [273833] by timothy_horton@apple.com
  • 13 edits
    2 adds
    2 deletes in trunk/Source

Modernize WebKit2 PDFKit softlinking
https://bugs.webkit.org/show_bug.cgi?id=222643

Reviewed by Alex Christensen.

Source/WebKit:

WebKit2 has long had an unusual way of softlinking PDFKit, using NSBundle.
It has caused much trouble in the past, because it means that running
WebKit against a custom PDFKit requires either installing it into
the system, or changing the hardcoded path.

Instead of this, just use the normal softlinking macros that the rest
of WebKit uses.

  • Shared/Cocoa/PDFKitSoftLink.h: Added.
  • Shared/Cocoa/PDFKitSoftLink.mm: Added.
  • Shared/mac/PDFKitImports.h: Removed.
  • Shared/mac/PDFKitImports.mm: Removed.
  • SourcesCocoa.txt:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView drawRect:]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::documentDataDidFinishLoading):
(WebKit::PDFPlugin::setActiveAnnotation):
(WebKit::PDFPlugin::nextMatchForString):
(WebKit:: const):

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:

(WebKit::PDFPluginAnnotation::create):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
  • WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::shouldUsePDFPlugin const):
(WebKit::drawPDFPage):

Source/WTF:

  • wtf/PlatformHave.h:
12:54 PM Changeset in webkit [273832] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Limit HashTable entry size to 500 bytes
https://bugs.webkit.org/show_bug.cgi?id=222658

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-03
Reviewed by Yusuke Suzuki.

Source/WebCore:

Moving large structures inside HashTables is slower than just moving a pointer.
There is a point at which it becomes more efficient to add a separate allocation
rather than have gigantic HashTables that use all that memory for each empty slot
and use all those read and write operations to move when rehashing. I'm not sure
exactly where that point is, but I'm pretty sure it's less than 500 bytes. This
introduces a limit and removes the two largest HashTables in WebKit, replacing their
values with std::unique_ptr to save memory and time.

  • Modules/cache/DOMCacheEngine.h:
  • platform/network/NetworkLoadInformation.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::getNetworkLoadInformationResponse):
(WebKit::NetworkConnectionToWebProcess::getNetworkLoadIntermediateInformation):
(WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformation):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::writeRecord):
(WebKit::CacheStorage::Caches::readRecord):

  • NetworkProcess/cache/CacheStorageEngineCaches.h:

Source/WTF:

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):

12:19 PM Changeset in webkit [273831] by Ruben Turcios
  • 4 edits
    2 adds in branches/safari-611.1.21.1-branch

Cherry-pick r273764. rdar://problem/74992878

The layout of SVGImage should force the layout for its clients
https://bugs.webkit.org/show_bug.cgi?id=221253
<rdar://problem/74138641>

Reviewed by Simon Fraser.

Source/WebCore:

Unlike the bitmap image, the intrinsic size of SVGImage can only be known
after running its layout. Because SVGImage can be used by multiple clients,
CachedImage maintains an SVGImageCache which maps a client to an
SVGImageForContainer. SVGImageForContainer is just a wrapper of SVGImage
with the intrinsic size of the client. Because we may set an entry for
the renderer in SVGImageCache early before running a layout for SVGImage
and because the renderer intrinsic size depends on the intrinsic size of
SVGImage, SVGImageForContainer may have an empty intrinsic size.

So basically it is a race condition: knowing the intrinsic size of the
SVGImage client depends on the intrinsic size of SVGImage itself. And the
intrinsic size of SVGImageForContainer depends on the intrinsic size of
the client. This may lead to not rendering the clients because their sizes
are empty. To fix this issue we need to force calculateBackgroundImageGeometry()
once we finish the layout of the SVGImage which happens after receiving all
its data and calling RenderBox::imageChanged().

Test: fast/css/background-svg-image-loading.html

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::finishLoading):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::repaintLayerRectsForImage):

LayoutTests:

  • fast/css/background-svg-image-loading-expected.html: Added.
  • fast/css/background-svg-image-loading.html: Added.

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

12:18 PM Changeset in webkit [273830] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.1-branch

Cherry-pick r273699. rdar://problem/74992920

[Win] Fix build failure
https://bugs.webkit.org/show_bug.cgi?id=222576
<rdar://problem/74590803>
Reviewed by Brent Fulgham.

It appears a recent change has unintentionally enabled WebInspectorUI on Apple Win. Address this by explicitly disabling it.

  • Source/cmake/OptionsAppleWin.cmake:

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

11:42 AM Changeset in webkit [273829] by Truitt Savell
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html fails for mac wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=221819

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:10 AM Changeset in webkit [273828] by Chris Gambrell
  • 3 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/dom convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222656
<rdar://problem/74984539>

Reviewed by Jonathan Bedard.

  • http/tests/dom/document-contentType-xhr.html:
  • http/tests/dom/document-contentType.html:
  • http/tests/dom/resources/send-mime-type.php: Removed.
  • http/tests/dom/resources/send-mime-type.py: Added.
11:08 AM Changeset in webkit [273827] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.3

10:54 AM Changeset in webkit [273826] by Megan Gardner
  • 26 edits in trunk/Source

Preserve information about the origin of the app highlight request
https://bugs.webkit.org/show_bug.cgi?id=222223

Reviewed by Wenson Hsieh.

Source/WebCore:

  • Modules/highlight/AppHighlight.h:

(WebCore::AppHighlight::encode const):
(WebCore::AppHighlight::decode):

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::storeAppHighlight):

  • Modules/highlight/AppHighlightStorage.h:
  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::storeAppHighlight const):

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::storeAppHighlight const):

  • page/Chrome.h:
  • page/ChromeClient.h:

Source/WebKit:

  • Scripts/webkit/messages.py:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _storeAppHighlight:]):
(-[WKWebView _addAppHighlight]):

  • UIProcess/API/Cocoa/_WKAppHighlightDelegate.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createAppHighlightInSelectedRange):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView createHighlightInCurrentGroupWithRange:]):
(-[WKContentView createHighlightInNewGroupWithRange:]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::storeAppHighlight const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createAppHighlightInSelectedRange):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::highlightIsNewGroup const):
(WebKit::WebPage::highlightRequestOriginatedInApp const):

  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::storeAppHighlight const):

10:47 AM Changeset in webkit [273825] by svillar@igalia.com
  • 19 edits
    23 adds
    12 deletes in trunk/LayoutTests

[css-flexbox] Import latest WPT tests
https://bugs.webkit.org/show_bug.cgi?id=222651

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

Synced flex tests to 5b5efcee.

  • resources/resource-files.json:
  • web-platform-tests/css/css-flexbox/canvas-contain-size-expected.html: Added.
  • web-platform-tests/css/css-flexbox/canvas-contain-size.html: Added.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap-reverse-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap-reverse.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-reverse.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-wrap-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-wrap-reverse-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-wrap-reverse.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column-wrap.html: Removed.
  • web-platform-tests/css/css-flexbox/css-flexbox-column.html: Removed.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/frameset-crash.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-1-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-1.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-narrow-content-2-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-narrow-content-2.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-height-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-height.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-width.html:
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-2-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-2.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-3-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-3.html: Added.
  • web-platform-tests/css/css-flexbox/table-item-flex-percentage-min-width-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-item-flex-percentage-min-width.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Imported latest changes in the test suite.

  • TestExpectations:
  • imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash-expected.txt: Added.
10:37 AM Changeset in webkit [273824] by dino@apple.com
  • 1 edit in trunk/Source/ThirdParty/ANGLE/ChangeLog

Add bug link to previous commit

10:33 AM Changeset in webkit [273823] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Support Depth24_Stencil8 simulation in the MTLSimulator

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-03
Reviewed by Dean Jackson.

Fixes the following tests:
fast/canvas/webgl/context-creation-attributes.html
fast/canvas/webgl/webgl-depth-texture.html
webgl/1.0.3/conformance/misc/webgl-specific.html
webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html

  • src/libANGLE/renderer/metal/mtl_format_map.json:
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:

(rx::mtl::Format::init):

10:11 AM Changeset in webkit [273822] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r273809.

Caused assertion failure on debug WK2 bots

Reverted changeset:

"Crash in removeSymbolElementsFromSubtree()"
https://bugs.webkit.org/show_bug.cgi?id=222397
https://commits.webkit.org/r273809

9:59 AM Changeset in webkit [273821] by Patrick Angle
  • 4 edits
    2 adds in trunk

REGRESSION (r266288): Web Inspector: ::marker shows on every element now
https://bugs.webkit.org/show_bug.cgi?id=222384

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeMarkerPseudoId.html

Add filtering of the ::marker CSS rule for elements that are not list items, as they do no apply to the
element.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getMatchedStylesForNode):

  • Added filtering for *::marker rules on non-display:list-item elements.

(WebCore::InspectorCSSAgent::buildObjectForRule):

  • Drive-by refactoring to reduce code duplication.

LayoutTests:

Added test for the filtering of *::marker selector from the rule results of CSS.getMatchedStyleForNode on
elements that don't support ::marker.

  • inspector/css/getMatchedStylesForNode-expected.txt:
  • Updated expectations to account for the abscence of the ::marker rule on non-list elements.
  • inspector/css/getMatchedStylesForNodeMarkerPseudoId-expected.txt: Added.
  • inspector/css/getMatchedStylesForNodeMarkerPseudoId.html: Added.
9:51 AM Changeset in webkit [273820] by Kate Cheney
  • 15 edits
    1 move
    7 adds in trunk

Report the correct document uri in the case of a ContentSecurityPolicyClient
https://bugs.webkit.org/show_bug.cgi?id=222489
<rdar://problem/73774118>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html

http/tests/security/contentSecurityPolicy/report-document-uri-blob.html

Previously we were setting the document URI to be the blocked URI in
the case where we were using a ContentSecurityPolicyClient and didn't
have access to the document URL. This patch passes the document URL
to the network process when loading a resource so we can properly set
the document URI in this case.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::shouldReportProtocolOnly):
(WebCore::ContentSecurityPolicy::deprecatedURLForReporting const):
(WebCore::ContentSecurityPolicy::reportViolation const):
Follow spec guidelines https://www.w3.org/TR/CSP2/#violation-reports
and set the document URI to be the URI's scheme if it is a globally
unique identifier.

In the case where we are using a client and don't have the document
URL, we should at least strip the blocked URL before reporting to align
with the spec.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::setDocumentURL):

Source/WebKit:

Pass the document URL from the Network Process when we schedule a load
in case we need to report a CSP violation in NetworkLoadChecker.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):
The regular toString() method sets file:// URLs to null. We should use
toRawString() so we can report the scheme if the source origin is a
local file, as per the W3C spec.

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Tools:

Rename OverrideContentSecurityPolicy.mm to ContentSecurityPolicy.mm
so we can use it for more general purpose CSP testing.

Add a test for document-uri reporting for file:, data: and about: protocols.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/OverrideContentSecurityPolicy.mm.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/csp-document-uri-report.html: Added.

LayoutTests:

Layout test coverage for redirects using a ContentSecurityPolicyClient
and blob files.

  • http/tests/security/contentSecurityPolicy/report-document-uri-blob-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-document-uri-blob.html: Added.
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/TestExpectations:

Blob URLs timeout on win.

9:14 AM Changeset in webkit [273819] by Chris Gambrell
  • 74 edits
    57 adds
    57 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/misc convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221981
<rdar://problem/74399686>

Reviewed by Jonathan Bedard.

  • http/tests/fetch/fetch-in-worker.js:
  • http/tests/misc/401-alternative-content-expected.txt:
  • http/tests/misc/401-alternative-content.php: Removed.
  • http/tests/misc/401-alternative-content.py: Added.
  • http/tests/misc/async-script-removed.html:
  • http/tests/misc/async-script.html:
  • http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
  • http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin.html:
  • http/tests/misc/authentication-redirect-1/resources/auth-echo.php: Removed.
  • http/tests/misc/authentication-redirect-1/resources/auth-echo.py: Added.
  • http/tests/misc/authentication-redirect-1/resources/auth-then-redirect.php: Removed.
  • http/tests/misc/authentication-redirect-1/resources/auth-then-redirect.py: Added.
  • http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
  • http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin.html:
  • http/tests/misc/authentication-redirect-2/resources/auth-echo.php: Removed.
  • http/tests/misc/authentication-redirect-2/resources/auth-echo.py: Added.
  • http/tests/misc/authentication-redirect-2/resources/auth-then-redirect.php: Removed.
  • http/tests/misc/authentication-redirect-2/resources/auth-then-redirect.py: Added.
  • http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
  • http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials.html:
  • http/tests/misc/authentication-redirect-3/resources/auth-echo.php: Removed.
  • http/tests/misc/authentication-redirect-3/resources/auth-echo.py: Added.
  • http/tests/misc/authentication-redirect-3/resources/auth-then-redirect-with-url-credentials.php: Removed.
  • http/tests/misc/authentication-redirect-3/resources/auth-then-redirect-with-url-credentials.py: Added.
  • http/tests/misc/authentication-redirect-3/resources/auth-then-redirect.php: Removed.
  • http/tests/misc/authentication-redirect-3/resources/auth-then-redirect.py: Added.
  • http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
  • http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url.html:
  • http/tests/misc/authentication-redirect-4/resources/auth-echo.php: Removed.
  • http/tests/misc/authentication-redirect-4/resources/auth-echo.py: Added.
  • http/tests/misc/authentication-redirect-4/resources/auth-then-redirect.php: Removed.
  • http/tests/misc/authentication-redirect-4/resources/auth-then-redirect.py: Added.
  • http/tests/misc/bad-charset-alias.html:
  • http/tests/misc/before-unload-load-image.html:
  • http/tests/misc/char-encoding-bocu-1-blocklisted.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-default.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-Big5.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-EUC-JP.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-ISO-2022-JP.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-Shift_JIS.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-accept-charset.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-get-method.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-with-one-field.html:
  • http/tests/misc/char-encoding-in-text-charset-field-with-value.html:
  • http/tests/misc/char-encoding-scsu-blocklisted.html:
  • http/tests/misc/char-encoding-without-charset-field.html:
  • http/tests/misc/charset-sniffer-end-sniffing.html:
  • http/tests/misc/css-reject-any-type-in-strict-mode-expected.txt:
  • http/tests/misc/css-reject-any-type-in-strict-mode.html:
  • http/tests/misc/dns-prefetch-control.html:
  • http/tests/misc/embed-image-load-outlives-gc-without-crashing.html:
  • http/tests/misc/empty-file-formdata.html:
  • http/tests/misc/extract-http-content-language-against-equiv.php: Removed.
  • http/tests/misc/extract-http-content-language-against-equiv.py: Added.
  • http/tests/misc/extract-http-content-language-malformed.php: Removed.
  • http/tests/misc/extract-http-content-language-malformed.py: Added.
  • http/tests/misc/extract-http-content-language-multiple.php: Removed.
  • http/tests/misc/extract-http-content-language-multiple.py: Added.
  • http/tests/misc/extract-http-content-language.php: Removed.
  • http/tests/misc/extract-http-content-language.py: Added.
  • http/tests/misc/form-blob-challenge.html:
  • http/tests/misc/form-post-textplain-cross-site.html:
  • http/tests/misc/form-post-textplain.html:
  • http/tests/misc/form-submit-file-cross-site-redirect.html:
  • http/tests/misc/form-submit-file-cross-site.html:
  • http/tests/misc/image-checks-for-accept.html:
  • http/tests/misc/image-error.html:
  • http/tests/misc/image-input-type-outlives-gc-without-crashing.html:
  • http/tests/misc/image-load-outlives-gc-without-crashing.html:
  • http/tests/misc/javascript-url-stop-loaders.html:
  • http/tests/misc/large-js-program.php: Removed.
  • http/tests/misc/large-js-program.py: Added.
  • http/tests/misc/location-with-space.php: Removed.
  • http/tests/misc/location-with-space.py: Added.
  • http/tests/misc/mask-image-accept.html:
  • http/tests/misc/object-image-error.html:
  • http/tests/misc/object-image-load-outlives-gc-without-crashing.html:
  • http/tests/misc/redirect-to-about-blank.html:
  • http/tests/misc/redirect-to-external-url-expected.txt:
  • http/tests/misc/redirect-with-quotes.php: Removed.
  • http/tests/misc/redirect-with-quotes.py: Added.
  • http/tests/misc/redirect.php: Removed.
  • http/tests/misc/redirect.py: Added.
  • http/tests/misc/referrer.html:
  • http/tests/misc/refresh-headers.php: Removed.
  • http/tests/misc/refresh-headers.py: Added.
  • http/tests/misc/resources/3rd-level-iframe-with-blocking-resource.php: Removed.
  • http/tests/misc/resources/3rd-level-iframe-with-blocking-resource.py: Added.
  • http/tests/misc/resources/404image.php: Removed.
  • http/tests/misc/resources/404image.py: Added.
  • http/tests/misc/resources/SVGFont-delayed-loader.svg:
  • http/tests/misc/resources/bad-charset-alias.php: Removed.
  • http/tests/misc/resources/bad-charset-alias.py: Added.
  • http/tests/misc/resources/basic-echo-post.php: Removed.
  • http/tests/misc/resources/basic-echo-post.py: Added.
  • http/tests/misc/resources/bocu-1-cyrillic.php: Removed.
  • http/tests/misc/resources/bocu-1-cyrillic.py: Added.
  • http/tests/misc/resources/char-encoding-in-hidden-charset-field.php: Removed.
  • http/tests/misc/resources/char-encoding-in-hidden-charset-field.py: Added.
  • http/tests/misc/resources/charset-sniffer-end-sniffing.php: Removed.
  • http/tests/misc/resources/charset-sniffer-end-sniffing.py: Added.
  • http/tests/misc/resources/check-keygen-post.php: Removed.
  • http/tests/misc/resources/check-keygen-post.py: Added.
  • http/tests/misc/resources/check-test-file.php: Removed.
  • http/tests/misc/resources/check-test-file.py: Added.
  • http/tests/misc/resources/check-unnamed-file-included-in-formdata.php: Removed.
  • http/tests/misc/resources/check-unnamed-file-included-in-formdata.py: Added.
  • http/tests/misc/resources/delayed-log.php: Removed.
  • http/tests/misc/resources/delayed-log.py: Added.
  • http/tests/misc/resources/dns-prefetch-control.php: Removed.
  • http/tests/misc/resources/dns-prefetch-control.py: Added.
  • http/tests/misc/resources/echo-query-param.php: Removed.
  • http/tests/misc/resources/echo-query-param.py: Added.
  • http/tests/misc/resources/form-post-textplain.php: Removed.
  • http/tests/misc/resources/form-post-textplain.py: Added.
  • http/tests/misc/resources/hang-connection.php: Removed.
  • http/tests/misc/resources/hang-connection.py: Added.
  • http/tests/misc/resources/image-checks-for-accept.php: Removed.
  • http/tests/misc/resources/image-checks-for-accept.py: Added.
  • http/tests/misc/resources/nested-iframe-loading-another-iframe.html:
  • http/tests/misc/resources/protected/protected-image.php: Removed.
  • http/tests/misc/resources/protected/protected-image.py: Added.
  • http/tests/misc/resources/random-no-store.php: Removed.
  • http/tests/misc/resources/random-no-store.py: Added.
  • http/tests/misc/resources/redirect-result.php: Removed.
  • http/tests/misc/resources/redirect-result.py: Added.
  • http/tests/misc/resources/redirect-step2.php: Removed.
  • http/tests/misc/resources/redirect-step2.py: Added.
  • http/tests/misc/resources/redirect-step3.php: Removed.
  • http/tests/misc/resources/redirect-step3.py: Added.
  • http/tests/misc/resources/redirect-step4.php: Removed.
  • http/tests/misc/resources/redirect-step4.py: Added.
  • http/tests/misc/resources/redirect-to-about-blank.php: Removed.
  • http/tests/misc/resources/redirect-to-about-blank.py: Added.
  • http/tests/misc/resources/redirect-to-external-url-iframe.html:
  • http/tests/misc/resources/redirect-to-external-url.php: Removed.
  • http/tests/misc/resources/redirect-to-external-url.py: Added.
  • http/tests/misc/resources/referrer-main-resource.php: Removed.
  • http/tests/misc/resources/referrer-main-resource.py: Added.
  • http/tests/misc/resources/referrer-result.php: Removed.
  • http/tests/misc/resources/referrer-result.py: Added.
  • http/tests/misc/resources/script-500.php: Removed.
  • http/tests/misc/resources/script-500.py: Added.
  • http/tests/misc/resources/scsu-cyrillic.php: Removed.
  • http/tests/misc/resources/scsu-cyrillic.py: Added.
  • http/tests/misc/resources/send-async-xhr.html:
  • http/tests/misc/resources/slowimage.php: Removed.
  • http/tests/misc/resources/slowimage.py: Added.
  • http/tests/misc/resources/stylesheet-bad-mime-type.php: Removed.
  • http/tests/misc/resources/stylesheet-bad-mime-type.py: Added.
  • http/tests/misc/resources/webtiming-cross-origin-and-back-redirect1.php: Removed.
  • http/tests/misc/resources/webtiming-cross-origin-and-back-redirect1.py: Added.
  • http/tests/misc/resources/webtiming-cross-origin-and-back-redirect2.php: Removed.
  • http/tests/misc/resources/webtiming-cross-origin-and-back-redirect2.py: Added.
  • http/tests/misc/script-500.html:
  • http/tests/misc/script-no-store.html:
  • http/tests/misc/submit-post-keygen.html:
  • http/tests/misc/svg-image-load-outlives-gc-without-crashing.html:
  • http/tests/misc/timer-vs-loading.html:
  • http/tests/misc/url-in-utf16be.html:
  • http/tests/misc/url-in-utf16le.html:
  • http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html:
  • http/tests/misc/webtiming-cross-origin-and-back1.html:
  • http/tests/misc/webtiming-cross-origin-redirect.php: Removed.
  • http/tests/misc/webtiming-cross-origin-redirect.py: Added.
  • http/tests/misc/webtiming-one-redirect.php: Removed.
  • http/tests/misc/webtiming-one-redirect.py: Added.
  • http/tests/misc/webtiming-slow-load.php: Removed.
  • http/tests/misc/webtiming-slow-load.py: Added.
  • http/tests/misc/webtiming-ssl.php: Removed.
  • http/tests/misc/webtiming-ssl.py: Added.
  • http/tests/misc/webtiming-two-redirects.php: Removed.
  • http/tests/misc/webtiming-two-redirects.py: Added.
  • http/tests/misc/xhtml.php: Removed.
  • http/tests/misc/xhtml.py: Added.
  • http/tests/xmlhttprequest/on-network-timeout-error-during-preflight.html:
  • http/tests/xmlhttprequest/resetting-timeout-to-zero.html:
  • http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
9:11 AM Changeset in webkit [273818] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] imported/w3c/web-platform-tests/webrtc/RTCRtpSender-replaceTrack.https.html times out with GPU Process enabled
https://bugs.webkit.org/show_bug.cgi?id=222505
<rdar://problem/74814573>

Unreviewed.

  • gpu-process/TestExpectations:

Test is no longer timing out on GPUProcess bot.

8:55 AM Changeset in webkit [273817] by youenn@apple.com
  • 6 edits in trunk

WebKitLegacy needs to keep JSDOMWindow even though it is used while its origin is not set
https://bugs.webkit.org/show_bug.cgi?id=222589
<rdar://problem/74258258>

Reviewed by Geoffrey Garen.

Source/WebCore:

Use the new flag to allow reuse of JSDOMWindow objects even though they are created at a time where its SecurityOrigin is not set yet.
This allows keeping WebKitLegacy existing functionality.

Covered by API test.

  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::setWindow):

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Introduce a flag, on for WebKit and off for WebKitLegacy.

Tools:

  • TestWebKitAPI/Tests/mac/JSWrapperForNodeInWebFrame.mm:

(TestWebKitAPI::TEST):

8:37 AM Changeset in webkit [273816] by Alexey Shvayka
  • 4 edits
    2 adds in trunk

Add JSModuleNamespaceObject::deletePropertyByIndex() method
https://bugs.webkit.org/show_bug.cgi?id=222611

Reviewed by Yusuke Suzuki.

JSTests:

  • modules/arbitrary-module-names-indexed.js: Added.
  • modules/arbitrary-module-names/export-indexed.js: Added.

Source/JavaScriptCore:

r270923 introduced arbitrary module namespace identifiers, enabling indexed identifiers
to be exported. While they were already handled by getOwnPropertySlotByIndex(), indexed
Delete? override was absent, which prevented TypeError from being thrown.

This patch adds the missing method, aligning JSC with the spec [1].

[1]: https://tc39.es/ecma262/#sec-module-namespace-exotic-objects-delete-p

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::deleteProperty):
(JSC::JSModuleNamespaceObject::deletePropertyByIndex):

  • runtime/JSModuleNamespaceObject.h:
8:34 AM Changeset in webkit [273815] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Enable simplified vertical alignment for empty inline boxes
https://bugs.webkit.org/show_bug.cgi?id=222630

Reviewed by Antti Koivisto.

This patch enables the simplified vertical alignment for cases when the line has non-stretching empty inline boxes.
e.g.
<div>text<span></span>content</div>
but not
<div>text<span style="font-size: 100px"></span>content</div> (in standards mode the empty inline box starts with a strut, so this would be stretching the root inline box to ~100px).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::operator== const):

8:02 AM Changeset in webkit [273814] by don.olmstead@sony.com
  • 26 edits in trunk

[CMake] JavaScriptCore GLib headers should be copies
https://bugs.webkit.org/show_bug.cgi?id=222625

Reviewed by Michael Catanzaro.

.:

Specify the directories for JavaScriptCore GLib headers and derived sources.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

Copy the headers rather than creating a symbolic link to structure the JavaScriptCore Glib
headers into a jsc directory. This follows the convention used in JavaScriptCore where
there are public and private headers.

The public JavaScriptCore GLib headers are copied before building JavaScriptCore. The
private JavaScriptCore were modified to include the public GLib headers through
<jsc/Header.h> rather than "Header.h" which is convention for the private C APIs in
JavaScriptCore.

APICast.h was being erroneously included in JSCClassPrivate.h because its not a
JavaScriptCore GLib header. Instead forward declarations were added to the private headers
and APICast.h was used as necessary in the .cpp files.

  • API/glib/JSCClassPrivate.h:
  • API/glib/JSCContext.cpp:
  • API/glib/JSCContextPrivate.h:
  • API/glib/JSCExceptionPrivate.h:
  • API/glib/JSCValuePrivate.h:
  • API/glib/JSCVirtualMachine.cpp:
  • API/glib/JSCVirtualMachinePrivate.h:
  • API/glib/JSCWrapperMap.cpp:
  • GLib.cmake:
  • PlatformGTK.cmake:

Source/WebKit:

Update the includes for the GLib ports.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

Tools:

Update the includes for the GLib ports.

  • MiniBrowser/wpe/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
  • TestWebKitAPI/glib/CMakeLists.txt:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
4:20 AM Changeset in webkit [273813] by commit-queue@webkit.org
  • 24 edits in trunk/Source/JavaScriptCore

[WASM-Function-References] Extend wasm type with type index
https://bugs.webkit.org/show_bug.cgi?id=222351

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-03-03
Reviewed by Keith Miller.

Extend wasm type with type index to represent
new reference types from typed function references
proposal: https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.

  • bytecode/BytecodeDumper.cpp:

(JSC::Wasm::BytecodeDumper::dumpConstants):
(JSC::Wasm::BytecodeDumper::formatConstant const):

  • bytecode/BytecodeDumper.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::TypedTmp::TypedTmp):
(JSC::Wasm::TypedTmp::dump const):
(JSC::Wasm::AirIRGenerator::g32):
(JSC::Wasm::AirIRGenerator::g64):
(JSC::Wasm::AirIRGenerator::gExternref):
(JSC::Wasm::AirIRGenerator::gFuncref):
(JSC::Wasm::AirIRGenerator::f32):
(JSC::Wasm::AirIRGenerator::f64):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::addRefIsNull):
(JSC::Wasm::AirIRGenerator::addRefFunc):
(JSC::Wasm::AirIRGenerator::addTableGet):
(JSC::Wasm::AirIRGenerator::addTableSet):
(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addElemDrop):
(JSC::Wasm::AirIRGenerator::addTableSize):
(JSC::Wasm::AirIRGenerator::addTableGrow):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::addTableCopy):
(JSC::Wasm::AirIRGenerator::addGrowMemory):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
(JSC::Wasm::AirIRGenerator::addMemoryFill):
(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):
(JSC::Wasm::AirIRGenerator::addDataDrop):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::sanitizeAtomicResult):
(JSC::Wasm::AirIRGenerator::appendGeneralAtomic):
(JSC::Wasm::AirIRGenerator::appendStrongCAS):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::atomicLoad):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::atomicBinaryRMW):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicWait):
(JSC::Wasm::AirIRGenerator::atomicNotify):
(JSC::Wasm::AirIRGenerator::truncSaturated):
(JSC::Wasm::AirIRGenerator::addReturn):
(JSC::Wasm::AirIRGenerator::addSwitch):
(JSC::Wasm::AirIRGenerator::emitModOrDiv):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
(JSC::Wasm::AirIRGenerator::addShift):
(JSC::Wasm::AirIRGenerator::addFloatingPointBinOp):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Min>):
(JSC::Wasm::AirIRGenerator::addFloatingPointMinOrMax):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Max>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Mul>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Div>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Div>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Neg>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Rotr>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Rotl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32ShrU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32ShrS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Shl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Min>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Sub>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ShrS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ShrU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Shl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Rotl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Rotr>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Neg>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Max>):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::addRefFunc):
(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addTableSize):
(JSC::Wasm::B3IRGenerator::addTableGrow):
(JSC::Wasm::B3IRGenerator::addTableFill):
(JSC::Wasm::B3IRGenerator::addTableCopy):
(JSC::Wasm::B3IRGenerator::addMemoryFill):
(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):
(JSC::Wasm::B3IRGenerator::sanitizeAtomicResult):
(JSC::Wasm::B3IRGenerator::atomicLoad):
(JSC::Wasm::B3IRGenerator::emitAtomicStoreOp):
(JSC::Wasm::B3IRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::B3IRGenerator::atomicBinaryRMW):
(JSC::Wasm::B3IRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::B3IRGenerator::atomicCompareExchange):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::WasmCallingConvention::marshallLocation const):
(JSC::Wasm::WasmCallingConvention::callInformationFor const):
(JSC::Wasm::JSCallingConvention::marshallLocation const):

  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):
(JSC::Wasm::isRefType):
(JSC::Wasm::TableInformation::wasmType const):

  • wasm/WasmFunctionCodeBlock.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser::TypedExpression::TypedExpression):
(JSC::Wasm::FunctionParser<Context>::load):
(JSC::Wasm::FunctionParser<Context>::store):
(JSC::Wasm::FunctionParser<Context>::atomicLoad):
(JSC::Wasm::FunctionParser<Context>::atomicStore):
(JSC::Wasm::FunctionParser<Context>::atomicBinaryRMW):
(JSC::Wasm::FunctionParser<Context>::atomicCompareExchange):
(JSC::Wasm::FunctionParser<Context>::atomicWait):
(JSC::Wasm::FunctionParser<Context>::atomicNotify):
(JSC::Wasm::FunctionParser<Context>::checkBranchTarget):
(JSC::Wasm::FunctionParser<Context>::unify):
(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::get const):
(JSC::Wasm::Global::set):
(JSC::Wasm::Global::visitAggregateImpl):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::jsNullConstant):
(JSC::Wasm::LLIntGenerator::zeroConstant):
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):
(JSC::Wasm::Parser<SuccessType>::parseValueType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseTableHelper):
(JSC::Wasm::SectionParser::parseGlobal):
(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseInitExpr):
(JSC::Wasm::SectionParser::parseI32InitExpr):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfExpressions):

  • wasm/WasmSignature.cpp:

(JSC::Wasm::Signature::dump const):
(JSC::Wasm::computeHash):
(JSC::Wasm::SignatureInformation::SignatureInformation):

  • wasm/WasmSignature.h:

(JSC::Wasm::SignatureInformation::thunkFor const):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::wasmType const):

  • wasm/generateWasmOpsHeader.py:

(TypeKind):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::marshallJSResult):
(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::defaultValueForReferenceType):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::linkImpl):

Mar 2, 2021:

10:43 PM Changeset in webkit [273812] by Manuel Rego Casasnovas
  • 25 edits
    1 copy in trunk

[selectors] :focus-visible implementation
https://bugs.webkit.org/show_bug.cgi?id=222028
<rdar://problem/74679243>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations, most of the :focus-visible tests are passing now.

  • web-platform-tests/css/selectors/focus-in-focus-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-in-focusin-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-002-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-006-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-007-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-007.html: Import last changes on this test
  • web-platform-tests/css/selectors/focus-visible-008-expected.txt:

(see https://github.com/web-platform-tests/wpt/pull/27656).

  • web-platform-tests/css/selectors/focus-visible-011-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-011.html: Import last changes on this test

(see https://github.com/web-platform-tests/wpt/pull/27700).

  • web-platform-tests/css/selectors/focus-visible-013-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-014-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-016-expected.txt:

Source/WebCore:

Add basic :focus-visible implementation behind the FocusVisibleEnabled experimental feature flag.
This patch implements the heuristics defined in the spec (https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo),
except the ones related to script focus.

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-*

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFocusVisiblePseudoClass): Check element.hasFocusVisible().

  • dom/Element.cpp:

(WebCore::Element::setFocus): When an element loses focus it always call setHasFocusVisible(false). When an element gets focused
it calls setHasFocusVisible(true) for elements that support keyboard input (as they always match :focus-visible).
(WebCore::Element::setHasFocusVisible): New method gated behind the experimental flag.

  • dom/Element.h:

(WebCore::Element::hasFocusVisible const): Add new method.

  • dom/Node.h:

(WebCore::Node::flagHasFocusVisible): Add new flag for :focus-visible matching.

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent): If the user interacts with the page via keyboard, call setHasFocusVisible(true).
Avoid that for modifier keys.

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder): Call setHasFocusVisible(true) for keyboard focus.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal): Call setHasFocusVisible(true) for anchor focus.

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const): Add check for hasFocusVisible().

LayoutTests:

  • platform/ios/TestExpectations: Skip focus-visible-008.html and focus-visible-011.html as they timeout in iOS.
  • platform/mac/imported/w3c/web-platform-tests/css/selectors/focus-visible-008-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-008-expected.txt.
9:05 PM Changeset in webkit [273811] by Lauro Moura
  • 6 edits in trunk/LayoutTests

[GLIB] Rebaseline and update expectations

Unreviewed test gardening.

Some tests are not crashing anymore.

  • platform/glib/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/css1/formatting_model/height_of_lines-expected.txt:
  • platform/wpe/TestExpectations:
8:56 PM Changeset in webkit [273810] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.1.5.2.1

Tag Safari-612.1.5.2.1.

8:52 PM Changeset in webkit [273809] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in removeSymbolElementsFromSubtree()
https://bugs.webkit.org/show_bug.cgi?id=222397

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-02
Reviewed by Ryosuke Niwa.

Skip children in removeSymbolElementsFromSubtree(), so that
we don't see nodes that have been removed.

Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateShadowTree):
(WebCore::removeSymbolElementsFromSubtree):

8:49 PM Changeset in webkit [273808] by bshafiei@apple.com
  • 8 edits in branches/safari-612.1.5.2-branch/Source

Versioning.

WebKit-7612.1.5.2.1

8:38 PM Changeset in webkit [273807] by bshafiei@apple.com
  • 1 copy in branches/safari-612.1.5.2-branch

New branch.

8:35 PM Changeset in webkit [273806] by Fujii Hironori
  • 5 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css1/text_properties/text_decoration-expected.txt:
  • platform/wincairo/css1/text_properties/vertical_align-expected.txt:
  • platform/wincairo/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
8:29 PM Changeset in webkit [273805] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Enable simplified vertical alignment for hard line breaks
https://bugs.webkit.org/show_bug.cgi?id=222606

Reviewed by Antti Koivisto.

This patch enables the simplified vertical alignment for cases when the line ends with a non-stretching hard line break.
e.g.
<div>text<br>content</div>
<div>text<span><br></span>content</div>
but not when
<div>text<span style="font-size: 100px;"><br></span>content</div>

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):

7:09 PM Changeset in webkit [273804] by Alan Coon
  • 9 edits in branches/safari-612.1.5-branch/Source/JavaScriptCore

Cherry-pick r273751. rdar://problem/74953144

[Cocoa] REGRESSION(r272752): fix some internal builds that use WTFString::WTFString(NSString *)
https://bugs.webkit.org/show_bug.cgi?id=222610
<rdar://74938249>

Unreviewed build fix.

Patch by BJ Burg <BJ Burg> on 2021-03-02

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py: (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation): Some builders seem to find the new version of the header (without the exported NSString constructor) whereas others don't find the new version (expecting the symbol to be exported), causing a linker error later on.

As a workaround, force usage of the CFStringRef constructor, which is always exported.

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: Rebaseline generator test results.

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

7:09 PM Changeset in webkit [273803] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273721. rdar://problem/74952690

Make DictionaryLookup::rangeAtHitTestResult more robust
https://bugs.webkit.org/show_bug.cgi?id=222301
<rdar://problem/74529831>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-01
Reviewed by Brent Fulgham.

This may be related to r265084 but something is crashing and I'm not sure what.
Adding some Optional checks might fix something, but this is still puzzling to me.

  • editing/cocoa/DictionaryLookup.mm: (WebCore::DictionaryLookup::rangeAtHitTestResult):

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

7:09 PM Changeset in webkit [273802] by Alan Coon
  • 3 edits
    2 adds in branches/safari-612.1.5-branch

Cherry-pick r273656. rdar://problem/74952887

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

7:09 PM Changeset in webkit [273801] by Alan Coon
  • 4 edits in branches/safari-612.1.5-branch

Cherry-pick r273583. rdar://problem/74953376

Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:

<rdar://problem/74793445>

Reviewed by Chris Fleizach.

This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.

Tools:

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):

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

7:09 PM Changeset in webkit [273800] by Alan Coon
  • 20 edits in branches/safari-612.1.5-branch/Source

Cherry-pick r273568. rdar://problem/74952680

[GPUP] Allow painting of GPUP hosted video from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=222461

Reviewed by Eric Carlson.

Source/WebCore:

  • Change the return type of pixelBufferForCurrentTime() to return a RetainPtr<> rather than just a raw pointer.
  • Add utility methods on IOSurface to retrieve an IOSurface from a CVPixelBuffer and to reconstitute a CVPixelBuffer from an IOSurface.
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::pixelBufferForCurrentTime):
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime):
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm: (WebCore::IOSurface::createFromPixelBuffer): (WebCore::IOSurface::createPixelBuffer):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia):

Source/WebKit:

Add Cocoa implementations for nativeImageForCurrentTime() and pixelBufferForCurrentTime().
Use those methods to implement paintCurrentFrameInContext().

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime): (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTime):
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::paint): (WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

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

7:09 PM Changeset in webkit [273799] by Alan Coon
  • 4 edits
    6 adds in branches/safari-612.1.5-branch

Cherry-pick r273513. rdar://problem/74953307

[Cocoa] Appending a partial segment of a WebM audio file results in no additional samples
https://bugs.webkit.org/show_bug.cgi?id=222407
<rdar://74610383>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-webm-vorbis-partial.html

When appending a partial WebM segment, it can occur that the parser is mid-way through
parsing a Block or SimpleBlock, and is waiting for enough data to be appended to construct a
full sample. However, previous appends are not accounted for when calculated the amount of
data to be requested from the reader, which both results in too much data read and a
miscalculation of the bytesRemaining out-param. This causes all subsequent appends to
generate no samples, leading to an apparent stall in playback.

Add a new ivar to track the number of partial bytes read, and use that value to calculate
the number of bytes yet to be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
  • platform/graphics/cocoa/SourceBufferParserWebM.h:

LayoutTests:

  • platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis-manifest.json: Added.
  • platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis.webm: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial-expected.txt: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html: Added.

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

7:09 PM Changeset in webkit [273798] by Alan Coon
  • 5 edits
    4 adds in branches/safari-612.1.5-branch

Cherry-pick r273512. rdar://problem/74953022

REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash
https://bugs.webkit.org/show_bug.cgi?id=222402
<rdar://problem/72621268>

Reviewed by Darin Adler and Chris Lord.

Source/WebCore:

It looks like it was simply an oversight from that patch. If the font name is empty,
CanvasRenderingContext2D::setFont() will set the font object to one that doesn't have
its internal FontCascadeFonts pointer set.

Tests: fast/text/canvas-font-resolution-2.html

fast/text/canvas-font-resolution.html

  • html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont):
  • html/canvas/CanvasRenderingContext2DBase.h: (WebCore::CanvasRenderingContext2DBase::FontProxy::isPopulated const):
  • style/StyleResolveForFontRaw.cpp: (WebCore::Style::resolveForFontRaw):

LayoutTests:

  • fast/text/canvas-font-resolution-2-expected.html: Added.
  • fast/text/canvas-font-resolution-2.html: Added.
  • fast/text/canvas-font-resolution-expected.txt: Added.
  • fast/text/canvas-font-resolution.html: Added.

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

7:08 PM Changeset in webkit [273797] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273499. rdar://problem/74952752

Avoid setting page muted state if unchanged
https://bugs.webkit.org/show_bug.cgi?id=222395

Reviewed by Brent Fulgham.

Return early in Page::setMuted if muted state did not change.

No new tests, covered by existing tests.

  • page/Page.cpp: (WebCore::Page::setMuted):

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

7:08 PM Changeset in webkit [273796] by Alan Coon
  • 11 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273477. rdar://problem/74952824

Avoid heap allocation for EventContexts
https://bugs.webkit.org/show_bug.cgi?id=222095
<rdar://problem/74586915>

Reviewed by Simon Fraser.

This patch merges all subclasses of EventContext into itself to avoid heap allocation for each
EventContext in EventPath::m_path. It also merges Node::handleLocalEvents into EventContext's
handleLocalEvents to avoid the extra virtual function call.

No new tests since there should be no observable behavioral differences.

  • dom/EventContext.cpp: (WebCore::EventContext::EventContext): Moved to the header to be inlined. (WebCore::EventContext::handleLocalEvents const): Merged handleLocalEvents of HTMLFormElement and Node. Moved the code to handle related target and touch targets from MouseOrFocusEventContext and TouchEventContext as they have been merged into this class. Also special case dispatching an event on window to preserve the behavior of WindowEventContext. (WebCore::EventContext::initializeTouchLists): Added. Creates TouchList objects. (WebCore::EventContext::isUnreachableNode const): Moved from the header. (WebCore::EventContext::isMouseOrFocusEventContext const): Deleted. (WebCore::EventContext::isTouchEventContext const): Deleted. (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): Deleted. (WebCore::MouseOrFocusEventContext::handleLocalEvents const): Deleted. (WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext const): Deleted. (WebCore::TouchEventContext::TouchEventContext): Deleted. (WebCore::TouchEventContext::handleLocalEvents const): Deleted. (WebCore::TouchEventContext::isTouchEventContext const): Deleted. (WebCore::TouchEventContext::checkReachability const): Deleted. Merged into handleLocalEvents.
  • dom/EventContext.h: (WebCore::EventContext::isMouseOrFocusEventContext const): Now simply checks m_type. (WebCore::EventContext::isTouchEventContext const): Ditto. (WebCore::EventContext::isWindowContext const): Ditto. (WebCore::EventContext::relatedTarget const): Moved from MouseOrFocusEventContext. (WebCore::EventContext::setRelatedTarget): Ditto. (WebCore::EventContext::touchList): Moved from TouchEventContext. (WebCore::m_contextNodeIsFormElement): Added. Caching this state here instead of checking it at every event context during dispatching in EventContext::handleLocalEvents seems to be important to get a speed up in Intel processors. Apple silicons don't seem to be affected by this. (WebCore::m_type): Added. (WebCore::MouseOrFocusEventContext): Deleted. (WebCore::MouseOrFocusEventContext::relatedTarget const): Deleted. (WebCore::TouchEventContext): Deleted. (WebCore::EventContext::EventContext): Moved from cpp file to be inlined here. (WebCore::EventContext::isUnreachableNode const): Moved into cpp as this is only used for asserting shadow DOM related conditions. (WebCore::EventContext::touchList): Renamed from TouchEventContext::touchList. (isType): Deleted.
  • dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): Deleted the variant that takes a vector of elements since it's not used anywhere.
  • dom/EventDispatcher.h:
  • dom/EventPath.cpp: (WebCore::WindowEventContext): Deleted. (WebCore::EventPath::EventPath): Avoid calling setRelatedTarget if related target is not a node or the path is empty. These were early return conditions in setRelatedTarget before this patch. (WebCore::EventPath::buildPath): Always create EventContext. Dramatically simplifies the code. (WebCore::EventPath::setRelatedTarget): Moved the early exit to EventPath::EventPath. (WebCore::EventPath::retargetTouch): (WebCore::EventPath::retargetTouchList): (WebCore::EventPath::retargetTouchLists): (WebCore::EventPath::EventPath): Deleted the variant which takes a vector of elements as it's not used anywhere.
  • dom/EventPath.h: (WebCore::EventPath::contextAt const): (WebCore::EventPath::contextAt): (WebCore::EventPath::m_path): Now allocates EventContext in place. The size of the inline buffer has been reduced to 16 entries for EventContext from 32 entries for std::unique_ptr<EventContext> since the former is considerably larger than the latter.
  • dom/Node.cpp: (WebCore::Node::handleLocalEvents): Deleted. Merged into EventContext::handleLocalEvents.
  • dom/Node.h:
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): Ditto.
  • html/HTMLFormElement.h:

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

7:08 PM Changeset in webkit [273795] by Alan Coon
  • 5 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273442. rdar://problem/74952740

Regression(r269481) Kugou Music: Can not leave "MV" category after selecting it
https://bugs.webkit.org/show_bug.cgi?id=222380
<rdar://74602294>

Reviewed by Geoffrey Garen.

The new behavior in r269481 aligns us with the specification and with Blink so I
am adding a linked-on-after to maintain pre-r269481 behavior until Apps get
rebuilt against the new SDK.

  • html/HTMLDocument.cpp: (WebCore::HTMLDocument::supportedPropertyNames const):
  • page/Quirks.cpp: (WebCore::Quirks::shouldOmitHTMLDocumentSupportedPropertyNames):
  • page/Quirks.h:
  • platform/cocoa/VersionChecks.h:

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

7:08 PM Changeset in webkit [273794] by Alan Coon
  • 6 edits
    3 adds in branches/safari-612.1.5-branch

Cherry-pick r273438. rdar://problem/74953033

Regression(r268700) postMessage changes prototype of basic types
https://bugs.webkit.org/show_bug.cgi?id=222228
<rdar://problem/74612853>

Reviewed by Geoffrey Garen.

Source/WebCore:

r268700 updated ScriptExecutionContext::globalObject() to call:
WebCore::globalObject(mainThreadNormalWorld(), downcast<Document>(*this).page())
instead of
frame ? frame->script().globalObject(mainThreadNormalWorld()) : nullptr

This was not right for subframes because globalObject() gets the globalObject from
the page's main frame instead of the document's frame.

This patch gets rid of the error-prone WebCore::globalObject() taking in a Page*
and replaces it with one taking in a Frame* to avoid such issues in the future.

Test: fast/dom/Window/postMessage-Object-prototype.html

  • bindings/js/ScriptState.cpp: (WebCore::globalObject):
  • bindings/js/ScriptState.h:
  • dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::globalObject):
  • inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld): (WebCore::InspectorFrontendHost::showContextMenu):

LayoutTests:

Add layout test coverage.

  • fast/dom/Window/postMessage-Object-prototype-expected.txt: Added.
  • fast/dom/Window/postMessage-Object-prototype.html: Added.
  • fast/dom/Window/resources/postMessage-Object-prototype-frame.html: Added.

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

7:08 PM Changeset in webkit [273793] by Alan Coon
  • 3 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273415. rdar://problem/74953177

Move PostResolutionCallbackDisabler to resolveComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=222350

Reviewed by Ryosuke Niwa.

It can be constructed and deleted repeatedly in styleForElementIgnoringPendingStylesheets when
resolveComputedStyle calls it in a loop.

  • dom/Document.cpp: (WebCore::Document::styleForElementIgnoringPendingStylesheets):
  • dom/Element.cpp: (WebCore::Element::resolveComputedStyle): (WebCore::Element::resolvePseudoElementStyle):

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

7:08 PM Changeset in webkit [273792] by Alan Coon
  • 7 edits
    4 adds in branches/safari-612.1.5-branch

Cherry-pick r273385. rdar://problem/74953186

Runtime-disabled CSS features still appear enabled via CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=222280
rdar://74595641

Reviewed by Sam Weinig.

Source/WebCore:

When parsing CSS.supports() for a runtime-disabled property, we'd successfully
parse a CSS-wide keyword like "inherit" and report that the property is supported.

We need to explicitly check for runtime-disabled properties.

Tests: css3/color-filters/color-filter-exposed-if-disabled.html

fast/css/scroll-behavior-exposed-if-disabled.html

  • css/parser/CSSParserImpl.cpp: (WebCore::CSSParserImpl::isPropertyRuntimeDisabled const): (WebCore::CSSParserImpl::consumeDeclaration):
  • css/parser/CSSParserImpl.h:

LayoutTests:

  • css3/color-filters/color-filter-exposed-if-disabled-expected.txt: Added. Fails tracked in webkit.org/b/217626
  • css3/color-filters/color-filter-exposed-if-disabled.html: Added.
  • fast/css/overscroll-behavior-invalidate-if-disabled-expected.txt:
  • fast/css/overscroll-behavior-invalidate-if-disabled.html:
  • fast/css/scroll-behavior-exposed-if-disabled-expected.txt: Added.
  • fast/css/scroll-behavior-exposed-if-disabled.html: Added.

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

7:08 PM Changeset in webkit [273791] by Alan Coon
  • 6 edits
    2 adds in branches/safari-612.1.5-branch

Cherry-pick r273314. rdar://problem/74953186

aspect-ratio shows in computed style when disabled
https://bugs.webkit.org/show_bug.cgi?id=222286

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-23
Reviewed by Simon Fraser.

Source/WebCore:

Make aspect-ratio invisible from style when disabled.

Test: fast/css/aspect-ratio-invalidate-if-disabled.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
  • css/CSSProperties.json:

Tools:

Add support for disabling aspect-ratio in wk1.

  • DumpRenderTree/TestOptions.cpp: (WTR::TestOptions::defaults):

LayoutTests:

Add test.

  • fast/css/aspect-ratio-invalidate-if-disabled-expected.txt: Added.
  • fast/css/aspect-ratio-invalidate-if-disabled.html: Added.

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

7:08 PM Changeset in webkit [273790] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273304. rdar://problem/74953207

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233

Unreviewed, address additional review feedback.

Add comment and logging when the WebKit client is setting the user directory suffix.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters):

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

7:08 PM Changeset in webkit [273789] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273289. rdar://problem/74953476

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Unreviewed, address post-review comment.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Use captured this.

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

7:08 PM Changeset in webkit [273788] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273271. rdar://problem/74953207

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>

Reviewed by Brent Fulgham.

When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):

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

7:08 PM Changeset in webkit [273787] by Alan Coon
  • 4 edits in branches/safari-612.1.5-branch/Source

Cherry-pick r273270. rdar://problem/74953268

[macOS] Disabling relaunch on login for the WebContent process is racy
https://bugs.webkit.org/show_bug.cgi?id=222074
<rdar://problem/74230216>

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

Declare Launch Services key to disable relaunch on login.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

When NSApplication is being intialized, the method -[NSApplication disableRelaunchOnLogin] is dispatched on a non-main thread, which is in a race
with the revocation of the Launch Services sandbox extension. This patch addresses this by setting this information synchronously with Launch
Services while the sandbox extension is being held. Additionally, accessibility related code under WebPage::platformInitialize may reach out to
the Launch Services daemon once during the lifetime of the WebContent process. Make sure that call succeeds by making a synchronous call while
a sandbox extension to the Launch Services daemon is being held.

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

7:08 PM Changeset in webkit [273786] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273265. rdar://problem/74953476

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Reviewed by Youenn Fablet.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Return early if weakThis is NULL.

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

7:08 PM Changeset in webkit [273785] by Alan Coon
  • 5 edits
    1 add in branches/safari-612.1.5-branch

Cherry-pick r273264. rdar://problem/74952900

REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>

Reviewed by Simon Fraser.

PerformanceTests:

New performance test for nested column flexboxes with percentage heights.

  • Layout/nested-column-flexboxes-relative-height.html: Added.

Source/WebCore:

The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.

No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.

Inspired by Blink's crrev.com/c/1614058 by <cbiesinger@chromium.org>.

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed relayoutChildren which is now unused. Do not layout the item, that should have been done in computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as a consequence of the previous layout. (WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no need to update it after laying out the child.
  • rendering/RenderFlexibleBox.h:

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

7:05 PM Changeset in webkit [273784] by mmaxfield@apple.com
  • 16 edits
    1 copy in trunk

REGRESSION(r270691): It's impossible to use MobileAsset fonts on macOS
https://bugs.webkit.org/show_bug.cgi?id=222582
<rdar://problem/74877450>

Reviewed by Per Arne Vollan.

Source/WebKit:

Simply apply the iOS codepath to macOS.

There is also an additional change here to the Mac sandbox.
On Big Sur and earlier, before this patch, com.apple.mobileassetd was allowed,
and com.apple.mobileassetd.v2 was disallowed. After this patch, they both are
allowed, but only with the com.apple.webkit.extension.mach extension.
On other OSes, before this patch, nothing was allowed, whereas after this patch,
only com.apple.mobileassetd.v2 is allowed with the com.apple.webkit.extension.mach
extension.

Test: WebKit.MobileAssetSandboxCheck

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _grantAccessToAssetServices]):
(-[WKWebView _revokeAccessToAssetServices]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _grantAccessToAssetServices]): Deleted.
(-[WKWebView _revokeAccessToAssetServices]): Deleted.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::grantAccessToAssetServices):
(WebKit::WebPageProxy::revokeAccessToAssetServices):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::grantAccessToAssetServices): Deleted.
(WebKit::WebPageProxy::revokeAccessToAssetServices): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::revokeAccessToAssetServices):

  • WebProcess/com.apple.WebProcess.sb.in:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::grantAccessToAssetServices):
(WebKit::WebProcess::revokeAccessToAssetServices):

  • WebProcess/playstation/WebProcessPlayStation.cpp:

(WebKit::WebProcess::grantAccessToAssetServices):
(WebKit::WebProcess::revokeAccessToAssetServices):

  • WebProcess/win/WebProcessWin.cpp:

(WebKit::WebProcess::grantAccessToAssetServices):
(WebKit::WebProcess::revokeAccessToAssetServices):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/MobileAssetSandboxCheck.mm: Copied from Source/WebKit/WebProcess/win/WebProcessWin.cpp.

(TEST):

6:30 PM Changeset in webkit [273783] by Chris Gambrell
  • 6 edits
    4 adds
    4 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/download convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222618
<rdar://problem/74949253>

Reviewed by Jonathan Bedard.

  • http/tests/download/anchor-download-attribute-content-disposition-no-extension-octet-stream.html:
  • http/tests/download/anchor-download-attribute-content-disposition-no-extension-text-plain.html:
  • http/tests/download/anchor-download-attribute-content-disposition.html:
  • http/tests/download/basic-ascii-expected.txt:
  • http/tests/download/basic-ascii.html:
  • http/tests/download/resources/basic-ascii.php: Removed.
  • http/tests/download/resources/basic-ascii.py: Added.
  • http/tests/download/resources/content-disposition-pass-no-extension-octet-stream.php: Removed.
  • http/tests/download/resources/content-disposition-pass-no-extension-octet-stream.py: Added.
  • http/tests/download/resources/content-disposition-pass-no-extension-text-plain.php: Removed.
  • http/tests/download/resources/content-disposition-pass-no-extension-text-plain.py: Added.
  • http/tests/download/resources/content-disposition-pass.php: Removed.
  • http/tests/download/resources/content-disposition-pass.py: Added.
6:23 PM Changeset in webkit [273782] by Chris Gambrell
  • 7 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/history convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222614
<rdar://problem/74946423>

Reviewed by Jonathan Bedard.

  • http/tests/history/popstate-fires-with-pending-requests.html:
  • http/tests/history/replacestate-post-to-get-2.html:
  • http/tests/history/replacestate-post-to-get.html:
  • http/tests/history/resources/replacestate-current.php: Removed.
  • http/tests/history/resources/replacestate-current.py: Added.
  • http/tests/history/resources/replacestate-forward-back.php: Removed.
  • http/tests/history/resources/replacestate-forward-back.py: Added.
  • http/tests/history/resources/slow-image.php: Removed.
  • http/tests/history/resources/slow-image.py: Added.
  • http/tests/inspector/page/resources/slow-test-page.html:
  • http/tests/navigation/page-cache-pending-image-load-cache-partition.html:
  • http/tests/navigation/page-cache-pending-image-load.html:
6:20 PM Changeset in webkit [273781] by Chris Gambrell
  • 30 edits
    36 adds
    36 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/navigation convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222418
<rdar://problem/74744523>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/navigation/back-send-referrer.html:
  • http/tests/navigation/https-in-page-cache.html:
  • http/tests/navigation/page-cache-fragment-referrer.html:
  • http/tests/navigation/post-goback-repost-policy-expected.txt:
  • http/tests/navigation/post-goback-repost-policy.html:
  • http/tests/navigation/post-goback-same-url-expected.txt:
  • http/tests/navigation/post-goback-same-url.html:
  • http/tests/navigation/post-redirect-get-reload-expected.txt:
  • http/tests/navigation/post-redirect-get-reload.php: Removed.
  • http/tests/navigation/post-redirect-get-reload.py: Added.
  • http/tests/navigation/pushstate-at-unique-origin-denied.php: Removed.
  • http/tests/navigation/pushstate-at-unique-origin-denied.py: Added.
  • http/tests/navigation/redirect-on-back-updates-history-item.html:
  • http/tests/navigation/redirect-on-reload-updates-history-item.html:
  • http/tests/navigation/redirect-preserves-fragment-expected.txt:
  • http/tests/navigation/redirect-preserves-fragment.html:
  • http/tests/navigation/redirect-to-fragment-expected.txt:
  • http/tests/navigation/redirect-to-fragment.html:
  • http/tests/navigation/redirect-to-fragment2-expected.txt:
  • http/tests/navigation/redirect-to-fragment2.html:
  • http/tests/navigation/redirect-to-invalid-url-expected.txt:
  • http/tests/navigation/redirect-to-invalid-url.html:
  • http/tests/navigation/redirect-to-random-url-versus-memory-cache.html:
  • http/tests/navigation/resources/back-send-referrer-helper.php: Removed.
  • http/tests/navigation/resources/back-send-referrer-helper.py: Added.
  • http/tests/navigation/resources/goback-with-policydelegate.php: Removed.
  • http/tests/navigation/resources/goback-with-policydelegate.py: Added.
  • http/tests/navigation/resources/https-in-page-cache-1.php: Removed.
  • http/tests/navigation/resources/https-in-page-cache-1.py: Added.
  • http/tests/navigation/resources/https-in-page-cache-2.php: Removed.
  • http/tests/navigation/resources/https-in-page-cache-2.py: Added.
  • http/tests/navigation/resources/https-no-store-subframe-in-page-cache.html:
  • http/tests/navigation/resources/keyboard-events-test.js:

(waitForProvisionalNavigation):

  • http/tests/navigation/resources/never-respond.php: Removed.
  • http/tests/navigation/resources/never-respond.py: Added.
  • http/tests/navigation/resources/no-store-frame.php: Removed.
  • http/tests/navigation/resources/no-store-frame.py: Added.
  • http/tests/navigation/resources/post-goback-same-url.php: Removed.
  • http/tests/navigation/resources/post-goback-same-url.py: Added.
  • http/tests/navigation/resources/post-target-policy-test.php: Removed.
  • http/tests/navigation/resources/post-target-policy-test.py: Added.
  • http/tests/navigation/resources/randomredirects/0.php: Removed.
  • http/tests/navigation/resources/randomredirects/0.py: Added.
  • http/tests/navigation/resources/randomredirects/1.php: Removed.
  • http/tests/navigation/resources/randomredirects/1.py: Added.
  • http/tests/navigation/resources/randomredirects/2.php: Removed.
  • http/tests/navigation/resources/randomredirects/2.py: Added.
  • http/tests/navigation/resources/randomredirects/3.php: Removed.
  • http/tests/navigation/resources/randomredirects/3.py: Added.
  • http/tests/navigation/resources/randomredirects/4.php: Removed.
  • http/tests/navigation/resources/randomredirects/4.py: Added.
  • http/tests/navigation/resources/randomredirects/5.php: Removed.
  • http/tests/navigation/resources/randomredirects/5.py: Added.
  • http/tests/navigation/resources/randomredirects/6.php: Removed.
  • http/tests/navigation/resources/randomredirects/6.py: Added.
  • http/tests/navigation/resources/randomredirects/7.php: Removed.
  • http/tests/navigation/resources/randomredirects/7.py: Added.
  • http/tests/navigation/resources/randomredirects/8.php: Removed.
  • http/tests/navigation/resources/randomredirects/8.py: Added.
  • http/tests/navigation/resources/randomredirects/9.php: Removed.
  • http/tests/navigation/resources/randomredirects/9.py: Added.
  • http/tests/navigation/resources/randomredirects/randomredirect.php: Removed.
  • http/tests/navigation/resources/randomredirects/randomredirect.py: Added.
  • http/tests/navigation/resources/redirect-on-back-updates-history-item.php: Removed.
  • http/tests/navigation/resources/redirect-on-back-updates-history-item.py: Added.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.php: Removed.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.py: Added.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item.php: Removed.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item.py: Added.
  • http/tests/navigation/resources/redirect-preserves-fragment.php: Removed.
  • http/tests/navigation/resources/redirect-preserves-fragment.py: Added.
  • http/tests/navigation/resources/redirect-to-cookie.php: Removed.
  • http/tests/navigation/resources/redirect-to-cookie.py: Added.
  • http/tests/navigation/resources/redirect-to-fragment.php: Removed.
  • http/tests/navigation/resources/redirect-to-fragment.py: Added.
  • http/tests/navigation/resources/redirect-to-fragment2.php: Removed.
  • http/tests/navigation/resources/redirect-to-fragment2.py: Added.
  • http/tests/navigation/resources/redirect-to-invalid-url-frame.php: Removed.
  • http/tests/navigation/resources/redirect-to-invalid-url-frame.py: Added.
  • http/tests/navigation/resources/referrer.php: Removed.
  • http/tests/navigation/resources/referrer.py: Added.
  • http/tests/navigation/resources/target-blank-opener-post-window.php: Removed.
  • http/tests/navigation/resources/target-blank-opener-post-window.py: Added.
  • http/tests/navigation/resources/target-blank-opener-window.php: Removed.
  • http/tests/navigation/resources/target-blank-opener-window.py: Added.
  • http/tests/navigation/resources/user-agent-script.php: Removed.
  • http/tests/navigation/resources/user-agent-script.py: Added.
  • http/tests/navigation/slow-loading-page-with-slow-script.php: Removed.
  • http/tests/navigation/slow-loading-page-with-slow-script.py: Added.
  • http/tests/navigation/statistics.html:
  • http/tests/navigation/target-blank-opener-post.html:
  • http/tests/navigation/target-blank-opener.html:
  • http/tests/navigation/useragent-reload.php: Removed.
  • http/tests/navigation/useragent-reload.py: Added.
  • http/tests/navigation/useragent.php: Removed.
  • http/tests/navigation/useragent.py: Added.
  • platform/wk2/TestExpectations:
  • platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt:
  • platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt:
  • platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt:
6:12 PM Changeset in webkit [273780] by Alan Coon
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.4

6:02 PM Changeset in webkit [273779] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Flaky JSC test: stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default
https://bugs.webkit.org/show_bug.cgi?id=221129

Reviewed by Saam Barati.

Speculative fix for JSC shell's termination handling change.

  • jsc.cpp:

(CommandLine::CommandLine):
(jscmain):

5:56 PM Changeset in webkit [273778] by Wenson Hsieh
  • 8 edits
    2 adds in trunk/Source/WebKit

[iOS] Image extraction should install image overlay content
https://bugs.webkit.org/show_bug.cgi?id=222621

Reviewed by Tim Horton.

Take some initial steps towards refactoring image extraction on iOS. See WebKitAdditions for more details.

  • Platform/cocoa/ImageExtractionUtilities.h: Added.
  • Platform/cocoa/ImageExtractionUtilities.mm: Added.

Add a new file to contain image-extraction-related functionality; see WebKitAdditions.

  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateWithImageExtractionResult):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateWithImageExtractionResult):

Add IPC plumbing between WebPageProxy (in the UI process) and WebPage to allow clients to push image
extraction results down to a given element on the page.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
5:37 PM Changeset in webkit [273777] by ysuzuki@apple.com
  • 13 edits in trunk/Source

[JSC] Remove ImpureProxyType
https://bugs.webkit.org/show_bug.cgi?id=222626

Reviewed by Alexey Shvayka.

Source/JavaScriptCore:

ImpureProxyType is no longer used. This patch just removes it.

  • API/tests/JSObjectGetProxyTargetTest.cpp:

(testJSObjectGetProxyTarget):

  • runtime/HasOwnPropertyCache.h:

(JSC::HasOwnPropertyCache::tryAdd):

  • runtime/JSCast.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::isProxy const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::finishCreation):

  • runtime/JSProxy.h:

(JSC::JSProxy::createStructure):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/Structure.h:

(JSC::Structure::isProxy const):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):

5:25 PM Changeset in webkit [273776] by weinig@apple.com
  • 16 edits
    2 deletes in trunk

Reduce the size of extended colors by storing the color space in free bits of the owning Color
https://bugs.webkit.org/show_bug.cgi?id=222584

Reviewed by Darin Adler.

Source/WebCore:

Reduce the size of non-SRBGA<uint8_t> colors by moving the color space from the ref counted
out-of-line bit into the free bits of the Color itself.

Also, take the opertunity to move and rename the out of line bit from it's own file named
ExtendedColor to a private nested type called OutOfLineComponents.

Color now encodes the following data:

| 8 bits | 8 bits | 48 (or 32) bits |
| ColorSpace | Flags | InlineColorDataOrOutOfLinePtr |

ColorSpace actually only uses 4 bits, so if we need more room for flags
in the future, we could pack things even more tightly.

Additionally, take the opportunity to remove the isInline/isExtended and
asInline/asExtended functions. The functionality of isInline/asInline
is still necessary in some places, but can be replaced by a single
tryGetAsSRGBABytes which returns an Optional<SRGBA<uint8_t>> with a
valid value when the stored value is inline.

Since ExtendedColor is no longer accessible, a few tests that checked things like
the ref count of the ExtendedColor had to be changed.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/Color.cpp:

(WebCore::Color::Color):
(WebCore::Color::operator=):
(WebCore::Color::semanticColor const):
(WebCore::Color::colorSpaceAndComponents const):

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alphaByte const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::OutOfLineComponents::create):
(WebCore::Color::OutOfLineComponents::alpha const):
(WebCore::Color::OutOfLineComponents::components const):
(WebCore::Color::OutOfLineComponents::OutOfLineComponents):
(WebCore::Color::setOutOfLineComponents):
(WebCore::operator==):
(WebCore::outOfLineComponentsEqual):
(WebCore::outOfLineComponentsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::~Color):
(WebCore::Color::hash const):
(WebCore::Color::colorSpace const):
(WebCore::Color::callOnUnderlyingType const):
(WebCore::Color::isOutOfLine const):
(WebCore::Color::isInline const):
(WebCore::Color::asOutOfLine const):
(WebCore::Color::asOutOfLineRef const):
(WebCore::Color::tryGetAsSRGBABytes const):
(WebCore::Color::encodedFlags):
(WebCore::Color::encodedColorSpace):
(WebCore::Color::encodedOutOfLineComponents):
(WebCore::Color::decodedFlags):
(WebCore::Color::decodedColorSpace):
(WebCore::Color::decodedOutOfLineComponents):
(WebCore::Color::setColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):
(WebCore::Color::setExtendedColor): Deleted.
(WebCore::extendedColorsEqual): Deleted.
(WebCore::extendedColorsEqualIgnoringSemanticColor): Deleted.
(WebCore::Color::isExtended const): Deleted.
(WebCore::Color::asExtended const): Deleted.
(WebCore::Color::asExtendedRef const): Deleted.
(WebCore::Color::encodedExtendedColor): Deleted.
(WebCore::Color::decodedExtendedColor): Deleted.

  • platform/graphics/ColorSerialization.cpp:
  • platform/graphics/ExtendedColor.h: Removed.
  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::createCGGradient):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
(WebCore::DisplayList::SetInlineFillGradient::isInline):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::containsOnlyInlineStateChanges):
(WebCore::DisplayList::Recorder::appendStateChangeItem):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::makeColor):

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp: Removed.

Update tests to account for removal of the ExtendedColor class.
Merge ExtendedColorTests.cpp that still make sense into ColorTests.cpp

5:12 PM Changeset in webkit [273775] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[ BigSur Debug Wk 2 ] ASSERT NOT REACHED in WebCore::DisplayList::PaintFrameForMedia::apply
https://bugs.webkit.org/show_bug.cgi?id=221989
<rdar://problem/74403030>

Reviewed by Jer Noble.

No new tests, this will fix a crash on debug bots.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyMediaItem): When we cannot get the player, the player
with the given identifier must have been destroyed. This function can return true to indicate
that the item has been applied.

4:56 PM Changeset in webkit [273774] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Better logging when attempting to convert tag to identifier
https://bugs.webkit.org/show_bug.cgi?id=222482
<rdar://problem/74797495>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitcorepy/setup.py: Bug version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn._commit_count):

4:39 PM Changeset in webkit [273773] by Simon Fraser
  • 11 edits in trunk

Rename ForcePageRenderingUpdatesAt60FPSEnabled preference to PreferPageRenderingUpdatesNear60FPSEnabled
https://bugs.webkit.org/show_bug.cgi?id=222580.

Reviewed by Tim Horton.

Source/WebCore:

The new setting has the inverse sense of the (confusingly named) older one.

Keep the setting off for now to avoid a behavior change.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Use new Setting name.

  • page/Page.cpp:

(WebCore::Page::preferredRenderingUpdateInterval const): If the pref is set, pass in the actual display FPS
so the code uses that in its fps computation (potentially reducing, say, 144fps to 72fps).

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Renamed preferredFramesPerSecond() to preferredFramesPerSecondFromInterval()
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):

  • platform/graphics/AnimationFrameRate.h:

(WebCore::preferredFramesPerSecondFromInterval): Renamed to avoid future name collisions.
(WebCore::preferredFramesPerSecond): Deleted.

  • platform/graphics/mac/DisplayRefreshMonitorMac.h:

Source/WTF:

PreferPageRenderingUpdatesNear60FPSEnabled is a better description of what the preference does.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • TestWebKitAPI/Tests/WebCore/AnimationFrameRate.cpp:

(TestWebKitAPI::TEST): Function rename.

4:38 PM Changeset in webkit [273772] by Russell Epstein
  • 1 delete in tags/Safari-611.1.18.3.1

Delete tag.

4:38 PM Changeset in webkit [273771] by Russell Epstein
  • 1 delete in tags/Safari-611.1.18.2.1

Delete tag.

4:21 PM Changeset in webkit [273770] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.2

Tag Safari-611.1.21.0.2.

4:20 PM Changeset in webkit [273769] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.3

Tag Safari-611.1.21.1.3.

4:01 PM Changeset in webkit [273768] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Improve logging of OSR availability analysis validation failures
https://bugs.webkit.org/show_bug.cgi?id=222612

Reviewed by Yusuke Suzuki.

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::OSRAvailabilityAnalysisPhase::run):

3:47 PM Changeset in webkit [273767] by Devin Rousso
  • 6 edits in trunk/Source

Allow IDL Date to be parsed from a string in addition to a number and actual JS Date
https://bugs.webkit.org/show_bug.cgi?id=222605
<rdar://problem/74502335>

Reviewed by Yusuke Suzuki.

JS Date can be stringified into JSON, but cannot be parsed back into a JS Date without
additional logic since the stringified value is indistinguishable from a regular string.

Source/JavaScriptCore:

  • runtime/JSDateMath.h:

Export DateCache::parseDate so it can be used in WebCore bindings code.

Source/WebCore:

  • bindings/js/JSDOMConvertDate.h:

(WebCore::Converter<IDLDate>::convert):
Pass the JSGlobalObject instead of the VM.

  • bindings/js/JSDOMConvertDate.cpp:

(WebCore::valueToDate):
Check if value.isString() and if so use DateCache::parseDate (same as JS Date.parse).

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::createIDBKeyFromValue):
Pass the JSGlobalObject instead of the VM. Should have no behavioral change since the
valueToDate call is already guarded by a value.inherits<DateInstance>(vm) check.

3:33 PM Changeset in webkit [273766] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Optimize getEnumerableLength
https://bugs.webkit.org/show_bug.cgi?id=222539

Reviewed by Alexey Shvayka.

Now getEnumerableLength is only overridden by JSProxy. And this is called in the critical path of propertyNameEnumerator.
We should not use indirect call for getEnumerableLength. We remove indirect functions for getEnumerableLength. For JSProxy,
any results is OK since anyway JSProxy does not utilize the result of this function since it cannot use fast index enumerator.

We also avoid calling holesMustForwardToPrototype in getEnumerableLength when it is meaningless. For example,
if the object is ALL_BLANK_INDEXING_TYPES, then regardless of the condition of holesMustForwardToPrototype, the result of
getEnumerableLength is zero.

  • runtime/ClassInfo.h:
  • runtime/JSCast.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::getEnumerableLength): Deleted.

  • runtime/JSCell.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::getEnumerableLength):

  • runtime/JSObject.h:
  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::getEnumerableLength): Deleted.

  • runtime/JSProxy.h:
3:27 PM Changeset in webkit [273765] by Jonathan Bedard
  • 13 edits in trunk/Tools

[webkitscmpy] Add UUID
https://bugs.webkit.org/show_bug.cgi?id=222602
<rdar://problem/74931488>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:

(Commit):
(Commit.Encoder.default): Add order member.
(Commit.init): Ditto.
(Commit.uuid): Compute UUID from timestamp and order.
(Commit.cmp): Use UUID instead of timestamp for comparison.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commit): Compute commit order.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Add "order" to colliding commit.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Correct case where comparison fails.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.commit): Compute commit order.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.commit): Compute commit order.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_order): Added.
(TestGitHub.test_order): Added.
(TestBitBucket.test_order): Added.

3:22 PM Changeset in webkit [273764] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

The layout of SVGImage should force the layout for its clients
https://bugs.webkit.org/show_bug.cgi?id=221253
<rdar://problem/74138641>

Reviewed by Simon Fraser.

Source/WebCore:

Unlike the bitmap image, the intrinsic size of SVGImage can only be known
after running its layout. Because SVGImage can be used by multiple clients,
CachedImage maintains an SVGImageCache which maps a client to an
SVGImageForContainer. SVGImageForContainer is just a wrapper of SVGImage
with the intrinsic size of the client. Because we may set an entry for
the renderer in SVGImageCache early before running a layout for SVGImage
and because the renderer intrinsic size depends on the intrinsic size of
SVGImage, SVGImageForContainer may have an empty intrinsic size.

So basically it is a race condition: knowing the intrinsic size of the
SVGImage client depends on the intrinsic size of SVGImage itself. And the
intrinsic size of SVGImageForContainer depends on the intrinsic size of
the client. This may lead to not rendering the clients because their sizes
are empty. To fix this issue we need to force calculateBackgroundImageGeometry()
once we finish the layout of the SVGImage which happens after receiving all
its data and calling RenderBox::imageChanged().

Test: fast/css/background-svg-image-loading.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::finishLoading):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::repaintLayerRectsForImage):

LayoutTests:

  • fast/css/background-svg-image-loading-expected.html: Added.
  • fast/css/background-svg-image-loading.html: Added.
3:06 PM Changeset in webkit [273763] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Tools

Remove the ability to run tests via webkit-patch
https://bugs.webkit.org/show_bug.cgi?id=222617

Patch by Sam Sneddon <Sam Sneddon> on 2021-03-02
Reviewed by Jonathan Bedard.

Also removes the build-and-test and build-and-test-attachment commands, as these are now
equivalent to build and build-attachment with --test support gone.

  • Scripts/webkitpy/tool/bot/layouttestresultsreader.py: Unused import
  • Scripts/webkitpy/tool/commands/download.py:

(BuildAndTest):
(Land):
(LandCowhand):
(BuildAndTestAttachment):
(AbstractPatchLandingCommand):

  • Scripts/webkitpy/tool/commands/download_unittest.py:

(test_build_and_test):
(test_land):
(test_land_red_builders):
(test_land_no_close):
(test_land_no_comment):
(test_land_no_comment_no_close):

  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/runtests.py: Removed.
  • Scripts/webkitpy/tool/steps/runtests_unittest.py: Removed.
  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(StepsTest.test_runtests_args):
(StepsTest.test_runtests_debug_args):
(StepsTest.test_runtests_jsc):
(StepsTest.test_runtests_jsc_debug):

2:53 PM Changeset in webkit [273762] by Jonathan Bedard
  • 7 edits in trunk/Tools

[run-webkit-tests] Use webkitscmpy when reporting results
https://bugs.webkit.org/show_bug.cgi?id=222432
<rdar://problem/74755765>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): The root directory should be treated as if it does not exist.

  • Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:

(SummarizedResultsTest.test_svn_revision): Use webkitscmpy's mock repository.
(SummarizedResultsTest.test_svn_revision_git): Added.

  • Scripts/webkitpy/port/base.py:

(Port.commits_for_upload): Use webkitscmpy instead of webkitpy for repository manipulation.

  • Scripts/webkitpy/port/base_unittest.py:

(PortTest.test_commits_for_upload): Use webkitscmpy's mock repository.
(PortTest.test_commits_for_upload_git_svn): Added.

2:51 PM Changeset in webkit [273761] by Lauro Moura
  • 9 edits
    1 add in trunk/LayoutTests

[GLIB] Rebaseline and update expectations

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/css1/text_properties/text_decoration-expected.txt: After r273554
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt: After r271110
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt: Ditto
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt: Ditto
  • platform/wpe/css1/text_properties/text_decoration-expected.txt: After r273554
  • platform/wpe/scrollingcoordinator/scrolling-tree/absolute-in-nested-overflow-scroll-expected.txt: Added. After r271651
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug89315-expected.txt: After r271616
2:38 PM Changeset in webkit [273760] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Support sending key modifiers after r272572
https://bugs.webkit.org/show_bug.cgi?id=222615

Reviewed by Adrian Perez de Castro.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wpeKeySymForKeyRef):

2:11 PM Changeset in webkit [273759] by commit-queue@webkit.org
  • 5 edits in trunk

Unconditionally return information in _autofillContext SPI when a field is focused
https://bugs.webkit.org/show_bug.cgi?id=221828
rdar://74211237

Patch by Ricky Mondello <Ricky Mondello> on 2021-03-02
Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _autofillContext]): Change the contract of _autofillContext to return information for any focused

text field. Add a "version" key. Explicitly indicate whether we're in a login context. This SPI remains stringly
typed for flexibility.

Tools:

Tests updated by Wenson Hsieh.

Rebaseline tests.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(-[AutoFillTestView acceptsAutoFillLoginCredentials]): Renamed in line with the Password AutoFill-related

contract these tests are about.

1:31 PM Changeset in webkit [273758] by Simon Fraser
  • 5 edits
    1 copy in trunk/Source/WebCore

Move AnimationFrameRate code into a .cpp file
https://bugs.webkit.org/show_bug.cgi?id=222609

Reviewed by Zalan Bujtas.

AnimationFrameRate code is getting larger. It should not all be inline.

Add ANGLEWebKitBridge.* to the project; they were missing.

Sort the Xcode project, deal with unified sources fallout.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/AnimationFrameRate.cpp: Copied from Source/WebCore/platform/graphics/AnimationFrameRate.h.

(WebCore::framesPerSecondNearestFullSpeed):
(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):
(WebCore::operator<<):

  • platform/graphics/AnimationFrameRate.h:

(WebCore::framesPerSecondNearestFullSpeed): Deleted.
(WebCore::preferredFrameInterval): Deleted.
(WebCore::preferredFramesPerSecond): Deleted.
(WebCore::operator<<): Deleted.

  • platform/graphics/cg/ImageUtilitiesCG.cpp:
1:23 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
1:13 PM Changeset in webkit [273757] by Russell Epstein
  • 59 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Apply patch. rdar://problem/74944301

1:12 PM Changeset in webkit [273756] by Russell Epstein
  • 59 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Apply patch. rdar://problem/74944257

1:05 PM Changeset in webkit [273755] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.3

Tag Safari-612.1.5.3.

12:35 PM Changeset in webkit [273754] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Enable simplified vertical alignment for non-empty root inline box
https://bugs.webkit.org/show_bug.cgi?id=222604

Reviewed by Antti Koivisto.

This patch enables the simplified vertical alignment for cases when the root inline box has text content.
e.g. <div>this is text only</div>

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):

12:23 PM Changeset in webkit [273753] by commit-queue@webkit.org
  • 7 edits in trunk

Take box-sizing into account in replaced element intrinsic sizing
https://bugs.webkit.org/show_bug.cgi?id=221671

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-02
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Sync test.

  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html:

Source/WebCore:

Take box-sizing into account in replaced element intrinsic sizing when
using aspect-ratio, but keep using content-box when resolving
width/height when no aspect-ratio is set.

Tests: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031.html

imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html
imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-033.html

  • rendering/RenderReplaced.cpp:

(WebCore::resolveWidthForRatio):
(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
(WebCore::resolveHeightForRatio):
(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

LayoutTests:

Enable some tests that pass now.

12:08 PM Changeset in webkit [273752] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash under KeyframeEffect::setTarget()
https://bugs.webkit.org/show_bug.cgi?id=222591
<rdar://problem/74281295>

Reviewed by David Kilzer.

The Styleable returned by targetStyleable() holds a reference to the Element that at
this point is m_target (assuming it's non-null). However, once we set the new value
for m_target, if the only reference to the original target was held by this KeyframeEffect,
then that element will be deallocated and by the time we call didChangeTargetStyleable()
it will be gone.

To address, we create a RefPtr<Element> in the scope of KeyframeEffect::setTarget()
protecting the Styleable's element while didChangeTargetStyleable() is called.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setTarget):

12:03 PM Changeset in webkit [273751] by achristensen@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[Cocoa] REGRESSION(r272752): fix some internal builds that use WTFString::WTFString(NSString *)
https://bugs.webkit.org/show_bug.cgi?id=222610
<rdar://74938249>

Unreviewed build fix.

Patch by BJ Burg <BJ Burg> on 2021-03-02

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation):
Some builders seem to find the new version of the header (without the exported NSString constructor)
whereas others don't find the new version (expecting the symbol to be exported), causing a linker error later on.

As a workaround, force usage of the CFStringRef constructor, which is always exported.

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:

Rebaseline generator test results.

12:00 PM Changeset in webkit [273750] by Alexey Shvayka
  • 8 edits
    1 add in trunk

TypedArray's DefineOwnProperty? should throw in case of failure
https://bugs.webkit.org/show_bug.cgi?id=220492

Reviewed by Darin Adler.

JSTests:

  • stress/array-species-config-array-constructor.js:
  • stress/put-direct-index-broken-2.js:

Update assertions, which are most certainly incorrect, partly aligning JSC with V8.

  • stress/typedarray-access-monomorphic-neutered.js:
  • stress/typedarray-access-neutered.js:
  • stress/typedarray-defineOwnProperty-error.js: Added.
  • test262/expectations.yaml:

Incorrect tests are being updated at https://github.com/tc39/test262/pull/2958.

Source/JavaScriptCore:

While web reality [1] requires failures of the most TypeArray internal methods to be
silent, DefineOwnProperty? can fail loudly if called via Object.defineProperty.

With this patch, TypeError is thrown for detached buffer, out-of-bounds index, and
non-index canonical numeric string key. Aligns JSC with the spec [2], V8, and SM.

[1]: https://github.com/tc39/ecma262/pull/2164
[2]: https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-defineownproperty-p-desc (step 3.b)

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

11:51 AM Changeset in webkit [273749] by Ruben Turcios
  • 6 edits in branches/safari-611.1.21.1-branch

Cherry-pick r273695. rdar://problem/74940739

Crash under WebProcessPool::pageBeginUsingWebsiteDataStore()
https://bugs.webkit.org/show_bug.cgi?id=222574
<rdar://68340471>

Reviewed by Geoffrey Garen.

Source/WebKit:

The issue was that when WebProcessProxy::requestTermination() was called (e.g. process is killed by WebKit
for using too much memory), we would fail to remove the process from the WebProcessCache. Because the
terminated would stay in the cache (even though WebProcessProxy::shutDown() was called), we could potentially
try and use it later on for a navigation to the same domain. This would lead to crashes because
WebProcessProxy::shutDown() has already been called.

Note that we were previously correctly removing the process from the cache in case of a proper crash, inside
WebProcessProxy::processDidTerminateOrFailedToLaunch(). I have moved the logic to remove from the cache
from processDidTerminateOrFailedToLaunch() to shutDown() to avoid similar issues in the future.

  • UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _requestWebProcessTermination:]):
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

11:41 AM Changeset in webkit [273748] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.3

11:27 AM Changeset in webkit [273747] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.3-branch/Source

Versioning

WebKit-7611.1.18.3.1

11:23 AM Changeset in webkit [273746] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.2-branch/Source

Versioning

WebKit-7611.1.18.2.1

11:19 AM Changeset in webkit [273745] by Chris Gambrell
  • 6 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/uri convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222599
<rdar://problem/74929709>

Reviewed by Jonathan Bedard.

  • http/tests/uri/css-href.php: Removed.
  • http/tests/uri/css-href.py: Added.
  • http/tests/uri/curly-braces-escaping-expected.txt:
  • http/tests/uri/curly-braces-escaping.html:
  • http/tests/uri/intercept/.htaccess:
  • http/tests/uri/resources/echo-uri.php: Removed.
  • http/tests/uri/resources/echo-uri.py: Added.
  • http/tests/uri/resources/print-uri.php: Removed.
  • http/tests/uri/resources/print-uri.py: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
11:19 AM Changeset in webkit [273744] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.3-branch

New branch.

11:18 AM Changeset in webkit [273743] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.2-branch

New branch.

11:18 AM Changeset in webkit [273742] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

Make build.webkit.org loadconfig similar to EWS
https://bugs.webkit.org/show_bug.cgi?id=222597

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/loadConfig.py:

(loadBuilderConfig):
(checkValidWorker): Method to validate worker.
(checkValidBuilder): Method to validate builder.
(checkValidSchedulers): Method to validate schedulers.
(doesTriggerExist):
(isTriggerUsedByAnyBuilder):
(checkWorkersAndBuildersForConsistency):

  • CISupport/build-webkit-org/loadConfig_unittest.py: Added unit-tests.

(ConfigDotJSONTest.test_configuration):
(TestcheckValidWorker):
(TestcheckValidWorker.test_invalid_worker):
(TestcheckValidWorker.test_worker_with_missing_name):
(TestcheckValidWorker.test_worker_with_missing_platName):
(TestcheckValidWorker.test_valid_worker):
(TestcheckValidBuilder):
(TestcheckValidBuilder.test_invalid_builder):
(TestcheckValidBuilder.test_builder_with_missing_name):
(TestcheckValidBuilder.test_builder_with_invalid_identifier):
(TestcheckValidBuilder.test_builder_with_extra_long_name):
(TestcheckValidBuilder.test_builder_with_invalid_configuration):
(TestcheckValidBuilder.test_builder_with_missing_factory):
(TestcheckValidBuilder.test_builder_with_missing_scheduler):
(TestcheckValidBuilder.test_builder_with_missing_platform):
(TestcheckValidBuilder.test_valid_builder):
(TestcheckWorkersAndBuildersForConsistency):
(TestcheckWorkersAndBuildersForConsistency.test_checkWorkersAndBuildersForConsistency):
(TestcheckWorkersAndBuildersForConsistency.test_checkWorkersAndBuildersForConsistency1):
(TestcheckWorkersAndBuildersForConsistency.test_duplicate_worker):
(TestcheckWorkersAndBuildersForConsistency.test_success):

  • CISupport/ews-build/loadConfig.py:

(checkWorkersAndBuildersForConsistency): Added double-quotes in error message for better readability.

  • CISupport/ews-build/loadConfig_unittest.py:

(TestcheckWorkersAndBuildersForConsistency.test_checkWorkersAndBuildersForConsistency1):

11:16 AM Changeset in webkit [273741] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix -Wreturn-type warnings after r273550

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRTCPriorityType):
(WebCore::toRTCPriorityType):
(WebCore::toWebRTCBitRatePriority):

11:14 AM Changeset in webkit [273740] by Russell Epstein
  • 1 delete in branches/safari-611.1.18.3-branch

Delete branch.

11:14 AM Changeset in webkit [273739] by Russell Epstein
  • 1 delete in branches/safari-611.1.18.2-branch

Delete branch.

11:09 AM Changeset in webkit [273738] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.21.0-branch

Cherry-pick r273656. rdar://problem/74883345

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

11:08 AM Changeset in webkit [273737] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.2

10:48 AM Changeset in webkit [273736] by Russell Epstein
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.3

10:25 AM Changeset in webkit [273735] by commit-queue@webkit.org
  • 10 edits in trunk

REGRESSION(r263094): [GTK][WPE] API test /webkit/WebKitWebContext/languages is failing
https://bugs.webkit.org/show_bug.cgi?id=188111

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-02
Reviewed by Michael Catanzaro.

Source/WebKit:

The GLib API allows to change the user preferred languages after the web process is created. Since r263094 we
are no loner sending the new overrides to the web process. Instead of calling overrideUserPreferredLanguages()
we now set the overrides in the WebProcessPool configuration, so that we can remove the language observer.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_set_preferred_languages): Use WebProcessPool::setOverrideLanguages() instead of
overrideUserPreferredLanguages().

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool) Remove the language observer registration.
(WebKit::WebProcessPool::~WebProcessPool): Remove the language observer unregistration.
(WebKit::WebProcessPool::setOverrideLanguages): Update the language overrides in the configuration and notify
all processes.
(WebKit::WebProcessPool::languageChanged): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::userPreferredLanguagesChanged const): Call overrideUserPreferredLanguages() again here.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextLanguages): Invalid locale is ignored now instead of throwing a exception.

  • TestWebKitAPI/glib/TestExpectations.json: Remove test expectation now that it passes again.
10:22 AM Changeset in webkit [273734] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Enable grid view
https://bugs.webkit.org/show_bug.cgi?id=222369

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
9:57 AM Changeset in webkit [273733] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Eliminate ScrollAnimatorGeneric::m_smoothAnimation
https://bugs.webkit.org/show_bug.cgi?id=222588

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-02
Reviewed by Simon Fraser.

No new tests. This change should not change behavior.

Eliminate the extra ScrollAnimationSmooth in ScrollAnimatorGeneric. The base
class already knows how to do scroll animations for programmatic scrolls,
so we can reuse that animation for doing ScrollAnimator::scroll(...). This
makes the code easier to understand and should simplify managing interactions
between the different animations in the future.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator): Renamed m_animationProgrammaticScroll
to m_scrollAnimation. The more generic name reflects the fact that it is also
used for doing scrolling from UI interaction now.
(WebCore::ScrollAnimator::scroll): Use the ScrollAnimationSmooth member to do
animated scrolls when necessary.
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation): Make sure the animation
is up to date with the current position when scrolling without it. This is
how ScrollAnimatorGeneric treated its ScrollAnimationSmooth.
(WebCore::ScrollAnimator::scrollToPositionWithAnimation): Rename member.
(WebCore::ScrollAnimator::cancelAnimations): Ditto.
(WebCore::ScrollAnimator::willEndLiveResize): Ditto.
(WebCore::ScrollAnimator::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimator::didAddHorizontalScrollbar): Ditto.

  • platform/ScrollAnimator.h: Ditto.
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric): Eliminate ScrollAnimationSmooth.
(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation): Ditto.
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar): Ditto.
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation): Deleted.
(WebCore::ScrollAnimatorGeneric::scroll): Deleted.
(WebCore::ScrollAnimatorGeneric::willEndLiveResize): Deleted.

  • platform/generic/ScrollAnimatorGeneric.h:
9:16 AM Changeset in webkit [273732] by youenn@apple.com
  • 8 edits in trunk

Use capture settings after recovering capture from GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=221126
<rdar://problem/73744819>

Reviewed by Eric Carlson.

Source/WebKit:

When updating constraints, store the constraints so that, on crash recovery,
we recreate the remote source and reapply the last constraints.

Manually tested and partially covered by API test.

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::applyConstraints):
(WebKit::RemoteRealtimeAudioSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::setFrameRateWithPreset):
(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:
8:31 AM Changeset in webkit [273731] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Error instead of asserting on the player in the source
https://bugs.webkit.org/show_bug.cgi?id=222108

Reviewed by Philippe Normand.

The release assert can be hit in some cases in smoothstreaming
with already invalid pipelines so better to just error out instead
of assert on release.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate):

7:37 AM Changeset in webkit [273730] by youenn@apple.com
  • 24 edits
    1 add in trunk

Enable MEDIA_SOURCE in IOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=222041
Source/WebCore:

<rdar://problem/74433510>

Reviewed by Eric Carlson.

MediaSource IDLs were protected by MEDIA_SOURCE but not by MediaSource runtime flag.
Update IDLs accordingly.

Covered by existing tests.

  • Modules/mediasource/AudioTrack+MediaSource.idl:
  • Modules/mediasource/DOMURL+MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediasource/TextTrack+MediaSource.idl:
  • Modules/mediasource/VideoTrack+MediaSource.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • html/HTMLMediaElement.idl:

Minor change to kick in binding generator.

  • html/track/AudioTrack.idl:
  • html/track/TextTrack.idl:
  • html/track/VideoTrack.idl:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::mediaEngine):
If AVStreamDataParser is not available, MSE backend will not be available.
Update assertion accordingly.

Source/WebCore/PAL:

Reviewed by Eric Carlson.

Add missing header declarations in AVStreamDataParserSPI.h and use it for simulator.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVFoundationSPI.h:
  • pal/spi/cocoa/AVStreamDataParserSPI.h: Added.

Source/WTF:

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferences.yaml:

Move this settings out of ENABLE(MEDIA_SOURCE) to allow existing binding code to compile.

  • wtf/PlatformEnableCocoa.h:

Tools:

<rdar://problem/74433510>

Reviewed by Eric Carlson.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
Disable MediaSource runtime flag on simulator since it lacks implementation of AVStreamDataParser.

LayoutTests:

Reviewed by Eric Carlson.

  • fast/mediastream/MediaStream-video-element.html:

Update to sort properties lexicographically.

  • fast/mediastream/MediaStream-video-element-expected.txt:
7:12 AM Changeset in webkit [273729] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Move WebGL test bot to Big Sur (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=222501
rdar://73900538

Unreviewed infrastructure fix.

  • CISupport/build-webkit-org/config.json: Fixed a typo.
6:44 AM Changeset in webkit [273728] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Merge SimplifiedVerticalAlignment and m_useSimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222586

Reviewed by Antti Koivisto.

Let's have SimplifiedVerticalAlignment track if simplified alignment can be applied on the current content.
Also decouple the actual alignment and whether the inline level box can be (simplified)aligned.
(see SimplifiedVerticalAlignment::align and SimplifiedVerticalAlignment::canUseSimplifiedAlignment)
This is in preparation for supporting non-atomic inline level boxes.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::lineBoxHeight const):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::isEnabled const):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::setEnabled):
(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::lineBoxHeight const): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::alignInlineLevelBoxIfApplicable): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::adjust): Deleted.
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes): Deleted.

2:15 AM Changeset in webkit [273727] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check platformData when decoding
https://bugs.webkit.org/show_bug.cgi?id=221442

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-02
Reviewed by Ryosuke Niwa.

Source/WebKit:

Null check platformData when decoding.

Test: ipc/pasteboard-write-custom-data.html

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode):

LayoutTests:

Add test for this.

  • ipc/pasteboard-write-custom-data-expected.txt: Added.
  • ipc/pasteboard-write-custom-data.html: Added.
2:13 AM Changeset in webkit [273726] by Chris Lord
  • 7 edits in trunk/Source/WebCore

Remove document accessor on CSSFontSelector
https://bugs.webkit.org/show_bug.cgi?id=222550

Reviewed by Darin Adler.

Replace FontSelector::document() with FontSelector::scriptExecutionContext().

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::CSSFontFace):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::scriptExecutionContext const):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):

  • css/CSSFontSelector.h:
  • css/FontFace.cpp:

(WebCore::FontFace::FontFace):

1:18 AM Changeset in webkit [273725] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Camera capture in iOS with GPUProcess enabled does not always handle orientation well at start up
https://bugs.webkit.org/show_bug.cgi?id=222167
<rdar://problem/74520496>

Reviewed by Eric Carlson.

Before the patch, GPU process orientation monitors were only getting updates after creation of the web process connection.
The initial value was therefore sometimes wrong.
Update this by storing the orientation value in GPU process and initializing it for every web process connection.
Manually tested.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):
(WebKit::GPUProcess::setOrientationForMediaCapture):

  • GPUProcess/GPUProcess.h:

Mar 1, 2021:

10:59 PM Changeset in webkit [273724] by Fujii Hironori
  • 4 edits in trunk

[GTK] Web inspector related tests very slow or timeout in debug mode
https://bugs.webkit.org/show_bug.cgi?id=208000

Reviewed by Carlos Garcia Campos.

Source/WebKit:

setTimeout was very slow in the inspector page because it was
throttled by 1 second due to that the page is hidden. Mac port
disables HiddenPageDOMTimerThrottlingEnabled for the inspector
page under testing. Do the same for GTK port.

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
setHiddenPageDOMTimerThrottlingEnabled(false) if under test.

LayoutTests:

  • platform/gtk/TestExpectations: Unmarked tests for Bug 149916 and Bug 208000.
9:00 PM Changeset in webkit [273723] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Move simplified baseline alignment to a dedicated function
https://bugs.webkit.org/show_bug.cgi?id=222564

Reviewed by Antti Koivisto.

This is in preparation for supporting non-atomic inline level boxes.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::simplifiedAlignInlineBoxIfApplicable const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

8:21 PM Changeset in webkit [273722] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Move simplified vertical alignment computation to struct SimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222562

Reviewed by Antti Koivisto.

This is in preparation for supporting non-atomic inline level boxes (by just calling simplifiedVerticalAlignment.adjust(inlineLevelBox)).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const):
(WebCore::Layout::SimplifiedVerticalAlignment::lineBoxHeight const):
(WebCore::Layout::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

8:17 PM Changeset in webkit [273721] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Make DictionaryLookup::rangeAtHitTestResult more robust
https://bugs.webkit.org/show_bug.cgi?id=222301
<rdar://problem/74529831>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-01
Reviewed by Brent Fulgham.

This may be related to r265084 but something is crashing and I'm not sure what.
Adding some Optional checks might fix something, but this is still puzzling to me.

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeAtHitTestResult):

8:08 PM Changeset in webkit [273720] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Gardening three common timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:37 PM Changeset in webkit [273719] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not try to run simplified alignment when line-height is set
https://bugs.webkit.org/show_bug.cgi?id=222559

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

6:14 PM Changeset in webkit [273718] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Reduce promise reaction memory usage when there are multiple reactions
https://bugs.webkit.org/show_bug.cgi?id=222533

Reviewed by Yusuke Suzuki.

Previously, we would store each reaction in a linked list. This
meant each reaction required 8 bytes to point to the next
reaction. Instead, this patch makes it so the first reaction is
store inline an object and any additional reactions are store into
index storage for that object. This doesn't save memory for the
first reaction since we now need to have a count of all the out of
line reactions but extra reactions use 8 bytes less each.

  • builtins/BuiltinNames.h:
  • builtins/PromiseOperations.js:

(globalPrivate.pushNewPromiseReaction):
(globalPrivate.triggerPromiseReactions):
(globalPrivate.newPromiseReaction): Deleted.
(globalPrivate.resolvePromise): Deleted.
(globalPrivate.rejectPromise): Deleted.
(globalPrivate.fulfillPromise): Deleted.
(globalPrivate.resolvePromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.fulfillPromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.rejectPromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.createResolvingFunctions): Deleted.
(globalPrivate.promiseReactionJobWithoutPromise): Deleted.
(globalPrivate.resolveWithoutPromise): Deleted.
(globalPrivate.rejectWithoutPromise): Deleted.
(globalPrivate.fulfillWithoutPromise): Deleted.
(globalPrivate.createResolvingFunctionsWithoutPromise): Deleted.
(globalPrivate.promiseReactionJob): Deleted.
(globalPrivate.promiseResolveThenableJobFast): Deleted.
(globalPrivate.promiseResolveThenableJobWithoutPromiseFast): Deleted.
(globalPrivate.promiseResolveThenableJob): Deleted.
(globalPrivate.promiseResolveThenableJobWithDerivedPromise): Deleted.
(onFulfilled): Deleted.
(onRejected): Deleted.
(globalPrivate.performPromiseThen): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSMicrotask.cpp:

(JSC::createJSMicrotask):

  • runtime/JSMicrotask.h:
6:04 PM Changeset in webkit [273717] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

REGRESSION: Object.defineProperties triggering a setter
https://bugs.webkit.org/show_bug.cgi?id=222538

Reviewed by Keith Miller.

JSTests:

  • stress/dfg-put-by-val-string-or-symbol-should-check-direct.js: Added.

(test1):
(test2):

Source/JavaScriptCore:

DFG's compilePutByValForCellWithString and compilePutByValForCellWithSymbol do not care about "Direct" flag.
This patch fixes that to call appropriate function if node is PutByValDirect.
FTL does not have this issue.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString):
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol):

5:57 PM Changeset in webkit [273716] by Jonathan Bedard
  • 8 edits in trunk/Tools

[wbkitscmpy] Add commits with colliding timestamps
https://bugs.webkit.org/show_bug.cgi?id=222572
<rdar://problem/74887215>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Add commit with colliding timestamp.
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
5:52 PM Changeset in webkit [273715] by Chris Fleizach
  • 6 edits
    2 adds in trunk

AX: VoiceOver announces grid as having "0 columns" and VoiceOver cannot enter the grid
https://bugs.webkit.org/show_bug.cgi?id=222440
<rdar://problem/74763792>

Reviewed by Zalan Bujtas.

Source/WebCore:

Support the ability of an ARIA table row to reference its cells through aria-owns.

Test: accessibility/aria-grid-with-aria-owns-rows.html

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::ariaOwnedByParent const):
(WebCore::AccessibilityTableCell::parentObjectUnignored const):
(WebCore::AccessibilityTableCell::parentRow const):

  • accessibility/AccessibilityTableCell.h:
  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::addChildren):

LayoutTests:

  • accessibility/aria-grid-with-aria-owns-rows-expected.txt: Added.
  • accessibility/aria-grid-with-aria-owns-rows.html: Added.
5:51 PM Changeset in webkit [273714] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some media related security tests time out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221793

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:44 PM Changeset in webkit [273713] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch()
https://bugs.webkit.org/show_bug.cgi?id=222577

Reviewed by Geoffrey Garen.

Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch() instead of duplicating
the code. It was error-prone to have 2 separate code paths whether the process exited due to a crash or a
termination request. It led to Bug 222574 for example because we added some logic to remove the process from
the cache in processDidTerminateOrFailedToLaunch() but had failed to do so in requestTermination().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::requestTermination):

  • UIProcess/WebProcessProxy.h:
5:40 PM Changeset in webkit [273712] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some tests in http/tests/media fail or time out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221694

Unreviewed test gardening.

Remove the tests which are consistently passing on bots from the test expectations.

  • platform/wk2/TestExpectations:
5:32 PM Changeset in webkit [273711] by Wenson Hsieh
  • 7 edits
    1 add in trunk

Support rotated image overlay text for non-rectilinear text quads
https://bugs.webkit.org/show_bug.cgi?id=222535
<rdar://problem/74886200>

Reviewed by Tim Horton.

Source/WebCore:

Add support for rendering image overlay elements at rotated angles. To achieve this, we add a new helper
function to GeometryUtilities.h, rotatedBoundingRect, that takes a FloatQuad and returns a struct that
describes a (potentially) rotated bounding rect that covers all the points in the quad.

Tests: FloatQuad.RotatedBoundingRectForPoint

FloatQuad.RotatedBoundingRectForLineSegment
FloatQuad.RotatedBoundingRectForTriangle
FloatQuad.RotatedBoundingRectForTrapezoid
FloatQuad.RotatedBoundingRectWithMinimumAngle

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

Add a slight (0.01 rad) tolerance here, such we won't attempt to apply a rotation transformation if the text
quad is aligned (or nearly aligned) with the unit vector (1, 0).

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::midPoint):
(WebCore::dotProduct):
(WebCore::angleBetweenVectors):
(WebCore::rotatedBoundingRect):

  • platform/graphics/GeometryUtilities.h:
  • platform/graphics/PathTraversalState.cpp:

(WebCore::midPoint): Deleted.

Tools:

Add a new API test file to exercise the new rotatedBoundingRect function, with tests to cover a few degenerate
cases such as a single point, line segments, and triangles.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/FloatQuadTests.cpp: Added.

(TestWebKitAPI::areApproximatelyEqual):
(TestWebKitAPI::expectRotatedRect):
(TestWebKitAPI::TEST):

5:22 PM Changeset in webkit [273710] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.21.3.1

Tag Safari-611.1.21.3.1.

5:16 PM Changeset in webkit [273709] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.21.2.1

Tag Safari-611.1.21.2.1.

5:13 PM Changeset in webkit [273708] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.2

Tag Safari-611.1.21.1.2.

5:13 PM Changeset in webkit [273707] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some tests in imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221697

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:09 PM Changeset in webkit [273706] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.2

5:04 PM Changeset in webkit [273705] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some media related content security policy tests fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221792

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:03 PM Changeset in webkit [273704] by Truitt Savell
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/texImage2D-video-flipY-false.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=222500

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:00 PM Changeset in webkit [273703] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.0.1

Tag Safari-611.1.21.0.1.

4:51 PM Changeset in webkit [273702] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.1

Tag Safari-611.1.21.1.1.

4:10 PM Changeset in webkit [273701] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some modern-media-controls tests are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221685

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
3:53 PM Changeset in webkit [273700] by Truitt Savell
  • 14 edits in trunk/Source

Unreviewed, reverting r273655.

Broke internal Mac

Reverted changeset:

"Set ownership of IOSurfaces from the GPUProcess instead of
the WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=222391
https://commits.webkit.org/r273655

3:44 PM Changeset in webkit [273699] by pvollan@apple.com
  • 2 edits in trunk

[Win] Fix build failure
https://bugs.webkit.org/show_bug.cgi?id=222576
<rdar://problem/74590803>
Reviewed by Brent Fulgham.

It appears a recent change has unintentionally enabled WebInspectorUI on Apple Win. Address this by explicitly disabling it.

  • Source/cmake/OptionsAppleWin.cmake:
3:28 PM Changeset in webkit [273698] by Chris Gambrell
  • 3 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/websocket convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221912
<rdar://problem/74358196>

Reviewed by Jonathan Bedard.

  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php: Removed.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.py: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies.php: Removed.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies.py: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/block-cookies-worker.js:

(clearCookies):

  • http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404.html:
  • http/tests/websocket/tests/hybi/resources/status-404-without-body.php: Removed.
  • http/tests/websocket/tests/hybi/resources/status-404-without-body.py: Added.
3:15 PM Changeset in webkit [273697] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix unused variable warning
https://bugs.webkit.org/show_bug.cgi?id=222405
<rdar://problem/74769938>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-01

  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::setNowPlayingInfo):

3:11 PM Changeset in webkit [273696] by Peng Liu
  • 3 edits in trunk/LayoutTests

[GPUP] Clean up LayoutTests/gpu-process/TestExpectations related to media tests
https://bugs.webkit.org/show_bug.cgi?id=222570

Reviewed by Eric Carlson.

Clean up test expectations.

  • Remove duplicate test expectations.
  • Move some media tests from gpu-process/TestExpectations to platform/wk2/TestExpectations.
  • Remove tests which are passing consistently from gpu-process/TestExpectations.
  • gpu-process/TestExpectations:
  • platform/wk2/TestExpectations:
3:07 PM Changeset in webkit [273695] by Chris Dumez
  • 6 edits in trunk

Crash under WebProcessPool::pageBeginUsingWebsiteDataStore()
https://bugs.webkit.org/show_bug.cgi?id=222574
<rdar://68340471>

Reviewed by Geoffrey Garen.

Source/WebKit:

The issue was that when WebProcessProxy::requestTermination() was called (e.g. process is killed by WebKit
for using too much memory), we would fail to remove the process from the WebProcessCache. Because the
terminated would stay in the cache (even though WebProcessProxy::shutDown() was called), we could potentially
try and use it later on for a navigation to the same domain. This would lead to crashes because
WebProcessProxy::shutDown() has already been called.

Note that we were previously correctly removing the process from the cache in case of a proper crash, inside
WebProcessProxy::processDidTerminateOrFailedToLaunch(). I have moved the logic to remove from the cache
from processDidTerminateOrFailedToLaunch() to shutDown() to avoid similar issues in the future.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _requestWebProcessTermination:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
3:06 PM Changeset in webkit [273694] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Building with ENABLE_SERVICE_WORKER=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=222566

Unreviewed build fix.

  • UIProcess/WebProcessPool.cpp: Only compile a method when service

worker is enabled.

2:58 PM Changeset in webkit [273693] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Have WebProcessPool::processForRegistrableDomain() return a Ref<WebProcessProxy>
https://bugs.webkit.org/show_bug.cgi?id=222575

Reviewed by Geoffrey Garen.

Have WebProcessPool::processForRegistrableDomain() return a Ref<WebProcessProxy> instead of a WebProcessProxy&,
for extra safety. Returning a WebProcessProxy& is generally safe because the WebProcessPool is expected to hold
a reference to the WebProcessProxy it is returning (via WebProcessPool::m_processes). However, this is a bit
fragile and can lead to bad bugs as we've seen recently.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
2:29 PM Changeset in webkit [273692] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Protect AudioWorkletGlobalScope::registerProcessor() against re-entry
https://bugs.webkit.org/show_bug.cgi?id=222567
<rdar://74860464>

Reviewed by Eric Carlson.

AudioWorkletGlobalScope::registerProcessor() checks if 'name' is in m_processorConstructorMap
then does some checks that potentially run JS and thus call registerProcessor() again (potentially
with the same name). To address this, we now check the map again after potentially running the
JS code.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):

2:02 PM Changeset in webkit [273691] by Truitt Savell
  • 2 edits
    4 moves in trunk/LayoutTests

[Big Sur] platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222495

Unreviewed test gardening.

  • media/media-source/content/test-48kHz-vorbis-manifest.json: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis-manifest.json.
  • media/media-source/content/test-48kHz-vorbis.webm: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis.webm.
  • media/media-source/media-source-webm-vorbis-partial-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial-expected.txt.
  • media/media-source/media-source-webm-vorbis-partial.html: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html.
  • platform/mac/TestExpectations:
1:32 PM Changeset in webkit [273690] by Martin Robinson
  • 10 edits
    4 adds in trunk

Scroll snapping doesn't kick in when dragging scrollbars
https://bugs.webkit.org/show_bug.cgi?id=146696

Reviewed by Simon Fraser.

Source/WebCore:

This change adds support for scroll snap when the scrollbar thumb is
released from a drag operation. This animation is currently done with
the non-native scroll animator for all platforms, since that is also
what is used for smooth scrolling.

This change adjusts the non-native scroll animator's smoothness factor,
because it is too slow for short scroll snaps. I have verified that the
new smoothness factor is also a good selection for smooth scrolling
operations (still an experimental feature). A further change should use
"native" animations when possible for both smooth scrolling and scroll
snap after thumb drags. This is tracked by the following bug:
https://bugs.webkit.org/show_bug.cgi?id=218857

Tests: css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html

css3/scroll-snap/scroll-snap-drag-scrollbar-thumb.html

  • platform/ScrollAnimationSmooth.cpp: Modify smoothFactorForProgrammaticScroll to

a value that is good for both scroll snapping and smooth scrolling.

  • platform/ScrollAnimator.cpp: The tick method for the non-native scroll animation

should continually update the current active snap point.
(WebCore::ScrollAnimator::adjustScrollOffsetForSnappingIfNeeded): Split this into
two methods. One that handles a single axis and one that handles both.

  • platform/ScrollAnimator.h: Update method declarations.
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::doPostThumbDragSnapping): Added this method which does
axial snapping after a scrollbar thum drag.

  • platform/ScrollableArea.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::mouseUp): Use the new doPostThumbDragSnapping method.

LayoutTests:

Add support for scroll snap after dragging scrollbar thumb

This change adds support for scroll snap when the scrollbar thumb is
released from a drag operation. This animation is currently done with
the non-native scroll animator for all platforms, since that is also
what is used for smooth scrolling.

This change adjusts the non-native scroll animator's smoothness factor,
because it is too slow for short scroll snaps. I have verified that the
new smoothness factor is also a good selection for smooth scrolling
operations (still an experimental feature). A further change should use
"native" animations when possible for both smooth scrolling and scroll
snap after thumb drags. This is tracked by the following bug:
https://bugs.webkit.org/show_bug.cgi?id=218857

  • css3/scroll-snap/scroll-snap-click-scrollbar-gutter-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html: Added.
  • css3/scroll-snap/scroll-snap-drag-scrollbar-thumb-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-drag-scrollbar-thumb.html: Added.
  • platform/ios-wk2/TestExpectations: Mark new test as failing on iOS

which has issues with scrollbars.

  • platform/ios/TestExpectations: Skip the new test on iOS which does not

support scrolling by dragging the scrollbar.

1:29 PM Changeset in webkit [273689] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Cherry-pick r273564. rdar://problem/74886917

[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>

Reviewed by Eric Carlson.

Source/WebCore:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.

No new tests, covered by existing tests.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebKit:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder): Deleted. (WebKit::WebProcess::enableVP8SWDecoder): Deleted. (WebKit::WebProcess::enableVP9SWDecoder): Deleted.
  • WebProcess/WebProcess.h:

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

1:27 PM Changeset in webkit [273688] by weinig@apple.com
  • 19 edits
    3 adds in trunk/Source

Add alternate, non-named-getter based, implementation of CSSStyleDeclaration back into WebCore
https://bugs.webkit.org/show_bug.cgi?id=222517

Reviewed by Darin Adler.

Source/WebCore:

Re-lands change from r268564 but disabled behind a new ENABLE flag,
ENABLE(ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION).

Replace named getter/setter based implementation of access to CSSStyleDeclaration property values
with a generated partial interface that lists all the properties exactly.

To keep things consistent with existing behavior, in addition to the spec'd properties, we also
maintain additional properties for epub prefixed properties.

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Generate CSSStyleDeclaration+PropertyNames.idl and ensure it is compile together with the other
bindings.

  • css/makeprop.pl:

Add generation of CSSStyleDeclaration+PropertyNames.idl from CSSProperties.json. Add checking
of the enable flag to ensure it is not compiled by default.

  • bindings/scripts/CodeGeneratorJS.pm:

(ToMethodName):
Don't transform names that start with CSSOM to ensure property names are consistent.

(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):

  • bindings/scripts/IDLAttributes.json:

Add initial support for the new CSSProperty extended attribute. Only the tests and
the disabled code in CSSStyleDeclaration+PropertyNames.idl currently use it.

  • bindings/scripts/test/BindingTestGlobalConstructors.idl:
  • bindings/scripts/test/JS/JSTestCSSProperty.cpp: Added.
  • bindings/scripts/test/JS/JSTestCSSProperty.h: Added.
  • bindings/scripts/test/SupplementalDependencies.dep:
  • bindings/scripts/test/TestCSSProperty.idl: Added.

Add tests for the new CSSProperty extended attribute.

(WebCore::CSSComputedStyleDeclaration::setPropertyInternal):

  • css/CSSComputedStyleDeclaration.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):

  • css/PropertySetCSSStyleDeclaration.h:

Remove unused bool return value from getPropertyValueInternal (it goes from
ExceptionOr<bool> to ExceptionOr<void>) to simplify some callers that no longer
need to check the return value.

  • css/CSSStyleDeclaration.cpp:
  • css/CSSStyleDeclaration.h:

Extract out setPropertyValueInternal so it can be used by the bindings generator
for CSSProperty attributes.

  • css/CSSStyleDeclaration.idl:

Move named getter/setter declarations and DefaultDefineOwnProperty inside of
enable flags checks so that when it is disabled, we don't use them.

Source/WTF:

  • wtf/PlatformEnable.h:

Add new off by default ENABLE flag ENABLE(ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION) which indicates
that we should use the new attribute based implementation of property getter/setters of CSSStyleDeclaration.
Once we remove the compile time and binary size regressions, we can enable this and remove the macro.

1:24 PM Changeset in webkit [273687] by Truitt Savell
  • 2 edits in trunk/LayoutTests

media/media-fullscreen-pause-inline.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=222573

RUnreviewed test gardening.

  • platform/mac/TestExpectations:
1:23 PM Changeset in webkit [273686] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Cherry-pick r273564. rdar://problem/74886738

[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>

Reviewed by Eric Carlson.

Source/WebCore:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.

No new tests, covered by existing tests.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebKit:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder): Deleted. (WebKit::WebProcess::enableVP8SWDecoder): Deleted. (WebKit::WebProcess::enableVP9SWDecoder): Deleted.
  • WebProcess/WebProcess.h:

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

1:16 PM Changeset in webkit [273685] by Chris Gambrell
  • 28 edits
    26 adds
    27 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/loading convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222198
<rdar://problem/74536576>

Reviewed by Jonathan Bedard.

  • http/tests/loading/307-after-303-after-post-expected.txt:
  • http/tests/loading/307-after-303-after-post.html:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-1-redirect-to-auth.php: Removed.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-1-redirect-to-auth.py: Added.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-2-auth-then-redirect-to-finish.php: Removed.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-2-auth-then-redirect-to-finish.py: Added.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-3-output-credentials-then-finish.php: Removed.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-3-output-credentials-then-finish.py: Added.
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
  • http/tests/loading/basic-auth-remove-credentials-expected.txt:
  • http/tests/loading/basic-auth-remove-credentials.html:
  • http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • http/tests/loading/basic-auth-resend-wrong-credentials.html:
  • http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • http/tests/loading/basic-credentials-sent-automatically.html:
  • http/tests/loading/nested_bad_objects.php: Removed.
  • http/tests/loading/nested_bad_objects.py: Added.
  • http/tests/loading/oauth.html:
  • http/tests/loading/post-in-iframe-with-back-navigation-expected.txt:
  • http/tests/loading/post-in-iframe-with-back-navigation.html:
  • http/tests/loading/preload-append-scan.php: Removed.
  • http/tests/loading/preload-append-scan.py: Added.
  • http/tests/loading/preload-slow-loading.php: Removed.
  • http/tests/loading/preload-slow-loading.py: Added.
  • http/tests/loading/redirect-with-no-location-crash.html:
  • http/tests/loading/resourceLoadStatistics/resources/get-cookies.php: Removed.
  • http/tests/loading/resourceLoadStatistics/resources/get-cookies.py: Added.
  • http/tests/loading/resourceLoadStatistics/resources/set-cookie.php: Removed.
  • http/tests/loading/resources/303-to-307-target.php: Removed.
  • http/tests/loading/resources/303-to-307-target.py: Added.
  • http/tests/loading/resources/307-post-output-target.php: Removed.
  • http/tests/loading/resources/307-post-output-target.py: Added.
  • http/tests/loading/resources/basic-auth-testing.php: Removed.
  • http/tests/loading/resources/basic-auth-testing.py: Added.
  • http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.php: Removed.
  • http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.py: Added.
  • http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.html:
  • http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.php: Removed.
  • http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.py: Added.
  • http/tests/loading/resources/oauth-subresource.php: Removed.
  • http/tests/loading/resources/oauth-subresource.py: Added.
  • http/tests/loading/resources/othersubresources/protected-resource.php: Removed.
  • http/tests/loading/resources/othersubresources/protected-resource.py: Added.
  • http/tests/loading/resources/page-with-slow-loading-subresource.html:
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-1.php: Removed.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-1.py: Added.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.php: Removed.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.py: Added.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-3.php: Removed.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-3.py: Added.
  • http/tests/loading/resources/post-to-303-target.php: Removed.
  • http/tests/loading/resources/post-to-303-target.py: Added.
  • http/tests/loading/resources/protected-resource.php: Removed.
  • http/tests/loading/resources/protected-resource.py: Added.
  • http/tests/loading/resources/redirect-with-no-location-crash.php: Removed.
  • http/tests/loading/resources/redirect-with-no-location-crash.py: Added.
  • http/tests/loading/resources/resource-that-goes-back-while-still-loading.php: Removed.
  • http/tests/loading/resources/resource-that-goes-back-while-still-loading.py: Added.
  • http/tests/loading/resources/server-redirect-result.html:
  • http/tests/loading/resources/server-redirect.php: Removed.
  • http/tests/loading/resources/server-redirect.py: Added.
  • http/tests/loading/resources/slowimage.php: Removed.
  • http/tests/loading/resources/slowimage.py: Added.
  • http/tests/loading/resources/subresources/protected-resource.php: Removed.
  • http/tests/loading/resources/subresources/protected-resource.py: Added.
  • http/tests/loading/resources/test2/basic-auth-testing.php: Removed.
  • http/tests/loading/resources/test2/basic-auth-testing.py: Added.
  • http/tests/loading/resources/test2/protected-resource.php: Removed.
  • http/tests/loading/resources/test2/protected-resource.py: Added.
  • http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
  • http/tests/loading/server-redirect-for-provisional-load-caching.html:
  • http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html:
  • platform/ios-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
1:09 PM Changeset in webkit [273684] by Andres Gonzalez
  • 8 edits
    1 copy
    2 moves
    1 add in trunk

WebAccessibilityObjectWrapper method to retrieve related error message elements should return not-ignored accessibility elements.
https://bugs.webkit.org/show_bug.cgi?id=222375

Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibility/ios-simulator/aria-errormessage.html

accessibility/mac/aria-errormessage.html

The iOS implementation of [WebAccessibilityObjectWrapper accessibilityErrorMessageElements]
was returning container elements that are not accessibility elements,
i.e., isAccessibilityElement return false. That caused that iOS clients could not get any info about the error messages.
With this patch, accessibilityErrorMessageElements drills down the
hierarchy of accessibility objects for the error message elements and
returns those descendants that are accessibility elements.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::enumerateDescendants):
Hellper function to enumerate descendants of a given AX object.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]):
Returns elements for which isAccessibilityElement == YES.

LayoutTests:

Replaced accessibility/aria-errormessage.html with mac and ios-simulator variants.

  • accessibility/ios-simulator/aria-errormessage-expected.txt: Added.
  • accessibility/ios-simulator/aria-errormessage.html: Copied from LayoutTests/accessibility/aria-errormessage.html.
  • accessibility/mac/aria-errormessage-expected.txt: Renamed from LayoutTests/accessibility/aria-errormessage-expected.txt.
  • accessibility/mac/aria-errormessage.html: Renamed from LayoutTests/accessibility/aria-errormessage.html.
  • platform/glib/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:56 PM Changeset in webkit [273683] by weinig@apple.com
  • 18 edits
    3 adds in trunk

Add experimental support for CSS Color 5 color-contrast()
https://bugs.webkit.org/show_bug.cgi?id=222530

Reviewed by Simon Fraser.

Source/WebCore:

This feature is off by default and can be enabled via the CSSColorContrastEnabled
experimental preference flag.

This implementation has the same restriction on it that the recently landed
Relative Color Syntax and color-mix() do, in that it does support system colors
or currentColor as input, since those can't be resolved at parse time. Ultimately,
we will need to add a late binding version of this for those cases.

Test: fast/css/parsing-color-contrast.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Add new ColorLuminance.h header where the generic relative luminance and contrast ratio
functions live.

  • css/CSSValueKeywords.in:

Add new keywords, color-contrast and vs, that are needed for the color-contrast() function.

  • css/parser/CSSParserContext.cpp:
  • css/parser/CSSParserContext.h:

Add a setting for color-contrast.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Add parsing and computation of color-contrast().

  • platform/graphics/ColorUtilities.cpp:

(WebCore::lightness): Deleted.
(WebCore::luminance): Deleted.
(WebCore::contrastRatio): Deleted.
Moved luminance related functions to ColorLuminance.h and inlined lightness
to its one caller, Color and noted it should be removed.

  • platform/graphics/ColorUtilities.h:

(WebCore::invertedColorWithOverriddenAlpha):
(WebCore::invertedcolorWithOverriddenAlpha): Deleted.
Fix capitalization issue seen. invertedcolorWithOverriddenAlpha -> invertedColorWithOverriddenAlpha.

  • platform/graphics/Color.cpp:

(WebCore::Color::lightness const):
Inline implementation and add comment explaining it should be removed.

(WebCore::Color::luminance const):
Re-write to use the new WebCore::relativeLuminance that works for any color type
without conversion to sRGB.

(WebCore::Color::contrastRatio):
Add helper to call generic WebCore::contrastRatio that works on any color types
to avoid callers needing to do the unfolding themselves.

(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):

  • platform/graphics/Color.h:

(WebCore::Color::isBlackColor): Deleted.
(WebCore::Color::isWhiteColor): Deleted.
Move these rare functions out of line to reduce the number of places in the header we are
calling callOnUnderlyingType(), which produces code linerally with the number of color spaces
supported. Calling it in the cpp files means we only expand it once for each function.

  • platform/graphics/ColorLuminance.h: Added.

(WebCore::relativeLuminance):
This is a generic version of the old luminance function that works for any color type
by converting to XYZ and taking the Y component. The old function required always
converting to sRGB which could be lossy.

(WebCore::contrastRatio):
Split out computation of contrastRatio based on relative luminace floats into its own
function so that if we have the relative luminance computed already, we don't have to
recompute it. Add version contrastRatio that works for any color type utilizing the
generic relativeLuminance function above.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::disabledTextColor const):

  • rendering/TextPaintStyle.cpp:

(WebCore::textColorIsLegibleAgainstBackgroundColor):
Update to use new Color::contrastRatio helper that handles all color types.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add new experimental preference for CSS Color 5 color-contrast()
which is off by default.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update luminance values to account for more accurate conversion to
XYZ now that we are usuing the actual matrix values from SRGBADescriptor
and not a truncated copy.

LayoutTests:

  • fast/css/parsing-color-contrast-expected.txt: Added.
  • fast/css/parsing-color-contrast.html: Added.

Add parsing and computed style computation tests for color-contast().

12:53 PM Changeset in webkit [273682] by Ruben Turcios
  • 27 edits
    2 moves
    2 deletes in branches/safari-611.1.21.2-branch

Revert "Cherry-pick r273590. rdar://problem/74881403"

This reverts commit 8714b941c814ac9e9771325be68853be779c4393.

12:51 PM Changeset in webkit [273681] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Change LineBoxBuilder::m_inlineLevelBoxesNeedVerticalAlignment to m_useSimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222556

Reviewed by Antti Koivisto.

m_useSimplifiedVerticalAlignment is more descriptive. It's also in preparation for expanding the simplified vertical alignment coverage.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

12:37 PM Changeset in webkit [273680] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Remove added element from Style::Update root set
https://bugs.webkit.org/show_bug.cgi?id=222536

Reviewed by Zalan Bujtas.

With combined text and element updates an element might already exist in the root set when added.
Remove it from the root set to avoid updating it twice.

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):

12:26 PM Changeset in webkit [273679] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.21.1-branch

Cherry-pick r273656. rdar://problem/74883377

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

12:24 PM Changeset in webkit [273678] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.21.3-branch

Cherry-pick r273656. rdar://problem/74883325

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

12:22 PM Changeset in webkit [273677] by Ruben Turcios
  • 3 edits
    2 adds in branches/safari-611.1.21.2-branch

Cherry-pick r273656. rdar://problem/74883395

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

12:22 PM Changeset in webkit [273676] by Alan Coon
  • 8 edits in branches/safari-611.1.21.3-branch/Source

Versioning.

WebKit-7611.1.21.3.1

12:19 PM Changeset in webkit [273675] by Peng Liu
  • 2 edits in trunk/Source/WebKitLegacy/mac

Rename the delegate property of WebAVPlayerView to webDelegate to fix a build failure with new SDKs
https://bugs.webkit.org/show_bug.cgi?id=222560

Reviewed by Jer Noble.

We have to rename the delegate property of WebAVPlayerView because AVKit adds
a delegate property to AVPlayerView which will conflict with the one in WebKit.

  • WebView/WebVideoFullscreenController.mm:

(WebAVPlayerView_webDelegate):
(WebAVPlayerView_setWebDelegate):
(WebAVPlayerView_isFullScreen):
(WebAVPlayerView_enterFullScreen):
(WebAVPlayerView_exitFullScreen):
(allocWebAVPlayerViewInstance):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController windowDidLoad]):
(WebAVPlayerView_delegate): Deleted.
(WebAVPlayerView_setDelegate): Deleted.

12:08 PM Changeset in webkit [273674] by Alan Coon
  • 1 copy in branches/safari-611.1.21.3-branch

New branch.

12:02 PM Changeset in webkit [273673] by Ruben Turcios
  • 27 edits
    2 copies
    2 moves in branches/safari-611.1.21.2-branch

Cherry-pick r273590. rdar://problem/74881403

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

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

11:57 AM Changeset in webkit [273672] by Said Abou-Hallawa
  • 4 edits in trunk

[GPU Process] Some DisplayList items may not be replayed back before calling getImageData()
https://bugs.webkit.org/show_bug.cgi?id=222343

Reviewed by Tim Horton.

Source/WebKit:

Make sure all the pending DisplayList items are pushed to the GPUP and
submitted to RemoteImageBuffer before calling the asynchronous method
getImageData().

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

LayoutTests:

  • gpu-process/TestExpectations:
11:55 AM Changeset in webkit [273671] by Alan Coon
  • 27 edits
    2 copies
    2 moves in branches/safari-611.1.21.0-branch

Cherry-pick r273590. rdar://problem/74881366

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

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

11:50 AM Changeset in webkit [273670] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

Use PriorityQueue in NetworkCache::Storage
https://bugs.webkit.org/show_bug.cgi?id=222555

Reviewed by Chris Dumez.

Replace Vector<Deque<>> with a more flexible, simpler to use data structure.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
(WebKit::NetworkCache::Storage::isHigherPriority):
(WebKit::NetworkCache::Storage::cancelAllReadOperations):
(WebKit::NetworkCache::Storage::dispatchPendingReadOperations):
(WebKit::NetworkCache::Storage::retrieve):

  • NetworkProcess/cache/NetworkCacheStorage.h:
11:49 AM Changeset in webkit [273669] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

EventDispatcher::wheelEvent is accessing m_scrollingTrees without locking m_scrollingTreesMutex since r271235
https://bugs.webkit.org/show_bug.cgi?id=222529

Reviewed by Carlos Garcia Campos.

r271235 added a code to access m_scrollingTrees, but it didn't
lock m_scrollingTreesMutex. The code can be removed by moving it
into the above lambda expression.

EventDispatcher::wheelEvent was using a local lambda expression.
However the return value wasn't used. And, MSVC can't compile the
lambda expression because it has a bug that 'this' can't be used
in lambda expressions. Converted the lambda expression to a
do-while statement.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

11:47 AM Changeset in webkit [273668] by Alan Coon
  • 27 edits
    2 copies
    2 moves in branches/safari-611.1.21.1-branch

Cherry-pick r273590. rdar://problem/74881385

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

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

11:47 AM Changeset in webkit [273667] by Alan Coon
  • 4 edits in branches/safari-611.1.21.1-branch

Cherry-pick r273583. rdar://problem/74881429

Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:

<rdar://problem/74793445>

Reviewed by Chris Fleizach.

This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.

Tools:

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):

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

11:47 AM Changeset in webkit [273666] by Alan Coon
  • 15 edits
    2 adds in branches/safari-611.1.21.1-branch

Cherry-pick r273227. rdar://problem/74880937

Add [WebAccessibilityObjectWrapper textMarkerRangeForNSRange] to allow clients to efficiently get a TextMarkerRange from an NSRange.
https://bugs.webkit.org/show_bug.cgi?id=222154

Reviewed by Chris Fleizach and Darin Adler.

Source/WebCore:

Test: accessibility/mac/textmarker-range-for-range.html

Clients like VoiceOver often need the ability to convert a text range
into an accessibility TextMarkerRange.
This patch adds [WebAccessibilityObjectWrapper textMarkerRangeForNSRange]
to allow clients to efficiently perform this conversion.
This is the Mac implementation, iOS implementation is pending.

  • accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::allowsTextRanges const):
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::textMarkerRangeForNSRange const):
  • accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::textMarkerRangeForNSRange const):
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
  • editing/Editing.cpp: (WebCore::visiblePositionForIndexUsingCharacterIterator): Only advance the CharacterIterator if not atEnd yet.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::textMarkerRangeForRange):
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):

LayoutTests:

  • accessibility/mac/textmarker-range-for-range-expected.txt: Added.
  • accessibility/mac/textmarker-range-for-range.html: Added.

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

11:40 AM Changeset in webkit [273665] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.1

11:40 AM Changeset in webkit [273664] by Alan Coon
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.1

11:40 AM Changeset in webkit [273663] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.1

11:29 AM Changeset in webkit [273662] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] WebAssembly: make Wasm::Signature 32bit friendly
https://bugs.webkit.org/show_bug.cgi?id=222543

Patch by Xan Lopez <Xan Lopez> on 2021-03-01
Reviewed by Yusuke Suzuki.

The Wasm code uses the address of a Signature object as its
index. To make this work in 32bit just change Wasm::SignatureIndex
to be a uintptr_t instead of uint64_t. Also, remove some
unnecessary includes while we are at it.

  • wasm/WasmModule.h:
  • wasm/WasmSignature.h:
  • wasm/js/JSWebAssemblyModule.h:
11:21 AM Changeset in webkit [273661] by ysuzuki@apple.com
  • 49 edits in trunk

[JSC] Throw TypeError when getFunctionRealm hits revoked Proxy
https://bugs.webkit.org/show_bug.cgi?id=222523

Reviewed by Alexey Shvayka.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch throws TypeError when getFunctionRealm encounters revoked Proxy. However,
this makes derived structure creation code difficult to be written inlinely.
The fast path of derived structure creation must be inlined since this is critical
path of every builtin constructors.

So, this patch introduces JSC_GET_DERIVED_STRUCTURE macro which streamlines the derived
structure creation code while keeping the fast path inlined. And it inserts appropriate
error checks after this new getFunctionRealm call.

Then, we appropriately use getFunctionRealm in op_create_this implementation.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • runtime/AggregateErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/BooleanConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • runtime/DateConstructor.cpp:

(JSC::constructDate):

  • runtime/ErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FinalizationRegistryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/InternalFunction.cpp:

(JSC::getFunctionRealm):

  • runtime/InternalFunction.h:
  • runtime/IntlCollatorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlDisplayNamesConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlListFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlLocaleConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlRelativeTimeFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlSegmenterConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSGenericArrayBufferConstructor<sharingMode>::constructImpl):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructCustomArrayBufferIfNeeded):
(JSC::constructGenericTypedArrayViewImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::errorStructureWithErrorType const):
(JSC::JSGlobalObject::arrayBufferStructureWithSharingMode const):
(JSC::JSGlobalObject::typedArrayStructureWithTypedArrayType const):

  • runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::arrayStructureForIndexingTypeDuringAllocation const):

  • runtime/MapConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):

  • runtime/NumberConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ObjectConstructor.cpp:

(JSC::constructObjectWithNewTarget):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::create):
(JSC::ProxyConstructor::finishCreation):

  • runtime/ProxyConstructor.h:
  • runtime/RegExpConstructor.cpp:

(JSC::getRegExpStructure):

  • runtime/SetConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/StringConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/WeakMapConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/WeakObjectRefConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/WeakSetConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::createModule):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • bindings/js/JSDOMWrapperCache.h:

(WebCore::setSubclassStructureIfNeeded):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

11:18 AM Changeset in webkit [273660] by Alan Coon
  • 1 copy in branches/safari-611.1.21.2-branch

New branch.

11:18 AM Changeset in webkit [273659] by Alan Coon
  • 1 copy in branches/safari-611.1.21.1-branch

New branch.

11:17 AM Changeset in webkit [273658] by Alan Coon
  • 1 copy in branches/safari-611.1.21.0-branch

New branch.

11:15 AM Changeset in webkit [273657] by Simon Fraser
  • 35 edits in trunk/Source

Remove ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING which is always true for macOS
https://bugs.webkit.org/show_bug.cgi?id=222459

Reviewed by Sam Weinig.

ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING is always defined for PLATFORM(MAC), so remove it,
replacing with PLATFORM(MAC) in a few places. In order to reduce the number PLATFORM(MAC), define
HAVE(CVDISPLAYLINK) and use it in WK2 code that relates to DisplayLinks.

Source/WebCore:

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensurePlatformContext):

  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:

(WebCore::GraphicsContextGLOpenGLManager::addContext):
(WebCore::GraphicsContextGLOpenGLManager::removeContext):

  • platform/mac/KeyEventMac.mm:

(WebCore::PlatformKeyboardEvent::currentStateOfModifierKeys):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::gpuIDForDisplay):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:]):
(-[WebScrollbarPartAnimation stopAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:setCurrentProgress:]): Deleted.

Source/WebKit:

  • Platform/cocoa/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForExternalHostingProcess):

  • Shared/mac/HangDetectionDisablerMac.mm:

(WebKit::setClientsMayIgnoreEvents):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebPageProxy.cpp:

(WebKit::ScrollingObserver::singleton):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::updateCurrentModifierState):

  • UIProcess/WebProcessPool.cpp:

(WebKit::displayReconfigurationCallBack):
(WebKit::WebProcessPool::sendDisplayConfigurationChangedMessageForTesting):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/mac/DisplayLink.cpp:
  • UIProcess/mac/DisplayLink.h:
  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::stopDisplayLink):

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize):

  • WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

  • WebProcess/WebPage/DrawingArea.cpp:
  • WebProcess/WebPage/EventDispatcher.cpp:
  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/EventDispatcher.messages.in:
  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

(WebKit::DrawingArea::createDisplayRefreshMonitor):

  • WebProcess/WebProcess.cpp:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformInitializeProcess):

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
10:47 AM Changeset in webkit [273656] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.
10:21 AM Changeset in webkit [273655] by Chris Dumez
  • 14 edits in trunk/Source

Set ownership of IOSurfaces from the GPUProcess instead of the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=222391
Source/WebCore:

<rdar://problem/74748353>

Reviewed by Simon Fraser.

Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::setOwnershipIdentity):

Source/WebCore/PAL:

<rdar://74748353>

Reviewed by Simon Fraser.

Add declaration for new IOSurfaceSetOwnershipIdentity() SPI, for the open source
SDK.

  • pal/spi/cocoa/IOSurfaceSPI.h:

Source/WebKit:

<rdar://problem/74748353>

Reviewed by Simon Fraser.

Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::setProcessOwnership):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::setProcessOwnership):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:

Source/WTF:

<rdar://74748353>

Reviewed by Simon Fraser.

Add HAVE_IOSURFACE_SET_OWNERSHIP_IDENTITY feature flag to protect uses of the
new IOSurfaceSetOwnershipIdentity() SPI.

  • wtf/PlatformHave.h:
9:36 AM Changeset in webkit [273654] by Megan Gardner
  • 4 edits in trunk

Restoring App Highlight crashes if no range is found.
https://bugs.webkit.org/show_bug.cgi?id=222524

Reviewed by Tim Horton.

Source/WebCore:

Test: TestWebKitAPI.AppHighlights.AppHighlightRestoreFailure

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::restoreAppHighlight):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:

(TestWebKitAPI::TEST):

9:29 AM Changeset in webkit [273653] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[Python-3] Change shebang in runUnittests.py
https://bugs.webkit.org/show_bug.cgi?id=222554

Reviewed by Jonathan Bedard.

  • CISupport/runUnittests.py:
8:41 AM Changeset in webkit [273652] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Use logname instead of deprecated logfile in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=222378

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(PrintConfiguration.run):

8:38 AM Changeset in webkit [273651] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Teach prepare-ChangeLog to recognize Swift structs/enums/protocols/extensions
https://bugs.webkit.org/show_bug.cgi?id=222551

It formerly only knew how to recognize classes.

Patch by Adam Roben <Adam Roben> on 2021-03-01
Reviewed by Jonathan Bedard.

  • Scripts/prepare-ChangeLog:

(get_function_line_ranges_for_swift): Replaced "class" with "type" in
variable names to make them more general. Generalized the pattern used
to find class declarations to find struct/enum/protocol/extension
declarations as well.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/swift_unittests-expected.txt:

Added new ranges to the results.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/swift_unittests.swift:

(MyStruct.structFunction(argument:)):
(MyEnum.enumFunction(argument:)):
(MyProtocol.protocolFunction(argument:)):
(ExtendedType.extensionFunction(argument:)):
Added these new types/functions (and look, they got parsed!).

7:34 AM Changeset in webkit [273650] by Chris Lord
  • 7 edits in trunk/Source/WebCore

CSSFontFace should not need its m_fontSelector data member
https://bugs.webkit.org/show_bug.cgi?id=208351
<rdar://problem/74346302>

Reviewed by Darin Adler.

Move the m_fontSelector member of CSSFontFace onto CSSFontFaceSource,
the only place where it's actually required.

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::document):
(WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::font):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFaceSource::load):

  • css/CSSFontFaceSource.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):

  • css/FontFace.cpp:

(WebCore::populateFontFaceWithArrayBuffer):

7:00 AM Changeset in webkit [273649] by Alexey Shvayka
  • 4 edits in trunk/Source/JavaScriptCore

BytecodeGenerator::fuseCompareAndJump() fails for some language constructs
https://bugs.webkit.org/show_bug.cgi?id=221927

Reviewed by Yusuke Suzuki.

For BytecodeGenerator::fuseCompareAndJump() to merge two ops into one, condition's dst
register should not be referenced from elsewhere. This change tracks down and eliminates
all such cases, which reduces bytecode size for a few language constructs:

-1 per every case of a switch;
-2 per generator function, -2 per every yield / yield*;
-2 per class extends;
-2 per finally, -1 per every break / continue / return inside;
-3 per Function.prototype.apply() with ...spread as a single argument.

Instead of mixing RefPtr with raw C++ pointers, single-line branches were preferred.
To keep them cleaner, this patch introduces emitLoad() override for JSGenerator::ResumeMode
enum, and tweaks existing override for CompletionType.

A few drive-by improvements:

  • to enable future optimizations, replaces emitBinaryOp() with emitEqualityOp() for OpEq / OpStricteq (adds an assert), and vice-versa for other comparison ops;
  • removes OperandTypes for comparison ops as it was ignored (let's re-introduce them consistently once supported);
  • inlines too specific BytecodeGenerator::emitJumpIf();
  • replaces eq with stricteq in ApplyFunctionCallDotNode.

No behavior change, no callee registers count grow.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::emitJumpIf): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitLoad):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::CaseBlockNode::emitBytecodeForBlock):
(JSC::FunctionNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):

6:22 AM Changeset in webkit [273648] by Chris Gambrell
  • 4 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/fetch convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222367
<rdar://problem/74702641>

Reviewed by Jonathan Bedard.

  • http/tests/fetch/caching-with-different-options.html:
  • http/tests/fetch/redirectmode-and-preload-expected.txt:
  • http/tests/fetch/redirectmode-and-preload.html:
  • http/tests/fetch/resources/redirect-with-cache.php: Removed.
  • http/tests/fetch/resources/redirect-with-cache.py: Added.
6:22 AM Changeset in webkit [273647] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Change order in RenderBlock::availableLogicalHeightForPercentageComputation
https://bugs.webkit.org/show_bug.cgi?id=222468

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-01
Reviewed by Manuel Rego Casasnovas.

Change order in RenderBlock::availableLogicalHeightForPercentageComputation in
order to remove one check.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

5:27 AM Changeset in webkit [273646] by commit-queue@webkit.org
  • 8 edits
    1 copy in trunk/Source/WebKit

Timeout calculations are error-prone for compound IPC operations
https://bugs.webkit.org/show_bug.cgi?id=222305

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-01
Reviewed by Geoffrey Garen.

Add Timeout class to hold the timeout value in blocking functions
of IPC::.
This makes it possible to forward absolute points of time as the timeout
value, as well as preserving the ability to pass points of time relative
to the invocation.

Call the concept Timeout instead of TimeOut since word 'timeout' is an
English word and preferable when used as a noun according to ell stackoverflow.

No new tests, a refactor.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendSync):
(IPC::Connection::waitForAndDispatchImmediately):
(IPC::Connection::waitForAsyncCallbackAndDispatchImmediately):

  • Platform/IPC/IPCSemaphore.h:
  • Platform/IPC/MessageSender.h:

(IPC::MessageSender::sendSync):

  • Platform/IPC/StreamClientConnection.h:

(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::tryAcquire):
Here are few examples of compound use-case.

  • Platform/IPC/Timeout.h: Copied from Source/WebKit/Platform/IPC/IPCSemaphore.h.

(IPC::Timeout::Timeout):
(IPC::Timeout::infinity):
(IPC::Timeout::operator Seconds const):
(IPC::Timeout::hasPassed const):

  • Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:

(IPC::Semaphore::waitFor):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::sendSync):

2:44 AM Changeset in webkit [273645] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] Fix WebRTC layout test failures with GPU Process enabled
https://bugs.webkit.org/show_bug.cgi?id=222505
<rdar://problem/74814573>

Unreviewed.

  • gpu-process/TestExpectations:

Removed no longer valid expectations.

2:06 AM Changeset in webkit [273644] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer][Playbin3] Stream collection handling fixes
https://bugs.webkit.org/show_bug.cgi?id=222322

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-01
Reviewed by Xabier Rodriguez-Calvar.

The track orphaning trying to avoid un-necessary track addition/removals was making the
whole thing inconsistent with the final stream collection. Also stream-collection messages
don't need to be handled from a synchronous GstBus handler, this should be needed for
need-context messages only, so the corresponding code has been refactored.

This patch also includes changes and cleanups for the mediastreamsrc element, needed after
the stream collection handling fixes. Most notably the element now keeps an internal list of
tracks, in addition to observing the MediaStreamPrivate for topology changes. Also it emits
a new stream collection whenever a new source pad has been added.

No new tests, but this patch fixes flakyness of http/tests/media/hls/hls-audio-tracks.html
when the pipeline is driven by playbin3.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::setPipeline):
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleNeedContextMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::handleNeedContextSyncMessage):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(stopObservingTracks):
(webkitMediaStreamSrcDispose):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcTrackEnded):

1:42 AM Changeset in webkit [273643] by berto@igalia.com
  • 2 edits in trunk/Source/WebKit

[GTK] Fails to build in i386: static assertion failed: divisor must be a power of two
https://bugs.webkit.org/show_bug.cgi?id=222480

Reviewed by Carlos Garcia Campos.

  • Platform/IPC/StreamConnectionBuffer.h:

(IPC::StreamConnectionBuffer::headerSize):

Note: See TracTimeline for information about the timeline view.