Timeline



Aug 25, 2021:

8:37 PM Changeset in webkit [281613] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Crash in GraphicsContextGLOpenGL::reshapeDisplayBufferBacking
https://bugs.webkit.org/show_bug.cgi?id=229309

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-25
Reviewed by Myles C. Maxfield.

Source/WebCore:

Test: fast/canvas/xr-compatible-crash.html

Null check m_swapChain because reshapeDisplayBufferBacking can be called before it is set.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::addContextObject):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking):

LayoutTests:

  • fast/canvas/xr-compatible-crash.html: Added.
  • fast/canvas/xr-compatible-crash-expected.txt: Added.
8:08 PM Changeset in webkit [281612] by Aditya Keerthi
  • 7 edits in trunk

[iOS] Unable to select files when the accept attribute is set to "*/*"
https://bugs.webkit.org/show_bug.cgi?id=229456
rdar://82346315

Reviewed by Chris Dumez.

Source/WebKit:

"*/*" is a valid MIME type string representing all media types. However,
the UniformTypeIdentifiers framework (as well as the now deprecated
CoreServices type identifiers API) does not map wildcard MIME types.

In order to restrict UIDocumentPickerViewController to the types of
files specified in the accept attribute, all MIME type strings are
converted into UTTypes. However, when attempting to retrieve a UTType
for "*/*", the system dynamically generates a type, since the string is
unregistered. Then, since no files conform to the dynamic type, all
files in the document picker are greyed out, and the user is unable
to access the "Photo Library" and "Take Photo or Video" items.

To fix, return an empty set of type identifiers whenever "*/*" is
present in the list of MIME types, ensuring there are no restrictions
on the types of files that can be selected.

Note that the same issue does not occur on macOS, since all MIME types
are mapped to a set of file extensions, rather than UTTypes. Furthermore,
on macOS, the embedding app, not WebKit, is responsible for displaying
the file picker.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

LayoutTests:

Updated tests to verify that setting the accept attribute to "*/*" does
not impose any restrictions on the types of files that can be selected,
and gives the user access to all menu options.

  • fast/forms/ios/file-upload-panel-accept-expected.txt:
  • fast/forms/ios/file-upload-panel-accept.html:
  • fast/forms/ios/file-upload-panel-expected.txt:
  • fast/forms/ios/file-upload-panel.html:
8:07 PM Changeset in webkit [281611] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION (r281516): [AppleSilicon WK2] fast/loader/reload-zero-byte-plugin.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229532
<rdar://problem/82370692>

Unreviewed, temporarily skip the test on macOS WK2 while I investigate, so that the bots don't
complain.

  • platform/mac-wk2/TestExpectations:
6:38 PM Changeset in webkit [281610] by Wenson Hsieh
  • 22 edits in trunk

Remove some iOS-specific compile-time guards that are no longer needed
https://bugs.webkit.org/show_bug.cgi?id=229500

Reviewed by Tim Horton.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

  • platform/PlatformKeyboardEvent.h:
  • platform/ios/KeyEventIOS.mm:

(WebCore::isFunctionKey):

Source/WebKit:

Remove two compile-time flags that were no longer necessary after WebKit's minimum supported iOS version became
iOS 14: USE(UIKIT_KEYBOARD_ADDITIONS) and HAVE(NONDESTRUCTIVE_IMAGE_PASTE_SUPPORT_QUERY).

HAVE(NONDESTRUCTIVE_IMAGE_PASTE_SUPPORT_QUERY) was only needed for a workaround in our test infrastructure,
while USE(UIKIT_KEYBOARD_ADDITIONS) was only introduced to maintain basic hardware keyboard functionality in
iOS 12, while supporting improvements to hardware keyboard support in iOS 13.

The latter now only guards PLATFORM(IOS) || PLATFORM(MACCATALYST). However, there's no reason the codepaths
for hardware keyboard support can't exist on watchOS as well (especially since most of hardware keyboard
support is already implemented there -- just unreachable because it's not possible to attach a hardware keyboard
to an Apple watch). We can remove this feature flag, and simply delete code that was formerly guarded by
!USE(UIKIT_KEYBOARD_ADDITIONS).

  • Platform/spi/ios/UIKitSPI.h:
  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):

  • Shared/WebKeyboardEvent.cpp:

(WebKit::WebKeyboardEvent::WebKeyboardEvent):
(WebKit::WebKeyboardEvent::encode const):
(WebKit::WebKeyboardEvent::decode):

  • Shared/WebKeyboardEvent.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpInteraction]):
(-[WKContentView _disableAutomaticKeyboardUI]):
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView _setMarkedText:highlights:selectedRange:]):
(-[WKContentView textInputTraits]):
(-[WKContentView _handleKeyUIEvent:]):
(-[WKContentView handleKeyWebEvent:withCompletionHandler:]):
(-[WKContentView _didHandleKeyEvent:eventWasHandled:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView _hardwareKeyboardAvailabilityChanged]):
(-[WKContentView _selectionChanged]):
(-[WKContentView keyCommands]): Deleted.
(-[WKContentView handleKeyEvent:]): Deleted.

  • UIProcess/ios/WKSyntheticFlagsChangedWebEvent.h:
  • UIProcess/ios/WKSyntheticFlagsChangedWebEvent.mm:
  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectPopover initWithView:hasGroups:]):
(-[WKSelectTableViewController hasText]): Deleted.
(-[WKSelectTableViewController insertText:]): Deleted.
(-[WKSelectTableViewController deleteBackward]): Deleted.

  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:

(WebKit::WebEditorClient::handleInputMethodKeydown):

Source/WTF:

Remove the feature flags. See WebKit/ChangeLog for more details.

  • wtf/PlatformHave.h:
  • wtf/PlatformUse.h:

Tools:

Remove this workaround, which was only required to keep an API test passing on iOS 13.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(overrideKeyboardDelegateSupportsImagePaste): Deleted.

5:47 PM Changeset in webkit [281609] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r281595. rdar://problem/82365117

Build error preprocessing sandbox
https://bugs.webkit.org/show_bug.cgi?id=229418

Reviewed by Alexey Proskuryakov.

Build fix after https://commits.webkit.org/240941@main.

  • Scripts/generate-derived-sources.sh:

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

5:47 PM Changeset in webkit [281608] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r281577. rdar://problem/82365117

Build error preprocessing sandbox
https://bugs.webkit.org/show_bug.cgi?id=229418

Reviewed by Alexey Proskuryakov.

Skip unneeded commands when preprocessing sandbox on iOS.

  • Scripts/generate-derived-sources.sh:

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

5:43 PM Changeset in webkit [281607] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r281513?): [ JSC Catalina+ Debug ] 16 stress/intl-enumeration.js (JSC Tests) are flaky failing
https://bugs.webkit.org/show_bug.cgi?id=229526

Reviewed by Mark Lam.

Fix debug JSC test failures by using RELEASE_AND_RETURN.

  • runtime/IntlObject.cpp:

(JSC::availableCalendars):
(JSC::availableCollations):
(JSC::availableCurrencies):
(JSC::availableNumberingSystems):
(JSC::availableTimeZones):

5:39 PM Changeset in webkit [281606] by Simon Fraser
  • 12 edits in trunk/Source/WebKit

Replace the uint64_t used to identify form submits with a strongly typed identifier
https://bugs.webkit.org/show_bug.cgi?id=229513

Reviewed by Alex Christensen.

Introduce FormSubmitListenerIdentifier and use it in place of a uint64_t.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/IdentifierTypes.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willSubmitForm):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::continueWillSubmitForm):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::continueWillSubmitForm):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
5:01 PM Changeset in webkit [281605] by Alan Coon
  • 3 edits
    1 move in branches/safari-612-branch

Cherry-pick r281500. rdar://problem/82350929

(r281473) stress/for-in-has-own-property-shouldnt-flush-registers.js failing on Debug
https://bugs.webkit.org/show_bug.cgi?id=229448

Reviewed by Mark Lam.

JSTests:

Fix typo in test name.

  • stress/for-in-in-by-val-should-flush-registers.js: Renamed from JSTests/stress/for-in-in-by-val-shouldnt-flush-registers.js.

Source/JavaScriptCore:

Add missing exception checks.

  • dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):

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

5:01 PM Changeset in webkit [281604] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Cherry-pick r281250. rdar://problem/82354967

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:

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

5:01 PM Changeset in webkit [281603] by Alan Coon
  • 7 edits
    4 adds in branches/safari-612-branch

Cherry-pick r281245. rdar://problem/82354967

WebGL via Metal experimental feature does not correctly toggle metal backend
https://bugs.webkit.org/show_bug.cgi?id=229267
<rdar://81855735>

Source/WebCore:

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

GraphicsContextGLAttributes defines 'useMetal' as 'true' by default.
Since this branch was only checking if Metal was enabled via the
setting, rather than checking the status of the flag, the metal backend
was never disabled, even when requested.

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create):
  • testing/Internals.cpp: (WebCore::Internals::requestedMetal):
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm: (WebCore::Internals::platformSupportsMetal):

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

  • webgl/webgl-metal-disabled-expected.txt: Added.
  • webgl/webgl-metal-disabled.html: Added.
  • webgl/webgl-metal-enabled-expected.txt: Added.
  • webgl/webgl-metal-enabled.html: Added.

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

5:00 PM Changeset in webkit [281602] by Truitt Savell
  • 2 edits in trunk/LayoutTests

25 webkit imported/w3c/web-platform-tests/css/ layout tests failing with black bars
rdar://82132196

Unreviewed test gardening.

4:58 PM Changeset in webkit [281601] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Catalina GPU] fast/canvas/webgl/lose-context-on-timeout.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229523.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:52 PM Changeset in webkit [281600] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/events/ios/key-events-comprehensive/key-events-meta-shift.html.
<rdar://80385777>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:39 PM Changeset in webkit [281599] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] Visual Look Up animates from the wrong rect when the web view is scaled
https://bugs.webkit.org/show_bug.cgi?id=229518
rdar://82147473

Reviewed by Darin Adler.

When adopting QLPreviewControllerDelegate's animated transition methods for rdar://76020349, I mistakenly
thought that the outContentRect passed into -previewController:transitionImageForPreviewItem:contentRect:
would be in source view (WKContentView) coordinates; instead, QuickLook expects this contentRect to be in
window coordinates.

Fix this by first converting _visualSearchPreviewImageBounds to window coordinates.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewController:transitionImageForPreviewItem:contentRect:]):

4:15 PM Changeset in webkit [281598] by Alan Coon
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.3

4:07 PM Changeset in webkit [281597] by eric.carlson@apple.com
  • 10 edits in trunk/Source

[GPUP] RemoteAudioSession doesn't implement begin/endInterruption
https://bugs.webkit.org/show_bug.cgi?id=229514
rdar://80896732

Reviewed by Jer Noble.

Source/WebCore:

Move the code necessary to deal with interruptions from AudioSessionIOS to the
base class so it can be shared with RemoteAudioSession.

Tested manually.

  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::addInterruptionObserver): Move implementation from AudioSessionIOS
so it can be shared.
(WebCore::AudioSession::removeInterruptionObserver): Ditto.
(WebCore::AudioSession::beginInterruption): Ditto.
(WebCore::AudioSession::endInterruption): Ditto.
(WebCore::AudioSession::setCategoryOverride): Ditto.
(WebCore::AudioSession::categoryOverride const): Ditto.

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSessionIOS::setCategoryOverride): Deleted.
(WebCore::AudioSessionIOS::categoryOverride const): Deleted.
(WebCore::AudioSessionIOS::addInterruptionObserver): Deleted.
(WebCore::AudioSessionIOS::removeInterruptionObserver): Deleted.
(WebCore::AudioSessionIOS::beginInterruption): Deleted.
(WebCore::AudioSessionIOS::endInterruption): Deleted.

  • platform/audio/mac/AudioSessionMac.h:
  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSessionMac::setCategoryOverride): Deleted.

Source/WebKit:

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::setIsPlayingToBluetoothOverride): Remove
ENABLE_ROUTING_ARBITRATION guard because it isn't used in the base class.

  • WebProcess/GPU/media/RemoteAudioSession.h: Change the order virtual methods are declared

so they match the base class, to make it easier to spot differences.

3:52 PM Changeset in webkit [281596] by mmaxfield@apple.com
  • 2 edits in trunk

Add command to enable logging in the docs
https://bugs.webkit.org/show_bug.cgi?id=229419

Reviewed by Dean Jackson.

  • Introduction.md:
3:45 PM Changeset in webkit [281595] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Build error preprocessing sandbox
https://bugs.webkit.org/show_bug.cgi?id=229418

Reviewed by Alexey Proskuryakov.

Build fix after https://commits.webkit.org/240941@main.

  • Scripts/generate-derived-sources.sh:
3:34 PM Changeset in webkit [281594] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance2.
https://bugs.webkit.org/show_bug.cgi?id=189672.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:12 PM Changeset in webkit [281593] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk1] pointerevents/mouse/compatibility-mouse-events-prevention-mouse-released.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229522.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:05 PM Changeset in webkit [281592] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac] pointer-lock/lock-already-locked.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229521.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:00 PM Changeset in webkit [281591] by Alan Coon
  • 1 edit in branches/safari-612.1.29-branch/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Cherry-pick r281250. rdar://problem/82354939

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:

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

3:00 PM Changeset in webkit [281590] by Alan Coon
  • 7 edits
    4 adds in branches/safari-612.1.29-branch

Cherry-pick r281245. rdar://problem/82354939

WebGL via Metal experimental feature does not correctly toggle metal backend
https://bugs.webkit.org/show_bug.cgi?id=229267
<rdar://81855735>

Source/WebCore:

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

GraphicsContextGLAttributes defines 'useMetal' as 'true' by default.
Since this branch was only checking if Metal was enabled via the
setting, rather than checking the status of the flag, the metal backend
was never disabled, even when requested.

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create):
  • testing/Internals.cpp: (WebCore::Internals::requestedMetal):
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm: (WebCore::Internals::platformSupportsMetal):

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

  • webgl/webgl-metal-disabled-expected.txt: Added.
  • webgl/webgl-metal-disabled.html: Added.
  • webgl/webgl-metal-enabled-expected.txt: Added.
  • webgl/webgl-metal-enabled.html: Added.

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

2:47 PM Changeset in webkit [281589] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk1] media/media-session/actionHandlerInternalMappings.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229519.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:37 PM Changeset in webkit [281588] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

REGRESSION(r281297): 2 webrtc tests failing.
https://bugs.webkit.org/show_bug.cgi?id=229517.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:19 PM Changeset in webkit [281587] by Yijia Huang
  • 8 edits in trunk/Source/JavaScriptCore

[ARM64] Fix pre-index address mode
https://bugs.webkit.org/show_bug.cgi?id=229175

Reviewed by Saam Barati.

This patch fixes the canonicalization phase for pre/post-increment address mode
due to the potential bugs commented on in the previous patch
https://bugs.webkit.org/show_bug.cgi?id=228538. And this patch removed the
temporary fix in https://bugs.webkit.org/show_bug.cgi?id=229211.

Previously, the pre-index address mode for Load instruction convert the pattern
to the canonical form like this:

address = Add(base, offset) address = Add(base, offset)
... --> newMemory = Load(base, offset)
... ...
memory = Load(base, offset) memory = Identity(newMemory)

which is wrong. Assume "..." contains a store to a memory location that aliases for address:

address = Add(base, offset) address = Add(base, offset)
... --> newMemory = Load(base, offset)
... ...
Store(value1, address) Store(value1, address)
memory = Load(base, offset) memory = Identity(newMemory)

The loaded value should always be value1 which is not true after the conversion.
So, moving the load above the store is semantically incorrect because it's not identical to
the behavior of the original program. In this case, maybe we should apply alias analysis to
detect the violations of reference updating.

To solve this problem, we moves the address value to just before the memory value instead of
moving memory value upward.

Convert Pre-Index Load Pattern to the Canonical Form:

address = Add(base, offset) address = Nop
... ...
... newAddress = Add(base, offset)
memory = Load(base, offset) --> memory = Load(base, offset)
... ...
parent = B3Opcode(address, ...) parent = B3Opcode(newAddress, ...)

Convert Pre-Index Store Pattern to the Canonical Form:

address = Add(base, offset) address = Nop
... ...
... newAddress = Add(base, offset)
memory = Store(value1, base, offset) --> memory = Store(value1, base, offset)
... ...
parent = B3Opcode(address, ...) parent = B3Opcode(newAddress, ...)

To move the address value downward, we need to make sure that no use reference of address between
the address and memory values.

  • b3/B3CanonicalizePrePostIncrements.cpp:

(JSC::B3::canonicalizePrePostIncrements):

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3ValueKey.h:
  • b3/B3ValueKeyInlines.h:

(JSC::B3::ValueKey::ValueKey):

  • b3/testb3.h:
  • b3/testb3_3.cpp:

(testLoadWithStorePreIndex32):
(testStorePreIndex32):
(testStorePreIndex64):
(testStorePostIndex32):
(testStorePostIndex64):
(addShrTests):

  • runtime/OptionsList.h:
2:18 PM Changeset in webkit [281586] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Use Python 3 in CI
https://bugs.webkit.org/show_bug.cgi?id=229498
<rdar://problem/82342387>

Reviewed by Aakash Jain.

  • CISupport/build-webkit-org/steps.py:

(ShowIdentifier.start): Invoke git-webkit with Python 3.

  • CISupport/build-webkit-org/steps_unittest.py:

(TestShowIdentifier.test_success):
(TestShowIdentifier.test_failure):

  • CISupport/ews-build/steps.py:

(ShowIdentifier.start): Invoke git-webkit with Python 3.

  • CISupport/ews-build/steps_unittest.py:
2:18 PM Changeset in webkit [281585] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk2 Release] imported/w3c/web-platform-tests/resource-timing/status-codes-create-entry.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229516.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:15 PM Changeset in webkit [281584] by Chris Dumez
  • 4 edits in trunk/LayoutTests

[Mac wk2] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/reporting-to-frame-owner.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=229511
<rdar://problem/82356082>

Unreviewed, address test flakiness by silencing console logging.

LayoutTests/imported/w3c:

  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-frame-owner.https-expected.txt:

LayoutTests:

2:11 PM Changeset in webkit [281583] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/reporting-to-frame-owner.https.html .
https://bugs.webkit.org/show_bug.cgi?id=229511.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:11 PM Changeset in webkit [281582] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk2] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/reporting-to-frame-owner.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229511.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:06 PM Changeset in webkit [281581] by Jonathan Bedard
  • 4 edits in trunk/Tools

[resultsdbpy] Handle E configuration comparisons
https://bugs.webkit.org/show_bug.cgi?id=229477
<rdar://problem/82316775>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.prototype.compare): Ignore "E" version names in both directions.

  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
2:06 PM Changeset in webkit [281580] by Simon Fraser
  • 12 edits
    426 adds
    2 deletes in trunk/LayoutTests

Update css-masking WPT
https://bugs.webkit.org/show_bug.cgi?id=229373

Reviewed by Tim Horton.
LayoutTests/imported/w3c:

Re-import css-masking tests from WPT fe104253de3197002a2600a4ed7e3b5e18fc9121.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-masking/META.yml: Added.
  • web-platform-tests/css/css-masking/animations/clip-path-composition-expected.txt: Added.
  • web-platform-tests/css/css-masking/animations/clip-path-composition.html: Added.
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-001.html: Added.
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-002.html: Added.
  • web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-masking/animations/mask-image-interpolation.html: Added.
  • web-platform-tests/css/css-masking/animations/mask-position-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-masking/animations/mask-position-interpolation.html: Added.
  • web-platform-tests/css/css-masking/animations/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-006-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-006.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-007-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-007.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-008-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-008.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-009-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-009.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-010-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip-rule-010.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-clip.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-clip-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-invisible-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-invisible.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-syling-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-syling.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-006-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-006.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-007-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-content-use-007.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-css-transform-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-child-changes-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-child-changes.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-clippathunits-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-clippathunits.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-href-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-href.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-id-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-dom-id.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-invalid.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-negative-scale-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-negative-scale.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-no-content-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-objectboundingbox-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-g-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-marker-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-marker-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-marker-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-marker-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-marker-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-marker-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-svg-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-svg-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-svg-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-svg-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-use-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-use-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-use-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-on-use-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-precision-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-precision-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-recursion-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-recursion-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-recursion-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-recursion-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-circle-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-ellipse-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-ellipse-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-ellipse-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-ellipse-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-inset-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-inset-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-inset-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-inset-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-polygon-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-polygon-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-polygon-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-polygon-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-polygon-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-shape-polygon-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-userspaceonuse-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-userspaceonuse-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-with-opacity-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-with-opacity.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-with-transform-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-with-transform.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-and-nested-clip-path-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-and-nested-clip-path.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-003.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-004-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-004.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-005-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-005.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-006-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-006.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-007-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-007.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-008-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-008.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-009-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-009.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-010-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-010.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-panning-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-panning-001.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-panning-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-panning-002.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-circle-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-003-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-004-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-content-clip-004-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-ellipse-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-invisible-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-negative-scale-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-on-marker-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-on-marker-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-precision-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-recursion-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-shape-inset-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-square-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-square-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-square-003-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-square-hole-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-text-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-text-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/clip-path-text-003-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/mask-and-nested-clip-path-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/mask-content-clip-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/mask-content-clip-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/mask-nested-clip-path-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/mask-nested-clip-path-002-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/mask-nested-clip-path-003-ref.svg: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/reference/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/clip-path-svg-content/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-blending-offset-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-blending-offset.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-descendant-text-mutated-001.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-inset-round-percent-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inset-round-percent.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-with-zoom-expected.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-with-zoom.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-expected.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-hittest-expected.html: Removed.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-hittest-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-hittest.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-backdrop-filter-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-backdrop-filter.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-font-loading-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-font-loading.html: Added.
  • web-platform-tests/css/css-masking/clip-path/w3c-import.log:
  • web-platform-tests/css/css-masking/clip-rule/clip-rule-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-rule/clip-rule-001.html: Added.
  • web-platform-tests/css/css-masking/clip-rule/clip-rule-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-rule/clip-rule-002.html: Added.
  • web-platform-tests/css/css-masking/clip-rule/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/clip/clip-absolute-positioned-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-absolute-positioned-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-absolute-positioned-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-absolute-positioned-002.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-filter-order-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-filter-order.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-fixed-pos-transform-descendant-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-fixed-pos-transform-descendant-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-002.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-003.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-negative-values-004.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-no-clipping-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-no-clipping-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-no-clipping-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-no-clipping-002.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-no-stacking-context-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-no-stacking-context.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-002.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-003.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-not-absolute-positioned-004.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-002.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-003.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-004.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-005-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-005.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-006-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-auto-006.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-001.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-002.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-003.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-comma-004.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-scroll-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-rect-scroll.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-transform-order-2-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-transform-order-2.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-transform-order-expected.html: Added.
  • web-platform-tests/css/css-masking/clip/clip-transform-order.html: Added.
  • web-platform-tests/css/css-masking/clip/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-element-objectboundingbox-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-element-objectboundingbox-001.html: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-element-objectboundingbox-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-element-objectboundingbox-002.html: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-element-userspaceonuse-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-element-userspaceonuse-001.html: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-shape-polygon-and-box-shadow-expected.txt: Added.
  • web-platform-tests/css/css-masking/hit-test/clip-path-shape-polygon-and-box-shadow.html: Added.
  • web-platform-tests/css/css-masking/hit-test/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/idlharness-expected.txt: Added.
  • web-platform-tests/css/css-masking/idlharness.html: Added.
  • web-platform-tests/css/css-masking/inheritance.sub-expected.txt: Added.
  • web-platform-tests/css/css-masking/inheritance.sub.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-clip-exclude-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-clip-exclude.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-data-url-image-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-data-url-image.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-ib-split-2-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-ib-split-2.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-ib-split-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-ib-split.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-svg-child-will-change-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-svg-child-will-change.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-image-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-image-hash-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-image-hash.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-image.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-local-mask-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-local-mask.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-remote-mask-expected.html: Added.
  • web-platform-tests/css/css-masking/mask-image/mask-image-url-remote-mask.html: Added.
  • web-platform-tests/css/css-masking/mask-image/reference/1x1-black-30-alpha.png: Added.
  • web-platform-tests/css/css-masking/mask-image/reference/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/mask-image/support/image-with-ref.svg: Added.
  • web-platform-tests/css/css-masking/mask-image/support/image.svg: Added.
  • web-platform-tests/css/css-masking/mask-image/support/mask.svg: Added.
  • web-platform-tests/css/css-masking/mask-image/support/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/mask-image/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-empty-container-with-filter-expected.txt: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-empty-container-with-filter.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-negative-scale-expected.txt: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-negative-scale.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-text-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-text-001.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-type-001-expected.txt: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-type-001.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-type-002-expected.txt: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-type-002.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-type-003-expected.txt: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/mask-type-003.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/reference/mask-green-square-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/reference/mask-negative-scale-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/reference/mask-text-001-ref.svg: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/reference/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/mask-svg-content/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/parsing/clip-computed-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-computed.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-invalid.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-computed.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-invalid.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-valid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-valid.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-rule-computed-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-rule-computed.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-rule-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-rule-valid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-rule-valid.html: Added.
  • web-platform-tests/css/css-masking/parsing/clip-valid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-valid.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-invalid.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-position-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-position-invalid.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-position-valid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-position-valid.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-type-computed-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-type-computed.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-type-invalid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-type-invalid.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-type-valid-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-type-valid.html: Added.
  • web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/mask-valid.sub.html: Added.
  • web-platform-tests/css/css-masking/parsing/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/resources/blue-20.png: Added.
  • web-platform-tests/css/css-masking/resources/green-20.png: Added.
  • web-platform-tests/css/css-masking/resources/stripes-20.png: Added.
  • web-platform-tests/css/css-masking/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/w3c-import.log: Added.

LayoutTests:

Re-import css-masking tests from WPT fe104253de3197002a2600a4ed7e3b5e18fc9121.

  • TestExpectations:
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-001-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-002-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-003-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-004-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-005-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/mask-nested-clip-path-010-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/css/css-masking/mask-svg-content/mask-text-001-expected.txt: Added.
  • platform/ios/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/css/css-masking/clip-path/svg-clipPath-expected.txt: Removed.
2:01 PM Changeset in webkit [281579] by Aditya Keerthi
  • 9 edits
    2 adds in trunk

[iOS] Crash when tapping <select> element and calling window.open()
https://bugs.webkit.org/show_bug.cgi?id=229468
rdar://82122972

Reviewed by Wenson Hsieh.

Source/WebKit:

UIKit throws an exception when attempting to present a context menu
for a view that is not in a window.

One instance where this can occur in Safari is when a call to
window.open() is made in response to a touch on a select element.
In this scenario, the call to window.open() opens a new tab, unparenting
the current webview. However, the touch also focuses the element, and
WebKit attempts to present a context menu in an unparented view.

To fix, guard against the case where the view is not parented, and do
not attempt to present a context menu.

Test: fast/forms/ios/show-select-menu-in-unparented-view-crash.html

  • UIProcess/ios/WKActionSheetAssistant.mm:

Note that the helper method used in other classes is not used in
WKActionSheetAssistant, since the hosting view is not always a
WKContentView.

(-[WKActionSheetAssistant showDataDetectorsUIForPositionInformation:]):
(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView presentContextMenu:atLocation:]):

Added a helper method to ensure the view is parented prior to presenting
a context menu.

(-[WKContentView imageAnalysisGestureDidTimeOut:]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(-[WKDataListSuggestionsDropdown _showSuggestions]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker showDateTimePicker]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showDocumentPickerMenu]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker showSelectPicker]):

LayoutTests:

Added a test to verify a crash does not occur when tapping a <select>
element and unparenting the webview.

  • fast/forms/ios/show-select-menu-in-unparented-view-crash-expected.txt: Added.
  • fast/forms/ios/show-select-menu-in-unparented-view-crash.html: Added.
1:55 PM Changeset in webkit [281578] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after r228617.

1:33 PM Changeset in webkit [281577] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Build error preprocessing sandbox
https://bugs.webkit.org/show_bug.cgi?id=229418

Reviewed by Alexey Proskuryakov.

Skip unneeded commands when preprocessing sandbox on iOS.

  • Scripts/generate-derived-sources.sh:
12:59 PM Changeset in webkit [281576] by Wenson Hsieh
  • 7 edits in trunk

[iOS 15] editing/input/cocoa/autocorrect-on.html times out when run after editing/input/cocoa/autocorrect-off.html
https://bugs.webkit.org/show_bug.cgi?id=229486
rdar://82191308

Reviewed by Tim Horton.

Source/WebKit:

See changes in Tools for more details.

  • Platform/spi/ios/TextInputSPI.h:
  • Platform/spi/ios/UIKitSPI.h:

Tools:

The layout test (autocorrect-on.html) fails when run immediately after autocorrect-off.html, in the same
directory. This occurs because autocorrect-on.html attempts to verify that typing a period after "Tset" will
autocorrect to "Test"; however, the previous test disables autocorrection and types "Tset.", which causes UIKit
keyboard autocorrection code to add "Tset" to its lexicon. This means that we end up not autocorrecting to
"Test" in autocorrect-on.html.

In the past (r265376), to mitigate this, we set -[UIKeyboardImpl correctionLearningAllowed] to NO. However,
after what appears to be a recent TextInput change, this fails to prevent the test runner from learning "Tset"
while running autocorrect-off.html.

We take a more heavy-handed approach in this mitigation, and instead use swizzling to prevent UIKeyboardImpl
from notifying kbd when text candidates are "accepted".

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(overrideSyncInputManagerToAcceptedAutocorrection):
(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Remove the failing test expectations.

  • platform/ios-wk2/TestExpectations:
12:50 PM Changeset in webkit [281575] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Line spanning inline boxes should also be in the run list
https://bugs.webkit.org/show_bug.cgi?id=228059
<rdar://problem/81077420>

Reviewed by Antti Koivisto.

Consider the following case:

<div><span>first line text<br>second line text<br>third line text</span></div>

Here is the list of runs we generate for the content above:

[inline box][first line text][hard linebreak][second line text][hard linebreak][third line text]

This list does not include the spanning inline boxes, i.e. the missing inline box on the second and the third line.
The integration code then looks inside the LineBox to find these spanning inline boxes (see createDisplayNonRootInlineBoxes)

In this patch we start including such spanning inline boxes in the run list.

[inline box][first line text][hard linebreak][inline box][second line text][hard linebreak][inline box][third line text]

This is also in preparation for making LineBox completely internal to the layout code.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::LineRun::isText const):
(WebCore::Layout::LineRun::isLineBreak const):
(WebCore::Layout::LineRun::isAtomicInlineLevelBox const):
(WebCore::Layout::LineRun::isInlineBox const):
(WebCore::Layout::LineRun::isRootInlineBox const):
(WebCore::Layout::LineRun::type const):
(WebCore::Layout::LineRun::hasContent const):
(WebCore::Layout::LineRun::isLineSpanning const):
(WebCore::Layout::LineRun::LineRun):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
12:40 PM Changeset in webkit [281574] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/LayoutTests

[GLIB] Update baselines after r281419
https://bugs.webkit.org/show_bug.cgi?id=229503

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-25

  • platform/gtk/fast/text/fixed-pitch-control-characters-expected.png:
  • platform/gtk/fast/text/fixed-pitch-control-characters-expected.txt: Added.
  • platform/gtk/fast/text/wide-zero-width-space-expected.png:
  • platform/gtk/fast/text/wide-zero-width-space-expected.txt:
  • platform/wpe/fast/text/fixed-pitch-control-characters-expected.txt: Added.
  • platform/wpe/fast/text/wide-zero-width-space-expected.txt:
11:59 AM Changeset in webkit [281573] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229509.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:49 AM Changeset in webkit [281572] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS EWS ] editing/inserting/insert-paragraph-separator-with-html-elements-crash.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228718

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:
11:48 AM Changeset in webkit [281571] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Infinite loop in for...in after r280760
https://bugs.webkit.org/show_bug.cgi?id=229493

Patch by Xan Lopez <Xan Lopez> on 2021-08-25
Reviewed by Yusuke Suzuki.

A missing instruction in the 32bit branch can potentially cause
infinite loops when using for-in. No new test, this is already
covered by (among others) LayoutTests/js/reserved-words.html.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdateIndexAndMode):

11:46 AM Changeset in webkit [281570] by Russell Epstein
  • 8 edits in branches/safari-612.1.29-branch/Source

Versioning.

WebKit-7612.1.29.3

11:45 AM Changeset in webkit [281569] by commit-queue@webkit.org
  • 22 edits in trunk

Add onsecuritypolicyviolation on GlobalEventHandlers
https://bugs.webkit.org/show_bug.cgi?id=229381

Patch by Sonia Singla <ssingla@igalia.com> on 2021-08-25
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/idlharness.https-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt:
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:

Source/WebCore:

onsecuritypolicyviolation attribute has been added to
GlobalEventHandlers by https://github.com/whatwg/html/pull/2651

This patch supports it.

Tests: imported/w3c/web-platform-tests/dom/idlharness.window.html

imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events.html
imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt
imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative.html

  • dom/GlobalEventHandlers.idl:
  • html/HTMLAttributeNames.in:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
11:42 AM Changeset in webkit [281568] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk1]imported/w3c/web-platform-tests/css/css-fonts/downloadable-font-in-iframe-print.html is a flaky image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=229506.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:34 AM Changeset in webkit [281567] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 EWS ] security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=229505

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:13 AM Changeset in webkit [281566] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Added expectations for ios-wk2: security/contentSecurityPolicy/video-with-blob-url-allowed-by-media-src-star.html and security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html are flaky.
https://bugs.webkit.org/show_bug.cgi?id=155196

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:59 AM Changeset in webkit [281565] by keith_miller@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add for-in OwnStructureMode optimizations to LLInt
https://bugs.webkit.org/show_bug.cgi?id=229038

Reviewed by Saam Barati.

This patch adds the optimizations we have for OwnStructureMode in
the Baseline to the LLInt. The patch also adds redundant self move
(i.e. move a, a) elimination to arm64. Finally, a bunch of the
property offset functions are now marked constexpr and return
intptr_t rather than size_t as the values can be negative.

There's also a minor fix to disable MSVC's signed to unsigned
cast warning for LLIntOffsetsExtractor as we don't care about
signedness for extracting constants.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_enumerator_get_by_val):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/generate_offset_extractor.rb:
  • runtime/Butterfly.h:

(JSC::Butterfly::indexOfPropertyStorage):

  • runtime/JSObject.h:

(JSC::offsetInButterfly):

  • runtime/PropertyOffset.h:

(JSC::checkOffset):
(JSC::validateOffset):
(JSC::isValidOffset):
(JSC::isInlineOffset):
(JSC::isOutOfLineOffset):
(JSC::offsetInInlineStorage):
(JSC::offsetInOutOfLineStorage):
(JSC::offsetInRespectiveStorage):
(JSC::numberOfOutOfLineSlotsForMaxOffset):
(JSC::numberOfSlotsForMaxOffset):
(JSC::offsetForPropertyNumber):

10:46 AM Changeset in webkit [281564] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Non-empty inline boxes may affect overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=229436

Reviewed by Antti Koivisto.

Use a more focused check whether an inline box (<span>) should contribute to scroll overflow.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox):
(WebCore::LayoutIntegration::NonRootInlineBox::hasScrollableContent const):
(WebCore::LayoutIntegration::NonRootInlineBox::canContributeToLineOverflow const): Deleted.

10:43 AM Changeset in webkit [281563] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229502.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:42 AM Changeset in webkit [281562] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] storage/indexeddb/getdatabases.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229457

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:37 AM Changeset in webkit [281561] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ MacOs iOS EWS ] imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229501

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:00 AM Changeset in webkit [281560] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Update test expectations for webrtc/datachannel/multiple-connections.html.
https://bugs.webkit.org/show_bug.cgi?id=209878.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:47 AM Changeset in webkit [281559] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.2

Tag Safari-612.1.29.2.

9:42 AM Changeset in webkit [281558] by Russell Epstein
  • 8 edits in branches/safari-612.1.29-branch/Source

Versioning.

WebKit-7612.1.29.2

9:41 AM Changeset in webkit [281557] by Peng Liu
  • 8 edits in trunk

[Monterey] LayoutTest media/element-containing-pip-video-going-into-fullscreen.html is flaky timeout/crash
https://bugs.webkit.org/show_bug.cgi?id=229453
<rdar://80346428>

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix a flaky test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
We need to initialize m_changingVideoFullscreenMode to false in the constructor.
Otherwise, it might be initialized to true and ignore requests to change video
presentation mode.

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
When the mock video presentation mode is enabled, the UI process still needs to
notify the Web process that the mode change has been done.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::didCleanupFullscreen):
Return immediately if the element is not in fullscreen to avoid
an assertion later in enterVideoFullscreenForVideoElement().

LayoutTests:

  • media/element-containing-pip-video-going-into-fullscreen.html:

Enable the mock video presentation mode for testing.

  • platform/mac-wk2/TestExpectations:
9:38 AM Changeset in webkit [281556] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

AX: Return radiobuttons part of ad-hoc radiogroups from AX search queries
https://bugs.webkit.org/show_bug.cgi?id=229415

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-08-25
Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/search-predicate-for-adhoc-radio-groups.html

Enable the ability for WebKit UI element accessibility searches to find
ad-hoc radiogroups. An ad-hoc radiogroup is a group of radiobuttons
connected only by name attribute, missing an appropriate role="radiogroup"
container.

  • accessibility/AccessibilityObject.cpp:

(WebCore::Accessibility::isRadioButtonInDifferentAdhocGroup): Added.
(WebCore::Accessibility::isAccessibilityObjectSearchMatchAtIndex):
When searching for radiogroups, also return radiobuttons in different
ad-hoc radiogroups.

LayoutTests:

Add test to ensure WebKit UI element accessibility searches can find
ad-hoc radiogroups. An ad-hoc radiogroup is a group of radiobuttons
connected only by name attributes, missing an appropriate role="radiogroup"
container.

  • accessibility/mac/search-predicate-for-adhoc-radio-groups-expected.txt: Added.
  • accessibility/mac/search-predicate-for-adhoc-radio-groups.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test due to lack of

AccessibilityUIElement::domIdentifier implementation.

7:49 AM Changeset in webkit [281555] by commit-queue@webkit.org
  • 12 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r281523.
https://bugs.webkit.org/show_bug.cgi?id=229494

broke cloop build

Reverted changeset:

"Add for-in OwnStructureMode optimizations to LLInt"
https://bugs.webkit.org/show_bug.cgi?id=229038
https://commits.webkit.org/r281523

6:50 AM Changeset in webkit [281554] by Kate Cheney
  • 5 edits in trunk/Source/WebCore

WebCrypto uses deprecated CCKeyDerivationHMac
https://bugs.webkit.org/show_bug.cgi?id=229443
<rdar://problem/48896021>

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests because no behavior change. This should be covered by
existing webrtc tests which use this functionality.

Replace deprecated CCKeyDerivationHMac with CCDeriveKey.

  • crypto/mac/CryptoUtilitiesCocoa.cpp:

(WebCore::keyDerivationHMAC):
(WebCore::deriveHDKFBits):

  • crypto/mac/CryptoUtilitiesCocoa.h:

Source/WebCore/PAL:

  • pal/spi/cocoa/CommonCryptoSPI.h:
3:11 AM Changeset in webkit [281553] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[LibWPE] Properly retrieve eglGetPlatformDisplayEXT entrypoint
https://bugs.webkit.org/show_bug.cgi?id=229234

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-08-25
Reviewed by Carlos Garcia Campos.

  • platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:

(WebCore::PlatformDisplayLibWPE::initialize): Along with testing for the
EGL_EXT_platform_base extension, the eglGetPlatformDisplayEXT entrypoint
should be specifically looked up when that extension is present.
EGL_KHR_platform_base check-and-lookup should be done separately, but
should be removed in the near future since the KHR-type variant of this
extension doesn't actually exist.

3:07 AM Changeset in webkit [281552] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/LayoutTests

[GLIB] Mark wide gamut canvas tests as unsupported
https://bugs.webkit.org/show_bug.cgi?id=229483

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-25

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.srgb-expected.txt: Removed.
2:45 AM Changeset in webkit [281551] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add missing null check in AccessibilitySVGElement::inheritsPresentationalRole
https://bugs.webkit.org/show_bug.cgi?id=228884

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-25
Reviewed by Darin Adler.

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::inheritsPresentationalRole const): Check parent element is not nullptr before
trying to use it.

12:42 AM Changeset in webkit [281550] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Metal index buffer restart range cache is could be maintained more consistently
https://bugs.webkit.org/show_bug.cgi?id=227451

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

  • src/libANGLE/renderer/metal/BufferMtl.h:

(rx::BufferMtl::RestartRangeCache::RestartRangeCache):
Add optional<RestartRangeCache> which contains the ranges and
the index type used to build the ranges.

  • src/libANGLE/renderer/metal/BufferMtl.mm:

(rx::BufferMtl::markConversionBuffersDirty):
(rx::BufferMtl::clearConversionBuffers):
Invalidate the range cache when clearing conversion buffers.
Otherwise the cache would be left in inconsistent state vs.
the contents of the index buffer in cases of code like:
BufferMtl::setDataImpl() ...

if (...) {

markConversionBufferDirty();

} else {

clearConversionBuffers();

}

(rx::BufferMtl::getRestartIndices):

Aug 24, 2021:

11:21 PM Changeset in webkit [281549] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r281540.
https://bugs.webkit.org/show_bug.cgi?id=229487

causes local builds to fail reliably

Reverted changeset:

"Improve diagnostics for missing files in DerivedSources.make"
https://bugs.webkit.org/show_bug.cgi?id=229348
https://commits.webkit.org/r281540

11:07 PM Changeset in webkit [281548] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

removeFromTopLayer shouldn't be called in every removal of an element
https://bugs.webkit.org/show_bug.cgi?id=229480

Reviewed by Simon Fraser.

Call it in HTMLDialogElement::removedFromAncestor for now since that's
the only place where top layer is currenlty used.

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::removedFromAncestor): Added.

  • html/HTMLDialogElement.h:
11:04 PM Changeset in webkit [281547] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

ANGLE Metal infinities and NaNs generated with incorrect syntax
https://bugs.webkit.org/show_bug.cgi?id=229439
<rdar://81033366>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-24
Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Generate NaN and infinity constant values correctly.
An else was missing from if-block, causing double processing.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitSingleConstant):

  • src/libANGLE/renderer/metal/mtl_utils.mm:

(rx::mtl::CreateShaderLibrary):

LayoutTests:

Add tests that test some aspects of NaN and -+inf that the GLSL ES 3.00 spec
talks about.

  • webgl/pending/conformance2/glsl3/float-constant-expressions-expected.txt: Added.
  • webgl/pending/conformance2/glsl3/float-constant-expressions.html: Added.
  • webgl/pending/resources/webgl_test_files/conformance2/glsl3/float-constant-expressions.html: Added.
  • webgl/pending/resources/webgl_test_files/js/glsl-conformance-test.js: Added.
10:20 PM Changeset in webkit [281546] by Fujii Hironori
  • 10 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/wincairo/editing/selection/3690703-2-expected.txt:
  • platform/wincairo/editing/selection/3690703-expected.txt:
  • platform/wincairo/editing/selection/3690719-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/text/capitalize-boundaries-expected.txt:
  • platform/wincairo/fast/text/whitespace/020-expected.txt:
  • platform/wincairo/fast/text/wide-zero-width-space-expected.txt:
10:11 PM Changeset in webkit [281545] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Windows build fix after r281470
https://bugs.webkit.org/show_bug.cgi?id=229476
<rdar://problem/82316227>

Unreviewed.

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

(WebCore::CACFLayerTreeHost::initialize):

8:47 PM Changeset in webkit [281544] by mark.lam@apple.com
  • 9 edits in trunk/Source

Refactor ENABLE(JIT_OPERATION_VALIDATION) code to emit no code when disabled.
https://bugs.webkit.org/show_bug.cgi?id=229482
rdar://82318317

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/JITOperationList.cpp:

(JSC::addPointers):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
(JSC::JITOperationList::populatePointersInEmbedder):

  • assembler/JITOperationList.h:

(JSC::JITOperationList::map const):
(JSC::JITOperationList::assertIsJITOperation):
(JSC::JITOperationList::initialize):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):

  • runtime/JSCPtrTag.h:

(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):

Source/WebCore:

  • bindings/js/WebCoreJITOperations.cpp:

(WebCore::populateJITOperations):

  • bindings/js/WebCoreJITOperations.h:

(WebCore::populateJITOperations):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::populateJITOperations):

  • testing/js/WebCoreTestSupport.h:

(WebCoreTestSupport::populateJITOperations):

8:11 PM Changeset in webkit [281543] by Jean-Yves Avenard
  • 2 edits
    2 adds in trunk

[Cocoa] Should video stop being live, time scrubber will not show
https://bugs.webkit.org/show_bug.cgi?id=229286
rdar://82114447

Reviewed by Eric Carlson.

Work around an issue with AVKit AVTouchBarPlaybackControlsProvider SPI which will
not properly make the time scrubber to be displayed when only the content duration
change.
We do so by toggling the canSeek property to force a relayout of the touch bar
content.

While we can reproduce the issue programatically, at this stage we can only
visually confirm that it's been fixed as we have no infrastructure to check
the content of the touch bar and that the issue itself is in AVKit.
Test: ManualTests/video-livechange-touchbar.html

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager canSeek]): Add code as property is otherwise read-only.
(-[WebPlaybackControlsManager setCanSeek:]): Add code as property is otherwise read-only.
(-[WebPlaybackControlsManager setContentDuration:]):
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Explictly set canSeek propery to
ensure property watchers will be called.

8:07 PM Changeset in webkit [281542] by Alan Bujtas
  • 2 edits in trunk/Tools

[ iOS ] TestWebKitAPI.DocumentEditingContext.Request* tests are failing
https://bugs.webkit.org/show_bug.cgi?id=229446
<rdar://problem/82295496>

Unreviewed.

Adjusting the test case after r281463 to match the new wrapping behavior.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

7:34 PM Changeset in webkit [281541] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[Re-landing] Add some offlineasm enhancements.
https://bugs.webkit.org/show_bug.cgi?id=229332
rdar://82163923

Reviewed by Keith Miller.

  1. Enhance "include" offlineasm Instruction to always attempt to include an asm file from <build-products>/usr/local/include/WebKitAdditions/ first. If the specified file is not available there, then it will attempt to include the file from the same directory as the current source file (which in practice, means Source/JavaScriptCore/llint/).
  1. Enhance "include" offlineasm Instruction to allow an optional file to be included if it exists. For example, the following offlineasm code:

include? LowLevelInterpreterAdditions

... will attempt to include a file LowLevelInterpreterAdditions.asm. If the
file does not exist, this will be a no-op. Note: the "?" after the "include"
means the include is optional.

  1. Enhanced "emit" offlineasm Instruction to be able to take more than one operand.

"emit" used to just copy the string operand that follows into the generated
LLIntAssembly.h. Now, "emit" can take multiple comma separated operands, and
will concatenate all the operands.

Additionally, "emit" can now take a LocalLabelReference as an operand. For
example, this offline asm code:

emit "b ", .done
...

.done:

... will generate this inline asm code in LLIntAssembly.h:

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

  1. Also fixed LLInt code alignment for ARM_THUMB2 and ARM64.

Previously, it was aligned using ".align 4" which means aligned on a 4
instruction boundary. Note: the interpretation of .align varies for different
target CPU architectures.

Now, we do the alignment using ".balign 4" which means align on a 4 byte
boundary. This is the intended alignment because ARM64 instruction size is
4 bytes, and ARM_THUMB2 instruction size is either 2 bytes or 4 bytes.
Using .align before was potentially wasting some code space.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • offlineasm/ast.rb:
  • offlineasm/parser.rb:
6:57 PM Changeset in webkit [281540] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Improve diagnostics for missing files in DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=229348

Reviewed by Alexey Proskuryakov.

We are seeing flaky build failures in certain scenarios (rdar://81042866), which
look like this:

make: * No rule to make target UserAgentScripts.h', needed by all'. Stop.

The theory is that some files that should be present in the file system aren't,
but the error is not clear enough. Let's add better diagnostics to isolate the issue.

  • DerivedSources.make:
5:37 PM Changeset in webkit [281539] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur+ wk1 Release] media/video-poster-background.html is flakily failing.
https://bugs.webkit.org/show_bug.cgi?id=229481.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:23 PM Changeset in webkit [281538] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.1

Tag Safari-612.1.29.14.1.

5:21 PM Changeset in webkit [281537] by Russell Epstein
  • 2 edits in branches/safari-612.1.29.14-branch/Source/WebInspectorUI/WebInspectorUI.vcxproj

Cherry-pick r281151. rdar://problem/82316028

Cherry-pick r281121. rdar://problem/82038333

Apply patch. rdar://problem/81915461

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@281121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.28-branch@281151 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:21 PM Changeset in webkit [281536] by Russell Epstein
  • 6 edits in branches/safari-612.1.29.14-branch/Source

Cherry-pick r281150. rdar://problem/82316028

Cherry-pick r280597. rdar://problem/82038333

Speculative build fix. rdar://79147214.

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@280597 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@280792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@280800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.28-branch@281150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:13 PM Changeset in webkit [281535] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.1

5:08 PM Changeset in webkit [281534] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

testb3_6 should be using JSSwitchPtrTag instead of JITCompilationPtrTag.
https://bugs.webkit.org/show_bug.cgi?id=229479
rdar://82316967

Reviewed by Yusuke Suzuki.

This is in testInterpreter() which is emitting code for a jump table.
JSSwitchPtrTag is the right tag to use here.

  • b3/testb3_6.cpp:

(testInterpreter):

5:07 PM Changeset in webkit [281533] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

MediaSession artwork URL is showing in logs.
https://bugs.webkit.org/show_bug.cgi?id=229320
rdar://82156288

Reviewed by Eric Carlson.

Only enable artwork logging in debug builds.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):

5:03 PM Changeset in webkit [281532] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

REGRESSION (r281102?): [Mac wk2] media/track/track-in-band.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229478.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:02 PM Changeset in webkit [281531] by Russell Epstein
  • 1 copy in branches/safari-612.1.29.14-branch

New branch.

4:51 PM Changeset in webkit [281530] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac,iOS ] media/track/track-in-band-duplicate-tracks-when-source-changes.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228364.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:40 PM Changeset in webkit [281529] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Update Intl tests to support ICU 68
https://bugs.webkit.org/show_bug.cgi?id=229467

Reviewed by Mark Lam.

ICU 68 changes some outputs of Intl tests. This patch adjusts that.

  • stress/intl-parse-unicode-subtags.js:

(vm.icuVersion):

4:39 PM Changeset in webkit [281528] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Dewei Zhu.

  • Scripts/run-webkit-tests: Change shebang to Python 3.
4:31 PM Changeset in webkit [281527] by Chris Dumez
  • 9 edits
    2 adds in trunk

change event is dispatched when .files property is set at <input type="file"> element
https://bugs.webkit.org/show_bug.cgi?id=180465

Reviewed by Darin Adler.

Source/WebCore:

We should not dispatch a change / input events when setting input.files via JavaScript,
as per:

This aligns our behavior with both Chrome and Firefox.

Test: fast/dom/HTMLInputElement/input-setFiles-no-change-event.html

  • html/FileInputType.cpp:

(WebCore::FileInputType::setFiles):
(WebCore::FileInputType::didCreateFileList):

  • html/FileInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setFiles):

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::filesForBindings):
(WebCore::HTMLInputElement::setFilesForBindings):

  • html/HTMLInputElement.idl:
  • html/InputType.cpp:

(WebCore::InputType::setFiles):

  • html/InputType.h:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLInputElement/input-setFiles-no-change-event-expected.txt: Added.
  • fast/dom/HTMLInputElement/input-setFiles-no-change-event.html: Added.
4:26 PM Changeset in webkit [281526] by Russell Epstein
  • 1 copy in tags/Safari-612.1.27.0.31

Tag Safari-612.1.27.0.31.

4:22 PM Changeset in webkit [281525] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Use RefPtr instead of auto* in EventHandler::defaultKeyboardEventHandler.
https://bugs.webkit.org/show_bug.cgi?id=229475

Unreviewed.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):

4:12 PM Changeset in webkit [281524] by Aditya Keerthi
  • 3 edits in trunk/LayoutTests

REGRESSION (r276598): [ iOS ] fast/forms/ios/accessory-bar-navigation.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=229471
rdar://80390931

Reviewed by Wenson Hsieh.

  • fast/forms/ios/accessory-bar-navigation.html:

r276598 updated this test so that the second input is positioned out of
the viewport on larger devices. However, the change (increasing the margin)
also lead to the first input being positioned out of the viewport on
smaller devices. Consequently, the test times out when run on an iPhone SE
as it is unable to tap on the first input.

To fix, the original margin for the first input is restored, ensuring it is
positioned within the viewport, and can be tapped. Then, a separate margin
is applied to the second input, ensuring it remains positioned outside the
viewport, and the test can verify accessory bar navigation with an
element outside the viewport.

  • platform/ios-wk2/TestExpectations:
4:04 PM Changeset in webkit [281523] by keith_miller@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add for-in OwnStructureMode optimizations to LLInt
https://bugs.webkit.org/show_bug.cgi?id=229038

Reviewed by Saam Barati.

This patch adds the optimizations we have for OwnStructureMode in
the Baseline to the LLInt. The patch also adds redundant self move
(i.e. move a, a) elimination to arm64. Finally, a bunch of the
property offset functions are now marked constexpr and return
intptr_t rather than size_t as the values can be negative.

There's also a minor fix to disable MSVC's signed to unsigned
cast warning for LLIntOffsetsExtractor as we don't care about
signedness for extracting constants.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_enumerator_get_by_val):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/generate_offset_extractor.rb:
  • runtime/Butterfly.h:

(JSC::Butterfly::indexOfPropertyStorage):

  • runtime/JSObject.h:

(JSC::offsetInButterfly):

  • runtime/PropertyOffset.h:

(JSC::checkOffset):
(JSC::validateOffset):
(JSC::isValidOffset):
(JSC::isInlineOffset):
(JSC::isOutOfLineOffset):
(JSC::offsetInInlineStorage):
(JSC::offsetInOutOfLineStorage):
(JSC::offsetInRespectiveStorage):
(JSC::numberOfOutOfLineSlotsForMaxOffset):
(JSC::numberOfSlotsForMaxOffset):
(JSC::offsetForPropertyNumber):

3:58 PM Changeset in webkit [281522] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

REGRESSION (r281182?): 4 Media tests flakily timing out.
https://bugs.webkit.org/show_bug.cgi?id=229474.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:13 PM Changeset in webkit [281521] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac] media/modern-media-controls/seek-backward-support/seek-backward-support.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229473.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:03 PM Changeset in webkit [281520] by Chris Dumez
  • 20 edits
    4 adds in trunk

Geolocation API should callback with error if doc is not fully active
https://bugs.webkit.org/show_bug.cgi?id=228319
<rdar://problem/81450315>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/geolocation-API/PositionOptions.https-expected.txt:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/geolocation-API/non-fully-active.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/non-fully-active.https.html: Added.
  • web-platform-tests/geolocation-API/resources/iframe.html: Added.

Import test coverage from WPT https://github.com/web-platform-tests/wpt/pull/29799.

  • web-platform-tests/resources/testdriver-vendor.js:

(window.test_driver_internal.set_permission):
Add support for test_driver.set_permission("geolocation", "granted") so that Geolocation
WPT tests can run with our infrastructure.

Source/WebCore:

Test: imported/w3c/web-platform-tests/geolocation-API/non-fully-active.https.html

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::getCurrentPosition):
(WebCore::Geolocation::watchPosition):
Schedule a task to call the error callback if the document is not fully active, as
per the specification:

  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
Make sure we use the incumbent global object when constructing callback functions /
interfaces, as per the Web IDL specification:

Without this, the geolocation API would be unable to call its error callback when in
a detached frame because the callback's global object would be the geolocation object's
global object.

  • dom/IdleCallbackController.cpp:

(WebCore::IdleCallbackController::invokeIdleCallbacks):
Make sure we don't fire requestIdleCallback callbacks in detached iframes, to maintain
pre-existing behavior and keep layout tests passing. I had to make this change because
callback interfaces / functions are now using a different global object and can now
get called in cases when they previously couldn't.

  • dom/TaskSource.h:

As Geolocation task source for the HTML5 event loop, as per the Geolocation
specification.

LayoutTests:

Update / rebaseline existing layout tests to reflect behavior change.

  • fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
  • fast/dom/Geolocation/callback-to-deleted-context.html:
  • fast/dom/Geolocation/disconnected-frame-already-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-already.html:
  • fast/dom/Geolocation/disconnected-frame-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied.html:
  • fast/dom/Geolocation/disconnected-frame.html:
  • fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
  • fast/events/detached-svg-parent-window-events-expected.txt:
  • fast/events/detached-svg-parent-window-events.html:
2:54 PM Changeset in webkit [281519] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-bvec2.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229472.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:41 PM Changeset in webkit [281518] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

4 webgl/2.0.0/deqp/functional/gles3/ tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=228703.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:28 PM Changeset in webkit [281517] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229101

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:11 PM Changeset in webkit [281516] by Chris Dumez
  • 40 edits
    2 adds in trunk

[WK2] Implement process-swapping based on Cross-Origin-Opener-Policy HTTP header
https://bugs.webkit.org/show_bug.cgi?id=229203
<rdar://problem/82047686>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Minor test rebaseline due to logging changes.

  • web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:

Source/WebCore:

We recently added support for the Cross-Origin-Opener-Policy (COOP) HTTP header. However,
when switching browsing context group on HTTP response, we would keep using the same
WebProcess. This patch makes it so that we now swap WebProcess when switching browsing
context group on network response as this will be required to securely re-enable Web APIs
such as SharedArrayBuffer.

For process-swapping, we reuse most of the same logic as process-swap on navigation (PSON).
A few differences are that:

  • We swap on response policy decision instead of navigation policy decision
  • We used to have a ShouldTreatAsContinuingLoad Yes/No enum. It is now tri-state: No, YesAfterNavigationPolicyDecision, YesAfterResponsePolicyDecision. We need this new state to avoid duplicate response policy delegate calls after process-swapping and to avoid sending duplicate didStartProvisionalLoad IPCs after proces-swapping.
  • After process-swapping on navigation response, we close the previous page instead of trying to put it into the back/forward cache. Per the specification, in a case of a browsing context group switch, the previous browsing context needs to be discarded (which is Web-observable).

One important thing to note is that we currently send the HTTP request to the server AGAIN after
a process-swap. This is because the on-going load currently gets cancelled upon receiving the
network response and deciding to process-swap and a new fresh load gets issued by the new
WebProcess after swapping. I will address this in a follow-up to decrease patch size and
complexity. We will need to transition the load in the network process from the old WebProcess
to the new one in case of process-swap.

Covered by existing COOP/COEP layout tests that are still passing and new API tests
that validate that we are indeed process-swapping.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::clearMainResource):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::isContinuingLoadAfterResponsePolicyCheck const):
(WebCore::DocumentLoader::setIsContinuingLoadAfterResponsePolicyCheck):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForResponse):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldTreatAsContinuingLoad):
(WebCore::FrameLoadRequest::shouldTreatAsContinuingLoad const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/HistoryController.h:
  • loader/ShouldTreatAsContinuingLoad.h:
  • page/Page.h:

Source/WebKit:

We recently added support for the Cross-Origin-Opener-Policy (COOP) HTTP header. However,
when switching browsing context group on HTTP response, we would keep using the same
WebProcess. This patch makes it so that we now swap WebProcess when switching browsing
context group on network response as this will be required to securely re-enable Web APIs
such as SharedArrayBuffer.

For process-swapping, we reuse most of the same logic as process-swap on navigation (PSON).
A few differences are that:

  • We swap on response policy decision instead of navigation policy decision
  • We used to have a ShouldTreatAsContinuingLoad Yes/No enum. It is now tri-state: No, YesAfterNavigationPolicyDecision, YesAfterResponsePolicyDecision. We need this new state to avoid duplicate response policy delegate calls after process-swapping and to avoid sending duplicate didStartProvisionalLoad IPCs after proces-swapping.
  • After process-swapping on navigation response, we close the previous page instead of trying to put it into the back/forward cache. Per the specification, in a case of a browsing context group switch, the previous browsing context needs to be discarded (which is Web-observable).

One important thing to note is that we currently send the HTTP request to the server AGAIN after
a process-swap. This is because the on-going load currently gets cancelled upon receiving the
network response and deciding to process-swap and a new fresh load gets issued by the new
WebProcess after swapping. I will address this in a follow-up to decrease patch size and
complexity. We will need to transition the load in the network process from the old WebProcess
to the new one in case of process-swap.

  • Shared/LoadParameters.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::shouldClosePreviousPageAfterCommit const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadSimulatedRequest):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::optionalRegistrableDomain const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadDataImpl):

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

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebCoreSupport/WebFrameLoaderClient.h:

Tools:

Add API test coverage to validate that we are indeed process-swapping.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONScheme addMappingFromURLString:toData:withCOOPValue:]):
(-[PSONScheme webView:startURLSchemeTask:]):

LayoutTests:

Skip COOP tests on WK1 as we only have a working implementation for WK2.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
2:04 PM Changeset in webkit [281515] by Jonathan Bedard
  • 2 edits in trunk/Tools

[kill-old-processes] Hardcode directory for stale simulator files
https://bugs.webkit.org/show_bug.cgi?id=229464
<rdar://problem/82148711>

Reviewed by Stephanie Lewis.

  • CISupport/kill-old-processes:

(main):

1:36 PM Changeset in webkit [281514] by Antti Koivisto
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

[CSS Cascade Layers] Import basic tests
https://bugs.webkit.org/show_bug.cgi?id=229441

Reviewed by Tim Horton.

  • web-platform-tests/css/css-cascade/layer-basic-expected.txt: Added.
  • web-platform-tests/css/css-cascade/layer-basic.html: Added.
  • web-platform-tests/css/css-cascade/w3c-import.log:
12:28 PM Changeset in webkit [281513] by ysuzuki@apple.com
  • 13 edits
    1 add in trunk

[JSC] Add Intl Enumeration APIs
https://bugs.webkit.org/show_bug.cgi?id=214795

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-datetimeformat.js:
  • stress/intl-enumeration.js: Added.

(shouldBe):
(shouldThrow):

  • stress/intl-locale-info.js:

(let.l.new.Intl.Locale.shouldBe):
(shouldBe):

Source/JavaScriptCore:

This patch implements Intl enumeration API[1] which is in stage-3.
Supported keys are, "calendar", "collation", "currency", "numberingSystem", "timeZone", and "unit".

[1]: https://github.com/tc39/proposal-intl-enumeration

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::localeData):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

  • runtime/IntlLocale.cpp:

(JSC::createArrayFromStringVector): Deleted.

  • runtime/IntlNumberFormat.cpp:

(JSC::sanctionedSimpleUnitIdentifier):

  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):
(JSC::mapICUCalendarKeywordToBCP47):
(JSC::availableCalendars):
(JSC::availableCollations):
(JSC::availableCurrencies):
(JSC::availableNumberingSystems):
(JSC::canonicalizeTimeZoneNameFromICUTimeZone):
(JSC::availableTimeZones):
(JSC::availableUnits):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::createArrayFromStringVector):

  • runtime/IntlObject.h:
  • runtime/OptionsList.h:

Source/WTF:

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createFromLiteral):

  • wtf/text/StringImpl.h:
12:15 PM Changeset in webkit [281512] by commit-queue@webkit.org
  • 22 edits
    2 adds in trunk

Unprefix -webkit-backface-visibility
https://bugs.webkit.org/show_bug.cgi?id=170983

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

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-transforms/css-transform-property-existence-expected.txt: Added.
  • web-platform-tests/css/css-transforms/css-transform-property-existence.html: Added.
  • web-platform-tests/css/css-transforms/parsing/backface-visibility-computed-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/backface-visibility-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

This has already been done by Chrome and Firefox.
Keep the prefixed version as an alias.

Test: imported/w3c/web-platform-tests/css/css-transforms/css-transform-property-existence.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

LayoutTests:

  • 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/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-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:
12:11 PM Changeset in webkit [281511] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash in [RBSTarget targetWithPid:] during WebProcessProxy::shutDown
https://bugs.webkit.org/show_bug.cgi?id=229444

Reviewed by Alex Christensen.

It appears xpc_connection_get_pid() may be able to return a PID that is less than 0
(likely when the process has just exited) and this causes RunningBoard to throw an
exception because the PID is invalid. Tweak the WebKit PID validation to use '>= 0'
instead of simply '!= 0', so that our validation is identical to the one used by
RunningBoard.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):

12:08 PM Changeset in webkit [281510] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

CONSOLE ASSERT ERROR:[BigSur] http/tests/inspector/network/resource-mime-type.html is a flaky failure on wk2 and flaky timeout on wk1.
https://bugs.webkit.org/show_bug.cgi?id=229463.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:01 PM Changeset in webkit [281509] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina EWS ] media/track/track-disabled-addcue.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229462

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:53 AM Changeset in webkit [281508] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug x86] http/tests/inspector/network/ping-type.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229460.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:48 AM Changeset in webkit [281507] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ EWS Catalina ] http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is flaky timing out / failing.
https://bugs.webkit.org/show_bug.cgi?id=229459

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:41 AM Changeset in webkit [281506] by Lauro Moura
  • 2 edits
    1 add in trunk/LayoutTests

[WPE] Gardening two WebXR-related failures

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
  • platform/wpe/http/wpt/webxr/xrViewport_singleView_valid.https-expected.txt: Added.
11:32 AM Changeset in webkit [281505] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Remove inefficient use of HashMap from FormController along with a bit of other streamlining and modernizing
https://bugs.webkit.org/show_bug.cgi?id=228854

Reviewed by Chris Dumez.

  • html/FormController.cpp:

(WebCore::ownerForm): Renamed from ownerFormForState. Removed unnecessary use of
inline; trust the compiler to inline if needed without the keyword. Removed
"using namespace HTMLNames". Use nullptr instead of 0.
(WebCore::StringVectorReader::consumeString): Added. Helps parse a vector without
so many index range checks. Returns null string at end of vector.
(WebCore::StringVectorReader::consumeSubvector): Added. Helps parse a vector
without so many index range checks. Returns the subvector.
(WebCore::appendSerializedFormControlState): Renamed from
serializeFormControlStateTo to make clear this appends to an existing vector.
(WebCore::consumeSerializedFormControlState): Renamed from
deserializeFormControlState to make clear this reads part of a vector and
indicates what was read. Use the StringVectorReader class for the argument type
to make that clear. Refactored to use the new consumeString and consumeSubvector
functions. Also use parseInteger because there is no need to allow trailing junk.
(WebCore::FormElementKey): Deleted this entire class, kind of a lot of code,
because we can instead use std::pair and only lose a little bit of clarity.
(WebCore::FormController::SavedFormState): Made this class a member of
FormController. Also use std::pair, renamed m_stateForNewFormElements to m_map,
and removed m_controlStateCount. The only code that was using this was
in SavedFormState::serializeTo, and that in turn was only used on a
SavedFormState which contained
(WebCore::SavedFormState::serializeTo const): Deleted. All the logic from this
function is now in the FormController::formElementsState function, which is
the only place it was used.
(WebCore::FormController::SavedFormState::consumeSerializedState): Renamed
from deserialize to make it clear that it reads part of a vector and indicates
what is read. Use the StringVectorReader class for the argument type to make
that clear. Moved the isNotFormControlTypeCharacter from a separate function
to be a lambda inside this function. Use consumeString, StringView::contains,
and consumeSerializedFormControlState to streamline the implementation.
Moved call to HashMap::add here instead of separate appendControlState
function since we no longer need to track m_controlStateCount.
(WebCore::SavedFormState::appendControlState): Deleted.
(WebCore::FormController::SavedFormState::takeControlState): Take the arguments
as a FormElementKey, already in a pair, instead of as two separate values.
Removed the code to maintain m_controlStateCount.
(WebCore::FormController::SavedFormState::appendReferencedFilePaths const):
Renamed from referencedFilePaths and change this to append to an existing
vector, since that's what the only caller was doing.
(WebCore::FormController::FormKeyGenerator): Made this class a member of
FormController. Also changed to just use String for the formKey, since there
is no significant sharing or other optimization made possible by using
AtomString. Also use a reference instead of a pointer in one place.
(WebCore::recordFormStructure): Deleted.
(WebCore::formSignature): Merge in the logic from the recordFormStructure
function, since that was an awkward function name and this is clearer as
just one function. Added a comment about fragment identifiers. Use unsigned
instead of size_t to count up to 2. Improved the comment about why the
maximum is 2 and used simpler loop logic, is<> instead of a specific
function call, downcast<> instead of static_cast<>, and Ref instead of RefPtr<...>.
(WebCore::FormController::FormKeyGenerator::formKey): Use RefPtr on the
left side instead of makeRefPtr. Use String instead of AtomString.
(WebCore::FormController::FormKeyGenerator::willDeleteForm): Take a reference.
(WebCore::formStateSignature): Use MainThreadNeverDestroyed.
(WebCore::FormController::createSavedFormStateMap): Deleted. This was only
ever used by formElementsState, which does not need a map.
(WebCore::FormController::formElementsState const): Use a vector that
uses Ref<> since it's a little safer for object lifetime and that also stores
the form key so we can grouop controls in the same form as part of sorting.
Added an early return when there are no controls instead of
detecting that at the end of the function. Moved the code from
createSavedFormStateMap and SavedFormState::serializeTo in here to avoid
creating a HashMap just to iterate it and build a string vector, using
sorting to group and count the controls in each form. Use shrinkToFit to make
sure the vector is not permanently overallocated instead of an always-too-small
reserveInitialCapacity.
(WebCore::FormController::setStateForNewFormElements): Update for the change in
parseStateVector.
(WebCore::FormController::takeStateForFormElement): Updated for the change to
m_savedFormStateMap values. Use auto a bit and "iterator" insted of "it".
(WebCore::FormController::parseStateVector): Renamed from
formStatesFromStateVector and changed to use a return value instead of an out
argument. Use StringVectorReader and consumeString to streamline the code and
make it a bit more foolproof. Check the exhaustion of the input vector inside
the loop instead of checking for an error after the loop.
(WebCore::FormController::willDeleteForm): Pass a reference.

(WebCore::FormController::restoreControlStateFor): Tweak comment and use

instead of two separate if statements.
(WebCore::FormController::restoreControlStateIn): Ditto.
(WebCore::FormController::referencedFilePaths): Use parseStateVector and
appendReferencedFilePaths.

  • html/FormController.h: Removed almost all the includes, which were not needed.

Made the FormKeyGenerator and SavedFormState classes members of FormController.
Changed SavedFormStateMap to use String as the key instead of RefPtr<AtomStringImpl>,
no need for the exotic type. Changed SavedFormStateMap to use SavedFormState
as the value instead of std::unique_ptr<SavedFormState>. Removed the unused
member function createSavedFormStateMap and renamed formStatesFromStateVector
to parseStateVector and changed it to use a return value.

11:31 AM Changeset in webkit [281504] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac] http/tests/inspector/network/har/har-page.html, flaky failure on wk2, constant failure on wk1.
https://bugs.webkit.org/show_bug.cgi?id=229458.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:30 AM Changeset in webkit [281503] by jer.noble@apple.com
  • 13 edits
    6 adds in trunk

Source/WebCore:
Add support for new pseudo-classes for media from CSS Selectors Level 4.
https://bugs.webkit.org/show_bug.cgi?id=229431

Reviewed by Eric Carlson.

Tests: media/media-css-muted.html

media/media-css-playing-paused.html
media/media-css-volume-locked.html
(Tests for buffering and stalled states are forthcoming, waiting on
a non-flakey mechanism for inducing network stalls)

Add support for the following new pseudo-classes from CSS Selectors Level 4:

  • :playing, :paused, :seeking
  • :buffering, :stalled
  • :muted, :volume-locked

Ensure CSS styles are invalidated when playback state changes by encapsulating
modifications to HTMLMediaElement::m_paused into a setPaused() function.

Add methods to query for volumeLocked() on HTMLMediaElement, as well as a way
to override the value through Internals.

Invalidate styles when the "muted" attribute changes state.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesPlayingPseudoClass):
(WebCore::matchesPausedPseudoClass):
(WebCore::matchesSeekingPseudoClass):
(WebCore::matchesBufferingPseudoClass):
(WebCore::matchesStalledPseudoClass):
(WebCore::matchesMutedPseudoClass):
(WebCore::matchesVolumeLockedPseudoClass):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):

  • html/HTMLMediaElement.cpp:

(WebCore::defaultVolumeLocked):
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::setNetworkState):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::setPaused):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::setVolumeLocked):
(WebCore::HTMLMediaElement::buffering const):
(WebCore::HTMLMediaElement::stalled const):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::volumeLocked const):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementVolumeLocked):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:
Add support for new pseudo-selectors for media from CSS Selectors Level 4.
https://bugs.webkit.org/show_bug.cgi?id=229431

Reviewed by Eric Carlson.

  • media/media-css-muted-expected.txt: Added.
  • media/media-css-muted.html: Added.
  • media/media-css-playing-paused-expected.txt: Added.
  • media/media-css-playing-paused.html: Added.
  • media/media-css-volume-locked-expected.txt: Added.
  • media/media-css-volume-locked.html: Added.
11:28 AM commit-identifiers edited by Jonathan Bedard
Migrated commit-identifier documentation to … (diff)
11:18 AM Changeset in webkit [281502] by Chris Dumez
  • 3 edits
    11 adds in trunk

Fire a load event for <iframe src="about:blank#foo">
https://bugs.webkit.org/show_bug.cgi?id=228958
<rdar://problem/82035810>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import layout test coverage from WPT.

  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/initial-content-replacement-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/initial-content-replacement.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-event-iframe-element-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-event-iframe-element.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/resources/helpers.js: Added.

(assertNoLoadAndPageshowEvent):

Source/WebCore:

When loading an iframe with src="about:blank#foo", we would fail to fire the load event because we would treat
the navigation as a fragment navigation. The reason for that is that the iframe is initially displaying the
initial empty document, which has URL "about:blank". Because the source and destination URL would be the same
when ignoring fragments, our logic would treat this as a pure fragment navigation. To address this, I have
updated FrameLoader::shouldPerformFragmentNavigation() to special case the initial empty document.

Test: imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-event-iframe-element.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldPerformFragmentNavigation):

11:00 AM Changeset in webkit [281501] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug x86] http/tests/inspector/network/resource-timing.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229454.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:58 AM Changeset in webkit [281500] by keith_miller@apple.com
  • 3 edits
    1 move in trunk

(r281473) stress/for-in-has-own-property-shouldnt-flush-registers.js failing on Debug
https://bugs.webkit.org/show_bug.cgi?id=229448

Reviewed by Mark Lam.

JSTests:

Fix typo in test name.

  • stress/for-in-in-by-val-should-flush-registers.js: Renamed from JSTests/stress/for-in-in-by-val-shouldnt-flush-registers.js.

Source/JavaScriptCore:

Add missing exception checks.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

