Timeline



Apr 26, 2022:

10:59 PM Changeset in webkit [293500] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.10.7

Tag WebKit-7614.1.10.7.

10:55 PM Changeset in webkit [293499] by Russell Epstein
  • 9 edits in branches/safari-614.1.10-branch/Source

Versioning.

WebKit-7614.1.10.7

10:40 PM Changeset in webkit [293498] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove adjustPathForRecentRenamings from VCSUtils.pm, they are not recent anymore
https://bugs.webkit.org/show_bug.cgi?id=239646

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-26
Reviewed by Darin Adler.

These were used to adjust patches 10 years ago.
The functionality renames *_test_expectations.txt in ANGLE imports, which causes surprises
and hard to track redundant sections while inspecting downstream differences to upstream.

  • Scripts/VCSUtils.pm:

(parseGitDiffHeader):

10:30 PM Changeset in webkit [293497] by Antti Koivisto
  • 8 edits
    2 adds in trunk

::first-letter does not work if used only in shadow content
https://bugs.webkit.org/show_bug.cgi?id=220650
<rdar://problem/73477161>

Reviewed by Alan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/shadow-first-line-and-letter.html

We were not setting usesFirstLetter/LinesRules bits if those pseudo-elements were used
only in shadow trees.

Fix by removing the bits. They don't seem to allow any valuable optimizations.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::verticalPositionForBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::lineHeight const):
(WebCore::RenderBlock::getFirstLetter):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):
(WebCore::RenderInline::lineHeight const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::lineHeight const):

  • rendering/RenderView.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::resolve):

LayoutTests:

Test case by vb@bigdot.de.

  • fast/shadow-dom/shadow-first-line-and-letter-expected.html: Added.
  • fast/shadow-dom/shadow-first-line-and-letter.html: Added.
9:49 PM Changeset in webkit [293496] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Don't flush the IOSurface CGContext when just setting ownership identity
https://bugs.webkit.org/show_bug.cgi?id=239800

Reviewed by Myles C. Maxfield.

ImageBufferIOSurfaceBackend::surface() has a call to flushContext(), which we don't need
to do if we're just getting the surface to call setOwnershipIdentity(), so use m_surface
directly.

This is a ~18% perf gain on the Leaves MotionMark subtest on iPhone.

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

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::setOwnershipIdentity):

7:48 PM Changeset in webkit [293495] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

[git-webkit] Cannot create pull request branch using bug URL, fails to fetch comments from Bugzilla, fails to modify bug
https://bugs.webkit.org/show_bug.cgi?id=239741

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-04-26
Reviewed by Jonathan Bedard.

  • Tools/Scripts/libraries/webkitbugspy/setup.py:
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py:
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.credentials.validater):
(Tracker._login_arguments):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:

(Bugzilla.init):
(Bugzilla.request):

Canonical link: https://commits.webkit.org/250028@main

7:31 PM Changeset in webkit [293494] by Kyle Piddington
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Max Limits have been reduced
https://bugs.webkit.org/show_bug.cgi?id=238914
Allow larger constant uniform buffer data. Provide a
buffer to Metal if uniform data exceeds 4kb
Tested by running deqp gles3 limits tests for uniform data

Reviewed by Dean Jackson.

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

(rx::ProgramMtl::commitUniforms):

  • src/libANGLE/renderer/metal/mtl_common.h:
7:01 PM Changeset in webkit [293493] by Oriol Brufau
  • 6 edits in trunk/Source/WebCore

[css-logical] Side border shorthands should not be logical/physical
https://bugs.webkit.org/show_bug.cgi?id=239734

Reviewed by Tim Nguyen.

No test since now there should be no observable change in behavior.

However, this refactoring will be needed for bug 236199.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Mark logical side border shorthands as animatable.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
Add code for serializing logical side border shorthands.

  • css/CSSProperties.json:

Stop side border shorthands from being in a logical property group.
They will just expand into logical or physical longhands, but the
shorthands themselves will be normal.

  • css/makeprop.pl:

(addProperty):
Assert that no shorthand belongs to a logical property group.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences):
Remove dead code.

7:00 PM Changeset in webkit [293492] by dbezhetskov
  • 2 edits in trunk/Source/JavaScriptCore

[WASM] Fix warning: cast from ‘char*’ to ‘JSC::Wasm::Type*’ increases required alignment of target type [-Wcast-align]
https://bugs.webkit.org/show_bug.cgi?id=239698

Reviewed by Darin Adler.

There is a warning inside TypeDefinition on some platforms so this
patch fixes it.

  • wasm/WasmTypeDefinition.h:

(JSC::Wasm::FunctionSignature::FunctionSignature):
(JSC::Wasm::FunctionSignature::storage):
(JSC::Wasm::FunctionSignature::storage const):
(JSC::Wasm::StructType::StructType):
(JSC::Wasm::StructType::storage):
(JSC::Wasm::StructType::storage const):
(JSC::Wasm::TypeDefinition::payload):

6:15 PM Changeset in webkit [293491] by Chris Dumez
  • 3 edits in trunk/Source

Avoid iterating the input string several times setInnerText() / setOuterText()
https://bugs.webkit.org/show_bug.cgi?id=239783

Reviewed by Geoff Garen.

Avoid iterating the input string several times setInnerText() / setOuterText(), to look for new lines
and carriage return characters. Instead of calling contains('\n') and then contains('\r'), thus iterating
over the string twice, we now call contains([](UChar c) { return c == '\n' || c == '\r'; }), achieving
the same thing by traversing the input string only once.

  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::performTrivialReplace):

  • Source/WebCore/html/HTMLElement.cpp:

(WebCore::HTMLElement::setInnerText):
(WebCore::HTMLElement::setOuterText):

Canonical link: https://commits.webkit.org/250023@main

6:14 PM Changeset in webkit [293490] by commit-queue@webkit.org
  • 2 edits
    7 deletes in trunk/LayoutTests

Cleanup expectations for 7 imported/w3c/web-platform-tests/html/semantics/interactive-elements/ tests
https://bugs.webkit.org/show_bug.cgi?id=239790

Unreviewed test gardening.

  • LayoutTests/platform/ios-wk2/TestExpectations:
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Removed.
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/closed-dialog-does-not-block-mouse-events-expected.txt: Removed.
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-inlines-expected.txt: Removed.
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-ancestor-is-inert-expected.txt: Removed.
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-blocks-mouse-events-expected.txt: Removed.
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/non-modal-dialog-does-not-block-mouse-events-expected.txt: Removed.
  • LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/simulated-click-inert-expected.txt: Removed.

Canonical link: https://commits.webkit.org/250023@main

5:47 PM Changeset in webkit [293489] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.10.6

Tag WebKit-7614.1.10.6.

5:29 PM Changeset in webkit [293488] by Jean-Yves Avenard
  • 14 edits in trunk/Source/WebCore

MediaSession.setPositionState() does not work.
https://bugs.webkit.org/show_bug.cgi?id=237196

Reviewed by Eric Carlson.

Use MediaSession's positionState if present when constructing NowPlaying
MediaRemote data.
We emulate what the media-session position would have been had the
time progressed according to the playback rate.
As such, we need to tell the media-session when no action handlers are
set that the media was paused or played again.
When seeking, we update the new time position and continue according to
the set playback rate.

Tested manually with the following scenarios:

  • Set a page only defining the media-session's position state once
  • Let the media element play by default, check the Now Playing position
  • Pause/Play using Now Playing control and checks that the time doesn't jump around.
  • Seek using Now Playing and check that the media seeks properly and that the Now Playing positon progress from the seek point according to the media-session's playback rate.
  • Seek using default media control and check the same as above.
  • Seek using default media control, then pause in Now Playing: check that the playback position doesn't jump around.

We don't have a way to properly test the MediaRemote
external framework and with existing MediaSession API tests currently
disabled following bug 221514.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::setPlaybackState):
(WebCore::MediaSession::updateReportedPosition):
(WebCore::MediaSession::willBeginPlayback):
(WebCore::MediaSession::willPausePlayback):
(WebCore::MediaSession::positionOverridden):

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::removedFromAncestor):
(WebCore::HTMLMediaElement::mediaLoadingFailed):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::finishSeek):
(WebCore::HTMLMediaElement::clearMediaPlayer):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::clientWillBeginPlayback):
(WebCore::MediaElementSession::clientWillPausePlayback):
(WebCore::MediaElementSession::nowPlayingInfo const):
(WebCore::MediaElementSession::metadataChanged):
(WebCore::MediaElementSession::positionStateChanged):
(WebCore::MediaElementSession::clientCharacteristicsChanged):

  • html/MediaElementSession.h:
  • platform/audio/NowPlayingInfo.h:

(WebCore::NowPlayingInfo::operator== const):
(WebCore::NowPlayingInfo::encode const):
(WebCore::NowPlayingInfo::decode):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::clientCharacteristicsChanged):

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::clientCharacteristicsChanged):

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

(WebCore::MediaSessionManagerCocoa::clientCharacteristicsChanged):
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):

5:27 PM Changeset in webkit [293487] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS ] webanimations/accelerated-animation-after-forward-filling-animation.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239794

Unreviewed test gardening.

  • LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/250021@main

5:23 PM Changeset in webkit [293486] by Elliott Williams
  • 9 edits in trunk/Source

Unreviewed, reverting "[Xcode] Compute PGO profdata paths instead of searching for them at build time"
https://bugs.webkit.org/show_bug.cgi?id=239681

Source/JavaScriptCore:

This reverts commit 433f73bc052d7c978c619e28b2574df8faf6cb72.

  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Configurations/BaseTarget.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
5:19 PM Changeset in webkit [293485] by Oriol Brufau
  • 6 edits
    4 adds in trunk

[css-cascade] Fix cascade rollback for deferred properties
https://bugs.webkit.org/show_bug.cgi?id=238125

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add a test. It still has some failures due to bug 239579, bug 239669,
and bug 239670.

  • web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt: Added.
  • web-platform-tests/css/css-cascade/all-prop-revert-layer.html: Added.

Source/WebCore:

When a deferred property was set to 'revert' or 'revert-layer', it used
to roll back to a declaration of the same exact property (or behave as
'unset' if none).

This patch lets deferred properties roll back to their related property,
e.g. '-webkit-box-shadow: revert-layer' can roll back to a 'box-shadow'
declaration in the previous layer.

This is consistent with logical and physical properties, where the
rollback happens after resolving logical properties.

Test: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::lastDeferredPropertyResolvingRelated const):

  • style/PropertyCascade.h:
  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyProperty):

LayoutTests:

Add custom expectation for mac-wk1 since scroll-behavior is disabled
there, and thus not checked by the test.

  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt: Added.
4:44 PM Changeset in webkit [293484] by Chris Dumez
  • 208 edits in trunk

Update equalLettersIgnoringASCIICase() / startsWithLettersIgnoringASCIICase() to take in an ASCIILiteral
https://bugs.webkit.org/show_bug.cgi?id=239775

Reviewed by Geoff Garen.

Update equalLettersIgnoringASCIICase() / startsWithLettersIgnoringASCIICase() to take in an ASCIILiteral,
as we are encouraging developers to use _s suffix for string literals.

  • Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

  • Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::xmlRoleValueString):

  • Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:

(WTR::testPathFromURL):

  • Source/JavaScriptCore/runtime/Options.cpp:

(JSC::parse):

  • Source/WebCore/PAL/pal/text/TextEncodingRegistry.cpp:

(PAL::defaultTextEncodingNameForSystemLanguage):

  • Source/WebDriver/WebDriverService.cpp:

(WebDriver::WebDriverService::matchCapabilities const):

  • Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::resume):

  • Source/WebKit/NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

  • Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::isMediaMIMEType):

  • Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):

  • Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):

  • Source/WebKit/UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesSetCustomHeaderFields):

  • Source/WebKit/UIProcess/API/Cocoa/_WKCustomHeaderFields.mm:

(-[_WKCustomHeaderFields setFields:]):

  • Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::visibleDomain):

  • Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::matchesExtensionOrEquivalent):

  • Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):

  • Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::encodeSharedMemory):

  • Source/WTF/wtf/Assertions.cpp:
  • Source/WTF/wtf/DateMath.cpp:

(WTF::parseDateFromNullTerminatedCharacters):

  • Source/WTF/wtf/SortedArrayMap.h:

(WTF::operator==):

  • Source/WTF/wtf/text/AtomString.h:

(WTF::equalLettersIgnoringASCIICase):

  • Source/WTF/wtf/text/StringCommon.h:

(WTF::equalLettersIgnoringASCIICase):
(WTF::equalLettersIgnoringASCIICaseCommon):
(WTF::startsWithLettersIgnoringASCIICaseCommon):
(WTF::equalLettersIgnoringASCIICaseCommonWithoutLength): Deleted.
(WTF::startsWithLettersIgnoringASCIICaseCommonWithoutLength): Deleted.

  • Source/WTF/wtf/text/StringImpl.h:

(WTF::startsWithLettersIgnoringASCIICase):
(WTF::equalLettersIgnoringASCIICase):

  • Source/WTF/wtf/text/StringView.h:

(WTF::equalLettersIgnoringASCIICase):
(WTF::startsWithLettersIgnoringASCIICase):

  • Source/WTF/wtf/text/WTFString.h:

(WTF::equalLettersIgnoringASCIICase):
(WTF::startsWithLettersIgnoringASCIICase):

  • Source/WebCore/Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::validatedPaymentNetwork const):

  • Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp:

(WebCore::ApplicationManifestParser::parseIcons):

  • Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:

(WebCore::LegacyCDMPrivateClearKey::supportsKeySystem):
(WebCore::LegacyCDMPrivateClearKey::supportsKeySystemAndMimeType):

  • Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::update):

  • Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::packageFormData):

  • Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp:

(WebCore::isValidVideoMIMEType):
(WebCore::isValidAudioMIMEType):

  • Source/WebCore/Modules/mediarecorder/MediaRecorderProvider.cpp:

(WebCore::MediaRecorderProvider::isSupported):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::supportsMIMEType):
(WebCore::YouTubePluginReplacement::supportsFileExtension):
(WebCore::isYouTubeURL):
(WebCore::processAndCreateYouTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):

  • Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinatorInternal::needsAppIdQuirks):

  • Source/WebCore/Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::checkResponseHeaders):

  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isModalElement const):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::isNodeAriaVisible):

  • Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::isMultiSelectable const):

  • Source/WebCore/accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isEnabled const):

  • Source/WebCore/accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
(WebCore::AccessibilityNodeObject::isEnabled const):
(WebCore::AccessibilityNodeObject::isIndeterminate const):
(WebCore::AccessibilityNodeObject::isPressed const):
(WebCore::AccessibilityNodeObject::isChecked const):
(WebCore::AccessibilityNodeObject::isMultiSelectable const):
(WebCore::AccessibilityNodeObject::isRequired const):
(WebCore::AccessibilityNodeObject::elementAttributeValue const):
(WebCore::shouldUseAccessibilityObjectInnerText):
(WebCore::AccessibilityNodeObject::textUnderElement const):

  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::autoCompleteValue const):
(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
(WebCore::AccessibilityObject::ariaIsMultiline const):
(WebCore::AccessibilityObject::liveRegionStatusIsEnabled):
(WebCore::AccessibilityObject::sortDirection const):
(WebCore::AccessibilityObject::popupValue const):
(WebCore::AccessibilityObject::supportsPressed const):
(WebCore::AccessibilityObject::supportsExpanded const):
(WebCore::AccessibilityObject::isExpanded const):
(WebCore::AccessibilityObject::checkboxOrRadioValue const):
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):

  • Source/WebCore/accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::hasPopup const):
(WebCore::AccessibilityRenderObject::supportsDragging const):
(WebCore::AccessibilityRenderObject::defaultObjectInclusion const):
(WebCore::AccessibilityRenderObject::isSelected const):
(WebCore::AccessibilityRenderObject::orientation const):
(WebCore::AccessibilityRenderObject::liveRegionAtomic const):

  • Source/WebCore/accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::orientation const):

  • Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::rolePlatformDescription const):

  • Source/WebCore/animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::processKeyframes):

  • Source/WebCore/contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

  • Source/WebCore/css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc const):

  • Source/WebCore/css/MediaList.cpp:

(WebCore::reportMediaQueryWarningIfNeeded):

  • Source/WebCore/css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::mediaTypeMatch const):
(WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific const):
(WebCore::evaluateResolution):

  • Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setProperty):

  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::isUniversalKeyword):

  • Source/WebCore/css/parser/CSSParserImpl.cpp:

(WebCore::consumeStringOrURI):
(WebCore::CSSParserImpl::consumeImportRule):
(WebCore::CSSParserImpl::consumeDeclaration):
(WebCore::CSSParserImpl::consumeKeyframeKeyList):

  • Source/WebCore/css/parser/CSSParserSelector.cpp:

(WebCore::CSSParserSelector::parsePagePseudoSelector):
(WebCore::CSSParserSelector::parsePseudoElementSelector):

  • Source/WebCore/css/parser/CSSParserTokenRange.cpp:

(WebCore::CSSParserTokenRange::consumeBlockCheckingForEditability):

  • Source/WebCore/css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationName):

  • Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp:

(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeUnicodeRangeString):

  • Source/WebCore/css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeAttributeFlags):
(WebCore::consumeANPlusB):

  • Source/WebCore/css/parser/CSSSupportsParser.cpp:

(WebCore::CSSSupportsParser::consumeCondition):

  • Source/WebCore/css/parser/CSSTokenizer.cpp:

(WebCore::CSSTokenizer::consumeIdentLikeToken):

  • Source/WebCore/css/parser/MediaQueryParser.cpp:

(WebCore::MediaQueryParser::readMediaNot):
(WebCore::isRestrictorOrLogicalOperator):
(WebCore::MediaQueryParser::readMediaType):
(WebCore::MediaQueryParser::readAnd):
(WebCore::MediaQueryParser::handleBlocks):

  • Source/WebCore/css/parser/SizesCalcParser.cpp:

(WebCore::SizesCalcParser::calcToReversePolishNotation):

  • Source/WebCore/css/typedom/transform/CSSPerspective.cpp:

(WebCore::checkLength):

  • Source/WebCore/dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::determineActiveThemeColorMetaElement):
(WebCore::Document::processColorScheme):
(WebCore::Document::processFormatDetection):
(WebCore::Document::createEvent):
(WebCore::Document::setDesignMode):
(WebCore::Document::parseDNSPrefetchControlHeader):

  • Source/WebCore/dom/Element.cpp:

(WebCore::isStyleAttribute):
(WebCore::Element::isSpellCheckingEnabled const):
(WebCore::Element::canContainRangeEndPoint const):

  • Source/WebCore/dom/InlineStyleSheetOwner.cpp:

(WebCore::isValidCSSContentType):

  • Source/WebCore/dom/ScriptElement.cpp:

(WebCore::ScriptElement::determineScriptType const):
(WebCore::ScriptElement::isScriptForEventSupported const):

  • Source/WebCore/dom/SecurityContext.cpp:

(WebCore::SecurityContext::parseSandboxPolicy):

  • Source/WebCore/dom/ViewportArguments.cpp:

(WebCore::findSizeValue):
(WebCore::findScaleValue):
(WebCore::findBooleanValue):
(WebCore::parseViewportFitValue):
(WebCore::setViewportFeature):

  • Source/WebCore/editing/EditorCommand.cpp:

(WebCore::executeDefaultParagraphSeparator):
(WebCore::executeStyleWithCSS):
(WebCore::executeUseCSS):

  • Source/WebCore/editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • Source/WebCore/editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::requiresExtendedContext):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
(WebCore::DataDetection::isDataDetectorElement):

  • Source/WebCore/history/HistoryItem.cpp:

(WebCore::HistoryItem::setFormInfoFromRequest):

  • Source/WebCore/html/Autocapitalize.cpp:

(WebCore::autocapitalizeTypeForAttributeValue):

  • Source/WebCore/html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • Source/WebCore/html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable const):
(WebCore::HTMLAnchorElement::relList):

  • Source/WebCore/html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::parseAttribute):

  • Source/WebCore/html/HTMLBRElement.cpp:

(WebCore::HTMLBRElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::parseAttribute):

  • Source/WebCore/html/HTMLDivElement.cpp:

(WebCore::HTMLDivElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLElement.cpp:

(WebCore::isLTROrRTLIgnoringCase):
(WebCore::contentEditableType):
(WebCore::HTMLElement::collectPresentationalHintsForAttribute):
(WebCore::toValidDirValue):
(WebCore::HTMLElement::applyAlignmentAttributeToStyle):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::draggable const):
(WebCore::HTMLElement::translate const):
(WebCore::HTMLElement::hasDirectionAuto const):
(WebCore::HTMLElement::directionality const):
(WebCore::HTMLElement::dirAttributeChanged):
(WebCore::parseLegacyColorValue):
(WebCore::HTMLElement::shouldAutocorrect const):

  • Source/WebCore/html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::shouldAutocorrect const):

  • Source/WebCore/html/HTMLFormElement.cpp:

(WebCore::parseFormRelAttributes):
(WebCore::HTMLFormElement::shouldAutocorrect const):
(WebCore::HTMLFormElement::relList):
(WebCore::HTMLFormElement::shouldAutocomplete const):
(WebCore::HTMLFormElement::autocomplete const):

  • Source/WebCore/html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::scrollingMode const):

  • Source/WebCore/html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::parseAttribute):

  • Source/WebCore/html/HTMLHRElement.cpp:

(WebCore::HTMLHRElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::parseAttribute):
(WebCore::HTMLIFrameElement::loadingForBindings const):
(WebCore::isFrameLazyLoadable):

  • Source/WebCore/html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::hasLazyLoadableAttributeValue):
(WebCore::parseCrossoriginState):
(WebCore::HTMLImageElement::decodingMode const):

  • Source/WebCore/html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::mediaCaptureType const):

  • Source/WebCore/html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::as const):
(WebCore::HTMLLinkElement::process):

  • Source/WebCore/html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • Source/WebCore/html/HTMLMenuElement.cpp:

(WebCore::HTMLMenuElement::parseAttribute):

  • Source/WebCore/html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::attributeChanged):
(WebCore::HTMLMetaElement::removedFromAncestor):
(WebCore::HTMLMetaElement::process):

  • Source/WebCore/html/HTMLObjectElement.cpp:

(WebCore::mapDataParamToSrc):
(WebCore::HTMLObjectElement::parametersForPlugin):
(WebCore::HTMLObjectElement::containsJavaApplet const):

  • Source/WebCore/html/HTMLParagraphElement.cpp:

(WebCore::HTMLParagraphElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::isURLParameter):

  • Source/WebCore/html/HTMLTableElement.cpp:

(WebCore::getBordersFromFrameAttributeValue):
(WebCore::HTMLTableElement::collectPresentationalHintsForAttribute):
(WebCore::HTMLTableElement::parseAttribute):

  • Source/WebCore/html/HTMLTablePartElement.cpp:

(WebCore::HTMLTablePartElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::parseAttribute):

  • Source/WebCore/html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setRangeText):
(WebCore::HTMLTextFormControlElement::directionForFormData const):

  • Source/WebCore/html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::parseAttribute):

  • Source/WebCore/html/InputType.cpp:

(WebCore::InputType::applyStep):

  • Source/WebCore/html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::LinkRelAttribute):
(WebCore::LinkRelAttribute::isSupported):

  • Source/WebCore/html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const):

  • Source/WebCore/html/NumberInputType.cpp:

(WebCore::NumberInputType::sizeShouldIncludeDecoration const):

  • Source/WebCore/html/RangeInputType.cpp:

(WebCore::RangeInputType::createStepRange const):
(WebCore::RangeInputType::handleKeydownEvent):

  • Source/WebCore/html/StepRange.cpp:

(WebCore::StepRange::parseStep):

  • Source/WebCore/html/canvas/CanvasStyle.cpp:

(WebCore::isCurrentColorString):

  • Source/WebCore/html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::emitRule):

  • Source/WebCore/html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):

  • Source/WebCore/html/parser/HTMLElementStack.cpp:

(WebCore::HTMLElementStack::isHTMLIntegrationPoint):

  • Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes):

  • Source/WebCore/html/parser/HTMLParserIdioms.cpp:

(WebCore::parseCORSSettingsAttribute):

  • Source/WebCore/html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • Source/WebCore/html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):

  • Source/WebCore/html/parser/ParsingUtilities.h:

(WebCore::skipExactlyIgnoringASCIICase):

  • Source/WebCore/html/track/TextTrack.cpp:

(WebCore::TextTrack::setKindKeywordIgnoringASCIICase):

  • Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::shouldTreatAsText):

  • Source/WebCore/loader/CrossOriginAccessControl.cpp:

(WebCore::createPotentialAccessControlRequest):

  • Source/WebCore/loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadApplicationManifest):

  • Source/WebCore/loader/FetchIdioms.cpp:

(WebCore::shouldBlockResponseDueToMIMEType):

  • Source/WebCore/loader/FormSubmission.cpp:

(WebCore::appendMailtoPostFormDataToURL):
(WebCore::FormSubmission::Attributes::parseEncodingType):
(WebCore::FormSubmission::Attributes::parseMethodType):

  • Source/WebCore/loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldPerformFragmentNavigation):

  • Source/WebCore/loader/LinkHeader.cpp:

(WebCore::paramterNameFromString):

  • Source/WebCore/loader/LinkLoader.cpp:

(WebCore::LinkLoader::resourceTypeFromAsAttribute):
(WebCore::LinkLoader::preconnectIfNeeded):

  • Source/WebCore/loader/ResourceCryptographicDigest.cpp:

(WebCore::parseHashAlgorithmAdvancingPosition):

  • Source/WebCore/loader/ServerTiming.cpp:

(WebCore::ServerTiming::setParameter):

  • Source/WebCore/loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::determineContentType):
(WebCore::TextResourceDecoder::setEncoding):

  • Source/WebCore/loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet):

  • Source/WebCore/loader/appcache/ApplicationCacheManifestParser.cpp:

(WebCore::parseApplicationCacheManifest):

  • Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::shouldStoreResourceAsFlatFile):

  • Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::mimeTypeAllowedByNosniff const):
(WebCore::CachedCSSStyleSheet::canUseSheet const):

  • Source/WebCore/loader/cache/CachedResource.cpp:

(WebCore::shouldCacheSchemeIndefinitely):

  • Source/WebCore/mathml/MathMLElement.cpp:

(WebCore::MathMLElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/mathml/MathMLFractionElement.cpp:

(WebCore::MathMLFractionElement::lineThickness):
(WebCore::MathMLFractionElement::cachedFractionAlignment):

  • Source/WebCore/page/DOMSelection.cpp:

(WebCore::DOMSelection::modify):

  • Source/WebCore/page/EventSource.cpp:

(WebCore::EventSource::responseIsValid const):

  • Source/WebCore/page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):

  • Source/WebCore/page/Page.cpp:

(WebCore::Page::useDarkAppearance const):

  • Source/WebCore/page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • Source/WebCore/page/Quirks.cpp:

(WebCore::isYahooMail):
(WebCore::Quirks::needsFormControlToBeMouseFocusable const):
(WebCore::Quirks::needsSeekingSupportDisabled const):
(WebCore::Quirks::needsPerDocumentAutoplayBehavior const):
(WebCore::Quirks::shouldAutoplayWebAudioForArbitraryUserGesture const):
(WebCore::Quirks::shouldTooltipPreventFromProceedingWithClick const):
(WebCore::Quirks::needsMillisecondResolutionForHighResTimeStamp const):
(WebCore::Quirks::shouldStripQuotationMarkInFontFaceSetFamily const):
(WebCore::Quirks::isTouchBarUpdateSupressedForHiddenContentEditable const):
(WebCore::Quirks::isNeverRichlyEditableForTouchBar const):
(WebCore::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreasForHost):
(WebCore::Quirks::shouldDispatchSyntheticMouseEventsWhenModifyingSelection const):
(WebCore::Quirks::needsYouTubeMouseOutQuirk const):
(WebCore::Quirks::shouldAvoidUsingIOS13ForGmail const):
(WebCore::Quirks::isGoogleMaps const):
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented const):
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):
(WebCore::Quirks::shouldMakeTouchEventNonCancelableForTarget const):
(WebCore::Quirks::shouldPreventPointerMediaQueryFromEvaluatingToCoarse const):
(WebCore::Quirks::shouldPreventDispatchOfTouchEvent const):
(WebCore::Quirks::shouldAvoidResizingWhenInputViewBoundsChange const):
(WebCore::Quirks::shouldDisablePointerEventsQuirk const):
(WebCore::Quirks::needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommand const):
(WebCore::Quirks::needsInputModeNoneImplicitly const):
(WebCore::Quirks::needsGMailOverflowScrollQuirk const):
(WebCore::Quirks::needsYouTubeOverflowScrollQuirk const):
(WebCore::Quirks::needsFullscreenDisplayNoneQuirk const):
(WebCore::Quirks::shouldSilenceWindowResizeEvents const):
(WebCore::Quirks::shouldSilenceMediaQueryListChangeEvents const):
(WebCore::Quirks::shouldAvoidScrollingWhenFocusedContentIsVisible const):
(WebCore::Quirks::shouldUseLegacySelectPopoverDismissalBehaviorInDataActivation const):
(WebCore::Quirks::shouldIgnoreAriaForFastPathContentObservationCheck const):
(WebCore::Quirks::shouldOpenAsAboutBlank const):
(WebCore::Quirks::shouldBypassBackForwardCache const):
(WebCore::Quirks::shouldIgnoreContentObservationForSyntheticClick const):
(WebCore::Quirks::needsVP9FullRangeFlagQuirk const):
(WebCore::Quirks::needsHDRPixelDepthQuirk const):
(WebCore::Quirks::needsBlackFullscreenBackgroundQuirk const):
(WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):
(WebCore::Quirks::needsToForceUserSelectAndUserDragWhenInstallingImageOverlay const):

  • Source/WebCore/page/SecurityOrigin.cpp:

(WebCore::isFeedWithNestedProtocolInHTTPFamily):
(WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress):

  • Source/WebCore/page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::databaseIdentifier const):

  • Source/WebCore/page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::parse):
(WebCore::UserContentURLPattern::matches const):

  • Source/WebCore/page/WindowFeatures.cpp:

(WebCore::setWindowFeature):
(WebCore::boolFeature):

  • Source/WebCore/page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportUnsupportedDirective const):
(WebCore::ContentSecurityPolicy::reportInvalidSourceExpression const):

  • Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::isSourceListNone):
(WebCore::schemeIsInHttpFamily):
(WebCore::ContentSecurityPolicySourceList::isValidSourceForExtensionMode):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parseNonceSource):

  • Source/WebCore/platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedImageVideoOrSVGMIMEType):
(WebCore::MIMETypeRegistry::isSupportedWebAssemblyMIMEType):
(WebCore::MIMETypeRegistry::isSupportedStyleSheetMIMEType):
(WebCore::MIMETypeRegistry::isSupportedFontMIMEType):
(WebCore::MIMETypeRegistry::isTextMediaPlaylistMIMEType):
(WebCore::MIMETypeRegistry::isSupportedJSONMIMEType):
(WebCore::MIMETypeRegistry::isSupportedTextTrackMIMEType):
(WebCore::MIMETypeRegistry::isTextMIMEType):
(WebCore::MIMETypeRegistry::isXMLMIMEType):
(WebCore::MIMETypeRegistry::isXMLEntityMIMEType):
(WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
(WebCore::MIMETypeRegistry::isPostScriptMIMEType):
(WebCore::MIMETypeRegistry::canShowMIMEType):

  • Source/WebCore/platform/PreviewConverter.cpp:

(WebCore::PreviewConverter::supportsMIMEType):

  • Source/WebCore/platform/ReferrerPolicy.cpp:

(WebCore::parseReferrerPolicyToken):

  • Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::parseLicenseFormat):
(WebCore::CDMFactoryClearKey::supportsKeySystem):
(WebCore::CDMPrivateClearKey::supportsInitData const):
(WebCore::CDMInstanceSessionClearKey::requestLicense):

  • Source/WebCore/platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):

  • Source/WebCore/platform/graphics/FontDescription.cpp:

(WebCore::computeSpecializedChineseLocale):

  • Source/WebCore/platform/graphics/FontGenericFamilies.cpp:

(WebCore::computeUserPrefersSimplified):

  • Source/WebCore/platform/graphics/MIMETypeCache.cpp:

(WebCore::MIMETypeCache::shouldOverrideExtendedType):

  • Source/WebCore/platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::supportsType):

  • Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType):

  • Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::keySystemIsSupported):

  • Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::generateKeyRequest):

  • Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::generateKeyRequest):

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

(WebCore::willUseWebMFormatReaderForType):
(WebCore::keySystemIsSupported):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):

  • Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.cpp:

(WebCore::utiFromImageBufferMIMEType):

  • Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::similarFont):
(WebCore::isDotPrefixedForbiddenFont):
(WebCore::fontWithFamilySpecialCase):
(WebCore::FontCache::platformAlternateFamilyName):

  • Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::matchSystemFontUse):

  • Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::isContentTypeSupported):

  • Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::monospaceFamily):

  • Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::isCommonlyUsedGenericFamily):

  • Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

  • Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:

(webKitDMABufVideoSinkIsEnabled):

  • Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMPrivateThunder::supportsInitData const):

  • Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

  • Source/WebCore/platform/graphics/win/FontCacheWin.cpp:

(WebCore::adjustedGDIFontWeight):
(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::platformAlternateFamilyName):

  • Source/WebCore/platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

  • Source/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

  • Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::create):

  • Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createDecodingConfiguration):
(WebCore::LibWebRTCProvider::createEncodingConfiguration):

  • Source/WebCore/platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::loadResourceSynchronously):
(WebCore::BlobResourceHandle::doStart):

  • Source/WebCore/platform/network/CacheValidation.cpp:

(WebCore::parseCacheControlDirectives):

  • Source/WebCore/platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::shouldRemoveFragmentIdentifier):
(WebCore::DataURLDecoder::DecodeTask::process):

  • Source/WebCore/platform/network/FormData.h:

(WebCore::FormData::parseEncodingType):

  • Source/WebCore/platform/network/HTTPParsers.cpp:

(WebCore::parseContentTypeOptionsHeader):
(WebCore::parseXFrameOptionsHeader):
(WebCore::parseRange):
(WebCore::isForbiddenHeaderName):
(WebCore::isPriviledgedNoCORSRequestHeaderName):
(WebCore::isForbiddenResponseHeaderName):
(WebCore::isForbiddenMethod):
(WebCore::isCrossOriginSafeRequestHeader):

  • Source/WebCore/platform/network/MIMEHeader.cpp:

(WebCore::MIMEHeader::parseContentTransferEncoding):

  • Source/WebCore/platform/network/ResourceRequestBase.cpp:

(WebCore::shouldUseGet):

  • Source/WebCore/platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::isAttachment const):
(WebCore::ResourceResponseBase::isAttachmentWithFilename const):

  • Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):

  • Source/WebCore/platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::parseCookieAttributes):

  • Source/WebCore/platform/network/curl/CurlMultipartHandle.cpp:

(WebCore::CurlMultipartHandle::extractBoundary):

  • Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::isAppendableHeader):
(WebCore::ResourceResponse::appendHTTPHeaderField):

  • Source/WebCore/platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::willSendRequest):

  • Source/WebCore/platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::useWALJournalMode):

  • Source/WebCore/platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::isColumnDeclaredAsBlob):

  • Source/WebCore/platform/win/PasteboardWin.cpp:

(WebCore::clipboardTypeFromMIMEType):

  • Source/WebCore/plugins/PluginData.cpp:

(WebCore::isBuiltInPDFPlugIn):

  • Source/WebCore/rendering/RenderThemeMac.mm:

(WebCore::iconForAttachment):

  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTouchCallout):

  • Source/WebCore/svg/SVGAElement.cpp:

(WebCore::SVGAElement::relList):

  • Source/WebCore/svg/SVGTests.cpp:

(WebCore::SVGTests::hasFeatureForLegacyBindings):

  • Source/WebCore/svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

  • Source/WebCore/testing/Internals.cpp:

(WebCore::markerTypeFrom):
(WebCore::markerTypesFrom):
(WebCore::Internals::mediaElementHasCharacteristic):
(WebCore::Internals::setCaptionDisplayMode):
(WebCore::Internals::beginMediaSessionInterruption):
(WebCore::Internals::endMediaSessionInterruption):
(WebCore::mediaTypeFromString):
(WebCore::Internals::setMediaSessionRestrictions):
(WebCore::Internals::setMediaElementRestrictions):
(WebCore::Internals::postRemoteControlCommand):
(WebCore::Internals::setAudioContextRestrictions):
(WebCore::Internals::setMockMediaPlaybackTargetPickerState):
(WebCore::Internals::setPageMuted):
(WebCore::Internals::addPrefetchLoadEventListener):

  • Source/WebCore/testing/LegacyMockCDM.cpp:

(WebCore::LegacyMockCDM::supportsKeySystem):
(WebCore::LegacyMockCDM::supportsKeySystemAndMimeType):
(WebCore::LegacyMockCDM::supportsMIMEType):

  • Source/WebCore/testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::supportsKeySystem):
(WebCore::MockCDM::sanitizeSessionId const):
(WebCore::MockCDMInstance::setServerCertificate):

  • Source/WebCore/workers/service/server/SWServer.cpp:

(WebCore::SWServer::canHandleScheme const):

  • Source/WebCore/xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createDecoder const):

  • Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::shouldAllowExternalLoad):

Canonical link: https://commits.webkit.org/250018@main

4:39 PM Changeset in webkit [293483] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Cannot run test-webkitpy, autoinstaller fails to compile lupa
https://bugs.webkit.org/show_bug.cgi?id=239786

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-04-26
Reviewed by Jonathan Bedard.

  • Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py:
  • Tools/Scripts/libraries/reporelaypy/setup.py:
  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/init.py:
  • Tools/Scripts/libraries/resultsdbpy/setup.py:

Canonical link: https://commits.webkit.org/250017@main

4:15 PM Changeset in webkit [293482] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292911. rdar://problem/91519558

Parent Mismatch
https://bugs.webkit.org/show_bug.cgi?id=239390

Reviewed by Simon Fraser.

The oldParent and layer->parent() may be different under certain circumstances.
To account for this, we can just use the layer->parent() and remove the use
of oldParent. This also has the benefit of simplifying the moveLayers() function.

  • rendering/RenderElement.cpp: (WebCore::RenderElement::moveLayers):
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer):

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

3:58 PM Changeset in webkit [293481] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Adjust what we consider to be private relayed
https://bugs.webkit.org/show_bug.cgi?id=239784
<rdar://92336270>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-26
Reviewed by Geoffrey Garen.

If a request is not eligible for private relay, then do not consider it having been private relayed.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

3:57 PM Changeset in webkit [293480] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291968. rdar://problem/91681393

AccessibilityObject::listMarkerTextForNodeAndPosition should check for presence of list item before anything else
https://bugs.webkit.org/show_bug.cgi?id=238341

Reviewed by Andres Gonzalez.

The first thing AccessibilityObject::listMarkerTextForNodeAndPosition
does is check to see that the given range isStartOfLine. We
should instead check if there's an actual list item to work with
before doing this, since isStartOfLine can cause crashes.

Covered by test
accessibility/mac/attributed-string-with-listitem-multiple-lines.html.

  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

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

3:56 PM Changeset in webkit [293479] by Jonathan Bedard
  • 2 edits in trunk/Tools

[build.webkit.org] Support identifiers on dashboard (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=239473
<rdar://problem/76852365>

Unreviewed test gardening.

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/tests/index-expected.txt:

Canonical link: https://commits.webkit.org/250015@main

3:48 PM Changeset in webkit [293478] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS ] webanimations/accelerated-animation-slot-invalidation.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239791

Unreviewed test gardening.

  • LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/250014@main

3:45 PM Changeset in webkit [293477] by Jonathan Bedard
  • 2 edits in trunk/Tools

[ews-build.webkit.org] Support alternative remotes (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=239617
<rdar://problem/92115230>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits.extractProperties): 'project' is not set by extractProperties.

Canonical link: https://commits.webkit.org/250013@main

3:36 PM Changeset in webkit [293476] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Checkout PRs from alternate remotes
https://bugs.webkit.org/show_bug.cgi?id=239745
<rdar://problem/92300209>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git): The name of the repository is embedded in the argument.
(Git.checkout): Handle remote-postfixed remote names.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/checkout.py:

(Checkout.parser): Add --remote command.
(Checkout.main): Use the full repo name instead of the owner's username.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.PullRequest): Pass full repo name as metadata.

Canonical link: https://commits.webkit.org/250012@main

3:33 PM Changeset in webkit [293475] by Jonathan Bedard
  • 6 edits in trunk/Tools

[build.webkit.org] Support identifiers in popover
https://bugs.webkit.org/show_bug.cgi?id=239773
<rdar://problem/92339575>

Rubber-stamped by Aakash Jain.

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

(Commits): Keep track of all fetched commits.
(Commits.prototype._update): Save fetched commits.
(Commits.prototype.lastNIdentifiers): Return a list of the last n identifiers
on a branch.
(Commits.prototype.fetch): Load information for last N commits.
(Commits.prototype.urlFor): Return a url for a commit ref.

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/Main.js: Remove

trac auto-updater.

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

(QueueView.prototype._appendPendingRevisionCount): After we determine the
number of commits behind, fetch that many commits.
(QueueView.prototype._popoverLinesForCommitRange): Support commits with identifiers.
(QueueView.prototype._presentPopoverForPendingCommits):

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/tests/resources/MockCommits.js:
  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/tests/resources/tests.js:

Canonical link: https://commits.webkit.org/250011@main

3:25 PM Changeset in webkit [293474] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/dom

ElementData::setClassNames() can take an r-value reference
https://bugs.webkit.org/show_bug.cgi?id=239789

Reviewed by Geoffrey Garen.

  • Source/WebCore/dom/Element.cpp:

(WebCore::Element::classAttributeChanged):

  • Source/WebCore/dom/ElementData.h:

(WebCore::ElementData::setClassNames const):

Canonical link: https://commits.webkit.org/250010@main

3:22 PM Changeset in webkit [293473] by ysuzuki@apple.com
  • 34 edits in trunk

[JSC] Add forceUnlinkedDFG option
https://bugs.webkit.org/show_bug.cgi?id=239751

Reviewed by Saam Barati.

This patch adds forceUnlinkedDFG option to start running tests with unlinked DFG (while it is not truly unlinked yet).

  • Tools/Scripts/run-jsc-stress-tests:
  • Source/JavaScriptCore/jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/runtime/OptionsList.h:
  • JSTests/stress/arith-abs-on-various-types.js:
  • JSTests/stress/arith-abs-to-arith-negate-range-optimizaton.js:
  • JSTests/stress/arith-acos-on-various-types.js:
  • JSTests/stress/arith-acosh-on-various-types.js:
  • JSTests/stress/arith-asin-on-various-types.js:
  • JSTests/stress/arith-asinh-on-various-types.js:
  • JSTests/stress/arith-atan-on-various-types.js:
  • JSTests/stress/arith-atanh-on-various-types.js:
  • JSTests/stress/arith-cbrt-on-various-types.js:
  • JSTests/stress/arith-ceil-on-various-types.js:
  • JSTests/stress/arith-clz32-on-various-types.js:
  • JSTests/stress/arith-cos-on-various-types.js:
  • JSTests/stress/arith-cosh-on-various-types.js:
  • JSTests/stress/arith-expm1-on-various-types.js:
  • JSTests/stress/arith-floor-on-various-types.js:
  • JSTests/stress/arith-fround-on-various-types.js:
  • JSTests/stress/arith-log-on-various-types.js:
  • JSTests/stress/arith-log10-on-various-types.js:
  • JSTests/stress/arith-log2-on-various-types.js:
  • JSTests/stress/arith-round-on-various-types.js:
  • JSTests/stress/arith-sin-on-various-types.js:
  • JSTests/stress/arith-sinh-on-various-types.js:
  • JSTests/stress/arith-sqrt-on-various-types.js:
  • JSTests/stress/arith-tan-on-various-types.js:
  • JSTests/stress/arith-tanh-on-various-types.js:
  • JSTests/stress/arith-trunc-on-various-types.js:
  • JSTests/stress/fold-multi-get-by-offset-to-get-by-offset-with-watchpoint.js:

Canonical link: https://commits.webkit.org/250009@main

3:18 PM Changeset in webkit [293472] by Alan Coon
  • 18 edits in branches/safari-613-branch

Revert "Apply patch. rdar://problem/88904160"

3:18 PM Changeset in webkit [293471] by Alan Coon
  • 9 edits
    3 adds in branches/safari-613-branch

Cherry-pick r290630. rdar://problem/89442583

AX: WebKit should ignore empty modals rather than trapping focus inside them
https://bugs.webkit.org/show_bug.cgi?id=237163

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

Given this markup:

<div role="dialog" aria-modal="true">

<div aria-hidden="true">

<button>Close modal (inside modal)</button>

</div>

</div>

There is no accessible content inside this modal, but WebKit traps user focus inside,
making the rest of the page completely inaccessible.

With this patch we ignore modals that don't have accessible content.
We do this by walking the DOM to find any non-AX-ignored objects.

Because determining whether or not an element is ignored is dependent
on modals present on the page, this patch moves the call to ignoredFromModalPresence
out of AccessibilityObject::defaultObjectInclusion, as this function is
downstream of computeAccessibilityIsIgnored, and we need to call
that on objects inside modal candidates. Without this move, we would
recurse infinitely in AXObjectCache::modalElementHasAccessibleContent.

We now check whether an object is ignored due to modal presence in
AccessibilityObject::accessibilityIsIgnored(), so that function should
be used as the final say in determining whether an object is ignored.

Test: accessibility/ignore-modals-without-any-content.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::modalElementHasAccessibleContent): (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::defaultObjectInclusion const): (WebCore::AccessibilityObject::accessibilityIsIgnored const):
  • accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::computeAccessibilityIsIgnored const):

LayoutTests:

  • accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • accessibility/ignore-modals-without-any-content.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • platform/win/TestExpectations: Skip new test.

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

3:18 PM Changeset in webkit [293470] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/ChangeLog

Cherry-pick r290860. rdar://problem/89291570

AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475

Reviewed by Chris Fleizach.

This is better practice as ascending the hierarchy could cause
the object to get deleted.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textChanged):

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

3:18 PM Changeset in webkit [293469] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292430. rdar://problem/92204558

[Cocoa] Video is sometimes not visible after r292049
https://bugs.webkit.org/show_bug.cgi?id=238826

Reviewed by Jer Noble.

RenderVideo::willBeDestroyed calls MediaPlayer::setPageIsVisible, which causes
MediaPlayerPrivateAVFoundationObjC::platformSetVisible to hide the AVPlayerLayer.
HTMLMediaElement::visibilityStateChanged is the only other thing that calls
MediaPlayer::setPageIsVisible, and it only calls it when the page visibility changes,
so if that doesn't happen the AVPlayerLayer is not shown when the renderer is
recreated.

  • rendering/RenderVideo.cpp: (WebCore::RenderVideo::willBeDestroyed): Don't call MediaPlayer::setPageIsVisible(false), the page visibility has not changed.

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

3:18 PM Changeset in webkit [293468] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r293286. rdar://problem/92198272

Crash under AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=239683
<rdar://92198272>

Reviewed by Alan Bujtas.

Crash data suggest that m_page can be null in
AsyncScrollingCoordinator::scheduleRenderingUpdate(), which does seem possible because
scheduleRenderingUpdate() is a dispatch from the scrolling thread, and
ScrollingCoordinator::pageDestroyed() may have run before it runs.

  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):

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

3:18 PM Changeset in webkit [293467] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

3:18 PM Changeset in webkit [293466] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Revert "Apply patch. rdar://problem/88904160"

3:18 PM Changeset in webkit [293465] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

3:18 PM Changeset in webkit [293464] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick r292072. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_attachmentElementClient):
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.

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

3:17 PM Changeset in webkit [293463] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/88904160

3:17 PM Changeset in webkit [293462] by Alan Coon
  • 18 edits in branches/safari-613-branch

Apply patch. rdar://problem/88904160

3:17 PM Changeset in webkit [293461] by Alan Coon
  • 2 edits in branches/safari-613-branch

Cherry-pick r291724. rdar://problem/91975589

Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168

Reviewed by Chris Fleizach.

Source/WebKit:

Given this markup:

<iframe src="/path/to/paystub.pdf">

An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.

This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.

Test: accessibility/mac/iframe-pdf.html

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin):

LayoutTests:

  • accessibility/mac/iframe-pdf-expected.txt: Added.
  • accessibility/mac/iframe-pdf.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test as it always times out in WK1 (similar to accessibility/mac/basic-embed-pdf-accessibility.html)

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

3:17 PM Changeset in webkit [293460] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r291589. rdar://problem/90511155

LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

Import web-platform-tests test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:

Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/BroadcastChannel.cpp: (WebCore::shouldPartitionOrigin): (WebCore::BroadcastChannel::MainThreadBridge::registerChannel): (WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel): (WebCore::BroadcastChannel::MainThreadBridge::postMessage):
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:
  • page/PartitionedSecurityOrigin.h: Added. (WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin): (WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const): (WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const): (WebCore::operator==): (WTF::add): (WTF::PartitionedSecurityOriginHash::hash): (WTF::PartitionedSecurityOriginHash::equal): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):

Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp: (WebKit::toClientOrigin): (WebKit::WebBroadcastChannelRegistry::registerChannel): (WebKit::WebBroadcastChannelRegistry::unregisterChannel): (WebKit::WebBroadcastChannelRegistry::postMessage): (WebKit::WebBroadcastChannelRegistry::postMessageLocally): (WebKit::WebBroadcastChannelRegistry::postMessageToRemote): (WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121

Reviewed by Yusuke Suzuki.

  • PlatformMac.cmake:

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

3:17 PM Changeset in webkit [293459] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292878. rdar://problem/90248865

ScriptDisallowedScope::isEventAllowedInMainThread assert failure when activating AudioSession
https://bugs.webkit.org/show_bug.cgi?id=239343

Reviewed by Eric Carlson.

As part of HTMLMediaElement::clearMediaPlayer we call PlatformMediaSession::canProduceAudioChanged
which can result in activating the AudioSession when the page is capturing audio.

This sends a synchronous IPC message to the GPU process. As part of IPC::Connection::waitForSyncReply,
we also end up dispatching enqueued messages, including a WebPage_EndPrinting message that
fires an event listener on the main thread.

This patch will instead queue the PlatformMediaSession::canProduceAudioChanged as a task to avoid
firing the event listener on the main thread, which results in assertion failure.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::clearMediaPlayer):

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

3:17 PM Changeset in webkit [293458] by Alan Coon
  • 6 edits in branches/safari-613-branch

Apply patch. rdar://problem/91446317

3:17 PM Changeset in webkit [293457] by Alan Coon
  • 6 edits in branches/safari-613-branch

Revert r291606. rdar://problem/91446317

3:17 PM Changeset in webkit [293456] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

Revert "Unreviewed build fix. rdar://91446317"

2:58 PM Changeset in webkit [293455] by Elliott Williams
  • 6 edits in trunk/Source

Fix build error: "cp: JavaScriptCore.profdata is not a directory"
https://bugs.webkit.org/show_bug.cgi?id=239681

Unreviewed build fix.

  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/250008@main

2:51 PM Changeset in webkit [293454] by Wenson Hsieh
  • 4 edits in trunk

Show the option to Markup Image in the callout bar only when appropriate
https://bugs.webkit.org/show_bug.cgi?id=239779
rdar://88941823

Reviewed by Darin Adler.

Source/WebKit:

Make a minor adjustment to only show this callout bar action in the case where _imageAnalysisMarkupData has
already been computed and cached.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView imageAnalysisMarkupMenu]):

Tools:

Adjust some API tests so that they continue passing after these changes.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::iconImage):
(TestWebKitAPI::simulateCalloutBarAppearance):
(TestWebKitAPI::invokeImageMarkupAction):
(TestWebKitAPI::TEST):
(TestWebKitAPI::runMarkupTest):

2:35 PM Changeset in webkit [293453] by Alan Coon
  • 9 edits
    3 deletes in branches/safari-613.2.7.0-branch

Revert r290630. rdar://problem/89442583

This reverts r293440.

2:34 PM Changeset in webkit [293452] by commit-queue@webkit.org
  • 2 edits in trunk

Unreviewed, add my @redhat.com email

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-04-26

  • metadata/contributors.json:

Canonical link: https://commits.webkit.org/250005@main

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