10:57 AM Changeset in webkit [281499] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Removing test expectations for fixed bug [ Win EWS ] fast/forms/* tests are flaky crashing FAULTING_IP: WebKit!WebCore::FontCache::lastResortFallbackFont+ec [C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\platform\graphics\win\FontCacheWin.cpp @ 424].
https://bugs.webkit.org/show_bug.cgi?id=229009

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:47 AM Changeset in webkit [281498] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION (r281473): [ iOS & MacOS ] TestWebKitAPI.ProcessSwap.NavigateToInvalidURL is timing out
https://bugs.webkit.org/show_bug.cgi?id=229447

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-24
Reviewed by Chris Dumez.

Check that a JS error was thrown instead of checking that the navigation doesn't go through.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:41 AM Changeset in webkit [281497] by commit-queue@webkit.org
  • 11 edits
    4 copies
    1 move
    2 adds in trunk/LayoutTests

[GLIB] Update baselines after r281422
https://bugs.webkit.org/show_bug.cgi?id=229450

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-24

  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/fast/selectors/018b-expected.txt: Copied from LayoutTests/platform/glib/fast/selectors/018b-expected.txt.
  • platform/gtk/fast/text/capitalize-boundaries-expected.txt:
  • platform/gtk/fast/text/whitespace/020-expected.txt:
  • platform/wpe/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/wpe/editing/selection/3690703-2-expected.txt: Copied from LayoutTests/platform/gtk/editing/selection/3690703-2-expected.txt.
  • platform/wpe/editing/selection/3690703-expected.txt: Copied from LayoutTests/platform/gtk/editing/selection/3690703-expected.txt.
  • platform/wpe/editing/selection/3690719-expected.txt: Copied from LayoutTests/platform/gtk/editing/selection/3690719-expected.txt.
  • platform/wpe/fast/selectors/018b-expected.txt: Renamed from LayoutTests/platform/glib/fast/selectors/018b-expected.txt.
  • platform/wpe/fast/text/capitalize-boundaries-expected.txt:
  • platform/wpe/fast/text/whitespace/020-expected.txt:
9:57 AM Changeset in webkit [281496] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r281321.
https://bugs.webkit.org/show_bug.cgi?id=229449

causes crashes on ARM64

Reverted changeset:

"Add some offlineasm enhancements."
https://bugs.webkit.org/show_bug.cgi?id=229332
https://commits.webkit.org/r281321

9:29 AM Changeset in webkit [281495] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ThreadSanitizer: data race in WTF::StringImpl::deref() for WebCore::FormDataElement::EncodedFileData::filename
https://bugs.webkit.org/show_bug.cgi?id=229432

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-24
Reviewed by Darin Adler.

Call the FormDataElement destructor on the main thread in advanceCurrentStream.

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::advanceCurrentStream):
(WebCore::createHTTPBodyCFReadStream):

8:05 AM Changeset in webkit [281494] by Russell Epstein
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.31

6:48 AM Changeset in webkit [281493] by Adrian Perez de Castro
  • 8 edits in trunk/Source

Non-unified build fixes, late August 2021
https://bugs.webkit.org/show_bug.cgi?id=229440

Unreviewed non-unified build fixes.

Source/WebCore:

  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.cpp: Add missing

LibWebRTCProvider.h and JavaScriptCore/ArrayBuffer.h headers.

  • fileapi/ThreadableBlobRegistry.cpp: Add missing PolicyContainer.h header.
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp: Add missing FontCascade.h

header.

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp: Add missing

FontCascade.h, InlineFormattingContext.h, and LayoutBoxGeometry.h headers.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: Add missing

wtf/SuspendableWorkQueue.h header.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: Ditto.
5:57 AM Changeset in webkit [281492] by ntim@apple.com
  • 6 edits in trunk

Move cancel dialog task to defaultKeyboardEventHandler.
https://bugs.webkit.org/show_bug.cgi?id=228845

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Updated test expectations.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault.html

Allows preventDefault() on keydown event to prevent cancelation.

Also rename HTMLDialogElement::cancel to HTMLDialogElement::queueCancelTask to reflect better what the function does.

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::queueCancelTask):
(WebCore::HTMLDialogElement::cancel): Deleted.

  • html/HTMLDialogElement.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):
(WebCore::EventHandler::defaultKeyboardEventHandler):

3:07 AM Changeset in webkit [281491] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(r281305) [GStreamer] fast/mediastream/getDisplayMedia-frame-rate.html timeouts
https://bugs.webkit.org/show_bug.cgi?id=229343

Patch by Philippe Normand <pnormand@igalia.com> on 2021-08-24
Reviewed by Youenn Fablet.

Source/WebCore:

Proxy the video samples from the wrapped mock source to its parent. The test was timing out
because the video samples were never notified to the top level observer in Internals.

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::MockDisplayCaptureSourceGStreamer):
(WebCore::MockDisplayCaptureSourceGStreamer::requestToEnd):
(WebCore::MockDisplayCaptureSourceGStreamer::videoSampleAvailable):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:

LayoutTests:

  • platform/glib/TestExpectations: Test is now passing, in Release at least. Timing out in

Debug but that will be investigated next, there are other mediastream timeouts in Debug.

1:17 AM Changeset in webkit [281490] by ntim@apple.com
  • 11 edits
    29 adds in trunk

Implement inert attribute behind feature flag
https://bugs.webkit.org/show_bug.cgi?id=165279

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Import inert/ WPT directory using import-w3c-tests -t web-platform-tests/inert.
WPT revision: https://github.com/web-platform-tests/wpt/commit/f02e38d7a67999683d05579f62b339430c61e4ec

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/inert/frame/button.html: Added.
  • web-platform-tests/inert/frame/w3c-import.log: Added.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html: Added.
  • web-platform-tests/inert/inert-in-shadow-dom.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-in-shadow-dom.tentative.html: Added.
  • web-platform-tests/inert/inert-inlines.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-inlines.tentative.html: Added.
  • web-platform-tests/inert/inert-label-focus.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-label-focus.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-node-is-uneditable.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-node-is-unfocusable.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-node-is-unselectable.tentative.html: Added.
  • web-platform-tests/inert/inert-on-slots.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-on-slots.tentative.html: Added.
  • web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-retargeting-iframe.tentative.html: Added.
  • web-platform-tests/inert/inert-retargeting.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-retargeting.tentative.html: Added.
  • web-platform-tests/inert/w3c-import.log: Added.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/inert/frame/button.html

imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html
imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative.html
imported/w3c/web-platform-tests/inert/inert-inlines.tentative.html
imported/w3c/web-platform-tests/inert/inert-label-focus.tentative.html
imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative.html
imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative.html
imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html
imported/w3c/web-platform-tests/inert/inert-on-slots.tentative.html
imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative.html
imported/w3c/web-platform-tests/inert/inert-retargeting.tentative.html

  • dom/Node.cpp:

(WebCore::Node::isInert const):

  • html/HTMLAttributeNames.in:
  • html/HTMLElement.idl:

Source/WTF:

Add runtime InertAttributeEnabled feature flag disabled by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Create iOS baselines.

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-retargeting.tentative-expected.txt: Added.

Aug 23, 2021:

11:51 PM Changeset in webkit [281489] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] Show TLS protocol version and ciphersuite name in the inspector
https://bugs.webkit.org/show_bug.cgi?id=229400

Reviewed by Michael Catanzaro.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::tlsProtocolVersionToString):
(WebKit::NetworkDataTaskSoup::didGetHeaders):

10:37 PM Changeset in webkit [281488] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Avoid unnecessary CGColor creation in Gradient::createCGGradient for common sRGB-only cases
https://bugs.webkit.org/show_bug.cgi?id=229422
<rdar://problem/82261384>

Reviewed by Sam Weinig.

  • platform/graphics/Gradient.h:
  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::hasOnlyBoundedSRGBColorStops const):
(WebCore::Gradient::createCGGradient):

10:07 PM Changeset in webkit [281487] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check scriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=229272

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

Source/WebCore:

Null check scriptExecutionContext in ensureLocalFontFacesForFamilyRegistered.

Tests: fast/text/font-face-set-add-crash.html

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):

LayoutTests:

  • fast/text/font-face-set-add-crash-expected.txt: Added.
  • fast/text/font-face-set-add-crash.html: Added.
8:38 PM Changeset in webkit [281486] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ThreadSanitizer: data race of WTF::StringImpl in WebCoreNSURLSessionDataTask._metrics instance variable
https://bugs.webkit.org/show_bug.cgi?id=229435

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-23
Reviewed by David Kilzer.

Move the isolated copy to the WebCoreNSURLSessionTaskMetrics instead of keeping a copy on the delegate thread
and a copy on whatever thread our media stack wants to use the WebCoreNSURLSessionTaskMetrics on.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionTaskTransactionMetrics _initWithMetrics:]):
(-[WebCoreNSURLSessionTaskMetrics _initWithMetrics:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]):

7:59 PM Changeset in webkit [281485] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
https://bugs.webkit.org/show_bug.cgi?id=229420
<rdar://82020528>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added.

(foo):

Source/JavaScriptCore:

The final instruction in a for-in loop might be the get by val that
we're rewriting because there was an escape. We won't ever actually
do peephole optimizations on this get_by_val today, but it breaks
some bookkeeping that the bytecode generator does. This patch makes
sure the bookkeeping is up to date.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::ForInContext::finalize):

6:28 PM Changeset in webkit [281484] by Russell Epstein
  • 1 copy in tags/Safari-612.2.2

Tag Safari-612.2.2.

6:23 PM Changeset in webkit [281483] by Russell Epstein
  • 1 delete in tags/Safari-612.2.2

Delete tag.

6:02 PM Changeset in webkit [281482] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.1

Tag Safari-612.1.29.1.

6:00 PM Changeset in webkit [281481] by Russell Epstein
  • 1 copy in tags/Safari-612.2.2

Tag Safari-612.2.2.

5:33 PM Changeset in webkit [281480] by wilander@apple.com
  • 25 edits
    2 adds in trunk

PCM: Support ephemeral measurement with non-persistent WebCore::PrivateClickMeasurement
https://bugs.webkit.org/show_bug.cgi?id=228984
<rdar://problem/81778213>

Reviewed by Kate Cheney.

This patch adds support for ephemeral measurement with non-persistent
WebCore::PrivateClickMeasurement for direct response advertising.
Such advertising means there is only one pending click, held in memory,
and only stored right before the triggering event causes attribution
reports to be scheduled.

Source/WebCore:

Test: http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::SourceSite::operator!= const):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::operator!= const):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):

Now takes an optional PrivateClickMeasurementAttributionEphemeral
parameter, set to PrivateClickMeasurementAttributionEphemeral::No
by default.

(WebCore::PrivateClickMeasurement::isEphemeral const):
(WebCore::PrivateClickMeasurement::setEphemeral):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):

Source/WebKit:

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):

Now takes an optional ephemeral PrivateClickMeasurement parameter
and stores it right before moving on with attribution.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):

New convenience function. Only stores in memory if the
PrivateClickMeasurement parameter is marked as ephemeral.

(WebKit::PrivateClickMeasurementManager::attribute):

Checks that the triggering event matches the ephemeral measurement if
it exists, and if so, forwards it.

(WebKit::PrivateClickMeasurementManager::clear):

Now clears the ephemeral state too.

  • NetworkProcess/PrivateClickMeasurementManager.h:

(WebKit::PrivateClickMeasurementManager::setEphemeralMeasurementForTesting):

Test infrastructure.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • UIProcess/WebPageProxy.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateClickMeasurementEphemeralMeasurementForTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPrivateClickMeasurementEphemeralMeasurementForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt: Added.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html: Added.
  • http/tests/privateClickMeasurement/resources/util.js:

(tearDownAndFinish):

Resets the new testRunner.setPrivateClickMeasurementEphemeralMeasurementForTesting().

5:20 PM Changeset in webkit [281479] by Alan Bujtas
  • 6 edits
    2 adds in trunk/Source/WebCore

[LFC][IFC] Decouple line box building and vertical aligning
https://bugs.webkit.org/show_bug.cgi?id=229162
<rdar://problem/82260272>

Reviewed by Antti Koivisto.

This is in preparation for supporting incremental inline layout.
We should be able to vertically align the inline level boxes on any line without rebuilding the LineBox.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::lineBoxHeight const): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::setEnabled): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::isEnabled const): Deleted.
(): Deleted.
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::adjust): Deleted.

  • layout/formattingContexts/inline/InlineLevelBox.h:
  • layout/formattingContexts/inline/InlineLineBox.h:
4:52 PM Changeset in webkit [281478] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina EWS ] http/tests/media/hls/range-request.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229424

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:52 PM Changeset in webkit [281477] by Wenson Hsieh
  • 5 edits in trunk/LayoutTests

fast/events/ios/key-events-comprehensive/key-events-meta-shift.html is failing in iOS 15
https://bugs.webkit.org/show_bug.cgi?id=229417
rdar://80385777

Reviewed by Tim Horton.

This test is failing in iOS 15 because "command + shift + /" now triggers a system-wide key command that shows
a help menu; this key command is handled very early on in UIKit, before keyboard code gets a chance to handle
the event as a WebEvent and dispatch it to the page.

rdar://82257764 tracks making this key command preventable by marking it as a key command that should be handled
after dispatching key events. For the time being, add this to the list of system key commands that we should
avoid in key-tester.js, and rebaseline the test.

  • fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt:
  • fast/events/ios/resources/key-tester.js:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
3:40 PM Changeset in webkit [281476] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] http/tests/inspector/network/fetch-network-data.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229429.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [281475] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk1] fast/canvas/webgl/texImage2D-video-flipY-false.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229425.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:00 PM Changeset in webkit [281474] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r281473. rdar://problem/82262986

compileEnumeratorHasProperty uses flushRegisters incorrectly
https://bugs.webkit.org/show_bug.cgi?id=229412
<rdar://82020767>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-has-own-property-shouldnt-flush-registers.js: Added. (foo):
  • stress/for-in-in-by-val-shouldnt-flush-registers.js: Added. (a.toString):

Source/JavaScriptCore:

We were calling flushRegisters() inside code that isn't always runs inside the
EnumeratorInByVal/EnumeratorHasOwnProperty nodes. That is a violation of how
flushRegisters() must be used, since flushRegisters() updates global register
allocation state, and therefore must run each time a node is run. To fix, we
move flushRegisters() before the code starts emitting branches.

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

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

2:44 PM Changeset in webkit [281473] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

compileEnumeratorHasProperty uses flushRegisters incorrectly
https://bugs.webkit.org/show_bug.cgi?id=229412
<rdar://82020767>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-has-own-property-shouldnt-flush-registers.js: Added.

(foo):

  • stress/for-in-in-by-val-shouldnt-flush-registers.js: Added.

(a.toString):

Source/JavaScriptCore:

We were calling flushRegisters() inside code that isn't always runs inside the
EnumeratorInByVal/EnumeratorHasOwnProperty nodes. That is a violation of how
flushRegisters() must be used, since flushRegisters() updates global register
allocation state, and therefore must run each time a node is run. To fix, we
move flushRegisters() before the code starts emitting branches.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

2:39 PM Changeset in webkit [281472] by commit-queue@webkit.org
  • 12 edits
    2 deletes in trunk

Setting window.location.href to an invalid URL should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=229303

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-23
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/url/failure-expected.txt:

Source/WebCore:

This matches Firefox and the specification, and Chrome also throws an exception in this case.

  • page/Location.cpp:

(WebCore::Location::setLocation):

LayoutTests:

  • fast/dom/location-new-window-no-crash-expected.txt:
  • fast/dom/location-new-window-no-crash.html:
  • fast/loader/file-URL-with-port-number.html:
  • fast/loader/location-port.html:
  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html:
  • fast/url/navigate-non-ascii.html:
  • platform/ios-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt: Removed.
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt: Removed.
2:38 PM Changeset in webkit [281471] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur EWS ] http/tests/paymentrequest/payment-response-reference-cycle-leak.https.html is flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=229423

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:36 PM Changeset in webkit [281470] by Cameron McCormack
  • 28 edits
    6 adds in trunk

LayoutTests/imported/w3c:
Preserve color space when getting current color in DisplayListDrawGlyphsRecorder.
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

Add tests for calling fillText() and strokeText() with a display-p3
color for fillStyle, strokeStyle, and shadowColor, on a display-p3 canvas.

  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html: Added.
  • web-platform-tests/html/canvas/tools/yaml/element/color_space.yaml:

Source/WebCore:
Preserve color space when getting current color in DisplayList::DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

When GPU canvas is enabled, DrawGlyphsRecorder records the text fill,
stroke, and shadow colors by getting them from the context using
CGGStateGetFillColor etc. This is done so that color glyphs have each
part painted in the right color. But the current conversion from
CGColor to WebCore::Color lossily converts to sRGB. So we need to get
the color space and color components from the CGColor and preserve them.

The existing Color(CGColorRef) constructor is replaced by two
constructor functions, createAndPreserveColorSpace and
roundAndClampToSRGBALossy, so the conversion behavior is clear at call
sites. createAndPreserveColorSpace will match the CGColor's color
space to one of the predefined spaces that WebCore::Color can
represent. If it's some other color space, we convert to XYZ (on
platforms where that's available), since that will result in the least
loss, or to sRGB (on platforms where XYZ is not available).

CGColorSpaceEqualToColorSpace, which is used when determining the
CGColor's color space, is not very expensive, but it will do more than a
pointer comparison in case we pass in two CGColorSpaceRefs that are
equivalent but not the same pointer value. Since our new
colorSpaceForCGColorSpace function will be used with CGColors that have
been set WebCore during canvas drawing, we will get back the same
pointers that we have cached in sRGBColorSpaceRef(),
displayP3ColorSpaceRef(), etc. If calling CGColorSpaceEqualToColorSpace
on all our supported color spaces turns out to be too expensive, we
could start by doing a pointer comparison on each before calling
CGColorSpaceEqualToColorSpace.

The way colorSpaceForCGColorSpace is written we could end up
instantiating all of our supported color spaces, if an author used an
XYZ color when drawing text (the last color profile we check). We
could try harder to avoid doing this if it's important.

Tests: imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html

imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html
imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS const):
(WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS const):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextColor const):

  • platform/graphics/Color.h:

(WebCore::Color::createAndPreserveColorSpace):
(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::backgroundColor const):

  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer setBorderColor:]):

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

(PlatformCALayerWin::backgroundColor const):
(printColor):

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

(PlatformCALayerWinInternal::drawRepaintCounters):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::roundAndClampToSRGBALossy):
(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):
(WebCore::Color::createAndPreserveColorSpace):
(WebCore::platformConvertColorComponents):

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::colorSpaceForCGColorSpace):

  • platform/graphics/cg/ColorSpaceCG.h:
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::updateShadow):
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs):

  • platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:

(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::color):

  • rendering/RenderThemeIOS.mm:

(WebCore::systemColorFromCSSValueSystemColorInformation):

Source/WebKit:
Preserve color space when getting current color in DisplayList::DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

Change existing CGColor -> WebCore::Color conversions to be explicit
about lossily converting to sRGB.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setUnderPageBackgroundColor:]):

  • UIProcess/API/Cocoa/_WKApplicationManifest.mm:

(-[_WKApplicationManifest initWithCoder:]):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformUnderPageBackgroundColor const):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

Tools:
Preserve color space when getting current color in DisplayList::DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

Change existing CGColor -> WebCore::Color conversions to be explicit
about lossily converting to sRGB.

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(TEST):

2:05 PM Changeset in webkit [281469] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[iOS 14] imported/w3c/web-platform-tests/webstorage/event_case_sensitive.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=226789

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:52 PM Changeset in webkit [281468] by Wenson Hsieh
  • 11 edits
    1 add
    2 deletes in trunk

editing/selection/ios/select-text-in-existing-selection.html fails on iOS 15
https://bugs.webkit.org/show_bug.cgi?id=229411
rdar://80385434

Reviewed by Tim Horton.

Tools:

After the changes in rdar://70851909, UIKit's text selection interaction (which encompasses the loupe text
interaction gesture) is no longer allowed to transition to Began state when long pressing inside an existing
text selection. This causes us to no longer enter floating caret mode (via loupe gesture) and change the
selection when triggering a long press in selected text, which causes this layout test to fail.

This layout test was originally intended to test a fix for text selection via trackpad on iPadOS failing to
begin when clicking and dragging inside text that has already been selected. At that time, I intentionally wrote
this test in a way that didn't involve the trackpad at all, and instead simply exercised the codechange in
-[WKContentView textInteractionGesture:shouldBeginAtPoint:] by synthesizing touches.

Since UIKit no longer supports this behavior, we can rewrite this test to be more robust by calling and checking
the value of -textInteractionGesture:shouldBeginAtPoint: in an API test. This patch deletes the existing
layout test, and replaces it with an API test that directly exercises the SPI on UIWKInteractionViewProtocol.

Note that the original bug that was fixed by the change that came along with this failing test remains fixed,
because trackpad-based text selection on iPadOS uses UITextLoupeCursorBehavior rather than
UITextLoupeTouchBehavior, which (unlike the former) contains logic to explicitly avoid starting the loupe
text interaction when long pressing inside of selected text.

Test: UIWKInteractionViewProtocol.TextInteractionCanBeginInExistingSelection

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(-[TestWKWebView synchronouslyRequestTextInputContextsInRect:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(-[TestWKWebView synchronouslyRequestTextInputContextsInRect:]): Deleted.

Drive-by fix: also fix a build warning by pulling duplicate implementations of this testing helper method into
a common location in WKWebView (TestWebKitAPI), inside of TestWKWebView.h.

  • TestWebKitAPI/Tests/WebKitCocoa/editable-responsive-body.html: Added.
  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView synchronouslyRequestTextInputContextsInRect:]):

  • TestWebKitAPI/ios/UIKitSPI.h:

LayoutTests:

Remove this failing layout test, along with its test expectations. See API test in Tools/ChangeLog for more
details.

  • editing/selection/ios/select-text-in-existing-selection-expected.txt: Removed.
  • editing/selection/ios/select-text-in-existing-selection.html: Removed.
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
1:38 PM Changeset in webkit [281467] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Set test expectations for fast/events/ios/rotation/basic-rotation.html.
<rdar://82259067>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:38 PM Changeset in webkit [281466] by Eric Hutchison
  • 1 edit in trunk/LayoutTests/ChangeLog

Add a new option '--show-window' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=229253

Reviewed by Simon Fraser.

Add the new option so that we can let WKTR show a window with webview.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line):

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionShowWindow):
(WTR::OptionsHandler::OptionsHandler):
(WTR::handleOptionShowWebView): Deleted.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::shouldShowWindow const):
(WTR::TestOptions::shouldShowWebView const): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::finishCreatingPlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::setWindowFrame):

1:29 PM Changeset in webkit [281465] by Alan Bujtas
  • 10 edits in trunk

Simplified text measuring only works with the primary font
https://bugs.webkit.org/show_bug.cgi?id=228617
<rdar://problem/81588175>

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/font-display/font-display-failure-fallback-expected.txt:

Source/WebCore:

This is in preparation for adding fallback font support (IFC).

The reason why this works on trunk is because computeCanUseSimplifiedTextMeasuring() is only used by
the modern line layout codepath which does not support fallback font support yet.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

LayoutTests:

While running DumpRenderTree:

  • DOMContentLoaded event is dispatched (parsing is done, DOM is built)
  • window load event is dispatched (JS, CSS are finished loading)
  • dispatchDidFinishLoad is called (this is when all the loads are complete, including web fonts)

dispatchDidFinishLoad is when DumpRenderTree declares the test complete and takes the snapshot.

Without the early font access (i.e. requesting the font during paint), the window load event and
dispatchDidFinishLoad happen the same time.
As dispatchDidFinishLoad triggers the snapshot, we initiate the font load,
but at this point the test is already declared complete so we are not going to wait for these pending loads.
We simply paint the content with whatever is available.

Now the early font access (at render tree building) triggers the font load which in turn delays the dispatchDidFinishLoad callback.
It also means the snapshot is taken at a later time when the font load is complete.

Let's adjust these test cases to make sure the test framework is not going to wait for the font loads.

  • TestExpectations: Fails both with FF and Chrome (tested locally).
  • fast/text/font-promises-gc-expected.txt:
  • http/tests/webfont/font-loading-system-fallback-visibility-FontRanges.html:
  • http/tests/webfont/font-loading-system-fallback-visibility.html:
1:00 PM Changeset in webkit [281464] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-* fail
https://bugs.webkit.org/show_bug.cgi?id=229389

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-23

  • platform/glib/TestExpectations:
12:38 PM Changeset in webkit [281463] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Pre-formatted content gets distorted when attempting to select content
https://bugs.webkit.org/show_bug.cgi?id=228655
<rdar://81288187>

Reviewed by Simon Fraser.

Source/WebCore:

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

"This 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.
It only has an effect when white-space allows wrapping."

(also see https://trac.webkit.org/changeset/10095/webkit where the wrapping behavior was introduced)

Test: fast/text/no-wrap-in-pre-with-word-wrap.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/no-wrap-in-pre-with-word-wrap-expected.html: Added.
  • fast/text/no-wrap-in-pre-with-word-wrap.html: Added.
12:17 PM Changeset in webkit [281462] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Monterey] fast/animation/request-animation-frame-throttling-detached-iframe.html is failing.
<rdar://80333935>.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:04 PM Changeset in webkit [281461] by Peng Liu
  • 9 edits in trunk/Tools

Add a new option '--show-window' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=229253

Reviewed by Simon Fraser.

Add the new option so that we can let WKTR show a window with webview.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line):

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionShowWindow):
(WTR::OptionsHandler::OptionsHandler):
(WTR::handleOptionShowWebView): Deleted.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::shouldShowWindow const):
(WTR::TestOptions::shouldShowWebView const): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::finishCreatingPlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::setWindowFrame):

11:59 AM Changeset in webkit [281460] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/events/ios/key-events-comprehensive/key-events-meta-shift.html.
<rdar://80385777>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:38 AM Changeset in webkit [281459] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7613.1.1

11:27 AM Changeset in webkit [281458] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Updated test expectations for fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html and fast/events/touch/ios/long-press-then-drag-to-select-text.html.
<rdar://80386523>, <rdar://80386061>.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:
11:00 AM Changeset in webkit [281457] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source

Cherry-pick r281384. rdar://problem/82218757

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:58 AM Changeset in webkit [281456] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.2

10:57 AM Changeset in webkit [281455] by Russell Epstein
  • 4 edits in branches/safari-612.1.29-branch/Source

Cherry-pick r281384. rdar://problem/82218757

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:36 AM Changeset in webkit [281454] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] emitArrayProfilingSiteWithCell should not load indexingType unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=229396

Reviewed by Saam Barati.

emitArrayProfilingSiteWithCell is always loading indexingType after profiling a cell.
But (possibly) this is old code, and there is no reason to do that. This patch removes it.

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitArrayProfilingSiteWithCell):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emit_op_enumerator_get_by_val):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_in_by_val):

10:16 AM Changeset in webkit [281453] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/events/touch/page-scaled-touch-gesture-click.html.
https://bugs.webkit.org/show_bug.cgi?id=168961.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:02 AM Changeset in webkit [281452] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Update test expectations for fast/events/wheelevent-in-frame.html.
https://bugs.webkit.org/show_bug.cgi?id=168961.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:45 AM Changeset in webkit [281451] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/forms/ios/ipad/open-picker-using-keyboard.html and fast/forms/ios/accessory-bar-navigation.html.
<rdar://80391927>, <rdar://80390931>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:41 AM Changeset in webkit [281450] by Wenson Hsieh
  • 5 edits in trunk

REGRESSION (r271146): editing/selection/ios/scrolling-to-focused-element-inside-iframe.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229376
rdar://80384683

Reviewed by Megan Gardner.

Source/WebKit:

This iOS-specific test verifies that tapping on an element that makes itself contenteditable inside of a click
event handler both (1) brings up the software keyboard, and (2) scrolls to reveal the focused, newly editable
element such that it is not obscured by the software keyboard. This test began failing after the changes in
r271146 -- specifically, the fact that the call to Element::setFocus() moved to before the focus event is
dispatched, rather than afterwards.

The following timeline of events (annotated with web and UI processes) illustrates why this happens:

(WEB) 1. The click event on the element inside the subframe is handled; the element is made contentEditable,

and we make it focused, by first calling Element::setFocus and then Element::dispatchFocusEvent.
Right before dispatching the "focus" event, we call out to the client layer, via
WebPage::elementDidFocus, and compute a FocusedElementInformation struct to encode and send to the
UI process in the WebPageProxy::ElementDidFocus IPC message.

  1. In the process of populating this struct in WebPage::focusedElementInformation, we observe that

layout is dirty, and immediately compute and send an EditorState underneath
WebPage::sendEditorStateUpdate().

  1. We then proceed to construct and send FocusedElementInformation to the UI process via

Messages::WebPageProxy::ElementDidFocus.

(UI) 4. We receive the EditorState that was computed and sent in step (2), which contains the up-to-date

state corresponding to the newly focused contentEditable div.

  1. We then receive the FocusedElementInformation computed and sent in step (3), which makes us begin

waiting for the next post-layout EditorState update before zooming to reveal the focused element, by
setting WebPageProxy's m_waitingForPostLayoutEditorStateUpdateAfterFocusingElement flag. However,
this post-layout EditorState after focusing the div never arrives, since we've already computed it
and sent it in step (2).

  1. The software keyboard finishes animating in, causing us to resolve the UIScriptController promise

that we began to await after calling UIHelper.activateAndWaitForInputSessionAt in the test.

(WEB) 7. The test finishes, calls testRunner.notifyDone(), and we destroy the focused subframe and clear

the editable selection as well. This selection change causes us to compute another post-layout
editor state and send it to the UI process.

(UI) 8. The UI process *finally* receives the post-layout EditorState computed in (7). However, it's too

late, since (a) the test has already finished, and (b) the post-layout EditorState is computed after
the editable selection has already been cleared, so it's missing selection rect information anyways.

Prior to r271146, the call to Element::setFocus came *after* step (3), and caused us to compute and send
another EditorState to the UI process, which ensured that an up-to-date post layout EditorState would arrive in
the UI process shortly after step (5).

To fix this, we should avoid immediately computing and sending an EditorState to the UI process in the middle of
WebPage::focusedElementInformation, and instead simply schedule an EditorState during the next rendering
update. This ensures that the editor state triggered during element focus will always arrive after
WebPageProxy::ElementDidFocus in the UI process, rather than before, which allows us to scroll to the correct
selection rect in the UI process when focusing an editable element.

This also has the additional benefit of avoiding redundant EditorState computation and updates in the case where
focus is programmatically thrashed between elements during the same rendering update, since all of the editor
state updates are effectively batched together and dispatched at the end of the current rendering update.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::focusedElementInformation):

LayoutTests:

Adjust test expectations for the layout test, which should now pass.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
9:38 AM Changeset in webkit [281449] by Russell Epstein
  • 8 edits in branches/safari-612.1.29-branch/Source

Versioning.

WebKit-7612.1.29.1

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

[Cygwin] Support Python 3 in run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=229360
<rdar://problem/82192362>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:

(TaskPoolUnittest): Skip some tests on cygwin.

  • Scripts/webkitpy/common/system/abstractexecutive.py:

(AbstractExecutive.command_for_printing): Strings might be bytes on some platforms.

  • Scripts/webkitpy/common/system/path.py:

(_CygPath.convert): Cygwin path process is not unicode.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo._win_version_str): Return Windows version string as unicode string.

9:01 AM Changeset in webkit [281447] by sihui_liu@apple.com
  • 3 edits
    21 adds in trunk/LayoutTests/imported/w3c

Import permissions tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229349

Reviewed by Chris Dumez.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/permissions/META.yml: Added.
  • web-platform-tests/permissions/feature-policy-permissions-query.html: Added.
  • web-platform-tests/permissions/idlharness.any-expected.txt: Added.
  • web-platform-tests/permissions/idlharness.any.html: Added.
  • web-platform-tests/permissions/idlharness.any.js: Added.

(async idl_array):

  • web-platform-tests/permissions/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/permissions/idlharness.any.worker.html: Added.
  • web-platform-tests/permissions/nfc-permission-expected.txt: Added.
  • web-platform-tests/permissions/nfc-permission.html: Added.
  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub-expected.txt: Added.
  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub.html: Added.
  • web-platform-tests/permissions/permissionsstatus-name-expected.txt: Added.
  • web-platform-tests/permissions/permissionsstatus-name.html: Added.
  • web-platform-tests/permissions/screen-wake-lock-permission-expected.txt: Added.
  • web-platform-tests/permissions/screen-wake-lock-permission.html: Added.
  • web-platform-tests/permissions/test-background-fetch-permission-expected.txt: Added.
  • web-platform-tests/permissions/test-background-fetch-permission.html: Added.
  • web-platform-tests/permissions/test-periodic-background-sync-permission-expected.txt: Added.
  • web-platform-tests/permissions/test-periodic-background-sync-permission.html: Added.
  • web-platform-tests/permissions/w3c-import.log: Added.
8:11 AM Changeset in webkit [281446] by Martin Robinson
  • 4 edits in trunk

Sticky position should not use transformed position to compute sticky offset.
https://bugs.webkit.org/show_bug.cgi?id=164292
<rdar://problem/29054773>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate-expected.txt: Update results

of test to show pass.

Source/WebCore:

No new tests. This change is tested by the following WPT test:

web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): When calling localToContainerQuad,
pass 0 for the mode which means that the transformation between coordinate systems does not include
transforms.

8:02 AM Changeset in webkit [281445] by Chris Dumez
  • 8 edits
    2 deletes in trunk

WebKit2 can only have one active navigation policy check for a given frame
https://bugs.webkit.org/show_bug.cgi?id=229012

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline test that is now passing one more check.

  • web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:

Source/WebKit:

WebKit2 could only have one active navigation policy check for a given frame
and there was a FIXME comment about this in the code. This was causing some
WPT tests to timeout in WebKit2 only because those tests would trigger
several navigations (e.g. in new windows) and only the last one would proceed
(earlier ones would get cancelled).

This patch updates the policy checking logic in WebFrame so that we can support
several concurrent policy checks.

No new tests, unskipped / rebaselined existing tests.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::cancelPolicyCheck):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::~WebFrame):
(WebKit::WebFrame::setUpPolicyListener):
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::continueWillSubmitForm):
(WebKit::WebFrame::invalidatePolicyListeners):
(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebFrame.h:

LayoutTests:

Unskip a couple of tests that are no longer timing out in WebKit2.

  • platform/ios-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt: Removed.
  • platform/wk2/TestExpectations:
7:53 AM Changeset in webkit [281444] by commit-queue@webkit.org
  • 6 edits in trunk

Create a RenderLineBreak when BR element has unsupported content data style
https://bugs.webkit.org/show_bug.cgi?id=224849

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-23
Reviewed by Antti Koivisto.

Source/WebCore:

Instead of falling back to RenderElement::createFor(), create a RenderLineBreak just ignoring the unsupported
content data.

  • html/HTMLBRElement.cpp:

(WebCore::HTMLBRElement::createElementRenderer):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::isContentDataSupported):
(WebCore::RenderElement::createFor):

  • rendering/RenderElement.h:

LayoutTests:

  • editing/execCommand/insert-image-in-composed-list-expected.txt: Rebaseline.
7:50 AM Changeset in webkit [281443] by Chris Dumez
  • 7 edits in trunk

HTMLStyleElement should be able to fire the load event more than once
https://bugs.webkit.org/show_bug.cgi?id=228975

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing. This test was already passing in both Firefox and Chrome.

  • web-platform-tests/html/semantics/document-metadata/the-style-element/style_load_event-expected.txt:

Source/WebCore:

HTMLStyleElement should be able to fire the load event more than once. WebKit has a flag
preventing the load event to fire more than once but this behavior is not present in the
HTML specification and doesn't match other browsers.

No new tests, rebaselined existing test.

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):

  • html/HTMLStyleElement.h:

LayoutTests:

Unskip test that is no longer timing out.

7:32 AM Changeset in webkit [281442] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Skip failing test on 32bit (ARMv7/MIPS)
https://bugs.webkit.org/show_bug.cgi?id=229407

Unreviewed test gardening.

Patch by Xan Lopez <Xan Lopez> on 2021-08-23

  • js/script-tests/reserved-words.js:
7:20 AM Changeset in webkit [281441] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Changes: changes are not updated live
https://bugs.webkit.org/show_bug.cgi?id=229153
<rdar://problem/81989328>

Reviewed by Devin Rousso.

Dispatch an event whenever the list of modified styles changes.
Re-layout the Changes details sidebar panel in response to this event
to reflect the latest state of the modified styles.

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.prototype.addModifiedStyle):
(WI.CSSManager.prototype.removeModifiedStyle):

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel.prototype.attached):
(WI.ChangesDetailsSidebarPanel.prototype.detached):

6:22 AM Changeset in webkit [281440] by aboya@igalia.com
  • 9 edits in trunk

[MSE][GStreamer] Implement multi-track support
https://bugs.webkit.org/show_bug.cgi?id=229072

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch adds support for SourceBuffer having more than one track in
the GStreamer port.

This fixes the following LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html
media/media-source/media-source-has-audio-video.html
media/media-source/only-bcp47-language-tags-accepted-as-valid.html

  • platform/graphics/gstreamer/GStreamerCommon.h:

(GstIteratorAdaptor::GstIteratorAdaptor):
(GstIteratorAdaptor::iterator::iterator):
(GstIteratorAdaptor::iterator::operator*):
(GstIteratorAdaptor::iterator::operator++):
(GstIteratorAdaptor::iterator::operator==):
(GstIteratorAdaptor::iterator::operator!=):
(GstIteratorAdaptor::begin):
(GstIteratorAdaptor::end):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::consumeAppsinksAvailableSamples):
(WebCore::AppendPipeline::resetParserState):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::generateTrackId):
(WebCore::AppendPipeline::tryCreateTrackFromPad):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::makeWebKitTrack):
(WebCore::AppendPipeline::Track::initializeElements):
(WebCore::AppendPipeline::hookTrackEvents):
(WebCore::AppendPipeline::streamTypeToString):
(WebCore::AppendPipeline::id): Deleted.
(WebCore::AppendPipeline::trackId): Deleted.
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromStreamingThread): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink): Deleted.
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::sourceBufferPrivate):
(WebCore::AppendPipeline::Track::Track):
(WebCore::AppendPipeline::appsrc):
(WebCore::AppendPipeline::appsinkCaps): Deleted.
(WebCore::AppendPipeline::track): Deleted.
(WebCore::AppendPipeline::appsink): Deleted.
(WebCore::AppendPipeline::demuxerSrcPadCaps): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::setInitialVideoSize):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

LayoutTests:

Update expectations and rebaseline one test is which the buffered
ranges have changed slightly due to the audio track previously
discarded now being parsed.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
12:11 AM Changeset in webkit [281439] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Freetype] Set maximum allowed font size for Freetype
https://bugs.webkit.org/show_bug.cgi?id=228893

Reviewed by Michael Catanzaro.

Maximum allowed font size in Freetype2 is 65535 because x_ppem and y_ppem fields in FreeType structs are of type
'unsigned short'.

  • rendering/style/RenderStyleConstants.h:

Aug 22, 2021:

11:28 PM Changeset in webkit [281438] by ysuzuki@apple.com
  • 38 edits in trunk

[JSC] Remove already-shipped wasm option flags
https://bugs.webkit.org/show_bug.cgi?id=229386

Reviewed by Ross Kirsling.

JSTests:

  • wasm/references/element_active_mod.js:
  • wasm/references/element_parsing.js:
  • wasm/references/externref_globals.js:
  • wasm/references/externref_modules.js:
  • wasm/references/externref_table.js:
  • wasm/references/externref_table_import.js:
  • wasm/references/func_ref.js:
  • wasm/references/globals.js:
  • wasm/references/is_null.js:
  • wasm/references/memory_copy.js:
  • wasm/references/memory_copy_shared.js:
  • wasm/references/memory_fill_shared.js:
  • wasm/references/multitable.js:
  • wasm/references/parse_unreachable.js:
  • wasm/references/table_js_api.js:
  • wasm/references/table_misc.js:
  • wasm/references/validation.js:
  • wasm/stress/immutable-globals.js:
  • wasm/stress/local-ref.js:
  • wasm/stress/mutable-globals.js:
  • wasm/stress/table-grow-table-size.js:

Source/JavaScriptCore:

This patch removes some wasm option flags which are already shipped.

  • runtime/OptionsList.h:
  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseData):
(JSC::Wasm::SectionParser::parseDataCount):

  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • workers/wasm-references.html:
11:22 PM Changeset in webkit [281437] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.1.27.3.7

Tag Safari-612.1.27.3.7.

11:17 PM Changeset in webkit [281436] by bshafiei@apple.com
  • 2 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

Apply patch. rdar://problem/82196634

10:46 PM Changeset in webkit [281435] by bshafiei@apple.com
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.7

10:12 PM Changeset in webkit [281434] by mark.lam@apple.com
  • 2 edits in tags/Safari-612.1.27.3.5/Source/JavaScriptCore

Build fix for bad cherry-pick of r281178.
rdar://problem/82083485

Not reviewed.

  • b3/testb3_3.cpp:
9:25 PM Changeset in webkit [281433] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Unreviewed test gardening.

  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
8:55 PM Changeset in webkit [281432] by Alan Bujtas
  • 6 edits in trunk

[LFC][IFC] Add support for vertical-align: super
https://bugs.webkit.org/show_bug.cgi?id=228235

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

LayoutTests:

  • platform/mac/css1/text_properties/vertical_align-expected.txt:
7:24 PM Changeset in webkit [281431] by Kate Cheney
  • 9 edits
    8 adds in trunk

Report correct blocked URI in CSP violation report
https://bugs.webkit.org/show_bug.cgi?id=226316
<rdar://problem/78552912>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html

http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/DocumentThreadableLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::reportViolation const):

  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

  • NetworkProcess/NetworkLoadChecker.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.

WebKitLegacy and Win have different console logging.

6:41 PM Changeset in webkit [281430] by Lauro Moura
  • 5 edits in trunk

[WPE][WebDriver] Basic fullscreen support for the headless backend
https://bugs.webkit.org/show_bug.cgi?id=229380

Reviewed by Adrian Perez de Castro.

Tools:

r280774 added support for fullscreen in the WindowViewBackend, but
many webdriver tests started failing as they run in the headless
backend.

This commits adds basic support in HeadlessBackend to make some
tests pass. Currently, just storing the fullscreen state and
forwarding the events to the WPE backend functions.

A number of tests are still failing due to the missing multiple window
support (required through the session fixtures), but also there are
still some failing that expect the view to be started in
non-fullscreen mode, which does not happen in the headless backend.

  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::onDOMFullScreenRequest):
(WPEToolingBackends::HeadlessViewBackend::dispatchFullscreenEvent):

  • wpe/backends/HeadlessViewBackend.h:

WebDriverTests:

  • TestExpectations.json: Skip some tests still failing, mainly due to multiple window support missing.
6:06 PM Changeset in webkit [281429] by ysuzuki@apple.com
  • 147 edits in trunk

[JSC] Remove already-shipped JS feature flags
https://bugs.webkit.org/show_bug.cgi?id=229387

Reviewed by Ross Kirsling.

JSTests:

  • microbenchmarks/class-fields-private/get-private-name.js:
  • microbenchmarks/class-fields-private/monomorphic-get-private-field.js:
  • microbenchmarks/class-fields-private/polymorphic-get-private-field.js:
  • microbenchmarks/class-fields-private/polymorphic-put-private-field.js:
  • microbenchmarks/class-fields-private/put-private-field.js:
  • stress/class-fields-private-as-function.js:
  • stress/class-fields-private-cached-bytecode.js:
  • stress/class-fields-private-freeze-out-of-line.js:
  • stress/class-fields-private-freeze.js:
  • stress/class-fields-private-harmony.js:
  • stress/class-fields-private-on-proxy.js:
  • stress/class-fields-private-out-of-line.js:
  • stress/class-fields-private-prevent-extensions-out-of-line.js:
  • stress/class-fields-private-prevent-extensions.js:
  • stress/class-fields-private-seal-out-of-line.js:
  • stress/class-fields-private-seal.js:
  • stress/class-fields-private-use-eval.js:
  • stress/class-fields-static-harmony.js:
  • stress/class-fields-static-private-harmony.js:
  • stress/class-fields-stress-instance.js:
  • stress/class-private-method-access.js:
  • stress/dfg-get-private-name-by-id-generic.js:
  • stress/dfg-get-private-name-by-id-osr-bad-identifier.js:
  • stress/dfg-get-private-name-by-id.js:
  • stress/dfg-get-private-name-by-offset-osr-bad-identifier.js:
  • stress/dfg-get-private-name-by-offset-osr-bad-structure.js:
  • stress/dfg-get-private-name-by-offset.js:
  • stress/dfg-get-private-name-by-val-generic.js:
  • stress/dfg-put-private-name-check-barrier-insertion.js:
  • stress/dfg-put-private-name-compiled-as-put-by-id-direct.js:
  • stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js:
  • stress/ftl-get-private-name-by-id.js:
  • stress/ftl-get-private-name-by-offset-multi.js:
  • stress/get-private-name-cache-failure.js:
  • stress/get-private-name-with-constant-ident.js:
  • stress/get-private-name-with-constant-symbol.js:
  • stress/get-private-name-with-different-symbol.js:
  • stress/get-private-name-with-primitive.js:
  • stress/get-private-name.js:
  • stress/optional-chaining-and-private-fields.js:
  • stress/private-accesor-duplicate-name-early-errors.js:
  • stress/private-accessor-static-non-static.js:
  • stress/private-brand-installed-after-super-call-from-arrow-function.js:
  • stress/private-brand-installed-after-super-call-from-eval.js:
  • stress/private-getter-brand-check.js:
  • stress/private-getter-inner-class.js:
  • stress/private-in-error.js:
  • stress/private-in.js:
  • stress/private-members-get-and-set.js:
  • stress/private-method-and-field-named-constructor.js:
  • stress/private-method-brand-check.js:
  • stress/private-method-change-attribute-from-branded-structure.js:
  • stress/private-method-change-prototype-from-branded-structure.js:
  • stress/private-method-check-private-brand-ic.js:
  • stress/private-method-check-structure-miss.js:
  • stress/private-method-comparison.js:
  • stress/private-method-delete-property-from-branded-structure.js:
  • stress/private-method-extends-brand-check.js:
  • stress/private-method-get-and-call.js:
  • stress/private-method-invalid-multiple-brand-installation.js:
  • stress/private-method-invalidate-compiled-with-constant-symbol.js:
  • stress/private-method-nested-class.js:
  • stress/private-method-on-sealed-objects.js:
  • stress/private-method-on-uncacheable-dictionary.js:
  • stress/private-method-polymorphic-with-constant-symbol.js:
  • stress/private-method-set-brand-should-have-write-barrier.js:
  • stress/private-method-untyped-use.js:
  • stress/private-method-with-uncacheable-dictionary-transition.js:
  • stress/private-methods-and-accessors-postfix-node.js:
  • stress/private-methods-and-accessors-prefix-node.js:
  • stress/private-methods-inline-cache.js:
  • stress/private-methods-megamorphic-ic.js:
  • stress/private-methods-on-proxy.js:
  • stress/private-methods-poly-ic-multiple-classes.js:
  • stress/private-methods-poly-ic-single-class.js:
  • stress/private-name-access-in-computed-property.js:
  • stress/private-names-available-on-direct-eval.js:
  • stress/private-names-available-on-eval-during-field-initialization.js:
  • stress/private-setter-brand-check.js:
  • stress/private-setter-inner-class.js:
  • stress/put-by-val-direct-addprivate.js:
  • stress/put-by-val-direct-putprivate.js:
  • stress/put-private-name-by-id-set-do-not-add-structure-trasition.js:
  • stress/put-private-name-check-structure-miss.js:
  • stress/put-private-name-constant-folding-to-mult-put-by-offset.js:
  • stress/put-private-name-constant-folding-to-put-by-offset.js:
  • stress/put-private-name-generic.js:
  • stress/put-private-name-invalid-define.js:
  • stress/put-private-name-invalid-store.js:
  • stress/put-private-name-invalidate-compiled-with-constant-symbol.js:
  • stress/put-private-name-polymorphic-with-constant-symbol.js:
  • stress/put-private-name-untyped-use.js:
  • stress/put-private-name-with-constant-symbol.js:
  • stress/put-private-name-with-different-identifier.js:
  • stress/put-private-name-with-primitive.js:
  • stress/static-private-methods-and-accessor-inner-class.js:
  • stress/static-private-methods-and-accessor-multiple-evaluation.js:
  • stress/static-private-methods-and-accessors-postfix-node.js:
  • stress/static-private-methods-and-accessors-prefix-node.js:
  • stress/v8-cleanup-from-different-realm.js:
  • stress/v8-cleanup-proxy-from-different-realm.js:
  • stress/v8-finalization-registry-basics.js:
  • stress/v8-finalizationregistry-and-weakref.js:
  • stress/v8-finalizationregistry-keeps-holdings-alive.js:
  • stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js:
  • stress/v8-multiple-dirty-finalization-registries.js:
  • stress/v8-reentrant-gc-from-cleanup.js:
  • stress/v8-stress-finalizationregistry-dirty-enqueue.js:
  • stress/v8-undefined-holdings.js:
  • stress/v8-unregister-after-cleanup.js:
  • stress/v8-unregister-before-cleanup.js:
  • stress/v8-unregister-called-twice.js:
  • stress/v8-unregister-inside-cleanup2.js:
  • stress/v8-unregister-inside-cleanup3.js:
  • stress/v8-unregister-many.js:
  • stress/v8-weak-unregistertoken.js:
  • test262/config.yaml:

Source/JavaScriptCore:

These features are already shipped. So removing these runtime flags to clean up source code and
remove untested path.

  • API/JSObjectRef.cpp:

(JSObjectMakeError):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallValueNode::emitBytecode):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseBinaryExpression):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):

  • runtime/AggregateErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.h:
  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Tools:

  • Scripts/run-jsc-benchmarks:

LayoutTests:

  • js/script-tests/weakref-async-is-collected.js:
  • js/script-tests/weakref-eventually-collects-values.js:
  • js/script-tests/weakref-finalizationregistry.js:
  • js/script-tests/weakref-microtasks-dont-collect.js:
  • js/script-tests/weakref-weakset-consistency.js:
  • js/weakref-async-is-collected.html:
  • js/weakref-eventually-collects-values.html:
  • js/weakref-finalizationregistry.html:
  • js/weakref-microtasks-dont-collect.html:
  • js/weakref-weakset-consistency.html:
  • webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html:
6:02 PM Changeset in webkit [281428] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.28.5

Tag Safari-612.1.28.5.

5:59 PM Changeset in webkit [281427] by Kocsen Chung
  • 4 edits in branches/safari-612.1.28-branch/Source

Cherry-pick r281384. rdar://problem/82224622

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

5:52 PM Changeset in webkit [281426] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

Tiny cleanups in CSS parsing code
https://bugs.webkit.org/show_bug.cgi?id=229369

Reviewed by Alan Bujtas.

Use references for non-nullable pointers, and pass nullptr instead of 0 to other pointer parameters.

No new tests because there is no behavior change.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::parseString):

  • css/StyleSheetContents.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSheet):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parseStyleSheet):

  • css/parser/CSSParserImpl.h:
5:46 PM Changeset in webkit [281425] by Kocsen Chung
  • 8 edits in branches/safari-612.1.28-branch/Source

Versioning.

WebKit-7612.1.28.5

5:03 PM Changeset in webkit [281424] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][IFC] Add support for out-of-flow box static positioning
https://bugs.webkit.org/show_bug.cgi?id=229103

Reviewed by Antti Koivisto.

Source/WebCore:

This patch is in preparation for enabling positioned content for IFC handling.

In this patch we compute the static position for out-of-flow content inside the inline formatting context.
As per spec, the static position of an out-of-flow box is computed as if the position was set to static.
However it does not mean that the out-of-flow box should be involved in the inline layout process.
Instead we figure out this static position after the inline layout by looking at
the previous sibling (or parent) box's geometry and place the out-of-flow box at the logical right position.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration):
(WebCore::Layout::InlineFormattingContext::computeStaticPositionForOutOfFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::collectContentIfNeeded):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:

LayoutTests:

  • fast/inline/out-of-flow-with-static-position-in-ifc-expected.html: Added.
  • fast/inline/out-of-flow-with-static-position-in-ifc.html: Added.
4:45 PM Changeset in webkit [281423] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

REGRESSION(r281389): canUseSimplifiedTextMeasuring() needs to match with WidthIterator::applyCSSVisibilityRules()
https://bugs.webkit.org/show_bug.cgi?id=229388

Reviewed by Alan Bujtas.

WidthIterator::applyCSSVisibilityRules() has some special handling for specific characters.
If those characters are present, we need to make sure we actually use WidthIterator::applyCSSVisibilityRules()
instead of taking the fast path in FontCascade::widthForSimpleText().

This is split out from https://bugs.webkit.org/show_bug.cgi?id=215643, and will be tested by that bug's test.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):
(WebCore::WidthIterator::applyCSSVisibilityRules):

  • platform/graphics/WidthIterator.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

3:18 PM Changeset in webkit [281422] by Alan Bujtas
  • 25 edits in trunk

[LFC][IFC] Add support for vertical-align: sub
https://bugs.webkit.org/show_bug.cgi?id=228217

Reviewed by Antti Koivisto.

Source/WebCore:

Adjust legacy's integral alignment too.

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

LayoutTests:

  • platform/mac/css1/text_properties/vertical_align-expected.txt:
  • platform/mac/fast/selectors/018b-expected.txt:
  • platform/mac/fast/text/whitespace/020-expected.txt:
3:09 PM Changeset in webkit [281421] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, speculative fix for old ICU
https://bugs.webkit.org/show_bug.cgi?id=229385

  • stress/intl-locale-info.js:

(shouldBe):

2:26 PM Changeset in webkit [281420] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

[iOS] Fix and reenable several layout tests to account for the changes in rdar://80384564
https://bugs.webkit.org/show_bug.cgi?id=229316

Reviewed by Tim Horton.

Source/WebKit:

After rdar://80384564, UIKit's non-editable text tap recognizer will no longer cause us to clear the active text
selection range when tapping outside of currently selected text in the page. Instead, WebKit's synthetic click
gesture recognizer should now manages clearing the selection (unless the page has prevented the "mousedown"
event).

With just the UIKit-side change, this already mostly works as expected since commitPotentialTapFailed() clears
out non-editable selections. However, there is one scenario in which we do want to clear out the selection when
tapping that isn't covered by the synthetic click gesture: when tapping on an element that does not handle or
prevent "mousedown"; this behavior is exercised by the existing layout test
editing/selection/ios/hide-selection-after-tap-on-prevent-default-element.html. To preserve this behavior, we
add a call to clearSelectionAfterTapIfNeeded() when completing a synthetic click, in the case where the
"mousedown" event was not swallowed.

These 3 tests should pass after the changes in rdar://80384564:

  • editing/selection/ios/change-selection-by-tapping-with-existing-selection.html
  • editing/selection/preserve-selection-when-clicking-button.html
  • editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html

And these WebKit-side changes are needed to keep these 2 tests passing:

  • editing/selection/ios/hide-selection-after-tap-on-prevent-default-element.html
  • fast/images/text-recognition/ios/reselect-word-in-image-overlay.html
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):

LayoutTests:

See WebKit/ChangeLog for more details.

  • fast/images/text-recognition/ios/reselect-word-in-image-overlay.html:

Add a short delay to avoid timing out, due to the second long press gesture to select text not triggering.

  • platform/ios-14/TestExpectations:

Remove iOS 14-specific PASS expectations, and remove the more generic FAIL expectation in the ios directory.
Instead, just mark these three layout tests as FAIL on iOS 15, and PASS elsewhere.

  • platform/ios-15/TestExpectations: Added.
  • platform/ios/TestExpectations:
2:04 PM Changeset in webkit [281419] by mmaxfield@apple.com
  • 10 edits
    61 moves in trunk

Control characters (Unicode category Cc) should be rendered visibly
https://bugs.webkit.org/show_bug.cgi?id=149128
<rdar://problem/79224941>

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

These tests were erroneously marked as reference tests, when they should be reference-mismatch tests.

  • web-platform-tests/css/css-text/white-space/control-chars-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-001-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-002-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-003-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-003-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-004-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-004-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-005-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-006-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-006-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-007-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-007-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-008-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-008-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-010-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-010-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-011-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-011-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-012-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-012-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-013-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-013-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-014-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-014-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-015-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-015-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-016-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-016-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-017-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-017-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-018-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-018-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-019-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-019-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01A-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01D-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-07F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-07F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-080-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-080-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-081-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-081-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-082-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-082-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-083-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-083-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-084-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-084-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-085-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-085-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-086-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-086-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-087-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-087-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-088-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-088-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-089-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-089-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08A-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08D-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-090-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-090-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-091-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-091-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-092-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-092-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-093-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-093-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-094-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-094-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-095-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-095-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-096-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-096-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-097-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-097-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-098-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-098-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-099-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-099-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09A-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09D-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09F-expected.html.

Source/WebCore:

We can map these glyphs to the .notdef glyph, which is (supposed to be) visible.

Tests: fast/dom/52776.html

fast/text/fixed-pitch-control-characters.html
fast/text/wide-zero-width-space.html
fast/text/zero-width-characters.html
imported/w3c/web-platform-tests/css/css-text/white-space*

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

LayoutTests:

Update existing tests.

  • fast/text/fixed-pitch-control-characters-expected.txt:
  • fast/text/wide-zero-width-space.html:
  • fast/text/zero-width-characters.html:
  • platform/ios/fast/dom/52776-expected.txt:
  • platform/mac/fast/dom/52776-expected.txt:
  • platform/mac/fast/text/wide-zero-width-space-expected.txt: This actually shows that there's a difference between the fast text codepath and the complex text codepath, but that's okay for now because the complex text codepath is going away. Also, it's not practical to fix this in the complex text codepath, because that would require a CoreText change. So, for now, we can just encode the behavior difference in our test, and when the complex codepath finally goes away, this test will be updated to be working correctly again.
1:47 PM Changeset in webkit [281418] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.3.6

Tag Safari-612.1.27.3.6.

1:43 PM Changeset in webkit [281417] by Kocsen Chung
  • 4 edits in branches/safari-612.1.27.3-branch/Source

Cherry-pick r281384. rdar://problem/82218746

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

1:41 PM Changeset in webkit [281416] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.6

1:33 PM Changeset in webkit [281415] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.2.4

Tag Safari-612.1.27.2.4.

1:29 PM Changeset in webkit [281414] by Kocsen Chung
  • 4 edits in branches/safari-612.1.27.2-branch/Source

Cherry-pick r281384. rdar://problem/82218737

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

1:28 PM Changeset in webkit [281413] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.2-branch/Source

Versioning.

WebKit-7612.1.27.2.4

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

[git-webkit] Add pull-request command (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.modified): Return a list of modified files in the current checkout.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add 'git diff' mock commands.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_modified):
(TestGit.test_modified_no_staged):
(TestGit.test_modified_staged):

12:50 PM Changeset in webkit [281411] by Kocsen Chung
  • 1 copy in tags/Safari-607.3.15

Tag Safari-607.3.15.

12:50 PM Changeset in webkit [281410] by Kocsen Chung
  • 1 copy in tags/Safari-611.3.10.0.2

Tag Safari-611.3.10.0.2.

12:49 PM Changeset in webkit [281409] by Kocsen Chung
  • 1 copy in tags/Safari-611.3.10.1.7

Tag Safari-611.3.10.1.7.

12:49 PM Changeset in webkit [281408] by Kocsen Chung
  • 1 copy in tags/Safari-611.4.1.0.2

Tag Safari-611.4.1.0.2.

12:48 PM Changeset in webkit [281407] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.0.30

Tag Safari-612.1.27.0.30.

10:25 AM Changeset in webkit [281406] by Kocsen Chung
  • 4 edits in branches/safari-607-branch/Source

Cherry-pick r281384. rdar://problem/82218742

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:25 AM Changeset in webkit [281405] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/WTF

Cherry-pick r242732. rdar://problem/82218742

Crash under WebCore::IDBDatabase::connectionToServerLost
https://bugs.webkit.org/show_bug.cgi?id=195563
<rdar://problem/37193655>

CrossThreadTask should protect callee if it is ThreadSafeRefCounted.

Reviewed by Geoffrey Garen.

  • wtf/CrossThreadTask.h: (WTF::createCrossThreadTask):

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

10:22 AM Changeset in webkit [281404] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.0-branch/Source

Cherry-pick r281384. rdar://problem/82218729

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:15 AM Changeset in webkit [281403] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.0-branch/Source

Versioning.

WebKit-7611.3.10.0.2

10:08 AM Changeset in webkit [281402] by Kocsen Chung
  • 33 edits
    2 deletes in branches/safari-611.3.10.0-branch

Revert to original content from 611.3.10.0.1

9:38 AM Changeset in webkit [281401] by Kocsen Chung
  • 4 edits in branches/safari-612.1.27.0-branch/Source

Cherry-pick r281384. rdar://problem/82218749

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

9:35 AM Changeset in webkit [281400] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.30

9:29 AM Changeset in webkit [281399] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Add pull-request command (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git): Match BitBucket ssh urls when constructing remotes.

8:35 AM Changeset in webkit [281398] by Simon Fraser
  • 18 edits in trunk/Source/WebKit

Use the strongly typed PageGroupIdentifier in place of uint64_t
https://bugs.webkit.org/show_bug.cgi?id=229356

Reviewed by Alex Christensen.

Replace uses of uint64_t for page group identifiers with PageGroupIdentifier.

There are two places where we convert between StorageNamespaceIdentifier and
PageGroupIdentifier because, as the comments state, those are equivalent.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/IdentifierTypes.h:
  • Shared/WebPageGroupData.cpp:

(WebKit::WebPageGroupData::decode):

  • Shared/WebPageGroupData.h:
  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::get):
(WebKit::pageGroupData):
(WebKit::generatePageGroupID): Deleted.

  • UIProcess/WebPageGroup.h:

(WebKit::WebPageGroup::pageGroupID const):

  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::getOrCreate):
(WebKit::WebDatabaseProvider::WebDatabaseProvider):

  • WebProcess/Databases/WebDatabaseProvider.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPageGroupProxy.h:

(WebKit::WebPageGroupProxy::pageGroupID const):
(WebKit::WebPageGroupProxy::localStorageNamespaceIdentifier const):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::webPageGroup):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::pageGroupID const):

  • WebProcess/WebStorage/StorageNamespaceImpl.h:
12:35 AM Changeset in webkit [281397] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r280984 and r280996.
https://bugs.webkit.org/show_bug.cgi?id=229384

Speedometer2 0.3-0.5% regression

Reverted changesets:

"Update ARM64EHash"
https://bugs.webkit.org/show_bug.cgi?id=228962
https://commits.webkit.org/r280984

"Refactor some ARM64EHash code."
https://bugs.webkit.org/show_bug.cgi?id=229054
https://commits.webkit.org/r280996

12:25 AM Changeset in webkit [281396] by Kocsen Chung
  • 8 edits in branches/safari-611.4.1.0-branch/Source

Versioning.

WebKit-7611.4.1.0.2

12:19 AM Changeset in webkit [281395] by Kocsen Chung
  • 1 copy in branches/safari-611.4.1.0-branch

New branch.

12:10 AM Changeset in webkit [281394] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.0-branch/Source

Cherry-pick r281384. rdar://problem/82195071

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

Aug 21, 2021:

11:23 PM Changeset in webkit [281393] by Kocsen Chung
  • 7 edits in branches/safari-607-branch/Source

Versioning.

WebKit-7607.3.15

11:22 PM Changeset in webkit [281392] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.1-branch/Source

Cherry-pick r281384. rdar://problem/82195071

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:52 PM Changeset in webkit [281391] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.7

10:46 PM Changeset in webkit [281390] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.0-branch/Source

Versioning.

WebKit-7611.4.0.2

10:41 PM Changeset in webkit [281389] by mmaxfield@apple.com
  • 10 edits
    3 adds in trunk

overwriteCodePoint() in createAndFillGlyphPage() is wrong
https://bugs.webkit.org/show_bug.cgi?id=215643
<rdar://problem/67430461>

Reviewed by Alan Bujtas.

Source/WebCore:

The CSS spec says that certain characters have to be invisible. Previously, we were doing this
by just treating these characters as if they were the zero width space character. However, this
is wrong for 2 reasons:

  1. If the primary font supports the desired character but doesn't support the zero width space

character, we'll fallback past it and trigger a download for secondary fonts until
we find one that supports the ZWS character (which the page didn't even ask for!)

  1. Shaping is Turing-complete, and expects that the correct glyphIDs are fed into the shaper.

We can't just arbitrarily swap out glyphIDs before shaping just because we feel like it.

Instead, the solution is to handle these invisible characters after font fallback, and after
shaping. This patch does it just like we handle adding letter-spacing, word-spacing, and
justification after shaping - by iterating over the glyphs output by the shaper and seeing if
any need to be adjusted.

This patch also includes a fix for the situation where the glyph buffer might be left in an
inconsistent state, where the array of glyphs is shorter than the array of characters -
this new codepath added in this patch revealed this existing problem, and fixes it here too.

Test: fast/text/zwj-ligature.html

  • platform/graphics/Font.cpp:

(WebCore::createAndFillGlyphPage):
(WebCore::overrideControlCharacters): Deleted.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::glyphAt const):
(WebCore::GlyphBuffer::deleteGlyphWithoutAffectingSize):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):
(WebCore::WidthIterator::advance):

  • platform/graphics/WidthIterator.h:

Source/WTF:

  • wtf/unicode/CharacterNames.h:

LayoutTests:

  • fast/text/resources/Ahem-GSUB-ligatures.ttf: Added.
  • fast/text/zwj-ligature-expected.html: Added.
  • fast/text/zwj-ligature.html: Added.
  • platform/mac/fast/text/format-control-expected.txt: Progression! A new ligature is formed that wasn't formed before.

Also, this ligature is formed in both Chrome and Firefox, so we match them now.

  • platform/win/TestExpectations:
9:28 PM Changeset in webkit [281388] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Do not create an InlineFormattingContext object for constructing display lines and runs
https://bugs.webkit.org/show_bug.cgi?id=228061

Reviewed by Sam Weinig.

We've got all we need in the inlineFormattingState object.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

9:24 PM Changeset in webkit [281387] by Alan Bujtas
  • 12 edits in trunk

[LFC][IFC] Add support for -webkit-text-security: disc
https://bugs.webkit.org/show_bug.cgi?id=229047

Reviewed by Antti Koivisto.
Source/WebCore:

The disc glyph affects layout, so let's replace the text before we start measuring the inline content.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Let's dump the actual disc characters.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
8:31 PM Changeset in webkit [281386] by Alan Bujtas
  • 5 edits in trunk

[IFC][Integration] Enable modern line layout for placeholder elements
https://bugs.webkit.org/show_bug.cgi?id=228887

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently placeholders don't do strange things anymore (this check is originated in SLL).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

LayoutTests:

  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
8:26 PM Changeset in webkit [281385] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test fast/visual-viewport/resize-event-fired-window-resized.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229379

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:33 PM Changeset in webkit [281384] by sihui_liu@apple.com
  • 4 edits in trunk/Source

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:
5:26 PM Changeset in webkit [281383] by ysuzuki@apple.com
  • 10 edits in trunk

[JSC] Remove Intl runtime feature flags for already shipped ones
https://bugs.webkit.org/show_bug.cgi?id=229371

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-datetimeformat-day-period.js:
  • test262/config.yaml:

Source/JavaScriptCore:

Since they are already shipped, we should remove these runtime flags.

  • builtins/DatePrototype.js:

(globalPrivate.toDateTimeOptionsAnyAll):
(globalPrivate.toDateTimeOptionsTimeTime):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::toDateTimeOptionsAnyDate):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::resolvedOptions const):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/OptionsList.h:
4:01 PM Changeset in webkit [281382] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Group non-standard CSS properties
https://bugs.webkit.org/show_bug.cgi?id=228855
<rdar://problem/81880442>

Reviewed by Antti Koivisto.

List of unsupported non-standard CSS properties (consider it a priority list).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

3:34 PM Changeset in webkit [281381] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229372

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:04 PM Changeset in webkit [281380] by pvollan@apple.com
  • 6 edits in trunk/Source

[Win] Crash under FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=228186

Reviewed by Myles C. Maxfield.

Source/WebCore:

Add null check to resolve crash in FontCache::lastResortFallbackFont. Additionally, return early in BitmapImage::getHBITMAPOfSize
when the bits per pixel in the bitmap is of unexpected size, since that will cause a crash under this function. This can happen
if an event is being handled while already in the Windows paint handler.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::lastResortFallbackFont):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::CGContextWithHDC):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

Source/WebKitLegacy/win:

Add null check for bitmapDC. Proceeding without a valid bitmapDC will cause a crash. When painting is being done while already in the Windows paint handler,
we can end up with a bitmapDC which is null.

  • WebView.cpp:

(WebView::paintIntoBackingStore):

12:19 PM Changeset in webkit [281379] by Jonathan Bedard
  • 3 edits
    2 adds in trunk/Tools

[git-webkit] Add pull-request command (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version, export pull-request.
  • Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest.State):
(PullRequest.create_body): Create pull-request body from commits and comment.
(PullRequest.parse_body): Turn a body from a pull-request into a comment string and partial commits.
(PullRequest.init):
(PullRequest.repr):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

(TestPullRequest):
(TestPullRequest.test_representation):
(TestPullRequest.test_create_body_single):
(TestPullRequest.test_parse_body_single):
(TestPullRequest.test_create_body_multiple):
(TestPullRequest.test_parse_body_multiple):
(TestPullRequest.test_create_body_empty):
(TestPullRequest.test_parse_body_empty):
(TestPullRequest.test_create_body_comment):
(TestPullRequest.test_parse_body_single):

12:18 PM Changeset in webkit [281378] by mmaxfield@apple.com
  • 8 edits
    3 adds in trunk

[Cocoa] Single characters don't get shaped in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=186804

Reviewed by Alan Bujtas.

Source/WebCore:

Previously, single characters weren't shaped in the fast text codepath,
because shaping in the fast text codepath was just for kerning and
ligatures. Kerning didn't need to shape individual characters because
kerning only applies to pairs of characters, and ligatures didn't need
to shape individual characters because two characters are required to
form a ligature. However, now that we want to replace the complex text
codepath with a new-and-improved fast text codepath, we have to perform
all shaping in the fast text codepath, regardless of how many characters
are present.

Test: fast/text/single-character-shaping.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::shouldApplyFontTransforms const): Deleted.

  • platform/graphics/WidthIterator.h:
  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::applyTransforms): Keep kerning disabled for single glyphs,
because of performance. This will be able to be removed when rdar://82195405
is fixed.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):

Tools:

Huge thanks to Laurence Penney to contributing this test font!!!

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

LayoutTests:

Huge thanks to Laurence Penney to contributing this test font!!!

  • fast/text/resources/UniversTofu-GSUB-rvrn.ttf: Added. The license is Apache 2.0.
  • fast/text/single-character-shaping-expected.html: Added.
  • fast/text/single-character-shaping.html: Added.
11:19 AM Changeset in webkit [281377] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Add painting support for vertical text content
https://bugs.webkit.org/show_bug.cgi?id=228940

Reviewed by Antti Koivisto.

Translate the logical layout coordinates to physical paint coordinates by taking the writing mode into account.
(e.g. writing-mode: vertical-rl;

run logical rect: [0, 0][20x18]
in a flipped block box: [10, 10][100x50]
with the paint offset: [8, 8]

translates to: [90, 8][20x18]

)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):

  • layout/integration/LayoutIntegrationLineLayout.h:
11:15 AM Changeset in webkit [281376] by Simon Fraser
  • 17 edits
    1 add in trunk/Source

Use MediaKeySystemRequestIdentifier, rather than mysterious uint64_t values, in WebKit
https://bugs.webkit.org/show_bug.cgi?id=229310

Reviewed by Youenn Fablet.

WebCore already had an ObjectIdentifer<> type for media system key requests, MediaKeySystemRequestIdentifier.
Use it in the WebKit layer.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp:

(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:
  • UIProcess/MediaKeySystemPermissionRequestProxy.cpp:

(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):

  • UIProcess/MediaKeySystemPermissionRequestProxy.h:

(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp:

(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):

  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:17 AM Changeset in webkit [281375] by ysuzuki@apple.com
  • 12 edits
    1 add in trunk

[JSC] Intl.DisplayNames v2
https://bugs.webkit.org/show_bug.cgi?id=227832

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-displaynames-v2.js: Added.

(shouldBe):
(shouldThrow):
(vm.icuVersion):

  • stress/intl-displaynames.js:

(vm.icuVersion):

  • test262/config.yaml:
  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements Intl.DisplayNames v2[1].
Newly added names are calendar names and date time field names.
For the language name, language display option is added.

[1]: https://github.com/tc39/intl-displaynames-v2

  • runtime/CommonIdentifiers.h:
  • runtime/IntlCache.cpp:

(JSC::IntlCache::getFieldDisplayName):

  • runtime/IntlCache.h:
  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):
(JSC::IntlDisplayNames::of const):
(JSC::IntlDisplayNames::resolvedOptions const):
(JSC::IntlDisplayNames::typeString):
(JSC::IntlDisplayNames::languageDisplayString):

  • runtime/IntlDisplayNames.h:
  • runtime/IntlObject.cpp:

(JSC::isUnicodeLocaleIdentifierType):
(JSC::canonicalizeUnicodeLocaleID):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):
(JSC::mapBCP47ToICUCalendarKeyword):
(JSC::mapICUCollationKeywordToBCP47):
(JSC::canonicalizeLanguageTag): Deleted.

  • runtime/IntlObject.h:
7:33 AM Changeset in webkit [281374] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Intl Locale Info
https://bugs.webkit.org/show_bug.cgi?id=227830

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale-info.js: Added.

(shouldBe):
(throw.new.Error):
(let.enGB.new.Intl.Locale.shouldBe):
(let.l.new.Intl.Locale.shouldBe):

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements Intl.Locale's extension (Intl Locale Info proposal)[1], which is already stage 3.
Intl.Locale#{calendars,collations,hourCycles,numberingSystems,timeZones} can return array of preferred
configuration for the given locale. And Intl.Locale#textInfo can return text layout direction and Intl.Locale#weekInfo
can return weekday information (e.g. when weekend starts).

[1]: https://github.com/tc39/proposal-intl-locale-info

  • runtime/IntlLocale.cpp:

(JSC::createArrayFromStringVector):
(JSC::IntlLocale::calendars):
(JSC::IntlLocale::collations):
(JSC::IntlLocale::hourCycles):
(JSC::IntlLocale::numberingSystems):
(JSC::IntlLocale::timeZones):
(JSC::IntlLocale::textInfo):
(JSC::IntlLocale::weekInfo):

  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):

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

[IFC][Integration] Do not scan the content for overflowing glyph when line-box-contain is set to glyph
https://bugs.webkit.org/show_bug.cgi?id=228895
<rdar://problem/81651487>

Reviewed by Antti Koivisto.

This is in preparation for removing content scanning completely.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):

  • layout/integration/LayoutIntegrationCoverage.h:
6:42 AM Changeset in webkit [281372] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Fix spelling: MidWorkdBreak -> MidWordBreak

Unreviewed.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

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

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::midWordBreak):
(WebCore::Layout::TextUtil::midWorkdBreak): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
6:02 AM Changeset in webkit [281371] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Extend Intl TimeZoneName Option
https://bugs.webkit.org/show_bug.cgi?id=227831

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-extended-timezone-names.js: Added.

(shouldBe):
(timeZoneTest):

  • test262/config.yaml:

Source/JavaScriptCore:

https://github.com/tc39/proposal-intl-extend-timezonename

This patch implements Extend Intl TimeZoneName proposal, which adds "shortOffset", "longOffset", "shortGeneric", "longGeneric"
timeZoneName variants.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::timeZoneNameString):

  • runtime/IntlDateTimeFormat.h:
5:28 AM Changeset in webkit [281370] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable String,TypedArray#at
https://bugs.webkit.org/show_bug.cgi?id=229354

Reviewed by Saam Barati.

Enable String and TypedArray's at method.

  • runtime/OptionsList.h:
5:10 AM Changeset in webkit [281369] by ysuzuki@apple.com
  • 11 edits in trunk

[JSC] Enable Array#findLast method
https://bugs.webkit.org/show_bug.cgi?id=229355

Reviewed by Saam Barati.

JSTests:

  • stress/unscopables.js:

Source/JavaScriptCore:

This patch enables Array#findLast and Array#findLastIndex methods.

(JSC::ArrayPrototype::finishCreation):

  • runtime/OptionsList.h:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-unscopables-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-unscopables-properties.js:
12:56 AM Changeset in webkit [281368] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GLIB] Do not assume log success in apply-build-revision-to-files
https://bugs.webkit.org/show_bug.cgi?id=229335

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-08-21
Reviewed by Philippe Normand.

If the origin reference does not exist for any reason, this will
fail the build. Since we have no reference point, just assume
unknown like if it wasn't a git repo.

  • glib/apply-build-revision-to-files.py:

(get_build_revision):

12:01 AM Changeset in webkit [281367] by youenn@apple.com
  • 8 edits
    2 adds in trunk

Prevent AudioSession category from moving out of PlayAndRecord too quickly
https://bugs.webkit.org/show_bug.cgi?id=229327
<rdar://81997024>

Reviewed by Eric Carlson.

Source/WebCore:

If category is PlayAndRecord, we stick to PlayAndRecord until audio is no longer playing at which point we
transition to whatever category is most appropriate.
Introduce PlatformMediaSession::isPlaying in addition to canProduceAudio to compute whether audio is being played.

Test: http/tests/media/media-stream/audio-capture-and-category.https.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::isPlaying const):

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::isPlaying const):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSessionClient::isPlaying const):

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

LayoutTests:

  • http/tests/media/media-stream/audio-capture-and-category.https-expected.txt: Added.
  • http/tests/media/media-stream/audio-capture-and-category.https.html: Added.
Note: See TracTimeline for information about the timeline view.