[ macOS Debug wk2 ] Thirteen imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ are a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=239770

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/250005@main

2:30 PM Changeset in webkit [293450] by Alan Coon
  • 9 edits
    3 deletes in branches/safari-613.2.7.1-branch

Revert r290630. rdar://problem/89442583

This reverts commit r293439.

2:29 PM Changeset in webkit [293449] by Manuel Rego Casasnovas
  • 13 edits in trunk/Source

Remove AriaReflectionEnabled runtime flag
https://bugs.webkit.org/show_bug.cgi?id=239532

Reviewed by Chris Fleizach.

Source/WebCore:

ARIA reflection shipped in Safari 12.1 (July 2019)
so it looks the runtime flag is not needed anymore.

  • accessibility/AccessibilityRole.idl:
  • accessibility/AriaAttributes.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setAriaReflectionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::ariaReflectionEnabled const): Deleted.

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAriaReflectionEnabled): Deleted.
(WKPreferencesGetAriaReflectionEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences ariaReflectionEnabled]): Deleted.
(-[WebPreferences setAriaReflectionEnabled:]): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
2:24 PM Changeset in webkit [293448] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

REGRESSION (r293117): Context menu lift animation encompasses the entire web view
https://bugs.webkit.org/show_bug.cgi?id=239782
rdar://92342919

Reviewed by Aditya Keerthi.

After r293117, we no longer implement the context menu delegate method for vending a targeted preview when
showing the context menu for a link or image; rename to match the name of the method we implement to match the
name of the UIKit delegate method.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:configuration:highlightPreviewForItemWithIdentifier:]):
(-[WKContentView contextMenuInteraction:configuration:previewForHighlightingItemWithIdentifier:]): Deleted.

2:22 PM Changeset in webkit [293447] by Simon Fraser
  • 8 edits in trunk

[ iOS EWS ] css3/background/background-repeat-round-auto2.html is a image failure
https://bugs.webkit.org/show_bug.cgi?id=238965
<rdar://91454381>

Reviewed by Tim Horton.

Generic shaders can produce slightly different results to optimized shaders, and
get swapped in racily, so disable them for testing on platforms where accelerated
drawing is used.

Tools:

  • Scripts/webkitpy/port/base.py:

(Port.port_adjust_environment_for_test_driver):

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver):

  • Scripts/webkitpy/port/ios.py:

(IOSPort.test_expectations_file_position):
(IOSPort):
(IOSPort.port_adjust_environment_for_test_driver):

  • Scripts/webkitpy/port/mac.py:

(MacPort.port_adjust_environment_for_test_driver):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
1:02 PM Changeset in webkit [293446] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkit-patch] Use Commit-Queue when landing by default
https://bugs.webkit.org/show_bug.cgi?id=239777
<rdar://problem/92345543>

Reviewed by Alexey Proskuryakov.

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

(LandUnsafe): Renamed from LandUnsafe.
(Land): Renamed to LandUnsafe.

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

(LandSafely):
(Land): Inherit from LandSafely.

Canonical link: https://commits.webkit.org/250000@main

1:01 PM Changeset in webkit [293445] by commit-queue@webkit.org
  • 8 edits in trunk/JSTests

Several internationalization tests broken with ICU 69.1
https://bugs.webkit.org/show_bug.cgi?id=239724

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-04-26
Reviewed by Ross Kirsling and Yusuke Suzuki.

Update these tests to be more permissive of different results for different ICU versions.
ICU 69 on macOS is producing different results from ICU 69 on Linux for reasons unexplained,
so instead of checking the version number, let's instead just accept both ways.

  • stress/array-toLocaleString.js:

(shouldBeOneOf):

  • stress/date-toLocaleString.js:

(shouldBeOneOf):

  • stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:

(shouldBeOneOf):
(vm.icuVersion):
(shouldBeOneOfThem): Deleted.

  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:

(shouldBeOneOf):

  • stress/intl-datetimeformat.js:

(shouldBeOneOf):
(shouldBeOneOfThem): Deleted.

  • stress/intl-locale-info.js:

(shouldBeOneOf):
(shouldBe):

  • stress/intl-locale.js:

(shouldBeOneOf):

Canonical link: https://commits.webkit.org/250000@main

12:44 PM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
12:31 PM Changeset in webkit [293444] by Ziran Sun
  • 9 edits in trunk

Constructed FormData object should not contain an entry for the submit button that was used to submit the form
https://bugs.webkit.org/show_bug.cgi?id=239070

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update test expectation as the sub-test is now passing.

  • web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set-expected.txt:

Source/WebCore:

When the activedSubmit flag is set for a submit button, its value is appended to a FormData. In the case of form
submission called in submit event handler, we include submit button when build FormData. The submit button should
not be included though. This patch correct it by calling set the activatedSubmit flag just before or after building
FormData.

Part of the patch is an import of Chromium CL at
https://codereview.chromium.org/2340213002

  • html/DOMFormData.cpp:

(WebCore::DOMFormData::create):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::constructEntryList):

  • html/HTMLFormElement.h:
  • html/SubmitInputType.cpp:

(WebCore::SubmitInputType::handleDOMActivateEvent):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

12:25 PM Changeset in webkit [293443] by Simon Fraser
  • 7 edits in trunk

Save a few drawing operations when painting layer contents
https://bugs.webkit.org/show_bug.cgi?id=239756

Reviewed by Tim Horton.

Remove an extra save/restore, and a translate(0,0) when painting layers and there's just one
dirty rect.

Source/WebCore:

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::paintGraphicsLayerContents):

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

(WebCore::PlatformCALayer::drawLayerContents): The caller sets the clip when there's just one
dirty rect.

LayoutTests:

  • displaylists/extent-includes-shadow-expected.txt:
  • displaylists/layer-dispay-list-expected.txt:
  • displaylists/replay-skip-clipped-rect-expected.txt:
12:20 PM Changeset in webkit [293442] by Elliott Williams
  • 9 edits in trunk/Source

[Xcode] Compute PGO profdata paths instead of searching for them at build time
https://bugs.webkit.org/show_bug.cgi?id=239681

Reviewed by Alexey Proskuryakov.

Production builds should always use profdata from the SDK, internal
release builds should use profdata from the local WebKitAdditions, and
everyone else should use the stub profdata. Add a PROFILE_DATA_PATH
build setting which implements these rules and replace the script
phases that checked those paths dynamically.

This fixes XCBuild validation issues in the open-source build, and
should prevent production builders from using stale profdata in
BUILT_PRODUCTS_DIR. Additionally, engineers can now build with custom
profile data by overriding PROFILE_DATA_PATH.

If PROFILE_DATA_PATH does not appear to be raw LLVM profiling data, it
is decoded using compression_tool(1).

  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/249997@main

11:51 AM Changeset in webkit [293441] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Initialize m_eglDisplay in PlatformDisplay::PlatformDisplay(GdkDisplay*)
https://bugs.webkit.org/show_bug.cgi?id=239760

Patch by Xi Ruoyao <xry111@mengyan1223.wang> on 2022-04-26
Reviewed by Michael Catanzaro.

No new tests because there is no behavior change.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::PlatformDisplay):
initialize m_eglDisplay to EGL_NO_DISPLAY.

11:35 AM Changeset in webkit [293440] by Alan Coon
  • 9 edits
    3 adds in branches/safari-613.2.7.0-branch

Cherry-pick r290630. rdar://problem/89442583

AX: WebKit should ignore empty modals rather than trapping focus inside them
https://bugs.webkit.org/show_bug.cgi?id=237163

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

Given this markup:

<div role="dialog" aria-modal="true">

<div aria-hidden="true">

<button>Close modal (inside modal)</button>

</div>

</div>

There is no accessible content inside this modal, but WebKit traps user focus inside,
making the rest of the page completely inaccessible.

With this patch we ignore modals that don't have accessible content.
We do this by walking the DOM to find any non-AX-ignored objects.

Because determining whether or not an element is ignored is dependent
on modals present on the page, this patch moves the call to ignoredFromModalPresence
out of AccessibilityObject::defaultObjectInclusion, as this function is
downstream of computeAccessibilityIsIgnored, and we need to call
that on objects inside modal candidates. Without this move, we would
recurse infinitely in AXObjectCache::modalElementHasAccessibleContent.

We now check whether an object is ignored due to modal presence in
AccessibilityObject::accessibilityIsIgnored(), so that function should
be used as the final say in determining whether an object is ignored.

Test: accessibility/ignore-modals-without-any-content.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::modalElementHasAccessibleContent): (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::defaultObjectInclusion const): (WebCore::AccessibilityObject::accessibilityIsIgnored const):
  • accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::computeAccessibilityIsIgnored const):

LayoutTests:

  • accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • accessibility/ignore-modals-without-any-content.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • platform/win/TestExpectations: Skip new test.

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

11:33 AM Changeset in webkit [293439] by Alan Coon
  • 9 edits
    3 adds in branches/safari-613.2.7.1-branch

Cherry-pick r290630. rdar://problem/89442583

AX: WebKit should ignore empty modals rather than trapping focus inside them
https://bugs.webkit.org/show_bug.cgi?id=237163

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

Given this markup:

<div role="dialog" aria-modal="true">

<div aria-hidden="true">

<button>Close modal (inside modal)</button>

</div>

</div>

There is no accessible content inside this modal, but WebKit traps user focus inside,
making the rest of the page completely inaccessible.

With this patch we ignore modals that don't have accessible content.
We do this by walking the DOM to find any non-AX-ignored objects.

Because determining whether or not an element is ignored is dependent
on modals present on the page, this patch moves the call to ignoredFromModalPresence
out of AccessibilityObject::defaultObjectInclusion, as this function is
downstream of computeAccessibilityIsIgnored, and we need to call
that on objects inside modal candidates. Without this move, we would
recurse infinitely in AXObjectCache::modalElementHasAccessibleContent.

We now check whether an object is ignored due to modal presence in
AccessibilityObject::accessibilityIsIgnored(), so that function should
be used as the final say in determining whether an object is ignored.

Test: accessibility/ignore-modals-without-any-content.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::modalElementHasAccessibleContent): (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::defaultObjectInclusion const): (WebCore::AccessibilityObject::accessibilityIsIgnored const):
  • accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::computeAccessibilityIsIgnored const):

LayoutTests:

  • accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • accessibility/ignore-modals-without-any-content.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • platform/win/TestExpectations: Skip new test.

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

11:32 AM Changeset in webkit [293438] by Alan Coon
  • 9 edits in branches/safari-613.2.7.0-branch/Source

Versioning.

WebKit-7613.2.7.0.4

11:31 AM Changeset in webkit [293437] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS Debug wk2 ] Six imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ are a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=239770

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/249995@main

11:28 AM Changeset in webkit [293436] by Wenson Hsieh
  • 11 edits
    2 adds in trunk

Adjust some image transcoding behaviors related to "Copy Cropped Image"
https://bugs.webkit.org/show_bug.cgi?id=239748
rdar://92287000

Reviewed by Kate Cheney.

Source/WebKit:

Refactor some logic for extracting "cropped images" and "markup images". Currently, we always try to preserve
the MIME type of the source image data, but this causes various issues, such as images losing alpha or failing
to transcode altogether. See below for more details.

Test: ImageAnalysisTests.PerformImageAnalysisMarkupWithWebPImages

  • Platform/cocoa/CocoaImage.h:
  • Platform/cocoa/CocoaImage.mm:

(WebKit::transcodeWithPreferredMIMEType):

Drop support for the fallbackTypeIdentifier argument, now that nothing depends on it.

  • Platform/cocoa/ImageAnalysisUtilities.h:
  • Platform/cocoa/ImageAnalysisUtilities.mm:

(WebKit::imageDataForCroppedImageResult):

Add a new helper method to convert a CGImageRef to raw image data that's appropriate for the given source MIME
type. If the type belongs one of a short list of supported types, we use it directly; otherwise, fall back to
"image/png".

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView imageAnalysisMarkupMenu]):
(-[WKContentView actionSheetAssistant:copyCroppedImage:sourceMIMEType:]):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

Deploy imageDataForCroppedImageResult in place of directly calling transcodeWithPreferredMIMEType.

(WebKit::WebContextMenuProxyMac::applyMarkupToControlledImage):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):

Tools:

Add an API test to exercise the change.

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

(TestWebKitAPI::runMarkupTest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/webp-image.html: Added.
11:28 AM Changeset in webkit [293435] by Alan Coon
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.5

11:21 AM Changeset in webkit [293434] by Alan Coon
  • 9 edits in branches/safari-613.2.7.3-branch/Source

Versioning.

WebKit-7613.2.7.3.3.

11:16 AM Changeset in webkit [293433] by J Pascoe
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Do not pass ASCCredentialRequestTypePlatform... if LocalService unavailable
https://bugs.webkit.org/show_bug.cgi?id=239746
rdar://91981865

Reviewed by Brent Fulgham.

Passing platform in requestTypes breaks the UI in registerations with the syncing platform
authenticator off and local service is unavailable. This patch stops passing it in this case.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::configureRegistrationRequestContext):
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):

11:09 AM Changeset in webkit [293432] by J Pascoe
  • 2 edits in trunk/Source/WebCore

[WebAuthn] Remove misspelled constant "LocalAuthenticatiorAccessGroup"
https://bugs.webkit.org/show_bug.cgi?id=235894
rdar://88104045

Reviewed by Brent Fulgham.

This change removes a constant with a misspelled variable name after all
downstream usage is removed.

  • Modules/webauthn/WebAuthenticationConstants.h:
11:01 AM Changeset in webkit [293431] by Manuel Rego Casasnovas
  • 2 edits in trunk

Remove usage of makeWeakPtr() on Introduction.md
https://bugs.webkit.org/show_bug.cgi?id=239768

Reviewed by Chris Dumez.

  • Introduction.md:
9:56 AM Changeset in webkit [293430] by Angelos Oikonomopoulos
  • 3 edits in trunk/Tools

Enable --treat-failing-as-flaky for the JSC post-commit bots
https://bugs.webkit.org/show_bug.cgi?id=239341

Reviewed by Jonathan Bedard.

Try to cover up for a little test flakiness (while still recording
it in resultsdb) to avoid too many false alerts.

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

(RunJavaScriptCoreTests):
(RunJavaScriptCoreTests.start):

  • CISupport/build-webkit-org/steps_unittest.py:
9:43 AM Changeset in webkit [293429] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS Debug wk2 ] Four imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ are a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=239770

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/249989@main

9:31 AM Changeset in webkit [293428] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Fix crashes under RemoteLayerBackingStore::applyBackingStoreToLayer()
https://bugs.webkit.org/show_bug.cgi?id=239742
<rdar://91533748>

Reviewed by Wenson Hsieh.

It's possible for ensureBackendCreated() to time out, especially when debugging the GPU
process, in which case RemoteLayerBackingStore can end up with a front buffer with no
backend, which results in an unset m_bufferHandle in the UI process. So add some logging
when this happens, and check the m_bufferHandle optional before accessing its value.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
9:28 AM Changeset in webkit [293427] by Kate Cheney
  • 11 edits in trunk

Remove WebArchiveDebugMode
https://bugs.webkit.org/show_bug.cgi?id=239738
<rdar://problem/88406961>

Reviewed by Tim Horton.

Source/WebCore:

Remove use case of WebArchiveDebugMode and deprecate it now that it
is no longer in use. Add a new temporary flag WebArchiveTestMode
that is more aptly named and will maintain existing behavior for
internal tests temporarily.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::scheduleArchiveLoad):

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebArchiveTestingModeEnabled):
(WKPreferencesGetWebArchiveTestingModeEnabled):
(WKPreferencesSetWebArchiveDebugModeEnabled):
(WKPreferencesGetWebArchiveDebugModeEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setWebArchiveTestingModeEnabled:]):
(-[WKPreferences _webArchiveTestingModeEnabled]):
(-[WKPreferences _setWebArchiveDebugModeEnabled:]):
(-[WKPreferences _webArchiveDebugModeEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

  • TestWebKitAPI/Tests/mac/LoadWebArchive.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::constructArchive):

8:59 AM Changeset in webkit [293426] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Add object addresses to IPC logging
https://bugs.webkit.org/show_bug.cgi?id=239754

Reviewed by Cameron McCormack.

It's useful if IPC logging shows the receiver address, so you can distinguish different
receivers.

  • Platform/IPC/HandleMessage.h:

(IPC::textStreamForLogging):
(IPC::logMessageImpl):
(IPC::logMessage):
(IPC::logReply):
(IPC::handleMessage):
(IPC::handleMessageWantsConnection):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

8:51 AM Changeset in webkit [293425] by youenn@apple.com
  • 8 edits in trunk/Source/WebKit

REGRESSION(r288464?):[ iOS15 Release GPUP arm64 ] TestWebKitAPI.GPUProcess.ExitsUnderMemoryPressureGetUserMediaAudioCase is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=237854
<rdar://problem/90273222>

Reviewed by Eric Carlson.

stopProducingData was called on some ended tracks.
This would trigger the creation of a new connection in case GPUProcess is gone.
To prevent this, we now keep a connection reference in RemoteRealtimeMediaSourceProxy.
When the GPUProcess connection is being closed, we update the connection if the track is to be continued.

Covered by API test.

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSource.h:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
8:35 AM Changeset in webkit [293424] by Chris Dumez
  • 2 edits in trunk/LayoutTests

http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html is failing
https://bugs.webkit.org/show_bug.cgi?id=239630
<rdar://92128154>

Reviewed by Youenn Fablet.

We get an error when closing the websocket. The error gets queued up on the event loop and
may or may not get processed before the test ends, leading to flakiness. The test is actually
about testing bufferedAmount after closing the socket and this part is still being tested and
reliably passing. As a result, I am simply silencing the error in the test to address the
flakiness.

  • LayoutTests/http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
  • LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/249984@main

7:28 AM Changeset in webkit [293423] by Jonathan Bedard
  • 2 edits in trunk/Tools

[ews-build.webkit.org] Specify repository when sending emails
https://bugs.webkit.org/show_bug.cgi?id=239739
<rdar://problem/92291225>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin.should_send_email_for_pr): Pass repository URL.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Ditto.
(AnalyzeLayoutTestsResults.send_email_for_new_test_failures): Ditto.

Canonical link: https://commits.webkit.org/249983@main

4:01 AM Changeset in webkit [293422] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[DatabaseTracker] Use PRIu64 for logging for portability
https://bugs.webkit.org/show_bug.cgi?id=239765

Reviewed by Adrian Perez de Castro.

Use PRIu64 when logging to avoid warnings.

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::setQuota):

3:59 AM Changeset in webkit [293421] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GStreamer] Mark unused variable
https://bugs.webkit.org/show_bug.cgi?id=239766

Reviewed by Adrian Perez de Castro.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
3:29 AM Changeset in webkit [293420] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

Update test_expectations, run_code_generation.py, angle_unittests.gni from ANGLE upstream
https://bugs.webkit.org/show_bug.cgi?id=239645

Unreviewed, reproducible with Tools/Scripts/update-angle --regenerate-changes-diff

These are not changed in downstream but the changes are due to stale merges.
Reduces the changes.diff

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-26

  • changes.diff:
  • scripts/run_code_generation.py:

(main):

  • src/tests/angle_unittests.gni:
  • src/tests/deqp_support/deqp_egl_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations.
  • src/tests/deqp_support/deqp_gles2_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations.
  • src/tests/deqp_support/deqp_gles31_rotate_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_rotate_TestExpectations.
  • src/tests/deqp_support/deqp_gles31_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations.
  • src/tests/deqp_support/deqp_gles3_rotate_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_rotate_TestExpectations.
  • src/tests/deqp_support/deqp_gles3_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles2_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles2_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles31_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles32_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles32_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles3_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_TestExpectations.
1:15 AM Changeset in webkit [293419] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Partial revert of r249480
https://bugs.webkit.org/show_bug.cgi?id=239700

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-26
Reviewed by Adrian Perez de Castro.

The switch to upstream gtk3 recipe broke something related with icons handling and
introduced a crash in media/video-controls-drag.html. For the time being, revert to our
custom recipe.

This patch also updates the pipenv environment used to build the SDK, to BuildStream 1.6.5.

  • Pipfile:
  • Pipfile.lock:
  • elements/qt5/qtbase.bst:
  • elements/sdk-platform.bst:
  • elements/sdk/adwaita-icon-theme.bst:
  • elements/sdk/gst-plugins-base.bst:
  • elements/sdk/gst-plugins-good.bst:
  • elements/sdk/gtk+-3.bst: Added.

Canonical link: https://commits.webkit.org/249979@main

12:34 AM Changeset in webkit [293418] by youenn@apple.com
  • 9 edits in trunk

Service Worker loads should not expose some ResourceTiming information
https://bugs.webkit.org/show_bug.cgi?id=239608

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/resource-timing-fetch-variants.https-expected.txt:

Source/WebCore:

Filter out some resource timing info when the load is served from a service worker.
While we could do the filtering on service worker side, it is best to do it within PerformanceResourceTiming
as native clients might still want to use non filtered data in case the service worker is returning a network load
as the response.

Covered by rebased test.

  • loader/ResourceTiming.cpp:

(WebCore::ResourceTiming::ResourceTiming):

  • loader/ResourceTiming.h:

(WebCore::ResourceTiming::isLoadedFromServiceWorker const):

  • page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::nextHopProtocol const):
(WebCore::PerformanceResourceTiming::redirectStart const):
(WebCore::PerformanceResourceTiming::redirectEnd const):
(WebCore::PerformanceResourceTiming::domainLookupStart const):
(WebCore::PerformanceResourceTiming::domainLookupEnd const):
(WebCore::PerformanceResourceTiming::connectStart const):
(WebCore::PerformanceResourceTiming::connectEnd const):

  • page/PerformanceResourceTiming.h:

(WebCore::PerformanceResourceTiming::isLoadedFromServiceWorker const):

LayoutTests:

Apr 25, 2022:

11:57 PM Changeset in webkit [293417] by youenn@apple.com
  • 6 edits in trunk

Service workers should not intercept embed/object related loads
https://bugs.webkit.org/show_bug.cgi?id=239642

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https-expected.txt:

Source/WebCore:

In case document loader or image loader are triggered by embed/object elements,
set service worker mode to none.

Covered by rebased test.

  • loader/DocumentLoader.cpp:
  • loader/DocumentLoader.h:
  • loader/ImageLoader.cpp:
11:43 PM Changeset in webkit [293416] by Russell Epstein
  • 1 copy in tags/WebKit-7613.2.7.2.3

Tag WebKit-7613.2.7.2.3.

11:41 PM Changeset in webkit [293415] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.2-branch/Source

Versioning.

WebKit-7613.2.7.2.2

11:36 PM Changeset in webkit [293414] by Russell Epstein
  • 1 copy in tags/WebKit-7613.2.7.1.4

Tag WebKit-7613.2.7.1.4.

11:34 PM Changeset in webkit [293413] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.4

11:31 PM Changeset in webkit [293412] by Russell Epstein
  • 1 copy in tags/WebKit-7613.2.7.0.3

Tag WebKit-7613.2.7.0.3.

11:28 PM Changeset in webkit [293411] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.0-branch/Source

Versioning.

WebKit-7613.2.7.0.3

9:49 PM Changeset in webkit [293410] by Aditya Keerthi
  • 4 edits in trunk

[iOS] Add NSCoding support for findInteractionEnabled
https://bugs.webkit.org/show_bug.cgi?id=239733
rdar://87850648

Reviewed by Wenson Hsieh.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithCoder:]):
(-[WKWebView encodeWithCoder:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Coding.mm:

(TEST):

9:07 PM Changeset in webkit [293409] by Devin Rousso
  • 31 edits
    3 adds
    2 deletes in trunk

Web Inspector: add UI for blocking requests
https://bugs.webkit.org/show_bug.cgi?id=239674

Reviewed by Patrick Angle.

Source/WebCore:

Test: http/tests/inspector/network/intercept-request-with-error.html

  • inspector/agents/InspectorNetworkAgent.h:

(WebCore::InspectorNetworkAgent::errorDomain): Added.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::toResourceErrorType): Added.
(WebCore::InspectorNetworkAgent::interceptRequestWithError):
Unify the resource error message for consistency.
Mark the resource error as coming from Web Inspector so that it can identified (see below).

  • inspector/agents/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::didFailLoading):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::logErrorAndFail):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail):
Don't add console messages for requests that were blocked by Web Inspector.

  • inspector/agents/page/PageNetworkAgent.h:
  • inspector/agents/page/PageNetworkAgent.cpp:

(WebCore::PageNetworkAgent::addConsoleMessage): Added.

  • inspector/agents/worker/WorkerNetworkAgent.h:
  • inspector/agents/worker/WorkerNetworkAgent.cpp:

(WebCore::WorkerNetworkAgent::addConsoleMessage): Added.
Add a virtual method so that InspectorNetworkAgent can log to the console (PageNetworkAgent
uses the Page, WorkerNetworkAgent uses the WorkerOrWorkletGlobalScope, etc.).

Source/WebInspectorUI:

  • UserInterface/Models/LocalResourceOverride.js:

(WI.LocalResourceOverride):
(WI.LocalResourceOverride.create):
(WI.LocalResourceOverride.displayNameForNetworkStageOfType): Added.
(WI.LocalResourceOverride.displayNameForType):
(WI.LocalResourceOverride.displayNameForResourceErrorType): Added.
(WI.LocalResourceOverride.fromJSON):
(WI.LocalResourceOverride.prototype.toJSON):
(WI.LocalResourceOverride.prototype.get resourceErrorType): Added.
(WI.LocalResourceOverride.prototype.set resourceErrorType): Added.
(WI.LocalResourceOverride.prototype.get canMapToFile):
Add WI.LocalResourceOverride.ResourceErrorType (and a corresponding member variable) that
is be used when blocking matching requests.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.supportsBlockingRequests): Added.
(WI.NetworkManager.prototype.async requestIntercepted):
(WI.NetworkManager.prototype._handleResourceOverrideResourceErrorTypeChanged): Added.
Make sure to save WI.LocalResourceOverride.InterceptType.Block whenever the
WI.LocalResourceOverride.ResourceErrorType changes.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView):
(WI.ResourceContentView.prototype._populateCreateLocalResourceOverrideContextMenu):
(WI.ResourceContentView.prototype._handleCreateLocalResourceOverride): Deleted.
Add contextmenu items for "Block Request URL".

  • UserInterface/Views/LocalResourceOverrideRequestContentView.js:

(WI.LocalResourceOverrideRequestContentView):
(WI.LocalResourceOverrideRequestContentView.prototype.initialLayout):
(WI.LocalResourceOverrideRequestContentView.prototype.initialLayout.addOption): Added.

  • UserInterface/Views/LocalResourceOverrideRequestContentView.css:

(.content-view.text.local-resource-override-request > .message-text-view select): Added.
There will be no request or response content for WI.LocalResourceOverride.InterceptType.Block
so show a <select> for choosing the WI.LocalResourceOverride.ResourceErrorType.

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype.get serializedData):
(WI.LocalResourceOverridePopover.prototype.show):

  • UserInterface/Views/LocalResourceOverridePopover.css:

(.popover .local-resource-override-popover-content:is(.response, .block) .editor.url): Renamed from .popover .local-resource-override-popover-content.response .editor.url.
Only show the URL editor for WI.LocalResourceOverride.InterceptType.Block.

  • UserInterface/Models/Resource.js:

(WI.Resource.classNamesForResource):

  • UserInterface/Views/ResourceTreeElement.js:

(WI.ResourceTreeElement.prototype._updateResource):
(WI.ResourceTreeElement.prototype._updateIcon):
(WI.ResourceTreeElement.prototype._loadingDidFail): Added.

  • UserInterface/Views/ResourceIcons.css:

(.resource-icon.override.skip-network .icon): Added.
(body:not(.window-inactive, .window-docked-inactive) :is(.table, .data-grid):focus-within .selected .resource-icon.override.skip-network .icon, body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .selected.resource-icon.override.skip-network .icon): Added.
(@media (prefers-color-scheme: dark) .resource-icon.override.skip-network .icon): Added.

  • UserInterface/Images/SkipNetwork.svg: Added.

Add a new icon for when requests do not involve any network activity.

  • UserInterface/Views/ContentView.js:

(WI.ContentView.createFromRepresentedObject):
(WI.ContentView.resolvedRepresentedObjectForRepresentedObject):

  • UserInterface/Views/FontResourceContentView.js:

(WI.FontResourceContentView.prototype.dropZoneShouldAppearForDragEvent):

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.dropZoneShouldAppearForDragEvent):

  • UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.willDismissPopover):
Use positive checks for the desired WI.LocalResourceOverride.InterceptType instead of
a negative check for the one value meant to be exlucded in the expectation that no new
enum values would get added (which this patch proves to be false).

  • UserInterface/Views/LocalResourceOverrideLabelView.js:

(WI.LocalResourceOverrideLabelView.prototype.initialLayout):
Use the new WI.LocalResourceOverride.displayNameForNetworkStageOfType instead of doing
that work here.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • http/tests/inspector/network/intercept-request-with-error.html: Added.
  • http/tests/inspector/network/intercept-request-with-error-expected.txt: Added.
  • inspector/network/interceptRequestWithError.html: Removed.
  • inspector/network/interceptRequestWithError-expected.txt: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Reworked this test to use WI.LocalResourceOverride instead of the protocol.

8:53 PM Changeset in webkit [293408] by Elliott Williams
  • 2 edits in trunk/Source/WebKit

[XCBuild] Refactor WebKit resources to emit output tasks for dependency validation
https://bugs.webkit.org/show_bug.cgi?id=239556

Reviewed by Alexey Proskuryakov.

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    • Replace the script phase that calls generate-automation-atom.py with a build rule, and process those files as headers.
    • Clean up references and project metadata for deleted files.
    • Use WK_FRAMEWORK_VERSION_PREFIX in script output paths so that the realpaths are correct on macOS.

Canonical link: https://commits.webkit.org/249974@main

7:16 PM Changeset in webkit [293407] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.3.2

Tag WebKit-7613.2.7.3.2.

7:14 PM Changeset in webkit [293406] by Alan Coon
  • 1 edit in branches/safari-613.2.7.3-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

7:13 PM Changeset in webkit [293405] by Alan Coon
  • 9 edits in branches/safari-613.2.7.3-branch/Source

Versioning.

WebKit-7613.2.7.3.2

7:06 PM Changeset in webkit [293404] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.0.2

Tag WebKit-7613.2.7.0.2.

7:03 PM Changeset in webkit [293403] by Alan Coon
  • 1 edit in branches/safari-613.2.7.0-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

7:03 PM Changeset in webkit [293402] by Alan Coon
  • 1 edit in branches/safari-613.2.7.0-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

7:03 PM Changeset in webkit [293401] by Alan Coon
  • 112 edits
    5 deletes in branches/safari-613.2.7.0-branch/Source

Apply patch. rdar://problem/67069953

6:55 PM Changeset in webkit [293400] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.1.3

Tag WebKit-7613.2.7.1.3.

6:49 PM Changeset in webkit [293399] by Alan Coon
  • 1 edit in branches/safari-613.2.7.1-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

6:49 PM Changeset in webkit [293398] by Alan Coon
  • 1 edit in branches/safari-613.2.7.1-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

6:49 PM Changeset in webkit [293397] by Alan Coon
  • 112 edits
    5 deletes in branches/safari-613.2.7.1-branch/Source

Apply patch. rdar://problem/67069953

6:44 PM Changeset in webkit [293396] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.2.1

Tag WebKit-7613.2.7.2.1.

6:41 PM Changeset in webkit [293395] by Alan Coon
  • 1 delete in tags/WebKit-7613.2.7.2.1

Delete tag.

6:40 PM Changeset in webkit [293394] by Alan Coon
  • 1 edit in branches/safari-613.2.7.2-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

6:36 PM Changeset in webkit [293393] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

structureIDToStructureWithScratch should only do things if ADDRESS64
https://bugs.webkit.org/show_bug.cgi?id=239749

Reviewed by Saam Barati.

  • llint/LowLevelInterpreter64.asm:
6:31 PM Changeset in webkit [293392] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

6:22 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
6:20 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
6:16 PM Changeset in webkit [293391] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r290860. rdar://problem/89291570

AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475

Reviewed by Chris Fleizach.

This is better practice as ascending the hierarchy could cause
the object to get deleted.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textChanged):

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

6:13 PM Changeset in webkit [293390] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.2.1

Tag WebKit-7613.2.7.2.1.

6:09 PM Changeset in webkit [293389] by Alan Coon
  • 1 edit in branches/safari-613.2.7.2-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

6:09 PM Changeset in webkit [293388] by Alan Coon
  • 112 edits
    5 deletes in branches/safari-613.2.7.2-branch/Source

Apply patch. rdar://problem/67069953

6:02 PM Changeset in webkit [293387] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.3.1

Tag WebKit-7613.2.7.3.1.

6:00 PM Changeset in webkit [293386] by Alan Coon
  • 1 edit in branches/safari-613.2.7.3-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

6:00 PM Changeset in webkit [293385] by Alan Coon
  • 112 edits
    5 deletes in branches/safari-613.2.7.3-branch/Source

Apply patch. rdar://problem/67069953

5:57 PM Changeset in webkit [293384] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/JavaScriptCore/API/JSTypedArray.cpp

Apply patch. rdar://67069953

5:41 PM Changeset in webkit [293383] by Alan Coon
  • 112 edits
    5 deletes in branches/safari-613-branch/Source

Apply patch. rdar://problem/67069953

5:25 PM Changeset in webkit [293382] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Differentiate gardening commits in bug comments
https://bugs.webkit.org/show_bug.cgi?id=239740
<rdar://problem/92293298>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/steps.py:

(DetermineLandedIdentifier.comment_text_for_bug):

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/249972@main

5:21 PM Changeset in webkit [293381] by Jonathan Bedard
  • 2 edits in trunk/Tools

GitHub EWS is confused with prior PR's merge-blocked label
https://bugs.webkit.org/show_bug.cgi?id=239411
<rdar://problem/92196846>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(BlockPullRequest.start): Only apply blocked label if tested hash and current hash match.

Canonical link: https://commits.webkit.org/249971@main

5:16 PM Changeset in webkit [293380] by Brent Fulgham
  • 6 edits in trunk/Source/WebKit

HARDENING: Add MESSAGE_CHECK in some Captive Portal cases
https://bugs.webkit.org/show_bug.cgi?id=239551
<rdar://91478748>

Reviewed by Darin Adler.

Add MESSAGE_CHECK protections to a set of message handlers for API prohibited when
sent from a Captive Portal process. This change also adds a flag to the GPUProcessConnectionParameters
struct so that GPU Process connections can be marked as being associated with a Captive Portal
process.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::createGraphicsContextGL):
(WebKit::GPUConnectionToWebProcess::releaseGraphicsContextGL):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::isCaptivePortalModeEnabled const):

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestinationManager::createAudioDestination):
(WebKit::RemoteAudioDestinationManager::deleteAudioDestination):
(WebKit::RemoteAudioDestinationManager::startAudioDestination):
(WebKit::RemoteAudioDestinationManager::stopAudioDestination):

  • Shared/GPUProcessConnectionParameters.h:

(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getGPUProcessConnection):

5:12 PM Changeset in webkit [293379] by Chris Dumez
  • 8 edits in trunk/Source

Introduce new makeStringByReplacingAll(StringView, UChar, UChar) function
https://bugs.webkit.org/show_bug.cgi?id=239728

Reviewed by Darin Adler.

Introduce new makeStringByReplacingAll(StringView, UChar, UChar) function, to complement
the existing makeStringByReplacingAll(const String&, UChar, UChar). This allows several
call sites to avoid a temporary String constructing since they have a StringView.

  • Source/WebCore/PAL/pal/text/TextCodecICU.cpp:

(PAL::TextCodecICU::encode const):

  • Source/WTF/wtf/URLParser.cpp:

(WTF::URLParser::parseURLEncodedForm):

  • Source/WTF/wtf/text/StringImpl.cpp:

(WTF::StringImpl::replace):

  • Source/WTF/wtf/text/StringImpl.h:

(WTF::StringImpl::createByReplacingInCharacters):

  • Source/WTF/wtf/text/StringView.cpp:

(WTF::makeStringByReplacingAll):

  • Source/WTF/wtf/text/StringView.h:
  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::queryKeysAndValues):

  • Source/WebCore/editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedString):

Canonical link: https://commits.webkit.org/249969@main

5:03 PM Changeset in webkit [293378] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebCore/page/Page.cpp

Unreviewed build fix. rdar://80544133

./page/Page.cpp:389:9: error: incomplete type 'WebCore::FontCache' named in nested name specifier

5:03 PM Changeset in webkit [293377] by Russell Epstein
  • 3 edits in branches/safari-613-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

5:02 PM Changeset in webkit [293376] by Russell Epstein
  • 3 edits in branches/safari-613-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

5:02 PM Changeset in webkit [293375] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291724. rdar://problem/91975589

Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168

Reviewed by Chris Fleizach.

Source/WebKit:

Given this markup:

<iframe src="/path/to/paystub.pdf">

An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.

This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.

Test: accessibility/mac/iframe-pdf.html

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin):

LayoutTests:

  • accessibility/mac/iframe-pdf-expected.txt: Added.
  • accessibility/mac/iframe-pdf.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test as it always times out in WK1 (similar to accessibility/mac/basic-embed-pdf-accessibility.html)

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

5:02 PM Changeset in webkit [293374] by Russell Epstein
  • 2 edits in branches/safari-613-branch

Apply patch. rdar://problem/91590827

5:02 PM Changeset in webkit [293373] by Russell Epstein
  • 10 edits in branches/safari-613-branch

Apply patch. rdar://problem/91288849

5:02 PM Changeset in webkit [293372] by Russell Epstein
  • 20 edits
    3 adds in branches/safari-613-branch

Cherry-pick r291589. rdar://problem/90511155

LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

Import web-platform-tests test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:

Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/BroadcastChannel.cpp: (WebCore::shouldPartitionOrigin): (WebCore::BroadcastChannel::MainThreadBridge::registerChannel): (WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel): (WebCore::BroadcastChannel::MainThreadBridge::postMessage):
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:
  • page/PartitionedSecurityOrigin.h: Added. (WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin): (WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const): (WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const): (WebCore::operator==): (WTF::add): (WTF::PartitionedSecurityOriginHash::hash): (WTF::PartitionedSecurityOriginHash::equal): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):

Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp: (WebKit::toClientOrigin): (WebKit::WebBroadcastChannelRegistry::registerChannel): (WebKit::WebBroadcastChannelRegistry::unregisterChannel): (WebKit::WebBroadcastChannelRegistry::postMessage): (WebKit::WebBroadcastChannelRegistry::postMessageLocally): (WebKit::WebBroadcastChannelRegistry::postMessageToRemote): (WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121

Reviewed by Yusuke Suzuki.

  • PlatformMac.cmake:

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

5:02 PM Changeset in webkit [293371] by Russell Epstein
  • 11 edits in branches/safari-613-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

5:02 PM Changeset in webkit [293370] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613-branch

Cherry-pick r292072. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_attachmentElementClient):
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.

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

5:02 PM Changeset in webkit [293369] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source

Apply patch. rdar://problem/90968687

4:14 PM Changeset in webkit [293368] by Devin Rousso
  • 9 edits in trunk/Source

Web Inspector: request interception should not be guarded based on service workers
https://bugs.webkit.org/show_bug.cgi?id=239677

Reviewed by Patrick Angle.

Source/WebCore:

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::shouldInterceptRequest):
(WebCore::InspectorInstrumentation::interceptRequest):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::shouldInterceptRequestImpl):

  • inspector/InspectorInstrumentationWebKit.h:

(WebCore::InspectorInstrumentationWebKit::shouldInterceptRequest):
(WebCore::InspectorInstrumentationWebKit::interceptRequest):

  • inspector/InspectorInstrumentationWebKit.cpp:

(WebCore::InspectorInstrumentationWebKit::shouldInterceptRequestInternal):
Pass along ResourceLoader instead of ResourceRequest so that InspectorNetworkAgent::shouldInterceptRequest
can look at the configuration of the load (e.g. serviceWorkerRegistrationIdentifier), not
just the request configuration.

  • inspector/agents/InspectorNetworkAgent.h:
  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::shouldInterceptRequest):
Move the #if ENABLE(SERVICE_WORKER) here.

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):
Move the #if ENABLE(SERVICE_WORKER) to WebCore::InspectorNetworkAgent::shouldInterceptRequest.

3:56 PM Changeset in webkit [293367] by Devin Rousso
  • 4 edits
    2 adds in trunk

Web Inspector: crash when a subresource is intercepted by a skip network local override with an error status code
https://bugs.webkit.org/show_bug.cgi?id=239675

Reviewed by Patrick Angle.

Source/WebCore:

Test: http/tests/inspector/network/intercept-request-subresource-with-response-error-status-code.html

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
SubresourceLoader::didReceiveResponse will eventually cause releaseResources (via cancel),
which will clear the m_resource, which is needed in order to provide the response content.
We should only provide the response content if we're still processing the load.

LayoutTests:

  • http/tests/inspector/network/intercept-request-subresource-with-response-error-status-code.html: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-response-error-status-code-expected.txt: Added.
  • platform/mac-wk1/TestExpectations:
3:55 PM Changeset in webkit [293366] by Russell Epstein
  • 3 edits in branches/safari-614.1.11-branch/Source/WebKit

Cherry-pick r293339. rdar://problem/92283605

Fix the tvOS and watchOS builds after r293231
https://bugs.webkit.org/show_bug.cgi?id=239736
rdar://92283605

Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/WKWebView.h:

UIFindInteraction is marked unavailable on watchOS and tvOS.

  • UIProcess/API/Cocoa/WKWebView.mm:

Use platform-checks rather than the existing HAVE macro, so that these
methods are still implemented in older builds. There are no version
checks in WKWebView.h.

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

3:45 PM Changeset in webkit [293365] by Russell Epstein
  • 1 copy in branches/safari-614.1.11-branch

New branch.

3:44 PM Changeset in webkit [293364] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.12

3:24 PM Changeset in webkit [293363] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the macOS Monterey build after r293340
https://bugs.webkit.org/show_bug.cgi?id=239712

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

Put some of the "Copy Cropped Image" logic here behind ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS), instead of just
ENABLE(IMAGE_ANALYSIS).

3:03 PM Changeset in webkit [293362] by Alan Coon
  • 2 edits in branches/safari-613.2.7.1-branch/Source/WebCore

Cherry-pick r291968. rdar://problem/91681393

AccessibilityObject::listMarkerTextForNodeAndPosition should check for presence of list item before anything else
https://bugs.webkit.org/show_bug.cgi?id=238341

Reviewed by Andres Gonzalez.

The first thing AccessibilityObject::listMarkerTextForNodeAndPosition
does is check to see that the given range isStartOfLine. We
should instead check if there's an actual list item to work with
before doing this, since isStartOfLine can cause crashes.

Covered by test
accessibility/mac/attributed-string-with-listitem-multiple-lines.html.

  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

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

3:03 PM Changeset in webkit [293361] by Alan Coon
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Cherry-pick r291968. rdar://problem/91681393

AccessibilityObject::listMarkerTextForNodeAndPosition should check for presence of list item before anything else
https://bugs.webkit.org/show_bug.cgi?id=238341

Reviewed by Andres Gonzalez.

The first thing AccessibilityObject::listMarkerTextForNodeAndPosition
does is check to see that the given range isStartOfLine. We
should instead check if there's an actual list item to work with
before doing this, since isStartOfLine can cause crashes.

Covered by test
accessibility/mac/attributed-string-with-listitem-multiple-lines.html.

  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

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

2:35 PM Changeset in webkit [293360] by Alan Coon
  • 2 edits in branches/safari-613.2.7.3-branch/Source/WebCore

Cherry-pick r290860. rdar://problem/89291570

AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475

Reviewed by Chris Fleizach.

This is better practice as ascending the hierarchy could cause
the object to get deleted.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textChanged):

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

2:35 PM Changeset in webkit [293359] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.7

Tag WebKit-7614.1.9.7.

2:33 PM Changeset in webkit [293358] by Alan Coon
  • 9 edits in branches/safari-613.2.7.3-branch/Source

Versioning.

WebKit-7613.2.7.3.1

2:28 PM Changeset in webkit [293357] by Alan Coon
  • 2 edits in branches/safari-613.2.7.2-branch/Source/WebCore

Cherry-pick r290860. rdar://problem/89291570

AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475

Reviewed by Chris Fleizach.

This is better practice as ascending the hierarchy could cause
the object to get deleted.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textChanged):

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

2:27 PM Changeset in webkit [293356] by Alan Coon
  • 9 edits in branches/safari-613.2.7.2-branch/Source

Versioning.

WebKit-7613.2.7.2.1

2:25 PM Changeset in webkit [293355] by Russell Epstein
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.7

2:24 PM Changeset in webkit [293354] by Alan Coon
  • 2 edits in branches/safari-613.2.7.1-branch/Source/WebCore

Cherry-pick r290860. rdar://problem/89291570

AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475

Reviewed by Chris Fleizach.

This is better practice as ascending the hierarchy could cause
the object to get deleted.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textChanged):

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

2:18 PM Changeset in webkit [293353] by Alan Coon
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Revert r293286. rdar://problem/92198272

This reverts r293343.

2:18 PM Changeset in webkit [293352] by Alan Coon
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Cherry-pick r290860. rdar://problem/89291570

AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475

Reviewed by Chris Fleizach.

This is better practice as ascending the hierarchy could cause
the object to get deleted.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textChanged):

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

1:59 PM Changeset in webkit [293351] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.6

Tag WebKit-7614.1.9.6.

1:59 PM Changeset in webkit [293350] by Alan Coon
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.3

1:57 PM Changeset in webkit [293349] by Russell Epstein
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.6

1:55 PM Changeset in webkit [293348] by ysuzuki@apple.com
  • 8 edits in trunk

[JSC] Enable change-array-by-copy
https://bugs.webkit.org/show_bug.cgi?id=239678

Reviewed by Saam Barati.

  • Source/JavaScriptCore/runtime/OptionsList.h:

Canonical link: https://commits.webkit.org/249964@main

1:52 PM Changeset in webkit [293347] by Alan Coon
  • 2 edits in branches/safari-613.2.7.1-branch/Source/WebCore

Cherry-pick r292430. rdar://problem/92204558

[Cocoa] Video is sometimes not visible after r292049
https://bugs.webkit.org/show_bug.cgi?id=238826

Reviewed by Jer Noble.

RenderVideo::willBeDestroyed calls MediaPlayer::setPageIsVisible, which causes
MediaPlayerPrivateAVFoundationObjC::platformSetVisible to hide the AVPlayerLayer.
HTMLMediaElement::visibilityStateChanged is the only other thing that calls
MediaPlayer::setPageIsVisible, and it only calls it when the page visibility changes,
so if that doesn't happen the AVPlayerLayer is not shown when the renderer is
recreated.

  • rendering/RenderVideo.cpp: (WebCore::RenderVideo::willBeDestroyed): Don't call MediaPlayer::setPageIsVisible(false), the page visibility has not changed.

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

1:52 PM Changeset in webkit [293346] by Alan Coon
  • 2 edits in branches/safari-613.2.7.1-branch/Source/WebCore

Cherry-pick r293286. rdar://problem/92198272

Crash under AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=239683
<rdar://92198272>

Reviewed by Alan Bujtas.

Crash data suggest that m_page can be null in
AsyncScrollingCoordinator::scheduleRenderingUpdate(), which does seem possible because
scheduleRenderingUpdate() is a dispatch from the scrolling thread, and
ScrollingCoordinator::pageDestroyed() may have run before it runs.

  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):

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

1:49 PM Changeset in webkit [293345] by Chris Fleizach
  • 6 edits
    2 adds in trunk

AX: Don't expose aria-roledescription value on "generic" elements (e.g. div and span) unless explicit role value is also defined
https://bugs.webkit.org/show_bug.cgi?id=174248
<rdar://problem/33178050>

Reviewed by Andres Gonzalez.

Source/WebCore:

ARIA spec states to not expose the role description on "generic" elements.
https://www.w3.org/TR/wai-aria/#aria-roledescription

Test: accessibility/ignored-aria-role-description.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIARoleDescription const):
(WebCore::AccessibilityObject::roleDescription const):

  • accessibility/AccessibilityObject.h:

LayoutTests:

  • accessibility/ignored-aria-role-description-expected.txt: Added.
  • accessibility/ignored-aria-role-description.html: Added.
1:48 PM Changeset in webkit [293344] by Alan Coon
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Cherry-pick r292430. rdar://problem/92204558

[Cocoa] Video is sometimes not visible after r292049
https://bugs.webkit.org/show_bug.cgi?id=238826

Reviewed by Jer Noble.

RenderVideo::willBeDestroyed calls MediaPlayer::setPageIsVisible, which causes
MediaPlayerPrivateAVFoundationObjC::platformSetVisible to hide the AVPlayerLayer.
HTMLMediaElement::visibilityStateChanged is the only other thing that calls
MediaPlayer::setPageIsVisible, and it only calls it when the page visibility changes,
so if that doesn't happen the AVPlayerLayer is not shown when the renderer is
recreated.

  • rendering/RenderVideo.cpp: (WebCore::RenderVideo::willBeDestroyed): Don't call MediaPlayer::setPageIsVisible(false), the page visibility has not changed.

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

1:44 PM Changeset in webkit [293343] by Alan Coon
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Cherry-pick r293286. rdar://problem/92198272

Crash under AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=239683
<rdar://92198272>

Reviewed by Alan Bujtas.

Crash data suggest that m_page can be null in
AsyncScrollingCoordinator::scheduleRenderingUpdate(), which does seem possible because
scheduleRenderingUpdate() is a dispatch from the scrolling thread, and
ScrollingCoordinator::pageDestroyed() may have run before it runs.

  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):

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

1:36 PM Changeset in webkit [293342] by Alan Coon
  • 9 edits in branches/safari-613.2.7.0-branch/Source

Versioning.

WebKit-7613.2.7.0.2

1:09 PM Changeset in webkit [293341] by timothy_horton@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix duplicate headers warning in libwebrtc Copy Headers phase
https://bugs.webkit.org/show_bug.cgi?id=239415

Reviewed by Sam Weinig.

  • libwebrtc.xcodeproj/project.pbxproj:

Remove and re-add these files (Xcode won't delete just one copy of them,
because they have the same identifiers).

1:00 PM Changeset in webkit [293340] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

[macOS] Only show a context menu action to "Copy Cropped Image" when appropriate
https://bugs.webkit.org/show_bug.cgi?id=239712
rdar://92239384

Reviewed by Darin Adler.

Implement gating for the "Copy Cropped Image" context menu item. This is similar to the current gating mechanism
used for visual look up, wherein the Look Up menu item is asynchronously appended to the context menu.

In this case, we only append the "Copy Cropped Image" menu item in the case where requestImageAnalysisMarkup
completes with a non-null result.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:

Cache the image analysis results for "Copy Cropped Image" in a member variable, m_croppedImageForContextMenu.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setCroppedImageForContextMenu):
(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):

12:58 PM Changeset in webkit [293339] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

Fix the tvOS and watchOS builds after r293231
https://bugs.webkit.org/show_bug.cgi?id=239736
rdar://92283605

Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/WKWebView.h:

UIFindInteraction is marked unavailable on watchOS and tvOS.

  • UIProcess/API/Cocoa/WKWebView.mm:

Use platform-checks rather than the existing HAVE macro, so that these
methods are still implemented in older builds. There are no version
checks in WKWebView.h.

12:54 PM Changeset in webkit [293338] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: response overrides with an error status code should indicate that somewhere
https://bugs.webkit.org/show_bug.cgi?id=239676

Reviewed by Patrick Angle.

  • UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.updateStatus):
Also have the WI.LocalResourceOverrideTreeElement add/remove the "error" CSS class
depening on the state of the related WI.LocalResource (which is what's done for "regular"
WI.ResourceTreeElement and WI.Resource).

12:09 PM Changeset in webkit [293337] by ntim@apple.com
  • 4 edits in trunk/Source/WebCore

Unprefix html.css, fullscreen.css and pdfjs-extras
https://bugs.webkit.org/show_bug.cgi?id=239725

Reviewed by Brent Fulgham.

Use unprefixed versions of CSS values & properties.
Excluded text-align: -webkit-center which has different behavior than text-align: center.

  • Modules/pdfjs-extras/adwaita/style.css:

(.dropdownToolbarButton > select):

  • css/fullscreen.css:

(:-webkit-full-screen-ancestor:not(iframe)):

  • css/html.css:

(input, textarea, select, button, meter, progress):
(#if defined(ENABLE_DATE_AND_TIME_INPUT_TYPES) && ENABLE_DATE_AND_TIME_INPUT_TYPES):
(input::-webkit-credentials-auto-fill-button):
(input::-webkit-contacts-auto-fill-button):
(input::-webkit-credit-card-auto-fill-button):
(::-webkit-validation-bubble-message):
(::-webkit-validation-bubble-arrow):

11:49 AM Changeset in webkit [293336] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.1.2

Tag WebKit-7613.2.7.1.2.

11:33 AM Changeset in webkit [293335] by Alan Coon
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.2

11:29 AM Changeset in webkit [293334] by ntim@apple.com
  • 59 edits in trunk/Source/WebInspectorUI

Web Inspector: Unprefix CSS properties in source code
https://bugs.webkit.org/show_bug.cgi?id=239517

Reviewed by Patrick Angle.

Properties:
-webkit-appearance
-webkit-mask-image
-webkit-clip-path
-webkit-text-decoration-*
-webkit-user-select

Values:
cursor: -webkit-grab/grabbing
-webkit-fill-available

JS Properties:
webkitTransform

Media queries:
-webkit-device-pixel-ratio
-webkit-min-device-pixel-ratio
-webkit-max-device-pixel-ratio

Also used shorthand properties there and there.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.sheet-container):
(.uncaught-exception-sheet li):

  • UserInterface/Views/AuditTestCaseContentView.css:

(.content-view.audit-test-case > section table > tr > td > :not(.tree-outline)):

  • UserInterface/Views/AuditTestContentView.css:

(.content-view.audit-test.manager-editing > header :is(.name, .description)[contenteditable]):

  • UserInterface/Views/BoxShadowEditor.css:

(.box-shadow-editor > table > tr > td > input[type="text"]):

  • UserInterface/Views/BreakpointActionView.css:

(.breakpoint-action-eval-editor):

  • UserInterface/Views/BreakpointPopover.css:

(.popover .edit-breakpoint-popover-content > table > tr.condition > td > .editor):

  • UserInterface/Views/BreakpointTreeElement.css:

(.item.breakpoint .status > .status-image.auto-continue::after):

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu > .content > .overview .legend):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats):

  • UserInterface/Views/CPUUsageCombinedView.css:

(.cpu-usage-combined-view > .details):

  • UserInterface/Views/ChangesDetailsSidebarPanel.css:

(.sidebar > .panel.changes-panel .css-rule):

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror-linewidget):

  • UserInterface/Views/ColorSquare.css:

(@media (-webkit-device-pixel-ratio: 1) .color-square > .srgb-edge): Deleted.

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section):
(.computed-style-section .computed-property-item .disclosure-button):

  • UserInterface/Views/ConsoleMessageView.css:

(.console-user-command.special-user-log > .console-message-body):
(.console-message-body > span):
(.console-message-body > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)):
(.console-message .console-message-extra-parameters-container > li,):
(.console-user-command > .console-message-body):

  • UserInterface/Views/CookiePopover.css:

(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"])):

  • UserInterface/Views/DOMEventsBreakdownView.css:

(.waterfall-popover-content .dom-events-breakdown):

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom.non-selectable):
(.tree-outline.dom li .selection-area):

  • UserInterface/Views/DatabaseContentView.css:

(:matches(.database-user-query, .database-query-result)::before):
(.database-query-text):
(.database-query-result.error):
(.database-query-result.no-results):

  • UserInterface/Views/DetailsSection.css:

(.details-section > .content > .group > .row.simple > .value):
(.details-section > .content > .group > .row.text):
(@media (-webkit-min-device-pixel-ratio: 2) .details-section,): Deleted.

  • UserInterface/Views/Editing.css:

(.editing):

  • UserInterface/Views/EventBreakpointPopover.css:

(.popover .edit-breakpoint-popover-content .event input):

  • UserInterface/Views/FilterBar.css:

(:matches(.filter-bar, .search-bar) > input[type="search"]):
(:matches(.filter-bar, .search-bar) > input[type="search"]::-webkit-search-decoration):

  • UserInterface/Views/FindBanner.css:

(.find-banner > input[type="search"]):
(.find-banner > button):

  • UserInterface/Views/FontResourceContentView.css:

(.content-view.resource.font .preview > .line > .content):

  • UserInterface/Views/FormattedValue.css:

(.formatted-node > .tree-outline.dom li):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .options-container > .filter-bar):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):

  • UserInterface/Views/GoToLineDialog.css:

(.go-to-line-dialog > div > input):

  • UserInterface/Views/GradientEditor.css:

(.gradient-editor > .gradient-angle > input::-webkit-inner-spin-button):

  • UserInterface/Views/GradientSlider.js:

(WI.GradientSliderKnob.prototype._updateTransform):
(WI.GradientSliderKnob):

  • UserInterface/Views/ImageResourceContentView.css:

(.content-view.resource.image img):

  • UserInterface/Views/IndexedDatabaseContentView.css:

(.indexed-database.content-view):

  • UserInterface/Views/InlineSwatch.css:

(@media (-webkit-max-device-pixel-ratio: 1) .inline-swatch): Deleted.

  • UserInterface/Views/InputPopover.css:

(.popover .input-popover-content > .editor):

  • UserInterface/Views/LocalResourceOverrideLabelView.css:

(.local-resource-override-label-view > div > .url):

  • UserInterface/Views/LocalResourceOverridePopover.css:

(.popover .local-resource-override-popover-content .editor):

  • UserInterface/Views/Main.css:

(body):
(input[type=range]):
(.message-text-view):
(.resource-link,):
(.go-to-arrow):
(.css-documentation-button):
(.search-settings):
(.expand-list-button):
(.bouncy-highlight):
(@media (-webkit-device-pixel-ratio: 1) .reference-page-link): Deleted.

  • UserInterface/Views/NetworkResourceDetailView.css:

(.content-view.resource-details):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table > .statistics > .statistic > .text):

  • UserInterface/Views/ObjectTreeView.css:

(.tree-outline.object li):

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog > .field > input):

  • UserInterface/Views/RecordingContentView.css:

(.content-view.recording > .preview-container):

  • UserInterface/Views/ResourceCookiesContentView.css:

(.resource-cookies .table > .header):

  • UserInterface/Views/ResourceHeadersContentView.css:

(.resource-headers .go-to-link):
(.resource-headers .call-stack):

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(.waterfall-popover-content .resource-timing-breakdown):

  • UserInterface/Views/ResourceTreeElement.css:

(.item.resource.resource-type-websocket .status > .ready-state):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css:

(.watch-expression-editor):

  • UserInterface/Views/Slider.css:

(@media (-webkit-min-device-pixel-ratio: 2) .slider): Deleted.

  • UserInterface/Views/SourceCodeTextEditor.css:

(.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
(@media (-webkit-min-device-pixel-ratio: 2) .popover .debugger-popover-content > .body): Deleted.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor):
(.spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > *:not(.name, .value-container),):
(.spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > *:not(.name, .value-container),):
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property.invalid-value:not(.disabled) > .content .value:not(.editing),):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration.selecting,):
(.spreadsheet-css-declaration .selector > .icon):

  • UserInterface/Views/SpringEditor.css:

(.spring-editor > .number-input-container > .number-input-row > input::-webkit-inner-spin-button):

  • UserInterface/Views/TextEditor.css:

(.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .breakpoint-auto-continue:not(.execution-line.primary) .CodeMirror-linenumber::after):

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame.tall):

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler:not(.disabled, .resizing-selection) > .selection-drag):
(.timeline-ruler:not(.disabled, .resizing-selection) > .selection-drag:active):

  • UserInterface/Views/TreeOutline.css:

(.tree-outline .item .disclosure-button):

  • UserInterface/Views/TypeTreeElement.css:

(.item.type-tree-element > .disclosure-button):

  • UserInterface/Views/TypeTreeView.css:

(.tree-outline.type li):

  • UserInterface/Views/URLBreakpointPopover.css:

(.popover .edit-breakpoint-popover-content .url .editor):
(@media (prefers-color-scheme: dark) .popover .edit-breakpoint-popover-content .url .editor):

11:25 AM Changeset in webkit [293333] by Antti Koivisto
  • 4 edits
    2 adds in trunk

[CSS Typed OM] Fix AttributeStyleMap.get for list values
https://bugs.webkit.org/show_bug.cgi?id=239716

Reviewed by Alan Bujtas.

Source/WebCore:

Test: css-typedom/typed-om-perspective-value.html

  • css/typedom/CSSStyleValueFactory.cpp:

(WebCore::CSSStyleValueFactory::reifyValue):

The list here hasn't been deep copied. Don't move away a member.

  • css/typedom/CSSStyleValueFactory.h:

Passing Ref<>&& instead of Ref<> here is a bug-prone over-optimization.

LayoutTests:

  • css-typedom/typed-om-perspective-value-expected.txt: Added.
  • css-typedom/typed-om-perspective-value.html: Added.
11:19 AM Changeset in webkit [293332] by ntim@apple.com
  • 7 edits in trunk/Source/WebCore

Unprefix modern-media-controls CSS properties
https://bugs.webkit.org/show_bug.cgi?id=239726

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/controls/button.css:

(button):
(button > picture):

  • Modules/modern-media-controls/controls/button.js:

(Button.prototype.commitProperty):

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls > *):

  • Modules/modern-media-controls/controls/slider.css:

(.slider > input):
(.ios .slider > input):
(.slider > input::-webkit-slider-thumb):

  • Modules/modern-media-controls/controls/text-tracks.css:

(video::-webkit-media-text-track-container):

  • Modules/modern-media-controls/controls/watchos-activity-indicator.css:

(button.watchos-activity-indicator > picture):

10:58 AM Changeset in webkit [293331] by Jonathan Bedard
  • 2 edits in trunk/Tools

[build.webkit.org] Use GitHub checkouts (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=239072
<rdar://problem/91567092>

Unreviewed follow-up fix.

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

(CheckOutSource.init): Use the specified commit, not the latest.

10:20 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
9:41 AM Changeset in webkit [293330] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GStreamer] Remove unused rtc variable
https://bugs.webkit.org/show_bug.cgi?id=239727

Reviewed by Philippe Normand.

  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::GStreamerMediaEndpoint::addTrack):

9:10 AM Changeset in webkit [293329] by Chris Dumez
  • 35 edits
    5 adds in trunk

Web Locks held in a Worker are not released on page refresh or exit
https://bugs.webkit.org/show_bug.cgi?id=239614
<rdar://problem/92173575>

Reviewed by Alex Christensen.

Before a web worker olding a lock would terminate, WebLockManager::stop() would get called
and it would attempt to release all locks held by the worker. However, because we're off
the main thread and because the lock registry was held by the Page on the main thread,
we would rely on a call to workerLoaderProxy().postTaskToLoader() to get back to the
main thread and access the lock registry via the Document's page. However, this wasn't
reliable because the task posted to postTaskToLoader() could get dropped if the worker's
Document is also going away (which is the case when reloading or navigating away).

To address the issue, the WebLockRegistry can now be accessed directly (on the main thread),
without having to go through a Page. As a result, we can simply do a callOnMainThread()
and then access WebLockRegistry::shared(), which is always reliable. To maintain the
previous behavior for WebKitLegacy, I also partitioned the WebLockRegistry per sessionID
since we don't want views sharing the same locks if one is using the default session and
the other is using a private session. This wasn't an issue for modern WebKit since there
is a single session per WebProcess.

To achieve this, I had to made sure that WorkerOrWorkletGlobalScope::sessionID() was returning
a valid value. This worked for ServiceWorkerGlobalScope but not for other types or workers /
worklets global scopes.

Test: workers/worker-web-lock-released-on-reload.html

  • Source/WebKit/UIProcess/WebLockRegistryProxy.cpp:

(WebKit::WebLockRegistryProxy::requestLock):
(WebKit::WebLockRegistryProxy::releaseLock):
(WebKit::WebLockRegistryProxy::abortLockRequest):
(WebKit::WebLockRegistryProxy::snapshot):
(WebKit::WebLockRegistryProxy::clientIsGoingAway):

  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:

(WebKit::WebSharedWorkerContextManagerConnection::launchSharedWorker):

  • Source/WebKit/WebProcess/WebCoreSupport/RemoteWebLockRegistry.cpp:

(WebKit::RemoteWebLockRegistry::requestLock):
(WebKit::RemoteWebLockRegistry::releaseLock):
(WebKit::RemoteWebLockRegistry::abortLockRequest):
(WebKit::RemoteWebLockRegistry::snapshot):
(WebKit::RemoteWebLockRegistry::clientIsGoingAway):

  • Source/WebKit/WebProcess/WebCoreSupport/RemoteWebLockRegistry.h:
  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

  • Source/WebKit/WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):

  • Source/WebKit/WebProcess/WebProcess.h:

(WebKit::WebProcess::broadcastChannelRegistry):
(WebKit::WebProcess::webLockRegistry): Deleted.

  • Source/WebKitLegacy/mac/WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(getOrCreateWebLockRegistry): Deleted.

  • Source/WebKitLegacy/win/WebView.cpp:

(WebView::initWithFrame):
(getOrCreateWebLockRegistry): Deleted.
Test: workers/worker-web-lock-released-on-reload.html

  • Source/WebCore/Modules/web-locks/WebLockManager.cpp:

(WebCore::WebLockManager::MainThreadBridge::create):
(WebCore::WebLockManager::MainThreadBridge::MainThreadBridge):
(WebCore::WebLockManager::MainThreadBridge::requestLock):
(WebCore::WebLockManager::MainThreadBridge::releaseLock):
(WebCore::WebLockManager::MainThreadBridge::abortLockRequest):
(WebCore::WebLockManager::MainThreadBridge::query):
(WebCore::WebLockManager::MainThreadBridge::clientIsGoingAway):
(WebCore::WebLockManager::MainThreadBridge::ensureOnMainThread): Deleted.

  • Source/WebCore/Modules/web-locks/WebLockRegistry.cpp:

(WebCore::sharedRegistry):
(WebCore::WebLockRegistry::shared):
(WebCore::WebLockRegistry::setSharedRegistry):
(WebCore::LocalWebLockRegistry::ensureRegistryForOrigin):
(WebCore::LocalWebLockRegistry::existingRegistryForOrigin const):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::create):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::PerOriginRegistry):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::~PerOriginRegistry):
(WebCore::LocalWebLockRegistry::requestLock):
(WebCore::LocalWebLockRegistry::releaseLock):
(WebCore::LocalWebLockRegistry::abortLockRequest):
(WebCore::LocalWebLockRegistry::snapshot):
(WebCore::LocalWebLockRegistry::clientIsGoingAway):
(WebCore::LocalWebLockRegistry::clientsAreGoingAway):

  • Source/WebCore/Modules/web-locks/WebLockRegistry.h:
  • Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::generateWorkletParameters):

  • Source/WebCore/dom/Document.h:
  • Source/WebCore/loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • Source/WebCore/page/Page.cpp:

(WebCore::Page::Page):

  • Source/WebCore/page/Page.h:

(WebCore::Page::webLockRegistry): Deleted.

  • Source/WebCore/page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • Source/WebCore/page/PageConfiguration.h:
  • Source/WebCore/workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • Source/WebCore/workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • Source/WebCore/workers/WorkerGlobalScopeProxy.h:
  • Source/WebCore/workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • Source/WebCore/workers/WorkerMessagingProxy.h:
  • Source/WebCore/workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):

  • Source/WebCore/workers/WorkerOrWorkletGlobalScope.h:

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):

  • Source/WebCore/workers/WorkerThread.h:
  • Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • Source/WebCore/workers/service/ServiceWorkerGlobalScope.h:
  • Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::createWorkerGlobalScope):

  • Source/WebCore/workers/shared/context/SharedWorkerThreadProxy.cpp:

(WebCore::generateWorkerParameters):

  • Source/WebCore/worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):

  • Source/WebCore/worklets/WorkletParameters.h:

(WebCore::WorkletParameters::isolatedCopy const):
(WebCore::WorkletParameters::isolatedCopy):

  • LayoutTests/workers/resources/worker-web-lock-released-on-reload-popup.html: Added.
  • LayoutTests/workers/resources/worker-web-lock-released-on-reload-worker.js: Added.
  • LayoutTests/workers/worker-web-lock-released-on-reload-expected.txt: Added.
  • LayoutTests/workers/worker-web-lock-released-on-reload.html: Added.

Canonical link: https://commits.webkit.org/249952@main

8:37 AM Changeset in webkit [293328] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit

[GLIB] Default-handle recently-added ProcessTerminationReason values
https://bugs.webkit.org/show_bug.cgi?id=239720

Reviewed by Philippe Normand.

  • UIProcess/API/glib/WebKitNavigationClient.cpp: Add a couple of

new values for ProcessTerminationReason that were added on r292912
to silent some compile-time warnings.

8:25 AM Changeset in webkit [293327] by Jonathan Bedard
  • 4 edits in trunk/Tools

[ews-build.webkit.org] Support alternative remotes
https://bugs.webkit.org/show_bug.cgi?id=239617
<rdar://problem/92115230>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.extractProperties): Remove sensative fields from non-public
pull requests.
(GitHubEventHandlerNoEdits.handle_pull_request): Generalize label process sleep.

  • Tools/CISupport/ews-build/steps.py:

(CheckOutPullRequest.run): Checkout with EWS credentials.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/249949@main

8:25 AM Changeset in webkit [293326] by Chris Dumez
  • 81 edits in trunk

Replace String::replace() functions with makeStringByReplacingAll() free functions
https://bugs.webkit.org/show_bug.cgi?id=239685

Reviewed by Darin Adler.

Replace String::replace() functions with makeStringByReplacingAll() free functions.

"All" is added to the name since every instance is replaced, not just the first one.
Making it a free function that returns a new String is a step towards making String
immutable.

In the future, we may want to add a makeStringByReplacingAll() that takes in a
StringView instead of a const String. Some call sites would benefit from that.

  • Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(AppleLanguagesTest::AppleLanguagesTest):

  • Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::attributedStringForRange):

  • Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.cpp:

(Inspector::InspectorAuditAgent::run):

  • Source/JavaScriptCore/jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

  • Source/JavaScriptCore/runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::logTypesForTypeLocation):

  • Source/JavaScriptCore/runtime/TypeSet.cpp:

(JSC::StructureShape::propertyHash):

  • Source/JavaScriptCore/yarr/RegularExpression.cpp:

(JSC::Yarr::replace):

  • Source/WebCore/PAL/pal/text/TextCodecICU.cpp:

(PAL::TextCodecICU::encode const):

  • Source/WebKit/NetworkProcess/DatabaseUtilities.cpp:

(WebKit::DatabaseUtilities::stripIndexQueryToMatchStoredValue):

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::escapeForJSON):

  • Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_set_preferred_languages):

  • Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::insertText):

  • Source/WebKit/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

  • Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • Source/WebKitLegacy/mac/WebView/WebHTMLRepresentation.mm:

(matchLabelsAgainstString):

  • Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:

(-[WebHTMLView insertText:]):

  • Source/WebKitLegacy/win/DOMHTMLClasses.cpp:

(DOMHTMLInputElement::replaceCharactersInRange):

  • Source/WebKitLegacy/win/WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::searchWithGoogle):

  • Source/WebKitLegacy/win/WebLocalizableStrings.cpp:

(LocalizedString::operator LPCTSTR const):

  • Source/WTF/wtf/Language.cpp:

(WTF::canonicalLanguageIdentifier):

  • Source/WTF/wtf/URLHelpers.cpp:

(WTF::URLHelpers::mapHostNames):

  • Source/WTF/wtf/URLParser.cpp:

(WTF::URLParser::parseURLEncodedForm):

  • Source/WTF/wtf/text/StringView.h:

(WTF::makeStringByReplacingAll):
(WTF::makeStringByReplacing):
(WTF::String::replace): Deleted.

  • Source/WTF/wtf/text/WTFString.h:

(WTF::makeStringByReplacingAll):
(WTF::String::replace): Deleted.

  • Source/WTF/wtf/unix/LanguageUnix.cpp:

(WTF::platformLanguage):

  • Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::encodeDatabaseName):
(WebCore::IDBServer::SQLiteIDBBackingStore::decodeDatabaseName):

  • Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::GStreamerMediaEndpoint::setConfiguration):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::queryKeysAndValues):

  • Source/WebCore/accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineDropEffects const):

  • Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::registerHyperlink):

  • Source/WebCore/contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::applyToURL const):

  • Source/WebCore/contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getDomainList):

  • Source/WebCore/css/parser/CSSTokenizer.cpp:

(WebCore::CSSTokenizer::preprocessString):

  • Source/WebCore/display/css/DisplayTextBox.cpp:

(WebCore::Display::TextBox::debugDescription const):

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::displayStringModifiedByEncoding const):

  • Source/WebCore/dom/Node.cpp:

(WebCore::Node::showNode const):

  • Source/WebCore/dom/Text.cpp:

(WebCore::appendTextRepresentation):

  • Source/WebCore/dom/ViewportArguments.cpp:

(WebCore::viewportErrorMessage):

  • Source/WebCore/editing/EditingStyle.cpp:

(WebCore::StyleChange::extractTextStyles):

  • Source/WebCore/editing/Editor.cpp:

(WebCore::Editor::selectedText const):

  • Source/WebCore/editing/FrameSelection.cpp:

(WebCore::FrameSelection::debugRenderer const):

  • Source/WebCore/editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):

  • Source/WebCore/editing/TextIterator.cpp:

(WebCore::foldQuoteMarks):

  • Source/WebCore/editing/VisibleUnits.cpp:

(WebCore::charactersAroundPosition):

  • Source/WebCore/editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::stringSelectionForPasteboard):
(WebCore::Editor::stringSelectionForPasteboardWithImageAltText):

  • Source/WebCore/editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedString):

  • Source/WebCore/editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::takeResults):
(WebCore::createFragmentFromText):

  • Source/WebCore/html/HTMLElement.cpp:

(WebCore::HTMLElement::setInnerText):

  • Source/WebCore/html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::setValueCommon):

  • Source/WebCore/html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setRangeText):

  • Source/WebCore/html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::LinkRelAttribute):

  • Source/WebCore/html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):

  • Source/WebCore/html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setSearch):

  • Source/WebCore/inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::setRuleSelector):
(WebCore::InspectorStyleSheet::styleSheetTextWithChangedStyle):

  • Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutBox):

  • Source/WebCore/loader/FormSubmission.cpp:

(WebCore::appendMailtoPostFormDataToURL):
(WebCore::encodingFromAcceptCharset):

  • Source/WebCore/page/Frame.cpp:

(WebCore::matchLabelsAgainstString):

  • Source/WebCore/platform/LocalizedStrings.cpp:

(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::imageTitle):
(WebCore::webCryptoMasterKeyKeychainLabel):

  • Source/WebCore/platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:

(WebCore::AVStreamDataParserMIMETypeCache::canDecodeExtendedType):

  • Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::configureDownloadBuffer):

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

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleStateChangeMessage):

  • Source/WebCore/platform/gtk/SelectionData.cpp:

(WebCore::replaceNonBreakingSpaceWithSpace):

  • Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:

(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource):

  • Source/WebCore/platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeSuggestedFilename):

  • Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::createSoupURI const):

  • Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::sanitizeFilename):

  • Source/WebCore/platform/text/DateTimeFormat.cpp:

(WebCore::DateTimeFormat::quoteAndAppendLiteral):

  • Source/WebCore/platform/text/LocaleToScriptMapping.cpp:

(WebCore::localeToScriptCodeForFontSelection):

  • Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::scanDirectoryForDictionaries):

  • Source/WebCore/platform/text/win/LocaleWin.cpp:

(WebCore::LocaleWin::shortMonthFormat):

  • Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::replaceNBSPWithSpace):

  • Source/WebCore/rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::outputLineBox const):

  • Source/WebCore/rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateSecurityDiscCharacters):

  • Source/WebCore/rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderObject const):

  • Source/WebCore/rendering/RenderText.cpp:

(WebCore::RenderText::setRenderedText):

  • Source/WebCore/rendering/svg/RenderSVGInlineText.cpp:

(WebCore::applySVGWhitespaceRules):

  • Source/WebCore/xml/XSLTProcessor.cpp:

(WebCore::transformTextStringToXHTMLDocumentString):

Canonical link: https://commits.webkit.org/249949@main

7:12 AM Changeset in webkit [293325] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/build-webkit-org/config.json

[build.webkit.org] Delete builddir key from config.json
https://bugs.webkit.org/show_bug.cgi?id=239718

Reviewed by Jonathan Bedard.

  • Tools/CISupport/build-webkit-org/config.json:

Canonical link: https://commits.webkit.org/249948@main

6:58 AM Changeset in webkit [293324] by Claudio Saavedra
  • 2 edits in trunk/Source/JavaScriptCore

[GLIB] Remove leftover unused variable from r292929
https://bugs.webkit.org/show_bug.cgi?id=239715

Reviewed by Philippe Normand.

  • API/glib/JSCWrapperMap.cpp:

(JSC::WrapperMap::wrappedObject const): VM& vm is unused,
remove.

6:31 AM Changeset in webkit [293323] by Jonathan Bedard
  • 6 edits in trunk/Tools

[build.webkit.org] Use GitHub checkouts
https://bugs.webkit.org/show_bug.cgi?id=239072
<rdar://problem/91567092>

Reviewed by Ryan Haddad.

  • Tools/CISupport/build-webkit-org/config.json: Convert schedulers to GitHub based branch names.
  • Tools/CISupport/build-webkit-org/loadConfig.py: Ditto.
  • Tools/CISupport/build-webkit-org/master.cfg: Enable incoming hooks from GitHub.

(load_password): Added.

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

(CheckOutSource): Replace with GitHub based checkout.
(CleanUpGitIndexLock): Replaced SVNCleanup.
(SVNCleanup): Replace with CleanUpGitIndexLock.
(ShowIdentifier.start): got_revision will bet hash, not subversion revision.

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

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

Canonical link: https://commits.webkit.org/249946@main

6:06 AM Changeset in webkit [293322] by Ziran Sun
  • 7 edits in trunk

UA stylesheet should include table { text-indent: initial } to conform with HTML standard
https://bugs.webkit.org/show_bug.cgi?id=201297

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/tables/table-ua-stylesheet-expected.txt:

Source/WebCore:

As per [1], text-indent for table should be initial.
[1] https://html.spec.whatwg.org/multipage/rendering.html#tables-2

  • css/html.css:

(table):

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt:
5:56 AM Changeset in webkit [293321] by ntim@apple.com
  • 2 edits in trunk/Tools

Fix typo in Tools/CISupport/ews-build/steps.py

Unreviewed.

  • CISupport/ews-build/steps.py:

(UpdateWorkingDirectory):

4:47 AM Changeset in webkit [293320] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

REGRESSION (249585@main): TestWebKitAPI.IPCTestingAPI.CanReceiveIPCSemaphore is timing out
https://bugs.webkit.org/show_bug.cgi?id=239507

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-25
Reviewed by Wenson Hsieh.

Source/WebKit:

Add purpose-built test interfaces for testing sending IPC::Semaphore via the IPC.

Test: ipc/send-semaphore.html

  • Shared/IPCTester.cpp:

(WebKit::IPCTester::sendSameSemaphoreBack):
(WebKit::IPCTester::sendSemaphoreBackAndSignalProtocol):

  • Shared/IPCTester.h:
  • Shared/IPCTester.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

Move CanReceiveIPCSemaphore and CanSendIPCSemaphore test logic
to LayoutTests/ipc/send-semaphore.html
The tests were using audio and canvas implementation detail
messages to test that IPC system can send IPC::Semaphore via IPC.
Canvas implementation details changed and the test started
to fail.

The new tests use IPC messages that are purpose-built to test this
feature. The new tests also actually test that the sent semaphores
work.

LayoutTests:

  • ipc/send-semaphore-expected.txt: Added.
  • ipc/send-semaphore.html: Added.
2:20 AM Changeset in webkit [293319] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Disable new demuxers based on adaptivedemux2
https://bugs.webkit.org/show_bug.cgi?id=239701

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

The new demuxers based on adaptivedemux2 cannot be used in WebKit yet because this new base
class does not abstract away network access. They can't work in a sandboxed media process,
so demote their rank in order to prevent decodebin3 from auto-plugging them.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

Canonical link: https://commits.webkit.org/249942@main

12:57 AM Changeset in webkit [293318] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[git] Allow pre-commit hook to feed from staged ChangeLogs
https://bugs.webkit.org/show_bug.cgi?id=239419

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-25
Reviewed by Jonathan Bedard.

In workflows where prepare-ChangeLog is executed manually before staging and committing
changes the prepare-commit-msg hook can now read the curated ChangeLog from the git stage
and present it in the editor for validation. In case no ChangeLog was staged, the hook will
generate a message itself.

  • Scripts/hooks/prepare-commit-msg:

Canonical link: https://commits.webkit.org/249941@main

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

REGRESSION (Safari 15.4) Performance regression after uploading WebGL buffers
https://bugs.webkit.org/show_bug.cgi?id=239015

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-25
Reviewed by Dean Jackson.

BufferMtl::getRestartIndices() would recalculate restart indices on each
draw because RestartRangeCache::operator bool() would return m_isDirty
instead of the intended !m_isDirty.

Use std::optional to hold the RestartRangeCache instead of
maintaining m_isDirty. This allows the type system to contribute to the
correctness of the code. Dirty restart range cache is not useful and takes
up memory.

Re-apply hunks from r281550 "ANGLE Metal index buffer left mapped when building primitive restart ranges".

These were overwritten in r286638 "Roll ANGLE to include upstreamed Metal backend".

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

(rx::BufferMtl::RestartRangeCache::RestartRangeCache):

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

(rx::BufferMtl::markConversionBuffersDirty):
(rx::BufferMtl::clearConversionBuffers):
(rx::BufferMtl::getRestartIndices):

Apr 24, 2022:

11:54 PM Changeset in webkit [293316] by zan@falconsigh.net
  • 4 edits in trunk

[RISCV64] Enable Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=239708

Reviewed by Yusuke Suzuki.

.:

Turn on the CMake defaults for ENABLE(JIT) and ENABLE(FTL_JIT) options
for RISCV64. These are enabled together to avoid having to worry about
a 64-bit platform that would want to allow compiling with Baseline JIT
enabled and FTL JIT disabled at the same time. But because FTL JIT
support for RISCV64 isn't complete yet, it's still disabled at runtime.

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):
Disable FTL JIT at runtime under CPU(RISCV64) since the support is still
incomplete. This is necessary due to Baseline JIT and FTL JIT still
being enabled at build-time on this platform for pure convenience.

11:41 PM Changeset in webkit [293315] by Diego Pino Garcia
  • 2 edits in trunk/Source/JavaScriptCore

[GCC] Unreviewed, build fix for Ubuntu LTS/Debian after r293265

  • wasm/WasmTypeDefinition.h:

(JSC::Wasm::FunctionSignature::operator!= const):

11:36 PM Changeset in webkit [293314] by dbezhetskov
  • 2 edits in trunk/Source/JavaScriptCore

[Wasm] Remove confusing isFuncref and isExternref
https://bugs.webkit.org/show_bug.cgi?id=239699

Reviewed by Yusuke Suzuki.

There are two functions with the same name Wasm::Type::isFuncref and
Wasm::isFuncref but with different behaviour, and so,
this brings confusion into the codebase.
The first function checks that .kind == funcref and the second one checks
for the same but with respect to typed function references proposal.
The second one should be used when we want to check that type is funcref,
so the first one is not needed and actually not used, so this patch removes it.

The same situation is for isExternref.

  • wasm/generateWasmOpsHeader.py:

(typeMacroizer):
(typeMacroizerFiltered):

11:29 PM Changeset in webkit [293313] by zan@falconsigh.net
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Implement MacroAssemblerRISCV64 fencing methods
https://bugs.webkit.org/show_bug.cgi?id=239706

Reviewed by Yusuke Suzuki.

Provide MacroAssemblerRISCV64 implementations for the tree fencing
methods, using the fence instruction but with different corresponding
combinations of the predecessor and successor operation sets.

  • assembler/MacroAssemblerRISCV64.h:

(JSC::MacroAssemblerRISCV64::memoryFence):
(JSC::MacroAssemblerRISCV64::storeFence):
(JSC::MacroAssemblerRISCV64::loadFence):

11:26 PM Changeset in webkit [293312] by zan@falconsigh.net
  • 5 edits in trunk/JSTests

Skip microbenchmarks/memcpy-wasm.js and friends on non-FTL (i.e. non-WASM) platforms
https://bugs.webkit.org/show_bug.cgi?id=239705

Reviewed by Yusuke Suzuki.

Mark microbenchmarks/memcpy-wasm.js and related tests as skipped on
non-FTL platforms since WASM tests are not run there, resulting in
failures when they're executed.

  • microbenchmarks/memcpy-wasm-large.js:
  • microbenchmarks/memcpy-wasm-medium.js:
  • microbenchmarks/memcpy-wasm-small.js:
  • microbenchmarks/memcpy-wasm.js:
11:02 PM Changeset in webkit [293311] by youenn@apple.com
  • 13 edits
    1 add in trunk

TextTrackLoader should use SameOrigin mode by default
https://bugs.webkit.org/show_bug.cgi?id=239381

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cloneNode-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-data-url-expected.txt:
  • web-platform-tests/service-workers/service-worker/webvtt-cross-origin.https-expected.txt:

Source/WebCore:

Covered by updated test.

  • loader/TextTrackLoader.cpp:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/resources/track.vtt.py: Added.
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked.html:
  • http/tests/security/text-track-crossorigin-expected.txt:
  • http/tests/security/text-track-crossorigin.html:
10:56 PM Changeset in webkit [293310] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

Make NetworkResourceLoader.m_parameters non const
https://bugs.webkit.org/show_bug.cgi?id=239603

Reviewed by Anders Carlsson.

Now that NetworkResourceLoader can be transitioned through WebProcesses,
several NetworkResourceLoaderParameters might need to be changed over time.
For that reason, it no longer makes sense to have m_parameters const.

Covered by existing tests.

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.h:
9:45 PM Changeset in webkit [293309] by Chris Dumez
  • 43 edits in trunk/Source

Use equalLettersIgnoringASCIICase() and SortedArrayMap in more places
https://bugs.webkit.org/show_bug.cgi?id=239714

Reviewed by Darin Adler.

Use equalLettersIgnoringASCIICase() and SortedArrayMap in more places, for performance.

  • Source/WebKit/NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

  • Source/WTF/wtf/unix/LanguageUnix.cpp:

(WTF::platformLanguage):

  • Source/WebCore/Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::validatedPaymentNetwork const):

  • Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::packageFormData):

  • Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setProperty):

  • Source/WebCore/css/parser/CSSAtRuleID.cpp:

(WebCore::cssAtRuleID):

  • Source/WebCore/css/parser/CSSParserImpl.cpp:

(WebCore::consumeStringOrURI):
(WebCore::CSSParserImpl::consumeImportRule):
(WebCore::CSSParserImpl::consumeDeclaration):
(WebCore::CSSParserImpl::consumeKeyframeKeyList):

  • Source/WebCore/css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationName):

  • Source/WebCore/css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeAttributeFlags):
(WebCore::consumeANPlusB):

  • Source/WebCore/css/parser/CSSSupportsParser.cpp:

(WebCore::CSSSupportsParser::consumeCondition):

  • Source/WebCore/css/parser/CSSTokenizer.cpp:

(WebCore::CSSTokenizer::consumeIdentLikeToken):

  • Source/WebCore/css/parser/MediaQueryParser.cpp:

(WebCore::MediaQueryParser::readMediaNot):
(WebCore::isRestrictorOrLogicalOperator):
(WebCore::MediaQueryParser::readMediaType):
(WebCore::MediaQueryParser::readAnd):

  • Source/WebCore/css/parser/SizesCalcParser.cpp:

(WebCore::SizesCalcParser::calcToReversePolishNotation):

  • Source/WebCore/css/typedom/transform/CSSPerspective.cpp:

(WebCore::checkLength):

  • Source/WebCore/editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::requiresExtendedContext):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
(WebCore::DataDetection::isDataDetectorElement):

  • Source/WebCore/html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • Source/WebCore/html/EnterKeyHint.cpp:

(WebCore::enterKeyHintForAttributeValue):

  • Source/WebCore/html/EnterKeyHint.h:
  • Source/WebCore/html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::relList):

  • Source/WebCore/html/HTMLFormElement.cpp:

(WebCore::parseFormRelAttributes):
(WebCore::HTMLFormElement::relList):

  • Source/WebCore/html/HTMLImageElement.cpp:

(WebCore::parseCrossoriginState):

  • Source/WebCore/html/InputType.cpp:

(WebCore::InputType::applyStep):

  • Source/WebCore/html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::isSupported):

  • Source/WebCore/html/parser/HTMLParserIdioms.cpp:

(WebCore::parseCORSSettingsAttribute):

  • Source/WebCore/loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadApplicationManifest):

  • Source/WebCore/loader/LinkLoader.cpp:

(WebCore::LinkLoader::preconnectIfNeeded):

  • Source/WebCore/loader/ServerTiming.cpp:

(WebCore::ServerTiming::setParameter):

  • Source/WebCore/page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • Source/WebCore/page/Quirks.cpp:

(WebCore::Quirks::isGoogleMaps const):
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommand const):

  • Source/WebCore/page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::databaseIdentifier const):

  • Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::schemeIsInHttpFamily):
(WebCore::ContentSecurityPolicySourceList::isValidSourceForExtensionMode):

  • Source/WebCore/platform/graphics/FontGenericFamilies.cpp:

(WebCore::computeUserPrefersSimplified):

  • Source/WebCore/platform/graphics/MIMETypeCache.cpp:

(WebCore::MIMETypeCache::shouldOverrideExtendedType):

  • Source/WebCore/platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::supportsType):

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

(WebCore::willUseWebMFormatReaderForType):
(WebCore::keySystemIsSupported):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):

  • Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::isContentTypeSupported):

  • Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::platformInit):

  • Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:

(webKitDMABufVideoSinkIsEnabled):

  • Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::isThunderRanked):

  • Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createDecodingConfiguration):
(WebCore::LibWebRTCProvider::createEncodingConfiguration):

  • Source/WebCore/platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::parseCookieAttributes):

  • Source/WebCore/platform/network/curl/CurlMultipartHandle.cpp:

(WebCore::CurlMultipartHandle::extractBoundary):

  • Source/WebCore/rendering/RenderThemeMac.mm:

(WebCore::iconForAttachment):

  • Source/WebCore/svg/SVGAElement.cpp:

(WebCore::SVGAElement::relList):

  • Source/WebCore/testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::supportsKeySystem):
(WebCore::MockCDMInstance::setServerCertificate):

Canonical link: https://commits.webkit.org/249932@main

8:54 PM Changeset in webkit [293308] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes after r293285

  • html/track/TextTrack.cpp:
2:16 PM Changeset in webkit [293307] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use utf-8 for text mode files in generate-automation-atom.py
https://bugs.webkit.org/show_bug.cgi?id=239542

Patch by Daniel Kolesa <Daniel Kolesa> on 2022-04-24
Reviewed by Adrian Perez de Castro.

At least with older versions of python (3.6), this will otherwise
be ascii, which will break input files that contain non-ascii
characters, e.g. Source/WebKit/UIProcess/Automation/atoms/FindNodes.js

  • Scripts/generate-automation-atom.py:

(main):

1:28 PM Changeset in webkit [293306] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Win][WinCairo] Unreviewed build fix
https://bugs.webkit.org/show_bug.cgi?id=239692
<rdar://problem/92222456>

  • Headers.cmake: Added necessary headers of WebCore/layout.
11:00 AM Changeset in webkit [293305] by Russell Epstein
  • 1 copy in tags/WebKit-7613.2.7.1.1

Tag WebKit-7613.2.7.1.1.

10:58 AM Changeset in webkit [293304] by Russell Epstein
  • 1 copy in tags/WebKit-7613.2.7.0.1

Tag WebKit-7613.2.7.0.1.

8:21 AM Changeset in webkit [293303] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

Fix a typo (r293297)
https://bugs.webkit.org/show_bug.cgi?id=239704

Unreviewed.

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntergration): Deleted.

  • layout/formattingContexts/flex/FlexFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContentForIntegration):
(WebCore::Layout::InlineFormattingContext::layoutInFlowContentForIntergration): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::layout):

  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

Apr 23, 2022:

10:49 PM Changeset in webkit [293302] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r293301.

  • bindings/js/JSDOMConvertStrings.h:

(WebCore::Converter<IDLAtomStringAdaptor<IDLByteString>>::convert):

9:48 PM Changeset in webkit [293301] by Chris Dumez
  • 12 edits in trunk/Source

[IDL] Add support for [AtomString] with USVString & ByteString types
https://bugs.webkit.org/show_bug.cgi?id=239695

Reviewed by Cameron McCormack.

Add support for [AtomString] with USVString and ByteString types in our WebIDL
bindings. This is needed to mark the AtomString(const String&) constructor
explicit.

  • Source/WTF/wtf/text/AtomString.cpp:

(WTF::replaceUnpairedSurrogatesWithReplacementCharacterInternal):
(WTF::replaceUnpairedSurrogatesWithReplacementCharacter):

  • Source/WTF/wtf/text/AtomString.h:
  • Source/WTF/wtf/text/WTFString.cpp:

(WTF::replaceUnpairedSurrogatesWithReplacementCharacter): Deleted.

  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/Modules/fetch/FetchResponse.h:
  • Source/WebCore/Modules/fetch/FetchResponse.idl:
  • Source/WebCore/bindings/js/JSDOMConvertStrings.cpp:

(WebCore::throwIfInvalidByteString):
(WebCore::identifierToByteString):
(WebCore::valueToByteString):
(WebCore::valueToByteAtomString):
(WebCore::valueToUSVAtomString):
(WebCore::stringToByteString): Deleted.

  • Source/WebCore/bindings/js/JSDOMConvertStrings.h:

(WebCore::Converter<IDLAtomStringAdaptor<T>>::convert):
(WebCore::Converter<IDLAtomStringAdaptor<IDLUSVString>>::convert):
(WebCore::Converter<IDLAtomStringAdaptor<IDLByteString>>::convert):
(WebCore::JSConverter<IDLAtomStringAdaptor<T>>::convert):
(WebCore::JSConverter<IDLAtomStringAdaptor<IDLUSVString>>::convert):
(WebCore::JSConverter<IDLAtomStringAdaptor<IDLByteString>>::convert):

  • Source/WebCore/html/HTMLAnchorElement.idl:
  • Source/WebCore/html/HTMLAreaElement.idl:
  • Source/WebCore/platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::httpStatusText const):
(WebCore::ResourceResponseBase::setHTTPStatusText):

  • Source/WebCore/platform/network/ResourceResponseBase.h:

Canonical link: https://commits.webkit.org/249926@main

8:54 PM Changeset in webkit [293300] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • Headers.cmake:
8:45 PM Changeset in webkit [293299] by Wenson Hsieh
  • 28 edits
    1 delete in trunk/Source

Remove the PreferInlineTextSelectionInImages internal feature flag
https://bugs.webkit.org/show_bug.cgi?id=234849

Reviewed by Sam Weinig.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • en.lproj/Localizable.strings:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::contextMenuItemTagQuickLookImage): Deleted.
(WebCore::contextMenuItemTagQuickLookImageForTextSelection): Deleted.
(WebCore::contextMenuItemTagQuickLookImageForVisualSearch): Deleted.

Source/WebKit:

This patch reverts r279164, which introduced an internal feature to avoid Live Text analysis when hovering over
images, and instead added a new context menu item to reveal selectable text in the image by launching the
QuickLook panel in Live Text mode.

This alternate Live Text experience was originally devised as a way to mitigate the power and performance impact
of passively triggering Live Text analysis when hovering over images on pre-M1 devices, but this mitigation was
ultimately deemed unnecessary in macOS 12.

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

  • UIProcess/Cocoa/QuickLookPreviewActivity.h: Removed.
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::computeHasVisualSearchResults):
(WebKit::WebViewImpl::computeHasImageAnalysisResults): Deleted.

  • UIProcess/PageClient.h:

(WebKit::PageClient::computeHasVisualSearchResults):
(WebKit::PageClient::computeHasImageAnalysisResults): Deleted.

  • UIProcess/WebContextMenuProxy.h:

(WebKit::WebContextMenuProxy::quickLookPreviewActivity const): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::computeHasVisualSearchResults):
(WebKit::WebPageProxy::computeHasImageAnalysisResults): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::computeHasVisualSearchResults):
(WebKit::PageClientImpl::computeHasImageAnalysisResults): Deleted.

  • UIProcess/mac/WKQuickLookPreviewController.h:
  • UIProcess/mac/WKQuickLookPreviewController.mm:
  • UIProcess/mac/WebContextMenuProxyMac.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
(WebKit::WebContextMenuProxyMac::insertOrUpdateQuickLookImageItem): Deleted.
(WebKit::WebContextMenuProxyMac::updateQuickLookContextMenuItemTitle): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuLookUpImage):
(WebKit::WebPageProxy::handleContextMenuQuickLookImage): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

See WebKit/ChangeLog for more details.

  • WebView/WebHTMLView.mm:

(toTag):

Source/WTF:

See WebKit/ChangeLog for more details.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
7:27 PM Changeset in webkit [293298] by Andres Gonzalez
  • 11 edits in trunk/Source/WebCore

Code cleanup in preparation for optimizing use of AccessibilityObject::elementsFromAttribute.
https://bugs.webkit.org/show_bug.cgi?id=239664
<rdar://problem/92180286>

Reviewed by Chris Fleizach.

No new functionality.

AccessibilityObject::elementsFromAttribute now returns a vector as
opposed to taking an out parameter. This makes the code more concise
and possibly more efficient.
Removed this method from the AXCoreObject interface, since this method
should not be exposed to an AT client. The Inspector is an exception
that accesses AccessibilityObjects directly and not through the
AXCoreObject interface.
All these changes are entirely code cleanup and modernization, no change
in functionality.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
(WebCore::AccessibilityNodeObject::textUnderElement const):
(WebCore::AccessibilityNodeObject::descriptionForElements const):
(WebCore::AccessibilityNodeObject::ariaDescribedByAttribute const):
(WebCore::AccessibilityNodeObject::ariaLabeledByAttribute const):
(WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements const): Renamed.
(WebCore::AccessibilityNodeObject::ariaLabeledByElements const): Deleted.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaElementsFromAttribute const):
(WebCore::AccessibilityObject::elementsFromAttribute const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isTabItemSelected const):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::elementsFromAttribute const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • inspector/InspectorAuditAccessibilityObject.cpp:

(WebCore::accessiblityObjectForNode):
(WebCore::InspectorAuditAccessibilityObject::getControlledNodes):
(WebCore::InspectorAuditAccessibilityObject::getFlowedNodes):
(WebCore::InspectorAuditAccessibilityObject::getMouseEventNode):
(WebCore::InspectorAuditAccessibilityObject::getOwnedNodes):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

4:03 PM Changeset in webkit [293297] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[FFC][Integration] Add integration API to FlexFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=239692

Reviewed by Antti Koivisto.

The integration codepath needs dedicated (and temporary)APIs on the formatting contexts.
(This is exactly how inline layout has been integrated.)

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntergration):
(WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraintsForIntegration):

  • layout/formattingContexts/flex/FlexFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContentForIntergration):
(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):
(WebCore::LayoutIntegration::FlexLayout::computeIntrinsicWidthConstraints):
(WebCore::LayoutIntegration::FlexLayout::layout):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h:

(WebCore::LayoutIntegration::FlexLayout::rootLayoutBox const):
(WebCore::LayoutIntegration::FlexLayout::rootLayoutBox):

  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

3:26 PM Changeset in webkit [293296] by beidson@apple.com
  • 30 edits
    3 copies
    1 add in trunk

Add WKNotification and WKWebsiteDataStore SPI for handling click/close of persistent notifications
https://bugs.webkit.org/show_bug.cgi

Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing tests with WKTR changes.

In Cocoa, expose the dictionary representation of a notification as an NSDictionary,
as it is meant to be used as an NSUserNotification userInfo value.

  • Modules/notifications/NotificationData.h:
  • Modules/notifications/NotificationDataCocoa.mm: Added.

(WebCore::NotificationData::fromDictionary):
(WebCore::NotificationData::dictionaryRepresentation const):

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::processNotificationEvent):

  • workers/service/server/SWServer.h:

Source/WebKit:

For notifications that are persistent, add WKWebsiteDataStore SPI to handle click/close operations,
as the WKNotificationManager's runtime record of such notifications might be gone.

WebKitTestRunner exercises this new SPI in existing tests.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processNotificationEvent):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • SourcesCocoa.txt:
  • UIProcess/API/C/WKNotification.cpp:

(WKNotificationGetIsPersistent):

  • UIProcess/API/C/WKNotification.h:
  • UIProcess/API/C/mac/WKNotificationPrivateMac.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.
  • UIProcess/API/C/mac/WKNotificationPrivateMac.mm: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.

(WKNotificationCopyDictionaryRepresentation):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _processPersistentNotificationClick:completionHandler:]):
(-[WKWebsiteDataStore _processPersistentNotificationClose:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKDownload.mm:
  • UIProcess/API/Cocoa/_WKDownloadInternal.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processNotificationEvent):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Notifications/WebNotification.cpp:
  • UIProcess/Notifications/WebNotification.h:
  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Teach WKTR to use the new SPI by keeping a set of notifications that are persistent.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::showWebNotification):
(WTR::WebNotificationProvider::closeWebNotification):
(WTR::WebNotificationProvider::reset):

  • WebKitTestRunner/WebNotificationProvider.h:
  • WebKitTestRunner/cocoa/WebNotificationProviderCocoa.mm:

(WTR::WebNotificationProvider::simulateWebNotificationClickForServiceWorkerNotifications):

2:47 PM Changeset in webkit [293295] by Justin Michaud
  • 2 edits in trunk/Source/WebCore

Fix build error caused by LTO + Unified Sources
https://bugs.webkit.org/show_bug.cgi?id=239679

Reviewed by Alex Christensen.

This hopefully fixes the following build error:
Undefined symbols for architecture x86_64:

"JSC::GenericTypedArrayView<JSC::Uint8ClampedAdaptor>::tryCreateUninitialized(unsigned long)", referenced from:

WebCore::FEGaussianBlurSoftwareApplier::apply(WebCore::Filter const&, WTF::Vector<WTF::Ref<WebCore::FilterImage, WTF::RawPtrTraits<WebCore::FilterImage> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::FilterImage&) const in lto.o

ld: symbol(s) not found for architecture x86_64

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
2:13 PM Changeset in webkit [293294] by Elliott Williams
  • 3 edits in trunk/Tools

[buildbot] Increase the EWS compile timeout to account for delayed output from clang/XCBuild
https://bugs.webkit.org/show_bug.cgi?id=239455

Reviewed by Ryan Haddad.

Same as https://commits.webkit.org/249737@main, needed to work around
delayed output bugs in Xcode/XCBuild.

  • Tools/CISupport/ews-build/steps.py:

(CompileWebKit.init):

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/249919@main

1:25 PM Changeset in webkit [293293] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[FFC][Integration] Construct and update the layout tree for the flex items
https://bugs.webkit.org/show_bug.cgi?id=239684

Reviewed by Antti Koivisto.

This patch implements the usual flow of preparing a subtree for integration layout.

  1. Take the direct children of a RenderFlexibleBox (flex items) and construct Layout::ContainerBox objects.
  2. Run layout on the direct children (RenderBlocks) first and update the associated Layout::ContainerBoxes' geometries.
  3. Call LayoutIntegration::FlexLayout::layout (not yet implemented) to run flex layout on the flex items.
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTreeForFlexContent):

  • layout/integration/LayoutIntegrationBoxTree.h:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):
(WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

  • rendering/RenderFlexibleBox.h:
10:36 AM Changeset in webkit [293292] by Chris Dumez
  • 123 edits in trunk/Source

Start preparing the code base for making the AtomString(const String&) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=239658

Reviewed by Darin Adler.

Start preparing the code base for making the AtomString(const String&) constructor explicit.
This helps us find cases where we atomize unnecessarily or not early enough, thus causing
unnecessary String allocations.

  • Source/JavaScriptCore/runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToAtomString const):

  • Source/WebKit/WebProcess/Plugins/Plugin.h:
  • Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createPlugin):

  • Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • Source/WebKitLegacy/mac/DOM/DOMCustomXPathNSResolver.h:
  • Source/WebKitLegacy/mac/DOM/DOMCustomXPathNSResolver.mm:

(DOMCustomXPathNSResolver::lookupNamespaceURI):

  • Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm:

(parameterValue):
(WebFrameLoaderClient::createPlugin):

  • Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::createPlugin):

  • Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h:
  • Source/WTF/wtf/persistence/PersistentCoders.cpp:

(WTF::Persistence::Coder<AtomString>::decode):

  • Source/WTF/wtf/text/StringBuilder.h:

(WTF::StringBuilder::toAtomString const):

  • Source/WTF/wtf/text/StringConcatenate.h:

(WTF::tryMakeAtomStringFromAdapters):

  • Source/WTF/wtf/text/StringView.cpp:

(WTF::convertASCIILowercaseAtom):

  • Source/WebCore/Modules/gamepad/GamepadEvent.idl:
  • Source/WebCore/Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::requestImageResource):

  • Source/WebCore/Modules/plugins/PluginReplacement.h:

(WebCore::ReplacementPlugin::create const):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::create):
(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::youTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.h:
  • Source/WebCore/Modules/websockets/CloseEvent.idl:
  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleLiveRegionCreated):

  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsLiveRegion const):
(WebCore::AccessibilityObject::tagName const):

  • Source/WebCore/accessibility/AccessibilityObject.h:
  • Source/WebCore/accessibility/AccessibilityObjectInterface.h:
  • Source/WebCore/accessibility/AccessibilityRole.idl:
  • Source/WebCore/accessibility/AriaAttributes.idl:
  • Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeProperties):

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
  • Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • Source/WebCore/animation/KeyframeEffect.cpp:

(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):

  • Source/WebCore/animation/KeyframeEffect.h:
  • Source/WebCore/animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles):

  • Source/WebCore/bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::setAttributeChangedCallback):

  • Source/WebCore/bindings/js/JSCustomElementInterface.h:
  • Source/WebCore/bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • Source/WebCore/bindings/js/JSExtendableMessageEventCustom.cpp:

(WebCore::constructJSExtendableMessageEvent):

  • Source/WebCore/css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

  • Source/WebCore/dom/Attr.cpp:

(WebCore::Attr::setNodeValue):

  • Source/WebCore/dom/ClipboardEvent.idl:
  • Source/WebCore/dom/CompositionEvent.idl:
  • Source/WebCore/dom/CustomElementRegistry.idl:
  • Source/WebCore/dom/CustomEvent.idl:
  • Source/WebCore/dom/Document+HTML.idl:
  • Source/WebCore/dom/DragEvent.idl:
  • Source/WebCore/dom/Element.idl:
  • Source/WebCore/dom/ErrorEvent.idl:
  • Source/WebCore/domjit/DOMJITIDLConvert.h:

(WebCore::DOMJIT::DirectConverter<IDLAtomStringAdaptor<IDLDOMString>>::directConvert):
(WebCore::DOMJIT::DirectConverter<IDLRequiresExistingAtomStringAdaptor<IDLDOMString>>::directConvert):

  • Source/WebCore/editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::createElementForImageOverlay):

  • Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentForImageAttachment):

  • Source/WebCore/html/HTMLAnchorElement.h:
  • Source/WebCore/html/HTMLAnchorElement.idl:
  • Source/WebCore/html/HTMLAreaElement.idl:
  • Source/WebCore/html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::parametersForPlugin):
(WebCore::HTMLEmbedElement::updateWidget):

  • Source/WebCore/html/HTMLEmbedElement.h:
  • Source/WebCore/html/HTMLObjectElement.cpp:

(WebCore::mapDataParamToSrc):
(WebCore::HTMLObjectElement::parametersForPlugin):
(WebCore::HTMLObjectElement::updateWidget):

  • Source/WebCore/html/HTMLObjectElement.h:
  • Source/WebCore/html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::name const):
(WebCore::HTMLParamElement::value const):

  • Source/WebCore/html/HTMLParamElement.h:
  • Source/WebCore/html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::requestObject):

  • Source/WebCore/html/HTMLPlugInElement.h:
  • Source/WebCore/html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::requestObject):

  • Source/WebCore/html/HTMLPlugInImageElement.h:
  • Source/WebCore/html/track/TextTrack.h:

(WebCore::TextTrack::inBandMetadataTrackDispatchType const):

  • Source/WebCore/loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::createPlugin):

  • Source/WebCore/loader/EmptyFrameLoaderClient.h:
  • Source/WebCore/loader/FrameLoaderClient.h:
  • Source/WebCore/loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::requestPlugin):
(WebCore::FrameLoader::SubframeLoader::requestObject):
(WebCore::FrameLoader::SubframeLoader::loadPlugin):

  • Source/WebCore/loader/SubframeLoader.h:
  • Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::language const):

  • Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):

  • Source/WebCore/platform/graphics/avfoundation/objc/InbandChapterTrackPrivateAVFObjC.h:
  • Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):

  • Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::settings):
(WebCore::AVVideoCaptureSource::capabilities):

  • Source/WebCore/platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::decode):

  • Source/WebCore/platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::stripLeadingAndTrailingDoubleQuote):
(WebCore::ResourceResponse::platformLazyInit):

  • Source/WebCore/platform/text/PlatformLocale.h:

(WebCore::Locale::createDefault):

  • Source/WebCore/plugins/DOMMimeTypeArray.idl:
  • Source/WebCore/plugins/DOMPlugin.idl:
  • Source/WebCore/plugins/DOMPluginArray.idl:
  • Source/WebCore/rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):

  • Source/WebCore/style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::hasCustomProperty const):
(WebCore::Style::PropertyCascade::customProperty const):

  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertFontPalette):
(WebCore::Style::BuilderConverter::convertContainerName):

  • Source/WebCore/svg/SVGFEBlendElement.h:
  • Source/WebCore/svg/SVGFEColorMatrixElement.h:
  • Source/WebCore/svg/SVGFEComponentTransferElement.h:
  • Source/WebCore/svg/SVGFECompositeElement.h:
  • Source/WebCore/svg/SVGFEConvolveMatrixElement.h:
  • Source/WebCore/svg/SVGFEDiffuseLightingElement.h:
  • Source/WebCore/svg/SVGFEDisplacementMapElement.h:
  • Source/WebCore/svg/SVGFEDropShadowElement.h:
  • Source/WebCore/svg/SVGFEGaussianBlurElement.h:
  • Source/WebCore/svg/SVGFEMorphologyElement.h:
  • Source/WebCore/svg/SVGFEOffsetElement.h:
  • Source/WebCore/svg/SVGFESpecularLightingElement.h:
  • Source/WebCore/svg/SVGFETileElement.h:
  • Source/WebCore/svg/SVGScriptElement.h:
  • Source/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::buildFilterExpression):

  • Source/WebCore/xml/CustomXPathNSResolver.cpp:

(WebCore::CustomXPathNSResolver::lookupNamespaceURI):

  • Source/WebCore/xml/CustomXPathNSResolver.h:
  • Source/WebCore/xml/CustomXPathNSResolver.idl:
  • Source/WebCore/xml/NativeXPathNSResolver.cpp:

(WebCore::NativeXPathNSResolver::lookupNamespaceURI):

  • Source/WebCore/xml/NativeXPathNSResolver.h:
  • Source/WebCore/xml/XPathGrammar.cpp:
  • Source/WebCore/xml/XPathNSResolver.h:
  • Source/WebCore/xml/XPathNSResolver.idl:
  • Source/WebCore/xml/XPathParser.cpp:

(WebCore::XPath::Parser::expandQualifiedName):

  • Source/WebCore/xml/XPathParser.h:
  • Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):

Canonical link: https://commits.webkit.org/249917@main

9:30 AM Changeset in webkit [293291] by Andres Gonzalez
  • 15 edits in trunk

AX ITM: Table row objects should return a non-null unignored parent even when a table object is not found in its ancestry.
https://bugs.webkit.org/show_bug.cgi?id=239606
<rdar://problem/92094205>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-expanded-supported-roles.html.
In addition, fixed test accessibility/mac/heading-clickpoint.html.

AccessibilityARIAGridRow::parentObjectUnignored was returning nullptr
if there was no table ancestor. This caused problems in isolated tree
mode where only the root object should have a null parent. With this
patch this method will return the table ancestor if one exists, its
parent in the AX tree otherwise.
Changed all classes in the AXObject hierarchy to return an AXObject for
the parentObjectUnignored method instead of an AXCoreObject.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedObjectForPage):
Removed unnecessary downcast.

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::parentObjectUnignored const):
(WebCore::AccessibilityARIAGridRow::parentTable const):
Rewrote this method using Accessibility::findAncestor.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::parentObjectUnignored const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectUnignored const):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::parentObjectUnignored const):

  • accessibility/AccessibilityTableCell.h:

LayoutTests:

  • accessibility/aria-expanded-supported-roles.html:
  • accessibility/mac/heading-clickpoint-expected.txt:
  • accessibility/mac/heading-clickpoint.html:
  • platform/mac/accessibility/aria-expanded-supported-roles-expected.txt:
8:09 AM Changeset in webkit [293290] by Devin Rousso
  • 4 edits in trunk/Source/WebCore

fix a few ObjC memory management issues after r291361
https://bugs.webkit.org/show_bug.cgi?id=239686
<rdar://problem/91008058>

Reviewed by Eric Carlson.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::mediaSelectionOptions):

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVMediaSelectionOption localizedDisplayName]): Added.
(-[WebAVMediaSelectionOption dealloc]): Deleted.

1:10 AM Changeset in webkit [293289] by commit-queue@webkit.org
  • 5 edits
    1 delete in trunk

[ATSPI] WTR: add implementation for AccessibilityUIElement::domIdentifier
https://bugs.webkit.org/show_bug.cgi?id=239598

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-04-23
Reviewed by Andres Gonzalez.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::domIdentifier const): Deleted.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):

LayoutTests:

  • platform/glib/accessibility/table-add-remove-row-expected.txt: Removed.

Apr 22, 2022:

11:44 PM Changeset in webkit [293288] by cathiechen
  • 8 edits
    4 adds in trunk

The layout is not updated when style.contain is changed from "size"/"inline-size" to empty string
https://bugs.webkit.org/show_bug.cgi?id=239489

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/contain-inline-size-removed-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-removed.html: Added.
  • web-platform-tests/css/css-contain/contain-size-removed-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-removed.html: Added.
  • web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004-expected.txt:
  • web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005-expected.txt:

Source/WebCore:

Unlike "layout", "paint" and "style" containment, being a "size" and "inline-size" containment or not affects the layout size of the element.
So it should require layout when a normal element becomes a "size"/"inline-size" containment, vice versa.

Tests: imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-removed.html

imported/w3c/web-platform-tests/css/css-contain/contain-size-removed.html

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::effectiveContainment const): Deleted. Moved to StyleRareNonInheritedData.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectiveContainment const):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::effectiveContainment const):

  • rendering/style/StyleRareNonInheritedData.h:
11:27 PM Changeset in webkit [293287] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Should never be reached failure in WebCore::RenderElement::visibleInViewportStateChanged
https://bugs.webkit.org/show_bug.cgi?id=191824

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-22
Reviewed by Eric Carlson.

Source/WebCore:

Provide an empty visibleInViewportStateChanged implementation
for RenderMedia to prevent hitting the ASSERT.

Test: media/audio-viewport-state-change-crash.html

  • rendering/RenderMedia.h:

LayoutTests:

  • media/audio-viewport-state-change-crash-expected.txt: Added.
  • media/audio-viewport-state-change-crash.html: Added.
9:40 PM Changeset in webkit [293286] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Crash under AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=239683
<rdar://92198272>

Reviewed by Alan Bujtas.

Crash data suggest that m_page can be null in
AsyncScrollingCoordinator::scheduleRenderingUpdate(), which does seem possible because
scheduleRenderingUpdate() is a dispatch from the scrolling thread, and
ScrollingCoordinator::pageDestroyed() may have run before it runs.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):

9:21 PM Changeset in webkit [293285] by Chris Dumez
  • 88 edits
    2 copies in trunk

Move global AtomStrings to a common header to promote reuse
https://bugs.webkit.org/show_bug.cgi?id=239585

Reviewed by Geoff Garen and Darin Adler.

Source/WebCore:

  • Headers.cmake:
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::getType):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::contentHint const):
(WebCore::MediaStreamTrack::setContentHint):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEffect.cpp:

(WebCore::AnimationEffect::getTiming const):
(WebCore::AnimationEffect::updateTiming):

  • animation/EffectTiming.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::isValidCSSSelector):

  • css/CSSStyleSheet.h:
  • css/FontFace.cpp:

(WebCore::FontFace::display const):

  • css/MediaFeatureNames.cpp:

(WebCore::MediaFeatureNames::init):

  • dom/DataTransfer.cpp:

(WebCore::normalizeType):
(WebCore::DataTransfer::setDataFromItemList):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::dropEffect const):

  • dom/Document.cpp:

(WebCore::Document::designMode const):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::isValidCSSContentType):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • dom/mac/ImageControlsMac.cpp:
  • editing/FontShadow.cpp:

(WebCore::serializationForCSS):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):

  • editing/cocoa/DataDetection.mm:
  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::computedAttributesForElement):
(HTMLConverter::_enterElement):
(HTMLConverter::_processElement):

  • editing/markup.cpp:

(WebCore::createFragmentForTransformToFragment):

  • html/Autocapitalize.cpp:

(WebCore::stringForAutocapitalizeType):

  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::saveFormControlState const):
(WebCore::BaseCheckableInputType::restoreFormControlState):
(WebCore::BaseCheckableInputType::fallbackValue const):

  • html/EnterKeyHint.cpp:

(WebCore::attributeValueForEnterKeyHint):

  • html/HTMLAudioElement.cpp:

(WebCore::HTMLAudioElement::createForLegacyFactoryFunction):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::formControlType const):

  • html/HTMLElement.cpp:

(WebCore::toValidDirValue):
(WebCore::HTMLElement::contentEditable const):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::setAutocorrect):
(WebCore::plaintextOnlyName): Deleted.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::autocomplete const):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::loadingForBindings const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::decoding const):
(WebCore::HTMLImageElement::loadingForBindings const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::preload const):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::directionString):

  • html/InputMode.cpp:

(WebCore::InputModeNames::none):
(WebCore::InputModeNames::text):
(WebCore::InputModeNames::tel):
(WebCore::InputModeNames::url):
(WebCore::InputModeNames::email):
(WebCore::InputModeNames::search):

  • html/InputTypeNames.cpp:

(WebCore::InputTypeNames::email):
(WebCore::InputTypeNames::reset):
(WebCore::InputTypeNames::search):
(WebCore::InputTypeNames::submit):
(WebCore::InputTypeNames::telephone):
(WebCore::InputTypeNames::text):
(WebCore::InputTypeNames::url):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerTextElement::updateInnerTextElementEditabilityImpl):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::isValidKind const):
(WebCore::AudioTrack::updateKindFromPrivate):
(WebCore::AudioTrack::alternativeKeyword): Deleted.
(WebCore::AudioTrack::mainKeyword): Deleted.
(WebCore::AudioTrack::commentaryKeyword): Deleted.

  • html/track/AudioTrack.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::isValidKindKeyword):
(WebCore::TextTrack::kindKeyword const):
(WebCore::TextTrack::subtitlesKeyword): Deleted.
(WebCore::captionsKeyword): Deleted.

  • html/track/TextTrack.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCue::positionAlign const):
(WebCore::VTTCue::setPositionAlign):
(WebCore::VTTCue::toJSON const):
(WebCore::autoKeyword): Deleted.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::isValidKind const):
(WebCore::VideoTrack::updateKindFromPrivate):
(WebCore::VideoTrack::alternativeKeyword): Deleted.
(WebCore::VideoTrack::captionsKeyword): Deleted.
(WebCore::VideoTrack::mainKeyword): Deleted.
(WebCore::VideoTrack::subtitlesKeyword): Deleted.
(WebCore::VideoTrack::commentaryKeyword): Deleted.

  • html/track/VideoTrack.h:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::WebVTTParser):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::Attributes::parseEncodingType):

  • loader/NavigationScheduler.cpp:
  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::textFromUTF8):

  • loader/archive/mhtml/MHTMLParser.cpp:

(WebCore::MHTMLParser::addResourceToArchive):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):

  • mathml/MathMLPresentationElement.cpp:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::addAudioTrackKindDisplayNameIfNeeded):

  • page/EventSource.cpp:

(WebCore::EventSource::EventSource):

  • page/Page.cpp:

(WebCore::Page::userStyleSheet const):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeCSSStyleSheet):

  • page/PrintContext.cpp:

(WebCore::PrintContext::pageProperty):

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::initializeNames):

  • platform/CommonAtomStrings.cpp: Added.

(WebCore::initializeCommonAtomStrings):

  • platform/CommonAtomStrings.h: Added.

(WebCore::alternativeAtom):
(WebCore::autoAtom):
(WebCore::captionsAtom):
(WebCore::commentaryAtom):
(WebCore::cssContentTypeAtom):
(WebCore::eagerAtom):
(WebCore::emailAtom):
(WebCore::falseAtom):
(WebCore::lazyAtom):
(WebCore::mainAtom):
(WebCore::noneAtom):
(WebCore::offAtom):
(WebCore::onAtom):
(WebCore::plaintextOnlyAtom):
(WebCore::resetAtom):
(WebCore::searchAtom):
(WebCore::submitAtom):
(WebCore::subtitlesAtom):
(WebCore::telAtom):
(WebCore::textAtom):
(WebCore::textPlainContentTypeAtom):
(WebCore::trueAtom):
(WebCore::urlAtom):

  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::isSafeTypeForDOMToReadAndWrite):

  • platform/StaticPasteboard.cpp:

(WebCore::StaticPasteboard::writePlainText):

  • platform/animation/Animation.cpp:

(WebCore::Animation::initialName const):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):
(WebCore::textPlain): Deleted.

  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread):

  • platform/network/HTTPParsers.cpp:
  • platform/network/ios/WebCoreURLResponseIOS.h:

(WebCore::shouldUseQuickLookForMIMEType):

  • style/Styleable.cpp:

(WebCore::Styleable::animationListContainsNewlyValidAnimation const):
(WebCore::Styleable::updateCSSAnimations const):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::rotateMode const):

  • svg/SVGAnimationElement.cpp:

(WebCore::sumAtom):
(WebCore::SVGAnimationElement::isAdditive const):
(WebCore::SVGAnimationElement::isAccumulated const):

  • svg/SVGFEConvolveMatrixElement.cpp:
  • svg/SVGFEConvolveMatrixElement.h:

(WebCore::SVGPropertyTraits<EdgeModeType>::toString):
(WebCore::SVGPropertyTraits<EdgeModeType>::fromString):

  • svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::fromString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::toString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::autoString): Deleted.

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::type const):

  • svg/SVGTextPathElement.h:

(WebCore::SVGPropertyTraits<SVGTextPathSpacingType>::toString):
(WebCore::SVGPropertyTraits<SVGTextPathSpacingType>::fromString):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::indefiniteAtom):
(WebCore::SVGSMILElement::parseClockValue):
(WebCore::SVGSMILElement::repeatCount const):

  • svg/properties/SVGPropertyTraits.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::m_notificationClient):

  • xml/XPathValue.cpp:

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::compileContentRuleList):

Source/WebKitLegacy/win:

  • WebKitGraphics.cpp:

(makeFont):

Source/WTF:

  • wtf/text/AtomString.cpp:

(WTF::AtomString::init):

  • wtf/text/AtomString.h:

(WTF::xmlnsAtom):
(WTF::trueAtom): Deleted.
(WTF::falseAtom): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::makeBackend):

8:28 PM Changeset in webkit [293284] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.1-branch/Source/WebCore/page/Page.cpp

Unreviewed build fix. rdar://80544133

./page/Page.cpp:389:9: error: incomplete type 'WebCore::FontCache' named in nested name specifier

8:27 PM Changeset in webkit [293283] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.0-branch/Source/WebCore/page/Page.cpp

Unreviewed build fix. rdar://80544133

./page/Page.cpp:389:9: error: incomplete type 'WebCore::FontCache' named in nested name specifier

7:58 PM Changeset in webkit [293282] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source

Apply patch. rdar://problem/90968687

7:54 PM Changeset in webkit [293281] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.1-branch

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293269.

7:42 PM Changeset in webkit [293280] by Russell Epstein
  • 9 edits
    2 copies in branches/safari-614.1.10-branch/Source

Cherry-pick r293106. rdar://problem/91740931

[WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=239528
<rdar://problem/91740931>

Unreviewed build fix.

Source/WebCore/PAL:

WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
<WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
this patch splits the PAL header into:

  1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
  2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or

WebKitLegacy.

This fixes one of Apple's internal builds.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp. (PAL::WebGPU::create):
  • pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: (PAL::WebGPU::GPUImpl::create): Deleted.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp: (WebKit::RemoteGPU::workQueueInitialize):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createGPUForWebGPU const):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm: (WebChromeClient::createGPUForWebGPU const):

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

7:23 PM Changeset in webkit [293279] by Diego Pino Garcia
  • 6 edits in trunk/Source

Unreviewed, non-unified build fixes after r293203

Source/JavaScriptCore:

  • jit/ScratchRegisterAllocator.h:

Source/WebCore:

  • page/PageConfiguration.h:

Source/WTF:

  • wtf/RobinHoodHashTable.h:
7:15 PM Changeset in webkit [293278] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Reduce sizeof(CSSNumericType)
https://bugs.webkit.org/show_bug.cgi?id=239680

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-22
Reviewed by Yusuke Suzuki.

  • bindings/IDLTypes.h:

(WebCore::IDLType::nullValue):
(WebCore::IDLType::isNullType):
(WebCore::IDLType::extractValueFromNullable):

  • css/typedom/numeric/CSSMathProduct.cpp:

(WebCore::multiplyTypes):

  • css/typedom/numeric/CSSNumericType.h:

(WebCore::CSSNumericType::valueForType):
(WebCore::CSSNumericType::valueForType const):

7:05 PM Changeset in webkit [293277] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.1-branch/Source/WebCore/page/SecurityOrigin.h

Unreviewed build fix. rdar://90511155

WebCore/page/SecurityOrigin.h:309:13: note: candidate function not viable: requires 2 arguments, but 4 were provided inline void add(Hasher& hasher, const SecurityOrigin& origin)

7:02 PM Changeset in webkit [293276] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.0-branch/Source/WebCore/page/SecurityOrigin.h

Unreviewed build fix. rdar://90511155

WebCore/page/SecurityOrigin.h:309:13: note: candidate function not viable: requires 2 arguments, but 4 were provided inline void add(Hasher& hasher, const SecurityOrigin& origin)

5:44 PM Changeset in webkit [293275] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.0-branch

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293258.

5:44 PM Changeset in webkit [293274] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.0-branch/Source/WebKit

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293259.

5:37 PM Changeset in webkit [293273] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.1-branch/Source/WebKit

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293270.

5:37 PM Changeset in webkit [293272] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source

Revert "Apply patch. rdar://problem/90968687"

This reverts commit r293271.

5:06 PM Changeset in webkit [293271] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source

Apply patch. rdar://problem/90968687

5:04 PM Changeset in webkit [293270] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.1-branch/Source/WebKit

Apply patch. rdar://problem/88904160

5:04 PM Changeset in webkit [293269] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/88904160

4:59 PM Changeset in webkit [293268] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.1-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

4:59 PM Changeset in webkit [293267] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.2.7.1-branch

Cherry-pick r292072. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_attachmentElementClient):
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.

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

4:39 PM Changeset in webkit [293266] by commit-queue@webkit.org
  • 37 edits
    5 copies
    24 adds in trunk

Revert "[WebAuthn] Clean up WebAuthenticationModern and WebAuthnProcess"

This reverts commit 6ced3b519689536e6e4d36b9e46e78be9e6f4706.

Unreviewed test gardening.

Canonical link: https://commits.webkit.org/249907@main

4:21 PM Changeset in webkit [293265] by dbezhetskov
  • 4 edits in trunk/Source/JavaScriptCore

[Refactoring] Reduce number of const and reinterpret casts
https://bugs.webkit.org/show_bug.cgi?id=239648

Reviewed by Yusuke Suzuki.

The statement
"reinterpret_cast<TypeDefinition*>(const_cast<char*>(functionType.m_payload)

  • sizeof(TypeDefinition))"

is dangerous and it produces warning on some platfroms.
There is way to avoid it and this patch is doint that.

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::doWasmCallIndirect):
(JSC::LLInt::doWasmCallRef):

  • wasm/WasmTypeDefinition.h:

(JSC::Wasm::FunctionSignature::operator== const):

  • wasm/WasmTypeDefinitionInlines.h:
4:19 PM Changeset in webkit [293264] by Patrick Angle
  • 9 edits in trunk

Web Inspector: Regression(r287684) Resources from the memory cache show empty content in Network, Sources, and Search tabs
https://bugs.webkit.org/show_bug.cgi?id=239667

Reviewed by Devin Rousso.

Source/WebCore:

Updated tests:

  • http/tests/inspector/network/resource-response-source-disk-cache.html
  • http/tests/inspector/network/resource-response-source-memory-cache.html

r287684 introduced a subtle bug when calling InspectorInstrumentation::didReceiveData. We rely
on there being a difference between real, but empty, data buffer and not having a data buffer,
but after r287684 an empty SharedBuffer would be passed in the later case. Instead, we should
continue to pass nullptr if there is no buffer so that InspectorNetworkAgent::didReceiveData
can distiguish between the two.

The bug is the result of having a non-nullptr data in InspectorNetworkAgent::didReceiveData,
which causes us to call maybeAddResourceData, which means by the time
InspectorNetworkAgent::getResponseBody is called, the ResourceData for the request will have
an empty, not non-existant, content(), which means we will return the empty content instead,
since we believe the response had actual content.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didReceiveDataImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didReceiveData):

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):

LayoutTests:

Add test steps to ensure that the resource has content, and that the base64Encoded value matches our
expectations. While only the memory cache was affected by this regression, add the test steps to both
the memory and disk caches to defend this functionality.

  • http/tests/inspector/network/resource-response-source-memory-cache-expected.txt:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-response-source-disk-cache-expected.txt:
  • http/tests/inspector/network/resource-response-source-disk-cache.html:
4:06 PM Changeset in webkit [293263] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.0-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

4:06 PM Changeset in webkit [293262] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.2.7.0-branch

Cherry-pick r292072. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_attachmentElementClient):
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.

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

4:02 PM Changeset in webkit [293261] by Russell Epstein
  • 20 edits
    4 adds in branches/safari-613.2.7.1-branch

Cherry-pick r291589. rdar://problem/90511155

LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

Import web-platform-tests test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:

Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/BroadcastChannel.cpp: (WebCore::shouldPartitionOrigin): (WebCore::BroadcastChannel::MainThreadBridge::registerChannel): (WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel): (WebCore::BroadcastChannel::MainThreadBridge::postMessage):
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:
  • page/PartitionedSecurityOrigin.h: Added. (WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin): (WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const): (WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const): (WebCore::operator==): (WTF::add): (WTF::PartitionedSecurityOriginHash::hash): (WTF::PartitionedSecurityOriginHash::equal): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):

Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp: (WebKit::toClientOrigin): (WebKit::WebBroadcastChannelRegistry::registerChannel): (WebKit::WebBroadcastChannelRegistry::unregisterChannel): (WebKit::WebBroadcastChannelRegistry::postMessage): (WebKit::WebBroadcastChannelRegistry::postMessageLocally): (WebKit::WebBroadcastChannelRegistry::postMessageToRemote): (WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121

Reviewed by Yusuke Suzuki.

  • PlatformMac.cmake:

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

3:52 PM Changeset in webkit [293260] by Simon Fraser
  • 7 edits
    2 adds in trunk

Focusing scroll container before scrolling breaks smooth scrolling
https://bugs.webkit.org/show_bug.cgi?id=239605

Reviewed by Wenson Hsieh.

Source/WebCore:

If script calls focus() and then scrollTo({ behavior: smooth }) in the same runloop, the
scrollToFocusedElementInternal() that happens on a zero-delay timer in FrameView will stop
the animated scroll.

Fix by having programmatic scrolls on Element and DOMWindow cancel any pending focus-related
scroll.

Test: fast/scrolling/programmatic-smooth-scroll-after-focus.html

  • dom/Element.cpp:

(WebCore::Element::scrollTo):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollTo const):

  • page/FrameView.cpp:

(WebCore::FrameView::maintainScrollPositionAtAnchor):
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::cancelScheduledScrollToFocusedElement):
(WebCore::FrameView::scrollToAnchor):
(WebCore::FrameView::setWasScrolledByUser):

  • page/FrameView.h:

LayoutTests:

  • fast/scrolling/programmatic-smooth-scroll-after-focus-expected.txt: Added.
  • fast/scrolling/programmatic-smooth-scroll-after-focus.html: Added.
  • platform/win/TestExpectations:
3:45 PM Changeset in webkit [293259] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.0-branch/Source/WebKit

Apply patch. rdar://problem/88904160

3:45 PM Changeset in webkit [293258] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/88904160

3:05 PM Changeset in webkit [293257] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613.2.7.0-branch

Cherry-pick r291724. rdar://problem/91975589

Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168

Reviewed by Chris Fleizach.

Source/WebKit:

Given this markup:

<iframe src="/path/to/paystub.pdf">

An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.

This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.

Test: accessibility/mac/iframe-pdf.html

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin):

LayoutTests:

  • accessibility/mac/iframe-pdf-expected.txt: Added.
  • accessibility/mac/iframe-pdf.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test as it always times out in WK1 (similar to accessibility/mac/basic-embed-pdf-accessibility.html)

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

2:56 PM Changeset in webkit [293256] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.0-branch/Source

Apply patch. rdar://problem/90968687

2:53 PM Changeset in webkit [293255] by Russell Epstein
  • 20 edits
    3 adds in branches/safari-613.2.7.0-branch

Cherry-pick r291589. rdar://problem/90511155

LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

Import web-platform-tests test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:

Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/BroadcastChannel.cpp: (WebCore::shouldPartitionOrigin): (WebCore::BroadcastChannel::MainThreadBridge::registerChannel): (WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel): (WebCore::BroadcastChannel::MainThreadBridge::postMessage):
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:
  • page/PartitionedSecurityOrigin.h: Added. (WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin): (WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const): (WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const): (WebCore::operator==): (WTF::add): (WTF::PartitionedSecurityOriginHash::hash): (WTF::PartitionedSecurityOriginHash::equal): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):

Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp: (WebKit::toClientOrigin): (WebKit::WebBroadcastChannelRegistry::registerChannel): (WebKit::WebBroadcastChannelRegistry::unregisterChannel): (WebKit::WebBroadcastChannelRegistry::postMessage): (WebKit::WebBroadcastChannelRegistry::postMessageLocally): (WebKit::WebBroadcastChannelRegistry::postMessageToRemote): (WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121

Reviewed by Yusuke Suzuki.

  • PlatformMac.cmake:

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

2:24 PM Changeset in webkit [293254] by Matteo Flores
  • 2 edits
    1 copy in trunk/LayoutTests

REBASLINE: [ Monterey ] fast/text/khmer-lao-font.html is a constant text failure

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

Unreviewed test gardening.

  • platform/mac-bigsur/fast/text/khmer-lao-font-expected.txt: Copied from LayoutTests/platform/mac/fast/text/khmer-lao-font-expected.txt.
  • platform/mac/fast/text/khmer-lao-font-expected.txt:

Canonical link: https://commits.webkit.org/249903@main

2:08 PM Changeset in webkit [293253] by commit-queue@webkit.org
  • 2 edits in trunk

Add my github account name
https://bugs.webkit.org/show_bug.cgi?id=239671

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-22
Reviewed by Chris Dumez.

  • metadata/contributors.json:
1:58 PM Changeset in webkit [293252] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC]Throw consistent exceptions for memory.init and memory.copy
https://bugs.webkit.org/show_bug.cgi?id=239592

Patch by Geza Lore <Geza Lore> on 2022-04-22
Reviewed by Yusuke Suzuki.

For a trapping Wasm memory.init and memory.copy instruction, the LLInt
used to throw OutOfBoundsMemoryAccess, but BBQ/OMG used to throw
OutOfBoundsTableAccess.

Changed BBQ/OMG to throw OutOfBoundsMemoryAccess as well.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):

1:48 PM Changeset in webkit [293251] by Alan Bujtas
  • 5 edits
    3 adds in trunk/Source/WebCore

[LFC][Integration] Add blank LayoutIntegration::FlexLayout
https://bugs.webkit.org/show_bug.cgi?id=239663

Reviewed by Antti Koivisto.

This is in preparation for adding flex formatting context integration.

  • CMakeLists.txt:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp: Added.

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions):
(WebCore::LayoutIntegration::FlexLayout::updateStyle):
(WebCore::LayoutIntegration::FlexLayout::computeIntrinsicWidthConstraints):
(WebCore::LayoutIntegration::FlexLayout::layout):
(WebCore::LayoutIntegration::FlexLayout::paint):
(WebCore::LayoutIntegration::FlexLayout::hitTest):
(WebCore::LayoutIntegration::FlexLayout::collectOverflow):
(WebCore::LayoutIntegration::FlexLayout::contentLogicalHeight const):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h: Added.
1:43 PM Changeset in webkit [293250] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source/WebCore

Cherry-pick r292878. rdar://problem/90248865

ScriptDisallowedScope::isEventAllowedInMainThread assert failure when activating AudioSession
https://bugs.webkit.org/show_bug.cgi?id=239343

Reviewed by Eric Carlson.

As part of HTMLMediaElement::clearMediaPlayer we call PlatformMediaSession::canProduceAudioChanged
which can result in activating the AudioSession when the page is capturing audio.

This sends a synchronous IPC message to the GPU process. As part of IPC::Connection::waitForSyncReply,
we also end up dispatching enqueued messages, including a WebPage_EndPrinting message that
fires an event listener on the main thread.

This patch will instead queue the PlatformMediaSession::canProduceAudioChanged as a task to avoid
firing the event listener on the main thread, which results in assertion failure.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::clearMediaPlayer):

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

1:43 PM Changeset in webkit [293249] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Cherry-pick r292878. rdar://problem/90248865

ScriptDisallowedScope::isEventAllowedInMainThread assert failure when activating AudioSession
https://bugs.webkit.org/show_bug.cgi?id=239343

Reviewed by Eric Carlson.

As part of HTMLMediaElement::clearMediaPlayer we call PlatformMediaSession::canProduceAudioChanged
which can result in activating the AudioSession when the page is capturing audio.

This sends a synchronous IPC message to the GPU process. As part of IPC::Connection::waitForSyncReply,
we also end up dispatching enqueued messages, including a WebPage_EndPrinting message that
fires an event listener on the main thread.

This patch will instead queue the PlatformMediaSession::canProduceAudioChanged as a task to avoid
firing the event listener on the main thread, which results in assertion failure.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::clearMediaPlayer):

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

1:39 PM Changeset in webkit [293248] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/91446317

1:39 PM Changeset in webkit [293247] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.1-branch

Revert "Cherry-pick r291606. rdar://problem/91446317"

This reverts commit r293072.

1:39 PM Changeset in webkit [293246] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.1-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

Revert "Unreviewed build fix. rdar://91446317"

This reverts commit r293144.

1:35 PM Changeset in webkit [293245] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/91446317

1:35 PM Changeset in webkit [293244] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.0-branch

Revert "Cherry-pick r291606. rdar://problem/91446317"

This reverts commit r293072.

1:35 PM Changeset in webkit [293243] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.0-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

Revert "Unreviewed build fix. rdar://91446317"

This reverts commit r293144.

1:18 PM Changeset in webkit [293242] by Chris Dumez
  • 2 edits in trunk

Unreviewed, add Geoff's github username to contributors.json so he can review patches

  • metadata/contributors.json:
1:14 PM Changeset in webkit [293241] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/91288849

1:14 PM Changeset in webkit [293240] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/91288849

1:08 PM Changeset in webkit [293239] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/91590827

1:08 PM Changeset in webkit [293238] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/91590827

12:58 PM Changeset in webkit [293237] by Chris Dumez
  • 5 edits in trunk/Source

Modernize Text::replaceWholeText() https://bugs.webkit.org/show_bug.cgi?id=239637

Reviewed by Ryosuke Niwa.

Modernize Text::replaceWholeText():

  • Drop unnecessary return value.
  • Ref the Text node at call sites instead of using an internal protectedThis variable.
  • Use node instead of n for variable name.
  • Use modern template deduction for Ref / RefPtr.
  • Source/WebKitLegacy/mac/DOM/DOMText.mm:

(-[DOMText replaceWholeText:]):

  • Source/WebCore/dom/Text.cpp:

(WebCore::Text::replaceWholeText):

  • Source/WebCore/dom/Text.h:
  • Source/WebCore/html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::updateVisibleValue):

Canonical link: https://commits.webkit.org/249898@main

12:02 PM Changeset in webkit [293236] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613.2.7.1-branch

Cherry-pick r291724. rdar://problem/91975589

Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168

Reviewed by Chris Fleizach.

Source/WebKit:

Given this markup:

<iframe src="/path/to/paystub.pdf">

An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.

This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.

Test: accessibility/mac/iframe-pdf.html

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin):

LayoutTests:

  • accessibility/mac/iframe-pdf-expected.txt: Added.
  • accessibility/mac/iframe-pdf.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test as it always times out in WK1 (similar to accessibility/mac/basic-embed-pdf-accessibility.html)

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

11:46 AM Changeset in webkit [293235] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.1

11:46 AM Changeset in webkit [293234] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.0-branch/Source

Versioning.

WebKit-7613.2.7.0.1

11:25 AM Changeset in webkit [293233] by Alan Bujtas
  • 7 edits in trunk/Source

[LFC][Integration] Add FlexFormattingContextIntegrationEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=239654

Reviewed by Antti Koivisto.

Source/WebCore:

This is in preparation for supporting flex formatting context through integration.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFlexLayout):

  • layout/integration/LayoutIntegrationCoverage.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutFlexItems):
(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

  • rendering/RenderFlexibleBox.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
11:02 AM Changeset in webkit [293232] by Brandon
  • 5 edits in trunk/Source/WebCore

Store StyleScope during CSSStyleSheet Creation
https://bugs.webkit.org/show_bug.cgi?id=239659

Reviewed by Antti Koivisto.

To ensure that we can always access the style scope, we shall ensure we store the style scope
at CSSStyleSheet creation time. It was possible before that a style sheet could become disconnected
and then a rule would later be mutated. This resulted in the unfortunate side effect of being unable to find
the style scope.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::CSSStyleSheet):
(WebCore::CSSStyleSheet::styleScope):

  • css/CSSStyleSheet.h:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectResolverScopes):

  • style/StyleScope.h:
10:46 AM Changeset in webkit [293231] by Aditya Keerthi
  • 12 edits in trunk

[iOS] Add find interaction API to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=239612
rdar://88442918

Reviewed by Alex Christensen.

Source/WebKit:

Promote the _findInteraction and _findInteractionEnabled SPI to
findInteraction and findInteractionEnabled API.

In order to make this change, new UIKit objects and protocols must be
adopted. Existing (deprecated) protocol conformance is kept around to
avoid breaking internal clients.

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

(-[WKWebView findInteractionEnabled]):
(-[WKWebView setFindInteractionEnabled:]):
(-[WKWebView findInteraction]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Declare conformance to three protocols: _UITextSearching, UITextSearching, UIFindInteractionDelegate.

_UITextSearching: Conformance is kept around to avoid breaking internal clients.
UITextSearching: Conformance is declared for clients to migrate off of _UITextSearching.
UIFindInteractionDelegate: Conformance is necessary to begin a UIFindSession.

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didCommitLoadForMainFrame]):

The "searchable object" does not need to be reset anymore, as UIKit
will do that in -[WKWebView findInteraction:sessionForView:] the next
time a find session begins.

(-[WKWebView _searchableObject]):
(-[WKWebView _setFindInteractionEnabled:]):
(-[WKWebView _findInteraction]):

It is safe to cast between the SPI and API version of this object. UIKit
has guaranteed compatibility.

(-[WKWebView offsetFromPosition:toPosition:inDocument:]):
(-[WKWebView compareFoundRange:toRange:inDocument:]):
(-[WKWebView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKWebView replaceFoundTextInRange:inDocument:withText:]):
(-[WKWebView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKWebView scrollRangeToVisible:inDocument:]):
(-[WKWebView findInteraction:sessionForView:]):
(-[WKWebView findInteraction:didBeginFindSession:]):

Custom content views do not need to be aware that a find session has
begun, as they do not draw an overlay.

(-[WKWebView findInteraction:didEndFindSession:]):

Custom content views do not need to be aware that a find session has
begun, as they do not draw an overlay.

  • UIProcess/ios/WKContentViewInteraction.h:

Declare the old _UITextSearching methods explicitly, as we need to
maintain support for internal clients.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKContentView replaceFoundTextInRange:inDocument:withText:]):
(-[WKContentView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKContentView scrollRangeToVisible:inDocument:]):
(-[WKContentView offsetFromPosition:toPosition:inDocument:]):
(-[WKContentView compareFoundRange:toRange:inDocument:]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView compareFoundRange:toRange:inDocument:]):
(-[WKPDFView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKPDFView decorateFoundTextRange:inDocument:usingStyle:]):

Tools:

Augment an existing API test to use the new API, in addition to the
existing SPI.

The find-and-replace test is updated to account for the fact that a
find interaction no longer exposes a searchableObject. Instead, use
test-only SPI on WKWebView to perform the replace.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(TEST):

10:28 AM Changeset in webkit [293230] by Wenson Hsieh
  • 9 edits in trunk

[iOS] -selectWordForReplacement should select dictation alternatives that span multiple words
https://bugs.webkit.org/show_bug.cgi?id=239622
rdar://91416535

Reviewed by Aditya Keerthi.

Source/WebKit:

Currently, -selectWordForReplacement (which is invoked by UIKit when the tapping on spelling corrections and
dictation alternatives to reveal the callout bar with text suggestions) handles multi-word dictation ranges by
only selecting one of the words (i.e., whichever word is closest to the tapped location). This makes it
impossible to handle dictation ranges that span multiple words, since only part of the range is replaced with
the chosen alternative.

To address this, instead of using the existing extendSelection method (which is still exercised when tapping
the "Select" action in the callout bar with a caret selection), we add extendSelectionForReplacement, which
extends the selection to include any dictation alternative range that encompasses the selection (and otherwise
falls back to selecting the current word).

Test: SelectionTests.SelectWordForReplacementWithDictationAlternative

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

(-[WKContentView selectWordForReplacement]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::extendSelectionForReplacement):

Add a new IPC message, WebPage::ExtendSelectionForReplacement, and use it to implement `-[WKContentView
selectWordForReplacement]`.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::extendSelectionForReplacement):

Add logic to select the enclosing dictation alternative marker range (if it exists), or the current word at the
start of the selection if there is no enclosing marker range. Note that we first grab a Vector of all the marker
ranges instead of creating them as we iterate through the list of RenderedDocumentMarker*, since creating
visible position ranges from each marker range triggers layout, and each RenderedDocumentMarker* is not
ref-counted, so it's possible that a reentrant call to update the document marker controller during layout could
destroy the next RenderedDocumentMarker* during iteration.

(WebKit::WebPage::extendSelection):
(WebKit::WebPage::setSelectedRangeDispatchingSyntheticMouseEventsIfNeeded):

Pull out logic for dispatching synthetic mouse events when selecting text into a separate helper method, which
is now called from both extendSelection and extendSelectionForReplacement.

Tools:

Add an API test to exercise the change.

  • TestWebKitAPI/Tests/ios/SelectionByWord.mm:

(TEST):

9:44 AM Changeset in webkit [293229] by Russell Epstein
  • 9 edits in branches/safari-614.1.10-branch/Source

Versioning.

WebKit-7614.1.10.6

9:36 AM Changeset in webkit [293228] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore/PAL

Adjust SPI headers to fix build with non-internal SDK
https://bugs.webkit.org/show_bug.cgi?id=239626

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-22
Reviewed by Chris Dumez.

  • pal/spi/cocoa/PassKitSPI.h:
  • pal/spi/mac/ScreenCaptureKitSPI.h:
9:33 AM Changeset in webkit [293227] by Alan Coon
  • 1 copy in branches/safari-613.2.7.3-branch

New branch.

9:33 AM Changeset in webkit [293226] by Alan Coon
  • 1 copy in branches/safari-613.2.7.2-branch

New branch.

9:33 AM Changeset in webkit [293225] by Alan Coon
  • 1 copy in branches/safari-613.2.7.1-branch

New branch.

9:33 AM Changeset in webkit [293224] by Alan Coon
  • 1 copy in branches/safari-613.2.7.0-branch

New branch.

9:11 AM Changeset in webkit [293223] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS wk2 arm64 ] imported/w3c/web-platform-tests/infrastructure/reftest-wait.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=230488

Unreviewed test gardening.

Updated text expectations in include Monterey wk2 arm64

  • LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/249892@main

8:57 AM Changeset in webkit [293222] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] BoxTree should be able to build non-inline content tree
https://bugs.webkit.org/show_bug.cgi?id=239653

Reviewed by Antti Koivisto.

This is in preparation for supporting non-IFC content (e.g. flex).

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::rootBoxFirstLineStyle):
(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::buildTreeForInlineContent):
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):
(WebCore::LayoutIntegration::BoxTree::buildTree): Deleted.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::rootRenderer const):
(WebCore::LayoutIntegration::BoxTree::rootRenderer):
(WebCore::LayoutIntegration::BoxTree::flow const): Deleted.
(WebCore::LayoutIntegration::BoxTree::flow): Deleted.

  • layout/integration/inline/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::flow const):
(WebCore::LayoutIntegration::LineLayout::flow):

8:13 AM Changeset in webkit [293221] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS Release arm64 ] imported/w3c/web-platform-tests/resource-timing/resource_timing.worker.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223472

Unreviewed test gardening.

Updated test expectation [ Release arm64 ]

  • LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/249890@main

7:03 AM Changeset in webkit [293220] by mark.lam@apple.com
  • 7 edits in trunk/Source

Apply purifyNaN in more places.
https://bugs.webkit.org/show_bug.cgi?id=239619
<rdar://problem/91924480>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::toJSValue):

Source/WebCore:

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS):

  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readTerminal):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertObjcValueToValue):

6:29 AM Changeset in webkit [293219] by Andres Gonzalez
  • 9 edits in trunk

Fix for accessibility/aria-grid-with-aria-owns-rows.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=239498
<rdar://problem/91961398>

Reviewed by Chris Fleizach and Tyler Wilcock.

Source/WebCore:

Test: accessibility/aria-grid-with-aria-owns-rows.html.

When creating AXIsolatedObjects, we were passing the object ID of the
parent to the constructor in a parent to child traversal, and storing
that parent ID in the object. This assumed that all AX objects have a
parent-child reflexive relationship, i.e., if A is a child of B, B is
the parent of A. But that is not true in several cases in the
accessibility hierarchy.
One example where the parent-child relationship is not reflexive is for table cells, where a cell can be the child of an object with role column, but its parent is an object with role row.
Another case is when aria-owns is used.
This patch fixes the problem by letting the live object determine its
own parent, instead of having the traversal algorithm pass the parent ID
to the AXIsolatedObject constructor.
A previous attempt to fix this problem was made in
https://bugs.webkit.org/show_bug.cgi?id=236156.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::initializeAttributeData): Renamed.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueRemovalsAndUnresolvedChanges):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::parentIDForObject): Deleted.

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::initializePlatformProperties):

LayoutTests:

  • accessibility/aria-grid-with-aria-owns-rows-expected.txt:
  • accessibility/aria-grid-with-aria-owns-rows.html:
6:27 AM Changeset in webkit [293218] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Book content is clipped at page boundary when displaying list with bullet points
https://bugs.webkit.org/show_bug.cgi?id=239638
<rdar://89257768>

Reviewed by Antti Koivisto.

Source/WebCore:

Table cell content needs special handling when does not fit the page.

When a table cell's first line does not fit the page, instead of the normal, "let's add a flow level pagination strut"
we have to handle it as a line level strut (not sure why it is implemted this way but this is the expected behavior).
-also implment LineBoxIteratorModernPath::isFirstAfterPageBreak.

Test: fast/multicol/pagination/table-cell-one-line-pagination.html

  • layout/integration/inline/InlineIteratorLineBoxModernPath.h:

(WebCore::InlineIterator::LineBoxIteratorModernPath::isFirstAfterPageBreak const):

  • layout/integration/inline/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::isFirstAfterPageBreak const):

  • layout/integration/inline/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::setPageBreakForLine): According to RenderBlockFlow::adjustLinePositionForPagination, we
have to call setPageBreak, even when the first line does not fit.
(WebCore::LayoutIntegration::makeAdjustedContent):
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):

LayoutTests:

  • fast/multicol/pagination/table-cell-one-line-pagination-expected.html: Added.
  • fast/multicol/pagination/table-cell-one-line-pagination.html: Added.
5:02 AM Changeset in webkit [293217] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Bail out from text decoration computation if none is requested
https://bugs.webkit.org/show_bug.cgi?id=239641

Reviewed by Tim Nguyen.

  • rendering/TextDecorationPainter.cpp:

(WebCore::collectStylesForRenderer):

Also avoid resolving colors unnecessarily.

(WebCore::TextDecorationPainter::stylesForRenderer):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Remove unused 'None' value.

4:40 AM Changeset in webkit [293216] by eocanha@igalia.com
  • 5 edits in trunk/Source/WebCore

[MSE] Improve SourceBuffer memory cost reporting
https://bugs.webkit.org/show_bug.cgi?id=238948

Reviewed by Xabier Rodriguez-Calvar.

Properly implementing the memoryCost() API in SourceBuffer would improve memory
awareness when garbage collecting.

This patch extends the SourceBuffer interface with the ReportExtraMemoryCost
attribute, implements memoryCost() method for the interface and fixes
calculations for removed buffers. It distinguishes the amount of memory
increases reported (extraMemoryCostDelta, what was reported until now, can
only grow) from the total amount of memory reported (can grow and shrink).

This patch is co-authored by Andrzej Surdej (https://github.com/asurdej-comcast)
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/827

  • Modules/mediasource/SourceBuffer.cpp: Implement memoryCost() interface and hold the absolute memory consumed as m_extraMemoryCost, keeping the original m_reportedExtraMemoryCost behaviour.
  • Modules/mediasource/SourceBuffer.h: Added memoryCost() and m_extraMemoryCost.
  • Modules/mediasource/SourceBuffer.idl: Require the ReportExtraMemoryCost feature.
  • platform/graphics/SourceBufferPrivate.cpp: Also report the memory change to SourceBuffer when evicting frames (memory reduction).
4:08 AM Changeset in webkit [293215] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebKit

[GLib] Make WebKitSettings XSS auditor functions no-op
https://bugs.webkit.org/show_bug.cgi?id=239651

Reviewed by Adrian Perez de Castro.

With the XSS auditor feature being deprecated and removed, and the
preference entries removed in r293199, the GLib API for this feature
has to be adjusted as well. In both getter and setter, a warning is
printed out when invoked.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_get_enable_xss_auditor):
(webkit_settings_set_enable_xss_auditor):

12:25 AM Changeset in webkit [293214] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.36.1

WPE WebKit 2.36.1

12:22 AM Changeset in webkit [293213] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.36.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.36.1.
12:02 AM Changeset in webkit [293212] by Tyler Wilcock
  • 5 edits in trunk

AX: The isolated tree is not updated after role changes in AccessibilityRenderObject::updateRoleAfterChildrenCreation()
https://bugs.webkit.org/show_bug.cgi?id=239549

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

In AccessibilityRenderObject::updateRoleAfterChildrenCreation(), if the objects role changes,
we need to inform the cache via AXObjectCache::handleRoleChange which in turn will
update the isolated tree.

Fixes accessibility/mac/invalid-menu-role-does-not-send-notification.html in isolated tree mode.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):

LayoutTests:

  • accessibility/mac/invalid-menu-role-does-not-send-notification-expected.txt:
  • accessibility/mac/invalid-menu-role-does-not-send-notification.html:

Update test to use async-await to actually wait for changes to happen,
which is required to make the test pass in isolated tree mode.

Note: See TracTimeline for information about the timeline view.