Timeline



Aug 28, 2021:

6:48 PM Changeset in webkit [281737] by Cameron McCormack
  • 15 edits in trunk/Source

Miscellaneous typo fixes
https://bugs.webkit.org/show_bug.cgi?id=229642

Reviewed by Fujii Hironori.

Source/JavaScriptCore:

  • API/JSValue.h:
  • runtime/RegExp.cpp:

(JSC::RegExp::matchCompareWithInterpreter):

Source/WebCore:

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedImageMIMEType):

  • platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::computeClipPath const):

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):

Source/WebKit:

  • Platform/IPC/HandleMessage.h:

(IPC::callMemberFunction):

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::encodeArrayInternal):

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::ArgumentCoder<CFArrayRef>::encode):

Source/WTF:

  • wtf/CrossThreadTask.h:

(WTF::callMemberFunctionForCrossThreadTask):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createSubstringSharingImpl):

6:31 PM Changeset in webkit [281736] by Simon Fraser
  • 5 edits
    6 adds in trunk

Zooming browser does not properly scale SVG clip paths
https://bugs.webkit.org/show_bug.cgi?id=224795

Reviewed by Tim Horton.

Source/WebCore:

Clip-path and Command+ zooming were fixed in r268138, but that change didn't address
reference clip paths.

Fix by having effectiveZoom scale the clip in the two codepaths; the "clip via a path"
path, and the "clip by painting a mask" path that we fall into for more complex clips.

We only need to fix the userSpaceOnUse code path, since with objectBoundingBox clips
the input bounds has already been scaled.

Tests use the non-standard "zoom" property, so can't be WPT tests.

Tests: css3/masking/clip-path-reference-painted-mask-zoom.html

css3/masking/clip-path-reference-zoom-objectBoundingBox.html
css3/masking/clip-path-reference-zoom.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyResource):
(WebCore::RenderSVGResourceClipper::pathOnlyClipping):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

Tests for various clipping configurations which use the 'zoom' property which
has the same impact as Command+ zooming.

  • css3/masking/clip-path-reference-painted-mask-zoom-expected.html: Added.
  • css3/masking/clip-path-reference-painted-mask-zoom.html: Added.
  • css3/masking/clip-path-reference-zoom-expected.html: Added.
  • css3/masking/clip-path-reference-zoom-objectBoundingBox-expected.html: Added.
  • css3/masking/clip-path-reference-zoom-objectBoundingBox.html: Added.
  • css3/masking/clip-path-reference-zoom.html: Added.
9:48 AM Changeset in webkit [281735] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WTF

[WTF] Fix static analyzer warnings about nullptr derefs in StringImpl::copyCharacters() and tryMakeStringFromAdapters()
<https://webkit.org/b/229461>
<rdar://problem/82303279>

Reviewed by Darin Adler.

  • wtf/text/StringConcatenate.h:

(WTF::tryMakeStringFromAdapters):

  • Add nullptr checks for buffer since it makes no sense to call stringTypeAdapterAccumulator() with a nullptr argument, and it fixes static analyzer warnings about dereferencing nullptr.
  • wtf/text/StringImpl.h:

(WTF::StringImpl::copyCharacters):

  • Add ASSERT(destination || !numCharacters) statement to describe an invariant when calling this method. This stops the static analyzer from emitting false positive warnings about destination being nullptr.
6:15 AM Changeset in webkit [281734] by Alan Bujtas
  • 14 edits
    1 copy
    1 add in trunk

[LFC][IFC] Move content builder functionality to a dedicated class
https://bugs.webkit.org/show_bug.cgi?id=229631

Reviewed by Antti Koivisto.

Source/WebCore:

Let's use a dedicated class for constructing the final line runs. This is also going to be used
for computing overflow and other "display" type of value once it's merged with LayoutIntegration::InlineContentBuilder.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/LayoutUnits.h:
  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp: Added.

(WebCore::Layout::InlineDisplayContentBuilder::InlineDisplayContentBuilder):
(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h: Copied from Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.h.

(WebCore::Layout::InlineDisplayContentBuilder::root const):
(WebCore::Layout::InlineDisplayContentBuilder::formattingState const):

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::InlineLevelBox::isInlineBox const):
(WebCore::Layout::InlineLevelBox::isLineSpanningInlineBox const):
(WebCore::Layout::InlineLevelBox::createInlineBox):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::type const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

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

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::lineOverflowWidth):

  • layout/integration/LayoutIntegrationRun.h:

LayoutTests:

Aug 27, 2021:

11:53 PM Changeset in webkit [281733] by Patrick Griffis
  • 2 edits in trunk/Tools

[GTK] Simplify run-gtk-tests handling of the a11y service
https://bugs.webkit.org/show_bug.cgi?id=229620

Reviewed by Carlos Garcia Campos.

The service is DBusActivatable so it doesn't make sense to manually
find and start every binary ourselves and then wait for the
service to appear. We can simply call it and let the system
manage the service as it normally would in the environment it
normally would.

  • Scripts/run-gtk-tests:

(GtkTestRunner.init):
(GtkTestRunner):
(GtkTestRunner._ensure_accessibility_service_is_running):
(GtkTestRunner._setup_testing_environment):

11:04 PM Changeset in webkit [281732] by Cameron McCormack
  • 3 edits in trunk/Source/WebKit

Fix std::optional<> stripping in MessageArgumentDescriptions.cpp generator
https://bugs.webkit.org/show_bug.cgi?id=229636
<rdar://problem/82461615>

Reviewed by Darin Adler.

  • Scripts/webkit/messages.py:

(generate_js_argument_descriptions):

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::messageReplyArgumentDescriptions):

8:20 PM Changeset in webkit [281731] by mmaxfield@apple.com
  • 11 edits
    2 adds
    1 delete in trunk

The simple text codepath does not handle unpaired surrogates
https://bugs.webkit.org/show_bug.cgi?id=229392

Reviewed by Alan Bujtas.

Source/WebCore:

The simple text codepath was taking an early return if it encountered an unpaired surrogate.
This essentially ends up being data loss, because everything after that surrogate is just gone.
The other browsers render the unpaired surrogate, and the text after it too.

Removing the early return uncovered a preexisting bug, where word-break: break-all would cause
both RenderText::computePreferredLogicalWidths() and BreakingContext::handleText() to try to
break in between two adjacent joining surrogates.

Because both fixes depend on each other to be observable, this patch does both together.

Test: fast/text/unpaired-surrogate.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::getEmphasisMarkGlyphData const):

  • platform/graphics/SurrogatePairAwareTextIterator.cpp: Removed.
  • platform/graphics/SurrogatePairAwareTextIterator.h:

(WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
(WebCore::SurrogatePairAwareTextIterator::consume):
(WebCore::SurrogatePairAwareTextIterator::currentIndex const):
(WebCore::SurrogatePairAwareTextIterator::characters const): Deleted.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:
  • rendering/InlineIterator.h:

(WebCore::InlineIterator::incrementByCodePointInTextNode):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/unpaired-surrogate-expected-mismatch.html: Added.
  • fast/text/unpaired-surrogate.html: Added.
7:09 PM Changeset in webkit [281730] by stephan.szabo@sony.com
  • 6 edits in trunk

[PlayStation][CMake] Add control over whether JavaScriptCore should be shared
https://bugs.webkit.org/show_bug.cgi?id=229591

.:

Add option for controlling whether to build a shared JavaScriptCore and
set build type for that appropriately.

Reviewed by Don Olmstead.

  • Source/cmake/OptionsPlayStation.cmake:

Source/JavaScriptCore:

Reviewed by Don Olmstead.

Make LowLevelInterpreterLib objects get added via _PRIVATE_LIBRARIES when
using JavaScriptCore as an object library in order to propogate them
correctly.

  • CMakeLists.txt:

Tools:

Reviewed by Don Olmstead.

Add frameworks to test applications to build with an object library version
of JavaScriptCore.

  • TestWebKitAPI/CMakeLists.txt:
5:57 PM Changeset in webkit [281729] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Address post-landing feedback on r281728.

Move a line inside the #ifdef.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand):

5:25 PM Changeset in webkit [281728] by Simon Fraser
  • 19 edits in trunk/Source

Define ENABLE_CONTENT_CHANGE_OBSERVER for IOS_FAMILY and use it to wrap content observation code
https://bugs.webkit.org/show_bug.cgi?id=229624

Reviewed by Alan Bujtas.
Source/WebCore:

Deploy ENABLE(CONTENT_CHANGE_OBSERVER).

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::willDetachPage):
(WebCore::Document::platformSuspendOrStopActiveDOMObjects):

  • dom/Document.h:
  • dom/Node.cpp:

(WebCore::Node::defaultEventHandler):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):

  • page/ios/ContentChangeObserver.cpp:
  • page/ios/ContentChangeObserver.h:
  • page/ios/DOMTimerHoldingTank.cpp:
  • page/ios/DOMTimerHoldingTank.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::mouseMoved):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::willBeDestroyed):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

Source/WebKit:

Deploy ENABLE(CONTENT_CHANGE_OBSERVER).

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand):

Source/WTF:

Deploy ENABLE(CONTENT_CHANGE_OBSERVER).

  • Scripts/Preferences/WebPreferences.yaml:
  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
4:48 PM Changeset in webkit [281727] by eric.carlson@apple.com
  • 9 edits in trunk

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

Reviewed by Darin Adler.

Source/WebCore:

Use queueTaskKeepingObjectAlive instead of a timer when scheduling text track
loading.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::scheduleLoad):
(WebCore::HTMLTrackElement::scheduleTask):
(WebCore::HTMLTrackElement::loadTimerFired): Deleted.

  • html/HTMLTrackElement.h:
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack):
(WebCore::LoadableTextTrack::scheduleLoad):
(WebCore::LoadableTextTrack::element):
(WebCore::LoadableTextTrack::loadTimerFired): Deleted.

  • html/track/LoadableTextTrack.h:

Source/WTF:

  • wtf/SetForScope.h:

(WTF::SetForScope::SetForScope): Add a constructor that takes the value to set
on scope exit.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
4:45 PM Changeset in webkit [281726] by Ryan Haddad
  • 2 edits in trunk/Tools

[EWS] Do not notify Apple bot watchers about failures seen on Igalia bots
https://bugs.webkit.org/show_bug.cgi?id=229630

Reviewed by Aakash Jain.

  • CISupport/ews-build/send_email.py:

(send_email_to_bot_watchers):

2:50 PM Changeset in webkit [281725] by Russell Epstein
  • 14 edits in trunk

.:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • Source/Makefile:
  • Source/cmake/WinTools.make:

Source/JavaScriptCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

Source/WebCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebCore.vcxproj/WebCore.proj:

Source/WebInspectorUI:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WebInspectorUI.vcxproj/WebInspectorUI.make:
  • WebInspectorUI.vcxproj/WebInspectorUI.proj:

Source/WebKitLegacy:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebKitLegacy.vcxproj/WebKitLegacy.proj:

Source/WTF:
Land Windows build fixes from safari-612.1.29.14-branch
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WTF.vcxproj/WTF.proj:
2:30 PM Changeset in webkit [281724] by Simon Fraser
  • 102 edits
    2 adds in trunk

[CSS3 Backgrounds and Borders] The border image area should be empty if border-style is none and border-image-width is not set
https://bugs.webkit.org/show_bug.cgi?id=99922

Reviewed by Alan Bujtas.
Source/WebCore:

Per CSS WG discussion[1] and https://drafts.csswg.org/css-backgrounds/#border-image-area
border images do not affect layout; border-width does, and only then if border-style is not
"none".

Even with zero-width borders, border-image can paint (thus triggering visual overflow) if
border-image-width is specified.

Patch based on Adenilson Cavalcanti's patch, with a fix to not bail early from
RenderBoxModelObject::paintBorder().

Replace RenderStyle::hasBorderFill() with hasBorderImage(); there is no border-fill
property; this was referring to the "fill" keyword for border-image

[1] https://lists.w3.org/Archives/Public/www-style/2015Nov/0258.html

Test: fast/borders/border-image-should-not-display.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBorder):

  • rendering/style/BorderData.h:

(WebCore::BorderData::hasBorder const): Remove special-casing for border-image.
(WebCore::BorderData::hasVisibleBorder const): Ditto.
(WebCore::BorderData::hasBorderImage const):
(WebCore::BorderData::borderLeftWidth const):
(WebCore::BorderData::borderRightWidth const):
(WebCore::BorderData::borderTopWidth const):
(WebCore::BorderData::borderBottomWidth const):
(WebCore::BorderData::hasFill const): Deleted.

  • rendering/style/BorderValue.h:

(WebCore::BorderValue::nonZero const):
(WebCore::BorderValue::isVisible const):

  • rendering/style/NinePieceImage.h:

(WebCore::NinePieceImage::computeOutset): Rename parameters for clarity.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasBorderImage const):
(WebCore::RenderStyle::hasVisibleBorderDecoration const):
(WebCore::RenderStyle::hasBorderFill const): Deleted.

LayoutTests:

Rebaselines for "solid" in output, and border-image no longer affecting layout.

Fix tests to add "border-style: solid" when the old behavior was expected.

  • fast/borders/border-image-01.html:
  • fast/borders/border-image-border-radius.html:
  • fast/borders/border-image-fill-no-intrinsic-size.html:
  • fast/borders/border-image-longhand.html:
  • fast/borders/border-image-massive-scale.html:
  • fast/borders/border-image-omit-right-slice.html:
  • fast/borders/border-image-outset-in-shorthand.html:
  • fast/borders/border-image-outset-split-inline-vertical-lr.html:
  • fast/borders/border-image-outset-split-inline.html:
  • fast/borders/border-image-outset.html:
  • fast/borders/border-image-repeat.html:
  • fast/borders/border-image-rotate-transform.html:
  • fast/borders/border-image-scale-transform.html:
  • fast/borders/border-image-scaled.html:
  • fast/borders/border-image-scrambled.html:
  • fast/borders/border-image-should-not-display-expected.html: Added.
  • fast/borders/border-image-should-not-display.html: Added.
  • fast/borders/border-image-side-reduction.html:
  • fast/borders/border-image-slice-constrained.html:
  • fast/borders/border-image-slice-missing-right.html:
  • fast/borders/border-image-slices.html:
  • fast/borders/border-image-source.html:
  • fast/borders/border-image-trumps-radius-expected.txt:
  • fast/borders/border-image-trumps-radius.html:
  • fast/borders/hidpi-border-image-gradient-on-subpixels.html:
  • fast/borders/scaled-border-image.html:
  • fast/gradients/border-image-gradient-expected.txt:
  • fast/gradients/border-image-gradient.html:
  • fast/hidpi/image-set-border-image-comparison.html:
  • fast/hidpi/image-set-border-image-dynamic.html:
  • fast/hidpi/image-set-border-image-simple.html:
  • fast/writing-mode/border-image-horizontal-bt.html:
  • fast/writing-mode/border-image-vertical-lr.html:
  • fast/writing-mode/border-image-vertical-rl.html:
  • platform/ios/fast/borders/border-image-01-expected.txt:
  • platform/ios/fast/borders/border-image-border-radius-expected.txt:
  • platform/ios/fast/borders/border-image-longhand-expected.txt:
  • platform/ios/fast/borders/border-image-massive-scale-expected.txt:
  • platform/ios/fast/borders/border-image-omit-right-slice-expected.txt:
  • platform/ios/fast/borders/border-image-outset-expected.txt:
  • platform/ios/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/ios/fast/borders/border-image-outset-split-inline-expected.txt:
  • platform/ios/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/ios/fast/borders/border-image-repeat-expected.txt:
  • platform/ios/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/ios/fast/borders/border-image-scale-transform-expected.txt:
  • platform/ios/fast/borders/border-image-scaled-expected.txt:
  • platform/ios/fast/borders/border-image-scrambled-expected.txt:
  • platform/ios/fast/borders/border-image-side-reduction-expected.txt:
  • platform/ios/fast/borders/border-image-slice-constrained-expected.txt:
  • platform/ios/fast/borders/border-image-slices-expected.txt:
  • platform/ios/fast/borders/border-image-source-expected.txt:
  • platform/ios/fast/borders/scaled-border-image-expected.txt:
  • platform/ios/fast/hidpi/image-set-border-image-comparison-expected.txt:
  • platform/ios/fast/hidpi/image-set-border-image-dynamic-expected.txt:
  • platform/ios/fast/hidpi/image-set-border-image-simple-expected.txt:
  • platform/ios/fast/writing-mode/border-image-horizontal-bt-expected.txt:
  • platform/ios/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/border-image-vertical-rl-expected.txt:
  • platform/ios/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/ios/svg/as-border-image/svg-as-border-image-expected.txt:
  • platform/mac/fast/borders/border-image-01-expected.txt:
  • platform/mac/fast/borders/border-image-border-radius-expected.txt:
  • platform/mac/fast/borders/border-image-longhand-expected.txt:
  • platform/mac/fast/borders/border-image-massive-scale-expected.txt:
  • platform/mac/fast/borders/border-image-omit-right-slice-expected.txt:
  • platform/mac/fast/borders/border-image-outset-expected.txt:
  • platform/mac/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/mac/fast/borders/border-image-outset-split-inline-expected.txt:
  • platform/mac/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/mac/fast/borders/border-image-repeat-expected.txt:
  • platform/mac/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scale-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scaled-expected.txt:
  • platform/mac/fast/borders/border-image-scrambled-expected.txt:
  • platform/mac/fast/borders/border-image-side-reduction-expected.txt:
  • platform/mac/fast/borders/border-image-slice-constrained-expected.txt:
  • platform/mac/fast/borders/border-image-slices-expected.txt:
  • platform/mac/fast/borders/border-image-source-expected.txt:
  • platform/mac/fast/borders/scaled-border-image-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-comparison-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-dynamic-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-simple-expected.txt:
  • platform/mac/fast/writing-mode/border-image-horizontal-bt-expected.txt:
  • platform/mac/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-image-vertical-rl-expected.txt:
  • platform/mac/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/mac/svg/as-border-image/svg-as-border-image-expected.txt:
  • svg/as-border-image/svg-as-border-image-2.html:
  • svg/as-border-image/svg-as-border-image.html:
2:26 PM Changeset in webkit [281723] by achristensen@apple.com
  • 5 edits in trunk

Add UIEventAttribution SPI that uses PrivateClickMeasurementAttributionEphemeral::Yes
https://bugs.webkit.org/show_bug.cgi?id=229623

Reviewed by John Wilander.

Source/WebKit:

This will be used by rdar://80806283.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setEphemeralUIEventAttribution:]):
(-[WKWebView _ephemeralUIEventAttribution]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

2:24 PM Changeset in webkit [281722] by Yijia Huang
  • 2 edits in trunk/Tools

Add a new email address to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=229628

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
2:22 PM Changeset in webkit [281721] by achristensen@apple.com
  • 37 edits
    9 adds in trunk

Separate PrivateClickMeasurement database from ResourceLoadStatistics database and add SPI to set its location
https://bugs.webkit.org/show_bug.cgi?id=229527

Reviewed by Kate Cheney.

Source/WebCore:

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::SourceSecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::isolatedCopy const):

  • loader/PrivateClickMeasurement.h:

Source/WebKit:

This will be used by rdar://80806283

In order to do this, I moved common code to DatabaseUtilities and moved the PCM logic from ResourceLoadStatisticsDatabaseStore
to a new class. It puts the data in a different file in the same directory unless SPI tells it to put it in a different directory.

The biggest functional change I needed to do was to make a PCMObservedDomains table in the new DB instead of an ObservedDomains table,
which contained more information than I needed. I need just an index and a list of domains.

Another slight implementation change is that instead of checking isEphemeral in WebResourceLoadStatisticsStore, I just pass an empty
String to the Store if it's ephemeral, which causes no DB to be created, which causes equivalent behavior.

I also moved the debug message broadcasting to PrivateClickMeasurementManager::attribute in order to make the Database object not
need to know about the NetworkProcess and not need to keep state of whether debug mode is enabled. Database::attributePrivateClickMeasurement
now returns a DebugInfo object and PrivateClickMeasurementManager::attribute checks whether debug mode is enabled and broadcasts the messages.

I added a few calls to PrivateClickMeasurement::isolatedCopy when moving an PrivateClickMeasurement object to another thread.

I added a CompletionHandler to clearPrivateClickMeasurement and clearPrivateClickMeasurementForRegistrableDomain
so that clearing website data doesn't say it's done until it's done.

An even smaller change is I added a "ForTesting" suffix on some function names of functions that are only used in tests.

The rest of this patch just moves code from one location to another.

I still need to implement migrating data from the old DB to the new DB. I'll do that in another patch soon.

  • CMakeLists.txt:
  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::expectedTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedSchema):
(WebKit::insertDistinctValuesInTableStatement):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::interruptAllDatabases):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents):
(WebKit::expectedUnattributedColumns): Deleted.
(WebKit::expectedAttributedColumns): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::close): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::enableForeignKeys): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsIfNecessary): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnsIfNecessary): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::scopedStatement const): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::interrupt): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::earliestTimesToSend): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markReportAsSentToSource): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markReportAsSentToDestination): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::beginTransactionIfNecessary): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::pcmStoreDirectory):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::create):
(WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession):
(WebKit::WebResourceLoadStatisticsStore::suspend):
(WebKit::WebResourceLoadStatisticsStore::insertPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting): Deleted.
(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::allAttributedPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearPrivateClickMeasurementForRegistrableDomain): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearExpiredPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::privateClickMeasurementToString): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearSentAttribution): Deleted.
(WebKit::WebResourceLoadStatisticsStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting): Deleted.

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

(WebKit::DatabaseUtilities::DatabaseUtilities):
(WebKit::DatabaseUtilities::~DatabaseUtilities):
(WebKit::DatabaseUtilities::scopedStatement const):
(WebKit::DatabaseUtilities::beginTransactionIfNecessary):
(WebKit::DatabaseUtilities::openDatabaseAndCreateSchemaIfNecessary):
(WebKit::DatabaseUtilities::enableForeignKeys):
(WebKit::DatabaseUtilities::close):
(WebKit::DatabaseUtilities::interrupt):

  • NetworkProcess/DatabaseUtilities.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::clearPrivateClickMeasurement):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp: Added.

(WebKit::PCM::Database::Database):
(WebKit::PCM::Database::~Database):
(WebKit::PCM::Database::interruptAllDatabases):
(WebKit::PCM::Database::createSchema):
(WebKit::PCM::Database::insertPrivateClickMeasurement):
(WebKit::PCM::Database::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::PCM::Database::findPrivateClickMeasurement):
(WebKit::PCM::Database::attributePrivateClickMeasurement):
(WebKit::PCM::Database::buildPrivateClickMeasurementFromDatabase):
(WebKit::PCM::Database::removeUnattributed):
(WebKit::PCM::Database::allAttributedPrivateClickMeasurement):
(WebKit::PCM::Database::privateClickMeasurementToStringForTesting):
(WebKit::PCM::Database::attributionToStringForTesting):
(WebKit::PCM::Database::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PCM::Database::clearPrivateClickMeasurement):
(WebKit::PCM::Database::clearExpiredPrivateClickMeasurement):
(WebKit::PCM::Database::clearSentAttribution):
(WebKit::PCM::Database::markReportAsSentToDestination):
(WebKit::PCM::Database::markReportAsSentToSource):
(WebKit::PCM::Database::earliestTimesToSend):
(WebKit::PCM::Database::domainID):
(WebKit::PCM::Database::getDomainStringFromDomainID):
(WebKit::PCM::Database::ensureDomainID):
(WebKit::PCM::Database::destroyStatements):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h: Added.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.cpp: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.

(WebKit::PCM::DebugInfo::isolatedCopy const):
(WebKit::PCM::DebugInfo::Message::isolatedCopy const):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp: Added.

(WebKit::PCM::sharedWorkQueue):
(WebKit::PCM::Store::prepareForProcessToSuspend):
(WebKit::PCM::Store::processDidResume):
(WebKit::PCM::Store::Store):
(WebKit::PCM::Store::postTask):
(WebKit::PCM::Store::postTaskReply):
(WebKit::PCM::Store::insertPrivateClickMeasurement):
(WebKit::PCM::Store::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::PCM::Store::attributePrivateClickMeasurement):
(WebKit::PCM::Store::privateClickMeasurementToStringForTesting):
(WebKit::PCM::Store::allAttributedPrivateClickMeasurement):
(WebKit::PCM::Store::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PCM::Store::clearPrivateClickMeasurement):
(WebKit::PCM::Store::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::PCM::Store::clearExpiredPrivateClickMeasurement):
(WebKit::PCM::Store::clearSentAttribution):
(WebKit::PCM::Store::close):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h: Added.

(WebKit::PCM::Store::create):

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clearSentAttribution):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toStringForTesting const):
(WebKit::PrivateClickMeasurementManager::markAllUnattributedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::toString const): Deleted.

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

(WebKit::PrivateClickMeasurementNetworkLoader::~PrivateClickMeasurementNetworkLoader):
(WebKit::PrivateClickMeasurementNetworkLoader::cancel):
(WebKit::PrivateClickMeasurementNetworkLoader::willSendRedirectedRequest):

  • NetworkProcess/PrivateClickMeasurementNetworkLoader.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
  • NetworkProcess/webrtc/NetworkRTCResolver.h:
  • NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp:

(WebKit::resolvedName):

  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _setNetworkProcessSuspensionAllowedForTesting:]):
(+[WKWebsiteDataStore _preventNetworkProcessSuspensionForTesting]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration privateClickMeasurementStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setPrivateClickMeasurementStorageDirectory:]):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setSuspensionAllowedForTesting):
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):
(WebKit::NetworkProcessProxy::preventSuspensionForTesting): Deleted.

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

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::privateClickMeasurementStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setPrivateClickMeasurementStorageDirectory):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:

(TEST):

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

Changed ARM64 probe trampoline to do ptr auth the standard way.
https://bugs.webkit.org/show_bug.cgi?id=229629
rdar://problem/82453220

Reviewed by Saam Barati.

Also fix a comment, and add back 2 lines that I accidentally deleted in r281718.

  • assembler/MacroAssemblerARM64.cpp:
2:00 PM Changeset in webkit [281719] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] 2 js/dfg-* tests are flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229626

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:49 PM Changeset in webkit [281718] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Make ARM64 and X86_64 probe code a little bit more efficient.
https://bugs.webkit.org/show_bug.cgi?id=229618
rdar://82445743

Reviewed by Yusuke Suzuki.

We were using an unnecessary indirect call to call Probe::executeProbe() when we
can be using a direct call, which emits less JIT code. This patch changes the
ARM64 and X86_64 ports to use a direct call now.

Also rename executeProbe to executeJSCJITProbe to make it more unique since we're
switching to extern "C" linkage for this function now.

For MacroAssemblerX86Common.cpp, we left the X86 and MSVC implementations unchanged.
For X86, I don't know the stack alignment requirements (if any) plus we might want
to delete this code eventually since we're not supporting the X86 JIT anymore.
For MSVC, I don't know the way to express a direct call in MSVC assembly, and have
no way to test it. Will leave that as an exercise for folks working on the Windows
ports if they are interested.

Also remove JITProbeExecutorPtrTag since it's no longer needed.

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARMv7.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerMIPS.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerX86Common.cpp:

(JSC::ctiMasmProbeTrampoline):
(JSC::MacroAssembler::probe):

  • assembler/ProbeContext.cpp:

(JSC::Probe::executeJSCJITProbe):
(JSC::Probe::executeProbe): Deleted.

  • assembler/ProbeContext.h:
  • runtime/JSCPtrTag.h:
12:53 PM Changeset in webkit [281717] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::makeDiversifier):
(JSC::ARM64EHash::nextValue):
(JSC::ARM64EHash::bitsForDiversifier):
(JSC::ARM64EHash::currentHash):
(JSC::ARM64EHash::setUpdatedHash):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putIntegralUnchecked):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

12:38 PM Changeset in webkit [281716] by Russell Epstein
  • 1 edit in branches/safari-612.1.29.14-branch/Source/JavaScriptCore/assembler/AssemblerBuffer.h

Apply patch. rdar://problem/82450034

12:37 PM Changeset in webkit [281715] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.5

12:32 PM Changeset in webkit [281714] by Alan Bujtas
  • 6 edits
    2 copies in trunk/Source/WebCore

[LFC][IFC] Move LineBoxBuilder to its own file
https://bugs.webkit.org/show_bug.cgi?id=229616

Reviewed by Antti Koivisto.

This is in preparation for supporting incremental line layout.

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

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

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::formattingContext const): Deleted.
(WebCore::Layout::LineBoxBuilder::rootBox const): Deleted.
(WebCore::Layout::LineBoxBuilder::layoutState const): Deleted.
(WebCore::Layout::LineBoxBuilder::isRootLayoutBox const): Deleted.
(WebCore::Layout::hangingGlyphWidth): Deleted.
(WebCore::Layout::horizontalAlignmentOffset): Deleted.
(WebCore::Layout::LineBoxBuilder::LineBoxBuilder): Deleted.
(WebCore::Layout::LineBoxBuilder::build): Deleted.
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const): Deleted.
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes): Deleted.
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
12:31 PM Changeset in webkit [281713] by Russell Epstein
  • 1 edit in branches/safari-612.1.29-branch/Source/JavaScriptCore/assembler/AssemblerBuffer.h

Apply patch. rdar://problem/82449728

12:30 PM Changeset in webkit [281712] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/JavaScriptCore/assembler/AssemblerBuffer.h

Apply patch. rdar://problem/82449747

12:13 PM Changeset in webkit [281711] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[IFC][Integration] Generate runs for the root inlinebox
https://bugs.webkit.org/show_bug.cgi?id=229599

Reviewed by Antti Koivisto.

This is in preparation for using runs only for all the boxes.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

11:53 AM Changeset in webkit [281710] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur EWS] webrtc/video-mediastreamtrack-stats.html is a flaky crash / failing.
https://bugs.webkit.org/show_bug.cgi?id=229614

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:44 AM Changeset in webkit [281709] by Chris Dumez
  • 2 edits in trunk/Tools

Extend API test coverage to make sure didFailProvisionalLoad is not called upon COOP process swap
https://bugs.webkit.org/show_bug.cgi?id=229610

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:41 AM Changeset in webkit [281708] by clopez@igalia.com
  • 9 edits in trunk

[CMake] ICU 61.2 is required to build WebKit since r281375
https://bugs.webkit.org/show_bug.cgi?id=229608

Reviewed by Yusuke Suzuki.

Raise the minimum version required for ICU.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:
11:20 AM Changeset in webkit [281707] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.4

Tag Safari-612.1.29.14.4.

11:08 AM Changeset in webkit [281706] by Chris Dumez
  • 28 edits
    4 adds in trunk

[WK2] Reuse the same network load when process-swapping on resource response due to COOP
https://bugs.webkit.org/show_bug.cgi?id=229465
<rdar://problem/82307611>

Reviewed by Alex Christensen.

Source/WebKit:

r281516 added support for process-swapping based on Cross-Origin-Opener-Policy header
in HTTP responses. However, on process-swap, we would abort the existing network load
that was started by the original WebProcess and start a fresh network load in the new
WebProcess. This was suboptimal and could lead to issues with resources that provide
one-time behaviors. This patch addresses the issue by transferring the network load
in the network process from the old WebProcess to the new WebProcess when process
swapping.

When the UIProcess decides to process-swap on response policy decision, it first
sends IPC to the network process to ask it to prepare the NetworkResourceLoader
for ownership transfer. The network process takes the NetworkResourceLoader
from its NetworkConnectionToWebProcess and stores it in a temporary cache, then
responds to the UIProcess with the NetworkResourceLoadIdentifier of the loader.
Upon receiving the response, the UIProcess proceeds with the process-swap, it
rejects response processing in the old process and does a loadRequest in a new
WebProcess. When starting sending the LoadRequest IPC to the new WebProcess, it
passes along the NetworkResourceLoadIdentifier of the cached loader in the network
process. When the WebProcess ends up scheduling the load with the network process,
it passes again the NetworkResourceLoadIdentifier. Upon receiving the load request,
the network process checks if a NetworkResourceLoadIdentifier is provided for
continuing a load. If none is provided, we use the regular code path and actually
construct a new NetworkResourceLoader. However, if a NetworkResourceLoadIdentifier
is provided, we take the corresponding NetworkResourceLoader from the cache,
transfer it to the new NetworkConnectionToWebProcess and have it send the
DidReceiveResponse IPC to the WebProcess to continue the load with the new
WebProcess.

Test: http/wpt/cross-origin-opener-policy/single-request-to-server.html

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):
(WebKit::NetworkConnectionToWebProcess::transferKeptAliveLoad):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::takeNetworkResourceLoader):

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

(WebKit::NetworkProcess::CachedNetworkResourceLoader::CachedNetworkResourceLoader):
(WebKit::NetworkProcess::CachedNetworkResourceLoader::takeLoader):
(WebKit::NetworkProcess::CachedNetworkResourceLoader::expirationTimerFired):
(WebKit::NetworkProcess::takeLoaderAwaitingWebProcessTransfer):
(WebKit::NetworkProcess::prepareLoadForWebProcessTransfer):

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

(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions):
(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):
(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::logCookieInformation const):
(WebKit::NetworkResourceLoader::addConsoleMessage):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::sendToClient):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::prepareLoadForWebProcessTransfer):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

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

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-opener-policy/resources/single-request-to-server-popup.py: Added.

(main):

  • http/wpt/cross-origin-opener-policy/single-request-to-server-expected.txt: Added.
  • http/wpt/cross-origin-opener-policy/single-request-to-server.html: Added.
11:07 AM Changeset in webkit [281705] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.4

11:02 AM Changeset in webkit [281704] by Russell Epstein
  • 1 edit in branches/safari-612.1.29.14-branch/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

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

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:

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

11:02 AM Changeset in webkit [281703] by Russell Epstein
  • 7 edits
    4 adds in branches/safari-612.1.29.14-branch

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

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

Source/WebCore:

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

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

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

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

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

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

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

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

10:53 AM Changeset in webkit [281702] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

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

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:43 AM Changeset in webkit [281701] by Antti Koivisto
  • 19 edits in trunk

[CSS Cascade Layers] Initial support
https://bugs.webkit.org/show_bug.cgi?id=229542

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/layer-basic-expected.txt:

Source/WebCore:

https://www.w3.org/TR/css-cascade-5/#cascade-layers

This patch adds initial support for @layer rules, including both the block and the statement syntax.
No support for @import or CSSOM yet but basic functionality mostly works.

The feature is disabled by default.

  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
(WebCore::StyleRuleLayer::StyleRuleLayer):
(WebCore::m_nameVariant):
(WebCore::StyleRuleLayer::create):

  • css/StyleRule.h:

(WebCore::StyleRuleBase::isGroupRule const):

Add support for casting to StyleRuleGroup.

(WebCore::StyleRuleBase::isLayerRule const):
(isType):

  • css/StyleRuleType.h:

Add subclass for layer.

  • css/StyleSheetContents.cpp:

(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):

Traversal support. Also cover other missing group rules.

  • css/parser/CSSAtRuleID.cpp:

(WebCore::cssAtRuleID):

  • css/parser/CSSAtRuleID.h:
  • css/parser/CSSParserContext.cpp:

Enable bit.

(WebCore::operator==):
(WebCore::add):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeLayerRule):

Parsing support.

  • css/parser/CSSParserImpl.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addMatchedRule):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):

Save the layer order to MatchResult.

(WebCore::Style::compareRules):

Layer order has higher priority than specificity but lower than scope.

  • style/ElementRuleCollector.h:
  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::addChildRules):
(WebCore::Style::RuleSet::pushCascadeLayer):
(WebCore::Style::RuleSet::popCascadeLayer):

Compute layer order when adding the rules to RuleSet.

  • style/RuleSet.h:

(WebCore::Style::RuleSet::cascadeLayerOrderFor const):

Resolved order is kept in a side vector to avoid bloating RuleSet. The vector is initialized
only if cascade layers are being used.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:12 AM Changeset in webkit [281700] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r276882): Shadow trees may use stale style information after inline stylesheet is mutated via CSSOM
https://bugs.webkit.org/show_bug.cgi?id=228917
rdar://81483998

Reviewed by Alan Bujtas.

Source/WebCore:

If a stylesheet in a shadow tree is mutated via CSSOM we fail to remove cached style resolver for the mutated sheet
and may end up with stale style.

Test: fast/shadow-dom/shadow-stylesheet-mutation.html

  • style/StyleScope.cpp:

(WebCore::Style::Scope::unshareShadowTreeResolverBeforeMutation):

Remove an assert relevant to the previous call site only.

(WebCore::Style::Scope::scheduleUpdate):

Unshare shadow tree resolver immeditaly when stylesheet contents or interpretation changes.

LayoutTests:

Original reduction by Thomas Ladd.

  • fast/shadow-dom/shadow-stylesheet-mutation-expected.html: Added.
  • fast/shadow-dom/shadow-stylesheet-mutation.html: Added.
10:02 AM Changeset in webkit [281699] by Chris Dumez
  • 6 edits in trunk

REGRESSION (r281516): imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229501
<rdar://problem/82346152>

Reviewed by Darin Adler.

Tools:

In case of a COOP process-swap, the old process gets a didFailProvisionalLoadWithErrorForFrame delegate call. We want to ignore
this call in WKTR's injected bundle since it causes the test to dump its output too eagerly, before the test has had a chance
to run in the new process.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame):
(WTR::InjectedBundlePage::didCommitLoadForFrame):

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:

LayoutTests:

Unskip tests now that they should no longer be flaky.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
9:50 AM Changeset in webkit [281698] by Martin Robinson
  • 4 edits in trunk/LayoutTests

[css-position-sticky] createIndicatorForStickyElements testing function races with font loading
https://bugs.webkit.org/show_bug.cgi?id=229602

Reviewed by Žan Doberšek.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/resources/ref-rectangle.js:

(createIndicatorForStickyElements): Wait to read the size of the target div until
all web fonts have loaded. This ensures that this executes after Ahem has loaded
for the failing test.

LayoutTests:

9:30 AM Changeset in webkit [281697] by Kate Cheney
  • 2 edits in trunk/Tools

PrivateClickMeasurementManager::firePendingAttributionRequests() is crashing in debug
https://bugs.webkit.org/show_bug.cgi?id=229551

Reviewed by John Wilander.

We pre-fill the PCM database with data for this test but don't clear
it once the test is over. This causes crashes in other tests.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

9:28 AM Changeset in webkit [281696] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[Mac wk2] http/tests/media/hls/hls-webvtt-seek-backwards.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228189

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:16 AM Changeset in webkit [281695] by Jonathan Bedard
  • 11 edits
    1 add in trunk/Tools

[git-webkit] Add pull-request command (Part 6)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

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

(Git.init): Add commit, add and push commands.
(Git.commit): Create new commit from staged files.
(Git.add): Stage modified files.

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

(BitBucket.init): Add pull_requests.
(BitBucket.request): Add ability to list and edit pull requets.

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

(GitHub.init): Add pull_requests.
(GitHub.request): Add ability to list and edit pull requets.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py: Add PullRequest.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser): Add '--add' and '--no-add' to allow user to specify how modified files
are incorperated into the pull-request.
(PullRequest.create_commit): Based on currently modified files, either create a new commit or
add those files to an existing commit.
(PullRequest.branch_point): Determine when this branch diverged from a production branch.
(PullRequest.main): Create branch, create commit on branch, push branch and either create or
update a pull-request.

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

(BitBucket.PRGenerator.find):
(BitBucket.PRGenerator.create):
(BitBucket.PRGenerator.update):
(BitBucket.init): Add pull_request generator.

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

(GitHub.PRGenerator.find):
(GitHub.PRGenerator.create):
(GitHub.PRGenerator.update):
(GitHub.init): Add pull_request generator.

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

(Scm.PRGenerator.init):
(Scm.PRGenerator.find):
(Scm.PRGenerator.create):
(Scm.PRGenerator.update):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

(TestDoPullRequest.setUp):
(TestDoPullRequest.test_svn):
(TestDoPullRequest.test_no_modified):
(TestDoPullRequest.test_staged):
(TestDoPullRequest.test_modified):
(TestDoPullRequest.test_github):
(TestDoPullRequest.test_github_update):
(TestDoPullRequest.test_stash):
(TestDoPullRequest.test_stash_update):

7:51 AM Changeset in webkit [281694] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Avoid increasing required alignment of target type warning on ARM 32 bits
https://bugs.webkit.org/show_bug.cgi?id=229151

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-27
Reviewed by Mark Lam.

Same approach as https://bugs.webkit.org/show_bug.cgi?id=38045
cast pointers to void* to bypass warning about increasing pointer
alingment. reinterpret_cast_ptr has custom behaviour only on ARM and
MIPS 32 bits, and doesn't change the behaviour in 64 bits archs
(reinterpret_cast_ptr is preprocessed to reinterpret_cast in 64 bits
archs)

Source/JavaScriptCore:

  • bytecode/Instruction.h:

(JSC::BaseInstruction::asKnownWidth const):

  • llint/LLIntCommon.h:

Source/WTF:

  • wtf/BloomFilter.h:

(WTF::BloomFilter<keyBits>::keysFromHash):

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::makeSalt):

7:48 AM Changeset in webkit [281693] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r281587.
https://bugs.webkit.org/show_bug.cgi?id=229609

stress test failed on ARM64

Reverted changeset:

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

6:21 AM Changeset in webkit [281692] by emilio
  • 5 edits
    2 adds in trunk

Don't forget about the outer selector when matching ::slotted().
https://bugs.webkit.org/show_bug.cgi?id=229438

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scoping/slotted-specificity-002-expected.html: Added.
  • web-platform-tests/css/css-scoping/slotted-specificity-002.html: Added.
  • web-platform-tests/css/css-scoping/w3c-import.log:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-scoping/slotted-specificity-002.html

  • css/CSSSelector.cpp:

(WebCore::simpleSelectorSpecificityInternal):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):

3:54 AM Changeset in webkit [281691] by Andres Gonzalez
  • 9 edits
    2 adds in trunk

Make AXCoreObject::setSelectedVisiblePositionRange work in native text controls on MacOS.
https://bugs.webkit.org/show_bug.cgi?id=229529

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/native-text-control-set-selected-textmarker-range.html

Trying to set the selection in native text controls using the atribute
AXSelectedTextMarkerRange didn't work for MacOS AX clients. This patch
implements this functionality by properly handling native text controls
in AccessibilityRenderObject::setSelectedVisiblePositionRange.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange const):
(WebCore::AccessibilityRenderObject::selectedVisiblePositionRange const): Added.
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selectedVisiblePositionRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]): Renamed selectedTextMarkerRange for consistency.

LayoutTests:

  • accessibility/mac/native-text-control-set-selected-textmarker-range-expected.txt: Added.
  • accessibility/mac/native-text-control-set-selected-textmarker-range.html: Added.
2:40 AM Changeset in webkit [281690] by Jonathan Bedard
  • 3 edits in trunk/Tools

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

Reviewed by Ryan Haddad.

  • CISupport/ews-build/steps.py:

(RunWebKitTests): Change invocation to Python 3.

  • CISupport/ews-build/steps_unittest.py:

(test_success): Change invocation to Python 3.
(test_warnings): Ditto.

12:38 AM Changeset in webkit [281689] by Martin Robinson
  • 45 edits in trunk/LayoutTests

[css-position-sticky] Update WPT position:sticky tests
https://bugs.webkit.org/show_bug.cgi?id=229555

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-position/sticky/position-sticky-change-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-change-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-flexbox-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-flexbox.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-grid-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-grid.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-hyperlink-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-hyperlink.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-inline-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-inline.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-inline-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-inline.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-table-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-table.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-rendering-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-rendering.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-stacking-context-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-stacking-context.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-parts-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-parts.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tfoot-bottom-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tfoot-bottom.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-left-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-left.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-right-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-right.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-thead-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-thead-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-bottom-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-bottom.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html:
  • web-platform-tests/css/css-position/sticky/w3c-import.log:

LayoutTests:

12:15 AM Changeset in webkit [281688] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

Intl.DateTimeFormat incorrectly parses patterns with 'h' literal
https://bugs.webkit.org/show_bug.cgi?id=229313
rdar://82414310

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-date-pattern-includes-literal-text.js: Added.

(shouldBe):

Source/JavaScriptCore:

While DateTimeFormat pattern and skeleton can include single-quoted literal texts,
we are not respecting that when parsing them to extract information. As a result,
we are incorrectly extracting hour-cycle information for "fr" locale since it can
include "HH 'h'" pattern text. This patch fixes that by skipping literal text
correctly.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::skipLiteralText):
(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::hourCycleFromPattern):
(JSC::IntlDateTimeFormat::replaceHourCycleInSkeleton):
(JSC::IntlDateTimeFormat::replaceHourCycleInPattern):

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::hourCycles):

Aug 26, 2021:

11:18 PM Changeset in webkit [281687] by mmaxfield@apple.com
  • 15 edits
    6 adds in trunk

Synthetic bold additional advances need to be applied after shaping
https://bugs.webkit.org/show_bug.cgi?id=189448
<rdar://problem/40994395>

Reviewed by Alan Bujtas.

Source/WebCore:

We implement synthetic bold by drawing every glyph twice, the second time 1px to the right of the
first time. This effectively means that the advance of such glyphs needs to be increased by 1px.
Previously, we were doing this before shaping, which is a problem for some fonts which clobber the
input advances during shaping, and emit totally new advances. Osaka is one such font. In order to
make sure that these fonts have their synthetic bold advances correctly increased, we need to do
the increasing after text shaping, rather than before it.

This patch temporarily disables LFC when synthetic bold is in effect. I will teach LFC how to handle
synthetic bold in a follow-up patch.

Test: fast/text/osaka-synthetic-bold.html

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForText):

  • platform/graphics/Font.h:

(WebCore::Font::syntheticBoldOffset const):
(WebCore::Font::widthForGlyph const):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::adjustForSyntheticBold):
(WebCore::WidthIterator::applyCSSVisibilityRules):

  • platform/graphics/WidthIterator.h:
  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::platformWidthForGlyph const):
(WebCore::Font::platformBoundsForGlyph const):

LayoutTests:

These tests are progressions.

  • fast/text/osaka-synthetic-bold-expected.txt: Added.
  • fast/text/osaka-synthetic-bold.html: Added.
  • platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac/fast/text/atsui-multiple-renderers-expected.png: Added.
  • platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
  • platform/mac/fonts/cursive-expected.png: Added.
  • platform/mac/fonts/cursive-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac/TestExpectations:
  • platform/win/fast/text-indicator/text-indicator-estimated-color-with-implicit-newline-expected.txt: Added.
  • platform/win/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
10:42 PM Changeset in webkit [281686] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Float32Arrays.sort() return undefined when length < 2
https://bugs.webkit.org/show_bug.cgi?id=229575

Reviewed by Saam Barati.

JSTests:

  • stress/typed-array-sort-small.js: Added.

(shouldBe):
(throw.new.Error):

Source/JavaScriptCore:

TypedArray#sort should return |this| even when we don't perform sorting.

  • builtins/TypedArrayPrototype.js:

(sort):

9:58 PM Changeset in webkit [281685] by commit-queue@webkit.org
  • 12 edits in trunk

Caret should respect text background color
https://bugs.webkit.org/show_bug.cgi?id=117493

Patch by Joone Hur <Joone Hur> on 2021-08-26
Reviewed by Ryosuke Niwa.

Source/WebCore:

An earlier fix for caret color, which we are now improving, was this commit:
https://trac.webkit.org/changeset/152612/webkit

This patch allows the caret to become visible in the black background
by getting the caret color from the element containing
the text, not the root editable element that has the contentEditable attribute.

  • editing/FrameSelection.cpp:

(WebCore::CaretBase::computeCaretColor):

LayoutTests:

Rebaselined caret rendering tests.

  • editing/caret/caret-color.html:
  • editing/caret/color-span-inside-editable-background-expected.html:
  • editing/caret/color-span-inside-editable-expected.html:
  • fast/css/caret-color-auto-expected.html:
  • platform/ios-wk2/editing/caret/caret-color-expected.png:
  • platform/ios/editing/caret/caret-color-expected.txt:
  • platform/mac/editing/caret/caret-color-expected.png:
  • platform/mac/editing/caret/caret-color-expected.txt:
  • platform/win/editing/caret/caret-color-expected.txt:
9:26 PM Changeset in webkit [281684] by ysuzuki@apple.com
  • 24 edits
    5 copies
    5 adds
    3 deletes in trunk

[JSC] op_put_private_name should use modern IC and remove ByValInfo
https://bugs.webkit.org/show_bug.cgi?id=229544

Reviewed by Saam Barati.

JSTests:

Move class-fields-private benchmarks into microbenchmarks.
Added several microbenchmarks and stress tests.

  • microbenchmarks/class-private-field-polymorphic.js: Added.

(shouldBe):
(test.A.prototype.put):

  • microbenchmarks/get-private-name.js: Renamed from JSTests/microbenchmarks/class-fields-private/get-private-name.js.
  • microbenchmarks/monomorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/monomorphic-get-private-field.js.
  • microbenchmarks/polymorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-get-private-field.js.
  • microbenchmarks/polymorphic-put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-put-private-field.js.
  • microbenchmarks/put-by-val-polymorphic-properties.js: Added.

(shouldBe):
(test):

  • microbenchmarks/put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/put-private-field.js.
  • stress/class-private-field-megamorphic.js: Added.

(shouldBe):

  • stress/class-private-field-polymorphic.js: Added.

(shouldBe):
(test.A.prototype.put):

  • stress/put-by-val-polymorphic-properties.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

This patch makes op_put_private_name use new PutByVal IC. This allows op_put_private_name to support
polymorphic properties, and we can finally remove Baseline's adhoc IC and ByValInfo completely.

Added microbenchmark showed 3x improvement due to polymorphic PutPrivateName IC.

ToT Patched

class-private-field-polymorphic 9.3666+-0.0332 3.1199+-0.0182 definitely 3.0022x faster

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/ByValInfo.cpp: Removed.
  • bytecode/ByValInfo.h: Removed.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::findByValInfo): Deleted.
(JSC::CodeBlock::addByValInfo): Deleted.

  • bytecode/CodeBlock.h:
  • bytecode/ICStatusMap.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetPrivateName):
(JSC::DFG::SpeculativeJIT::compilePutPrivateName):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:

(JSC::ByValCompilationInfo::ByValCompilationInfo): Deleted.

  • jit/JITInlines.h:

(JSC::JIT::emitArrayProfileStoreToHoleSpecialCase): Deleted.
(JSC::JIT::emitArrayProfileOutOfBoundsSpecialCase): Deleted.

  • jit/JITOperations.cpp:

(JSC::putPrivateNameOptimize):
(JSC::putPrivateName):
(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_prepareCallGenerator):
(JSC::JIT::emitPutByValWithCachedId): Deleted.
(JSC::JIT::emitPutPrivateNameWithCachedId): Deleted.
(JSC::JIT::emitByValIdentifierCheck): Deleted.
(JSC::JIT::privateCompilePutPrivateNameWithCachedId): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):

  • jit/Repatch.cpp:

(JSC::appropriateGenericPutByFunction):
(JSC::appropriateOptimizingPutByFunction):
(JSC::resetPutBy):

Tools:

  • Scripts/run-jsc-benchmarks:
8:52 PM Changeset in webkit [281683] by Simon Fraser
  • 3 edits
    2 adds in trunk

CSS keyframed animations don't respect edges in 4 value background-position
https://bugs.webkit.org/show_bug.cgi?id=228995

Reviewed by Darin Adler.

For some background-position animations we'd fail to set backgroundOriginX/Y in the
destination style's FillLayer, because this is not set in the destination style initially.

So have FillLayerPositionPropertyWrapper::blend() always set it.

Source/WebCore:

Test: animations/background-position.html

  • animation/CSSPropertyAnimation.cpp:

LayoutTests:

  • animations/background-position-expected.html: Added.
  • animations/background-position.html: Added.
8:48 PM Changeset in webkit [281682] by Simon Fraser
  • 7 edits in trunk

Remove some historical iOS CGContext flipping
https://bugs.webkit.org/show_bug.cgi?id=229589

Reviewed by Tim Horton.

Source/WebCore:

Remove some iOS-only code that flipped the CGContext CTM for pattern drawing. Back
in the mists of time there were some iOS-only differences in image flipping, but those
have long since disappeared.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::drawPatternCallback):
(WebCore::GraphicsContextCG::drawPattern):

LayoutTests:

Mark some iOS tests as passing now. A couple of tests that were skipped everywhere now
only fail on macOS.

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
8:37 PM Changeset in webkit [281681] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

[Cocoa] Enforce the policy against WebKit causing Core Text font download prompts in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=229391

Reviewed by Alan Bujtas.

Source/WebCore:

For most apps, if you ask Core Text to create a font which is a mobileasset font, it will
show a synchronous blocking prompt asking the user if they want to download the font.
However, this policy isn't a great one for web content, because webpages will request tons
of fonts all the time, and it's totally likely that many of them will be mobileasset fonts.
Because of this, WebKit has a policy where we will opt out of showing these prompts, by
specifying kCTFontEnabledAttribute:kCFBooleanTrue in the attributes dictionary.

We do this in some places, but we forgot one additional place. This patch adds it to this
place, and adds a test which intentionally requests a MobileAsset font and makes sure the
test doesn't timeout (by showing a blocking prompt forever).

Test: fast/text/mobileasset-font.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::autoActivateFont):

LayoutTests:

Make sure content which uses these fonts doesn't cause a blocking prompt.

  • fast/text/mobileasset-font-expected-mismatch.html: Added.
  • fast/text/mobileasset-font.html: Added.
  • platform/mac/TestExpectations: Skip the test on Catalina, because apparently the prompts can't be skipped?
8:08 PM Changeset in webkit [281680] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Use the line runs to check for legacy integral positioning
https://bugs.webkit.org/show_bug.cgi?id=228069
<rdar://problem/81087857>

Reviewed by Antti Koivisto.

Now that the line runs list has all the inline boxes (including spanning inline boxes), we
can use this list to check for legacy integral positioning and not directly iterating the LineBox's non-rootinlinebox list.
While this may be a bit more expensive, the legacy positioning is temporary and will be removed shortly.

This is in preparation for keeping the inline box structure private to the layout code.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
7:06 PM Changeset in webkit [281679] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Fix a typo in ArgumentCoder<Ref<Font>>::decode()
https://bugs.webkit.org/show_bug.cgi?id=229596

Reviewed by Tim Horton.

Change renderingRersouceIdentifier to renderingResourceIdentifier.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Ref<Font>>::decode):

6:53 PM Changeset in webkit [281678] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Skip the webgl/pending/conformance2 tests, as WebGL2 is not yet supported
https://bugs.webkit.org/show_bug.cgi?id=229598

Unreviewed test gardening.

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

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
6:13 PM Changeset in webkit [281677] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Catalina+ Debug wk2 ] fast/speechrecognition/start-recognition-after-gum.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=228209

Unreviewed test gardening.

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

[Mac wk2 Debug] imported/w3c/web-platform-tests/fetch/http-cache/invalidate.any.worker.html is a flaky failure.

https://bugs.webkit.org/show_bug.cgi?id=229595.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:32 PM Changeset in webkit [281675] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Win EWS] js/dfg-int16array.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=229594

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:29 PM Changeset in webkit [281674] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

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

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:24 PM Changeset in webkit [281673] by Jonathan Bedard
  • 6 edits in trunk/Tools

[kill-old-processes] Invoke with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229576
<rdar://problem/82397885>

Rubber-stamped by Darin Adler.

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

(KillOldProcesses): Invoke with Python 3.

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

(TestKillOldProcesses.test_success):
(TestKillOldProcesses.test_failure):

  • CISupport/ews-build/steps.py:

(KillOldProcesses): Invoke with Python 3.

  • CISupport/ews-build/steps_unittest.py:
  • CISupport/kill-old-processes: Change shebang to Python 3.
4:09 PM Changeset in webkit [281672] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.3

Tag Safari-612.1.29.14.3.

4:08 PM Changeset in webkit [281671] by Russell Epstein
  • 8 edits
    4 moves
    1 add in branches/safari-612.1.29.14-branch/Source/WebInspectorUI

Cherry-pick r281663. rdar://problem/82411437

Web Inspector: Rename ContextualDocumentation* to CSSDocumentation to reduce path length and improve code readability
https://bugs.webkit.org/show_bug.cgi?id=229525

Reviewed by Devin Rousso.

Reduce the length and complexity of naming around the documentation that was added for CSS properties by
using CSSDocumentation to refer to the feature instead of ContextualDocumentation.

  • Localizations/en.lproj/localizedStrings.js:
  • Scripts/copy-user-interface-resources.pl:
  • UserInterface/External/CSSDocumentation/CSSDocumentation.js: Renamed from Source/WebInspectorUI/UserInterface/External/ContextualDocumentationDatabase/ContextualDocumentationDatabase.js.
  • UserInterface/External/CSSDocumentation/LICENSE: Renamed from Source/WebInspectorUI/UserInterface/External/ContextualDocumentationDatabase/LICENSE.
  • UserInterface/Main.html:
  • UserInterface/Views/CSSDocumentationPopover.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ContextualDocumentationPopover.css.
  • UserInterface/Views/CSSDocumentationPopover.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ContextualDocumentationPopover.js. (WI.CSSDocumentationPopover.prototype._getDocumentationDetails):
  • UserInterface/Views/ComputedStyleSection.css: (.computed-style-section .property-trace-item .property :is(.name, .colon, .semicolon, .css-documentation-button)): (.sidebar > .panel.details.css-style > .content > .computed .computed-property-item > .property > .content > .css-documentation-button): (.sidebar > .panel.details.css-style > .content > .computed .computed-property-item:not(:hover) > .property > .content > .css-documentation-button): (.computed-style-section .property-trace-item .property :is(.name, .colon, .semicolon, .contextual-documentation-button)): Deleted. (.sidebar > .panel.details.css-style > .content > .computed .computed-property-item > .property > .content > .contextual-documentation-button): Deleted. (.sidebar > .panel.details.css-style > .content > .computed .computed-property-item:not(:hover) > .property > .content > .contextual-documentation-button): Deleted.
  • UserInterface/Views/Main.css: (.css-documentation-button): (.css-documentation-button:active): (@media (prefers-color-scheme: dark) .css-documentation-button): (.contextual-documentation-button): Deleted. (.contextual-documentation-button:active): Deleted. (@media (prefers-color-scheme: dark) .contextual-documentation-button): Deleted.
  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: (.spreadsheet-style-declaration-editor > .property:not(:hover) > .content > .css-documentation-button,): (.spreadsheet-style-declaration-editor > .property:not(:hover) > .content > .contextual-documentation-button,): Deleted.
  • UserInterface/Views/SpreadsheetStyleProperty.js: (WI.SpreadsheetStyleProperty.prototype.update): (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit): (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): (WI.SpreadsheetStyleProperty.prototype.willDismissPopover): (WI.SpreadsheetStyleProperty.prototype._addCSSDocumentationButton): (WI.SpreadsheetStyleProperty.prototype._handleCSSDocumentationButtonClicked): (WI.SpreadsheetStyleProperty.prototype._presentCSSDocumentation): (WI.SpreadsheetStyleProperty.prototype._addContextualDocumentationButton): Deleted. (WI.SpreadsheetStyleProperty.prototype._handleContextualDocumentationButtonClicked): Deleted. (WI.SpreadsheetStyleProperty.prototype._presentContextualDocumentation): Deleted.

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

4:08 PM Changeset in webkit [281670] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase fast/text/capitalize-boundaries.html after changes in r281422
https://bugs.webkit.org/show_bug.cgi?id=228217

Unreviewed test gardening.

  • platform/mac/fast/text/capitalize-boundaries-expected.txt:
4:07 PM Changeset in webkit [281669] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.3

4:02 PM Changeset in webkit [281668] by Wenson Hsieh
  • 11 edits in trunk/Source/WebKit

Add type-safe transaction identifiers for EditorState and FocusedElementInformation
https://bugs.webkit.org/show_bug.cgi?id=229571

Reviewed by Tim Horton.

Make transactionID a monotonic object identifier instead of a generic TransactionID, and replace
FocusedElementIdentifier (which is currently type-defined to uint64_t) with its own monotonic object
identifier type.

In a future patch, I plan to implement a mechanism to synchronize EditorState and FocusedElementInformation
updates, which would require one or both of these objects to hold both types of transactional identifiers; in
order to do this, we need to ensure that these two identifiers are distinct types, so that they can't be easily
mixed up.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:
  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

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

(WebKit::WebPageProxy::updateEditorState):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView updateCurrentFocusedElementInformation:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const):
(WebKit::WebPage::elementDidFocus):

  • WebProcess/WebPage/WebPage.h:

Additionally rename m_currentFocusedElementIdentifier to m_lastFocusedElementInformationIdentifier, for
consistency with m_lastEditorStateIdentifier.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::focusedElementInformation):

3:50 PM Changeset in webkit [281667] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Remove an expectation that was added to the wrong file.
3:46 PM Changeset in webkit [281666] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] http/tests/misc/acid3.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229592.

Unreviewed test gardening .

  • platform/mac-wk2/TestExpectations:
3:43 PM Changeset in webkit [281665] by sbarati@apple.com
  • 3 edits
    1 add in trunk

r281485 was not sufficient in where it called disablePeepholeOptimization
https://bugs.webkit.org/show_bug.cgi?id=229582
<rdar://82346980>

Reviewed by Yusuke Suzuki.

JSTests:

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

(foo):

Source/JavaScriptCore:

r281485 accidentally deleted a place where we called disablePeepholeOptimization
that was necessary. Basically, after we seek where the current instruction
in BytecodeGenerator is, we need to disablePeepholeOptimization.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::ForInContext::finalize):

3:43 PM Changeset in webkit [281664] by Ryan Haddad
  • 2 edits in trunk/Tools

watchOS simulator image missing on bot watchers dashboard
https://bugs.webkit.org/show_bug.cgi?id=229587

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.watchos-simulator-7 img.logo):

3:32 PM Changeset in webkit [281663] by Patrick Angle
  • 8 edits
    2 copies
    2 moves
    1 add
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Rename ContextualDocumentation* to CSSDocumentation to reduce path length and improve code readability
https://bugs.webkit.org/show_bug.cgi?id=229525

Reviewed by Devin Rousso.

Reduce the length and complexity of naming around the documentation that was added for CSS properties by
using CSSDocumentation to refer to the feature instead of ContextualDocumentation.

  • Localizations/en.lproj/localizedStrings.js:
  • Scripts/copy-user-interface-resources.pl:
  • UserInterface/External/CSSDocumentation/CSSDocumentation.js: Renamed from Source/WebInspectorUI/UserInterface/External/ContextualDocumentationDatabase/ContextualDocumentationDatabase.js.
  • UserInterface/External/CSSDocumentation/LICENSE: Renamed from Source/WebInspectorUI/UserInterface/External/ContextualDocumentationDatabase/LICENSE.
  • UserInterface/Main.html:
  • UserInterface/Views/CSSDocumentationPopover.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ContextualDocumentationPopover.css.
  • UserInterface/Views/CSSDocumentationPopover.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ContextualDocumentationPopover.js.

(WI.CSSDocumentationPopover.prototype._getDocumentationDetails):

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section .property-trace-item .property :is(.name, .colon, .semicolon, .css-documentation-button)):
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item > .property > .content > .css-documentation-button):
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item:not(:hover) > .property > .content > .css-documentation-button):
(.computed-style-section .property-trace-item .property :is(.name, .colon, .semicolon, .contextual-documentation-button)): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item > .property > .content > .contextual-documentation-button): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item:not(:hover) > .property > .content > .contextual-documentation-button): Deleted.

  • UserInterface/Views/Main.css:

(.css-documentation-button):
(.css-documentation-button:active):
(@media (prefers-color-scheme: dark) .css-documentation-button):
(.contextual-documentation-button): Deleted.
(.contextual-documentation-button:active): Deleted.
(@media (prefers-color-scheme: dark) .contextual-documentation-button): Deleted.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor > .property:not(:hover) > .content > .css-documentation-button,):
(.spreadsheet-style-declaration-editor > .property:not(:hover) > .content > .contextual-documentation-button,): Deleted.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.update):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
(WI.SpreadsheetStyleProperty.prototype.willDismissPopover):
(WI.SpreadsheetStyleProperty.prototype._addCSSDocumentationButton):
(WI.SpreadsheetStyleProperty.prototype._handleCSSDocumentationButtonClicked):
(WI.SpreadsheetStyleProperty.prototype._presentCSSDocumentation):
(WI.SpreadsheetStyleProperty.prototype._addContextualDocumentationButton): Deleted.
(WI.SpreadsheetStyleProperty.prototype._handleContextualDocumentationButtonClicked): Deleted.
(WI.SpreadsheetStyleProperty.prototype._presentContextualDocumentation): Deleted.

3:29 PM Changeset in webkit [281662] by Alan Bujtas
  • 6 edits in trunk

REGRESSION(r275754): Using MarkOnlyThis to make the preferred width dirty introduces unexpected state
https://bugs.webkit.org/show_bug.cgi?id=229586
<rdar://82141454>

LayoutTests/imported/w3c:

Unreviewed revert of r275754.

  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:

Source/WebCore:

Unreviewed revert.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::recomputeLogicalWidth):
(WebCore::shouldRecalculateMinMaxWidthsAffectedByAncestor): Deleted.

3:07 PM Changeset in webkit [281661] by Cameron McCormack
  • 3 edits in trunk/Source/WebKit

Manually release SharedBitmap if CGBitmapContextCreateWithData fails and doesn't do it
https://bugs.webkit.org/show_bug.cgi?id=229428
<rdar://problem/82264138>

Reviewed by Darin Adler.

  • Shared/ShareableBitmap.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::releaseBitmapContextData):

3:07 PM Changeset in webkit [281660] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] compile-webkit-without-patch failed, but bot ran layout tests anyway and blamed the patch for a pre-existing failure
https://bugs.webkit.org/show_bug.cgi?id=229533

Reviewed by Jonathan Bedard.

When the compile-webkit-without-patch step fails, instead of running further layout-tests, retry the build and email
bot watcher's. The retried build will hopefully be picked up by other bot eventually. This is similar to what we do
in case of other infrastructure issues like kill-old-processes step failure.

  • CISupport/ews-build/steps.py:

(CompileWebKitWithoutPatch.init): Added retry_build_on_failure parameter.
(CompileWebKitWithoutPatch.evaluateCommand): If build failed unexpectedly, retry it and email bot watchers.
(CompileWebKitWithoutPatch.send_email_for_unexpected_build_failure):
(ReRunWebKitTests.evaluateCommand):
(ReRunAPITests.evaluateCommand):

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

[Mac] http/tests/media/user-gesture-preserved-across-xmlhttprequest.html is a flaky fail/crash/timeout.
https://bugs.webkit.org/show_bug.cgi?id=229588.

Unreviewed test gardening .

  • platform/mac/TestExpectations:
2:59 PM Changeset in webkit [281658] by Patrick Angle
  • 4 edits in trunk/LayoutTests

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

Reviewed by Devin Rousso.

Increase timings slightly to widen the window during which we receive messages while paused in the debugger and
also delay the echo server's response further.

  • http/tests/websocket/tests/hybi/inspector/echo-delayed_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html:
  • platform/mac/TestExpectations:
2:38 PM Changeset in webkit [281657] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Catalina+ wk1 ] css2.1/20110323/replaced-intrinsic-003.htm is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=228211

Unreviewed test gardening.

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

[Mac,iOS wk2] imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes.sub.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229585.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:18 PM Changeset in webkit [281655] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.2

Tag Safari-612.1.29.14.2.

2:17 PM Changeset in webkit [281654] by Russell Epstein
  • 2 edits in branches/safari-612.1.29.14-branch/Source/JavaScriptCore

Cherry-pick r281647. rdar://problem/82406933

[AppleWin] JSC build failure
https://bugs.webkit.org/show_bug.cgi?id=229578

Reviewed by Don Olmstead.

Add new build dependency between LLIntOffsetsExtractor and JSCBuiltins targets.

  • CMakeLists.txt:

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

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

[GLIB] mark fast/text/trak-optimizeLegibility.html as a skip
https://bugs.webkit.org/show_bug.cgi?id=229572

optimizeLegibility doesn't affect text rendering on GLIB platforms,
effectively being always enabled.

Unreviewed test gardening.

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

  • platform/glib/TestExpectations:
  • platform/gtk/fast/text/trak-optimizeLegibility-expected.txt: Removed.
  • platform/wpe/fast/text/trak-optimizeLegibility-expected.txt: Removed.
2:14 PM Changeset in webkit [281652] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.2

1:51 PM Changeset in webkit [281651] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

REGRESSION: [BigSur wk2 Release, iOS15] animations/fill-mode-forwards.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229584.

Unreviewed test gardening.

  • platform/ios-15/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:44 PM Changeset in webkit [281650] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

Drawing small caps web fonts into canvas causes the GPU process to hang
https://bugs.webkit.org/show_bug.cgi?id=229401
<rdar://problem/82282054>

Reviewed by Wenson Hsieh.

Source/WebCore:

Web fonts retain their downloaded data in case they need to send that data to the GPU process
to render into canvas. Small caps fonts are implemented by creating a "derivative" variant font.
When we were creating these derivative fonts, we weren't forwarding this downloaded data to
those new fonts. Without it, the font fails to transfer across IPC.

Test: fast/text/small-caps-canvas.html

  • platform/graphics/FontPlatformData.cpp:

(WebCore::makeOptionalFromPointer):
(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/HEVCUtilities.cpp:

(WebCore::makeOptionalFromPointer):

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::createDerivativeFont):
(WebCore::Font::createFontWithoutSynthesizableFeatures const):
(WebCore::Font::platformCreateScaledFont const):

  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:

(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/win/FontPlatformDataWin.cpp:

(WebCore::FontPlatformData::FontPlatformData):

LayoutTests:

  • fast/text/small-caps-canvas-expected.txt: Added.
  • fast/text/small-caps-canvas.html: Added.
1:39 PM Changeset in webkit [281649] by Simon Fraser
  • 2 edits in trunk/Tools

Add to run-webkit-tests a --expect-pass argument as a synonym for --force
https://bugs.webkit.org/show_bug.cgi?id=229581

Reviewed by Wenson Hsieh.

I am eternally confused that -f and --force are different things. Add --expect-pass
as a synonym for --force to reduce my confusion.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

1:21 PM Changeset in webkit [281648] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r256659): We try to remove fonts from the CSSFontFace which were never added
https://bugs.webkit.org/show_bug.cgi?id=229535
<rdar://problem/78857440>

Reviewed by Darin Adler.

After r256659, asking for a failed CSSFontFace's families() returns nullopt. It's possible to add
a failed font to a CSSFontFaceSet (of course). When we do that, we recognize the font is failed
and don't update our internal data structures, because there's no need to - we can't do anything
useful with a failed font.

If you _then_ try to remove the font from the CSSFontFace, we don't call families(), but instead
just pull out the raw m_families member, and look in our internal data structures for it, but we
don't find it, because it was never added.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::addToFacesLookupTable):
(WebCore::CSSFontFaceSet::removeFromFacesLookupTable):

12:37 PM Changeset in webkit [281647] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[AppleWin] JSC build failure
https://bugs.webkit.org/show_bug.cgi?id=229578

Reviewed by Don Olmstead.

Add new build dependency between LLIntOffsetsExtractor and JSCBuiltins targets.

  • CMakeLists.txt:
12:33 PM Changeset in webkit [281646] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[iOS] Photo picker appears at incorrect locations when opened using a trackpad
https://bugs.webkit.org/show_bug.cgi?id=229568
rdar://80268735

Reviewed by Wenson Hsieh.

On iOS, file inputs that accept photos give the user the option to
select from a photo picker rather than a standard document picker.
The photo picker is presented as a popover, and uses the content
view's lastInteractionLocation to determine the source rect.
However, lastInteractionLocation is not updated when mouse events
are recognized, leading to the popover being presented at the location
of the most recent tap / long press / touch event.

To fix, ensure lastInteractionLocation is updated when a mouse down
event is recognized.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView mouseGestureRecognizerChanged:]):

12:31 PM Changeset in webkit [281645] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC] Use the inline run list in showRenderTree to print inline level box information
https://bugs.webkit.org/show_bug.cgi?id=228070

Reviewed by Antti Koivisto.

showInlineTreeAndRuns is the last client of the InlineFormattingState::lineBoxes.
Let's use the inline run list instead to print the inline level box geometry information. It provides slightly less
information than before but it is sufficient for now.

This is in preparation for keeping the inline box structure private to the layout code.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

12:30 PM Changeset in webkit [281644] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[FreeType] Avoid yucky strong alias computations in font fallback code
https://bugs.webkit.org/show_bug.cgi?id=228927

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-08-26
Reviewed by Myles C. Maxfield.

If built against the upcoming Fontconfig 2.13.95, we can avoid compiling a bunch of arcane
font matching code. It will be a while before we can require Fontconfig 2.13.95, so use
preprocessor guards for now.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::areStronglyAliased):
(WebCore::FontCache::createFontPlatformData):

12:22 PM Changeset in webkit [281643] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Update test expectations for webgl tests.
https://bugs.webkit.org/show_bug.cgi?id=228703.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • webgl/TestExpectations:
12:22 PM Changeset in webkit [281642] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for 4 media tests.
https://bugs.webkit.org/show_bug.cgi?id=229474.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:09 PM Changeset in webkit [281641] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

[iOS] editing/input/cocoa/autocorrect-on.html occasionally fails with a text diff
https://bugs.webkit.org/show_bug.cgi?id=229560
rdar://82191308

Reviewed by Andy Estes.

Adjust the test so that it doesn't require "Tset" to be autocorrected to "Test". Instead, just check that it was
changed from "Tset" to anything else.

  • editing/input/cocoa/autocorrect-on-expected.txt:
  • editing/input/cocoa/autocorrect-on.html:
12:03 PM Changeset in webkit [281640] by mmaxfield@apple.com
  • 14 edits in trunk/Source/WebKit

Clean up logging #includes
https://bugs.webkit.org/show_bug.cgi?id=229547

Reviewed by Eric Carlson.

It's actually harmful to include the wrong framework's Logging.h file,
because they conflict with each other. You'll end up with errors like
Unknown symbol "WebCore::WebKit2LogLayout".

No new tests because there is no behavior change.

  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::logChannel const):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::logChannel):

  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:

(WebKit::MediaSampleCursor::logChannel const):

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::logChannel const):

  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:

(WebKit::RemoteMediaSessionCoordinatorProxy::logChannel const):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp:

(WebKit::logChannel):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::logChannel const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::logChannel const):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:

(WebKit::MediaSourcePrivateRemote::logChannel const):

  • WebProcess/GPU/media/RemoteAudioSourceProvider.cpp:

(WebKit::RemoteAudioSourceProvider::logChannel const):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::logChannel const):

  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:

(WebKit::RemoteMediaSessionCoordinator::logChannel const):

11:52 AM Changeset in webkit [281639] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 EWS ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) on security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html (flaky crash).
https://bugs.webkit.org/show_bug.cgi?id=229505

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:44 AM Changeset in webkit [281638] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Segfault in stress/typedarray-every.js (32bit)
https://bugs.webkit.org/show_bug.cgi?id=229546

Reviewed by Saam Barati.

ARMv7 does not have enough registers. Adding workaround by using getEffectiveAddress.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

11:40 AM Changeset in webkit [281637] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina EWS ] webgl/2.0.0/* tests are flaky crashing ASSERTION FAILED: !needsLayout().
https://bugs.webkit.org/show_bug.cgi?id=229580.

Unreviewed test gardening.

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

REGRESSION (281486?):[BigSur wk2 Debug] http/tests/loading/preload-img-test.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229579.

Unreviewed test gardening.

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

Update test expectations for media/modern-media-controls/tracks-support/text-track-selected-via-media-api.html.
https://bugs.webkit.org/show_bug.cgi?id=229474.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:52 AM Changeset in webkit [281634] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS] 3 service worker tests failing.
https://bugs.webkit.org/show_bug.cgi?id=229573.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
10:49 AM Changeset in webkit [281633] by Wenson Hsieh
  • 3 edits
    1 add
    1 delete in trunk/Tools

TestWebKitAPI._WKActivatedElementInfo.InfoForRotatedImage is failing on iOS 15
https://bugs.webkit.org/show_bug.cgi?id=229531
rdar://82100466

Reviewed by Said Abou-Hallawa.

Due to changes in underlying system frameworks in iOS 15, the red "corner" of the rotated image in this test now
ends up with a color of 0xFFF51800 instead of 0xFFF51900. Resolve this by refactoring the test so that it's
robust against these kinds of minute differences.

To achieve this, we first run the test over a version of the test image without EXIF rotation data (test.jpg) to
measure the expected values of the red, green, yellow and blue corners; we then verify that these color values
are present in the corresponding rotated corners of the image with EXIF rotation.

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

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/test.jpg: Added.
10:04 AM Changeset in webkit [281632] by Chris Dumez
  • 5 edits in trunk

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

Tools:

Unreviewed, partial revert of r281516 to drop the changes to WebKitTestRunner's injected bundle
as I suspect this is what caused this regression. The WKTR changes were made to try and address
the flakiness of imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html
but it turns out that the test is still flaky with the WKTR change.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame):

LayoutTests:

Unreviewed, unskip test that should not longer be timing out.

  • platform/mac-wk2/TestExpectations:
9:55 AM Changeset in webkit [281631] by commit-queue@webkit.org
  • 23 edits in trunk

Unreviewed, reverting r281616.
https://bugs.webkit.org/show_bug.cgi?id=229570

It is crashing in iOS Debug

Reverted changeset:

"Signaling state check when applying a local or remote
description is no longer aligned with the WebRTC spec"
https://bugs.webkit.org/show_bug.cgi?id=229138
https://commits.webkit.org/r281616

9:41 AM Changeset in webkit [281630] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Add new experimental feature flag for sanitizing links
https://bugs.webkit.org/show_bug.cgi?id=229451

Patch by Risul Islam <risul_islam@apple.com> on 2021-08-26
Reviewed by Kate Cheney.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
9:35 AM Changeset in webkit [281629] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS wk2 release] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229567.

Unreviewed test gardening.

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

[iOS wk2 iPad] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229566.

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
9:25 AM Changeset in webkit [281627] by Jonathan Bedard
  • 4 edits in trunk/Tools

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

Reviewed by Aakash Jain.

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

(RunWebKitTests): Change invocation to Python 3.

  • CISupport/build-webkit-org/steps_unittest.py:
  • CISupport/kill-old-processes:

(main): run-webkit-tests may be invoked with Python 3.

9:24 AM Changeset in webkit [281626] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS MacOS ] imported/w3c/web-platform-tests/encoding/sharedarraybuffer.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229565

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
9:02 AM Changeset in webkit [281625] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS wk2 release] imported/w3c/web-platform-tests/css/css-display/display-contents-blockify-dynamic.html is a flaky timeout).
https://bugs.webkit.org/show_bug.cgi?id=229563.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:51 AM Changeset in webkit [281624] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[iOS14 wk2, BigSur wk2] http/tests/navigation/page-cache-video.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229561.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
8:39 AM Changeset in webkit [281623] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS14] http/tests/navigation/page-cache-getUserMedia-pending-promise.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229558.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:05 AM Changeset in webkit [281622] by eocanha@igalia.com
  • 2 edits in trunk/LayoutTests

[GLIB][Media] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-without-codecs-parameter.html fails after r281617
https://bugs.webkit.org/show_bug.cgi?id=229548

Unreviewed test gardening.

The patch from https://bugs.webkit.org/show_bug.cgi?id=210341 caused a regression in
mediasource-changetype-play-without-codecs-parameter.html. The test tries to change the
media type and codecs of a SourceBuffer on the fly. That operation is unsupported in glib
ports, so there is a custom expectation file that expects failures on the transitions
between supported types. Bug 210341 adds audio/mpeg (without container) as a new supported
format, so new "failures" appear in the test. This patch adds expectations for those new
failures.

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-without-codecs-parameter-expected.txt:
5:45 AM Changeset in webkit [281621] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

WebGL calls into static GraphicsContextGLOpenGL functions needlessly
https://bugs.webkit.org/show_bug.cgi?id=229402

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

The calls are problematic:

  • No other call sites than WebGL layer
  • The functionality is not needed for ANGLE, but present
  • GraphicsContextGL is now an interface with multiple implementations, GraphicsContextGLOpenGL is just one implementation

Move the functions into WebGL, inside #if !USE(ANGLE) blocks.
From there, they're simpler to move into !ANGLE specific files,
if possible.

This is work towards making it possible to remove ANGLE specific #if
blocks from WebGL implementation.

No new tests, refactor.

  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::getClearBitsByAttachmentType):
(WebCore::getClearBitsByFormat):
(WebCore::isAttachmentComplete):
(WebCore::WebGLFramebuffer::initializeAttachments):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::getChannelBitsByFormat):
(WebCore::possibleFormatAndTypeForInternalFormat):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::isTexInternalFormatColorBufferCombinationValid):

  • platform/graphics/GraphicsContextGL.cpp:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
5:30 AM Changeset in webkit [281620] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

RemoteGraphicsContextGL refers to GraphicsContextGLOpenGL::SimulatedEventForTesting
https://bugs.webkit.org/show_bug.cgi?id=229405

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

Instead, refer via the defining base class, i.e. use
GraphicsContextGL::SimulatedEventForTesting.
Fixes problems if we try to move ANGLE implementation out of
GraphicsContextGLOpenGL.

No new tests, refactor.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
5:28 AM Changeset in webkit [281619] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

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

Unreviewed test gardening.

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

  • platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/glib/svg/css/getComputedStyle-basic-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
3:13 AM Changeset in webkit [281618] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] DataIC should not embed StructureStubInfo pointer
https://bugs.webkit.org/show_bug.cgi?id=229541

Reviewed by Mark Lam.

We should not embed pointer to StructureStubInfo::countdown if DataIC is used.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::store8):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::offsetOfCountdown):

2:29 AM Changeset in webkit [281617] by eocanha@igalia.com
  • 11 edits in trunk

[GStreamer][MSE] Implement the "sequence" mode in SourceBuffer for the GStreamer ports
https://bugs.webkit.org/show_bug.cgi?id=210341

Reviewed by Alicia Boya Garcia.

LayoutTests/imported/w3c:

  • web-platform-tests/media-source/mediasource-sourcebuffer-mode-timestamps-expected.txt: Added extra blank line in expectations, like in many other expectations files.

Source/WebCore:

Declare audio/mpeg support and handle it properly in AppendPipeline. This media type
doesn't have any container format, so an identity element is used in place of the
demuxer (dummy demuxer). As this element isn't an actual demuxer, the standard
no-more-pads signal isn't present, so its behaviour is simulated when the first buffer
is emitted by the element (detected by a probe).

A parser element is needed to process the data (mpegaudioparse for mpeg audio v1,
aacparse for mpeg audio v2 & v4). The existing createOptionalParserForFormat()
infrastructure is used for that after analyzing the caps, and an identity element is
now also used instead in the cases when a parser isn't needed. This simplifies the code
that links the pipeline elements, as now there aren't any optional (non existing)
elements in place, just GstIdentity instances there.

Still, the selection of the proper mpeg/aac parser requires precise caps. A new typefind
element is now used after the appsrc (when needed, and another identity element when
not).

Return TypeError in SourceBuffer::setMode(), instead of InvalidAccessError. The MSE spec
changed this behaviour at some point before June 2016 and the WebKit code never reflected
the change, still returning the deprecated InvalidAccessError when generate timestamps
flag equals true and new mode equals "segments".

Finally, the MediaSample::setTimestamps() method has been implemented for the GStreamer
port. It had an empty implementation and no problem had been detected before because
the "sequence" SourceBuffer mode had never been used until now.

Covered by existing tests.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::setMode): Return TypeError.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initializeDecoders): Declare audio/mpeg support.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::setTimestamps): Implement method.

  • platform/graphics/gstreamer/MediaSampleGStreamer.h: Removed setTimestamps() empty implementation.
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline): Support audio/mpeg by instancing a typefind element when needed (or identity when not), using an identity element instead of a demuxer and simulating what would be done in the no-more-pads signal handlers, but using a probe to detect the first buffer traversing the parser.
(WebCore::createOptionalParserForFormat): Use the mpegversion caps field to instance the right kind of parser when detecting the audio/mpeg media type in the caps. An identity element is now returned in case no parser is needed.
(WebCore::AppendPipeline::Track::initializeElements): Simplify element linking now that the parser (or identity) is always guaranteed to exist.
(WebCore::AppendPipeline::streamTypeToString): Added default branch to switch to fix build warning.

  • platform/graphics/gstreamer/mse/AppendPipeline.h: Added m_typefind. Reordered some attributes and added comments to improve readability.

LayoutTests:

  • platform/glib/TestExpectations: Unskipped test
12:57 AM Changeset in webkit [281616] by youenn@apple.com
  • 23 edits in trunk

Signaling state check when applying a local or remote description is no longer aligned with the WebRTC spec
https://bugs.webkit.org/show_bug.cgi?id=229138

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebasing tests.
Some tests are going from PASS to FAIL:

  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html: we do not support yet rollback.
  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer.html: is no longer throwing the right exception (and we are not supporting pranswer yet).
  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html: we are throwing with a different exception.
  • web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setDescription-transceiver-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-rollback-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:

Source/WebCore:

These checks have been removed from the spec and are no longer valid.
Covered by rebased tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescription):
(WebCore::PeerConnectionBackend::setRemoteDescription):
(WebCore::isLocalDescriptionTypeValidForState): Deleted.
(WebCore::isRemoteDescriptionTypeValidForState): Deleted.

  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnection::SetLocalDescription):
(WebCore::MockLibWebRTCPeerConnection::SetRemoteDescription):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
12:39 AM Changeset in webkit [281615] by ysuzuki@apple.com
  • 54 edits
    4 moves in trunk/Source/JavaScriptCore

[JSC] Polymorphic PutByVal
https://bugs.webkit.org/show_bug.cgi?id=229229

Reviewed by Saam Barati.

This patch changes PutByVal IC to modern style. This polymorphic PutByVal can handle multiple array types and multiple identifiers.
Also, this removes adhoc IC code in Baseline so that it paves the way to unlinked Baseline JIT by cleaning up IC.

Several interesting points of the design.

  1. We need to pass ArrayProfile* via GPRReg to IC since we need to profile mayStoreToHole, which is still important to avoid the slow path.
  2. Transition / Replace IC need to record propertyRegs if it exists not to clobber these registers. This is important in DFG / FTL since IC should not clobber these registers unless it is flushed. It also makes Baseline code smaller since we do not reload them in the slow path call.
  3. Added a path folding String/Symbol when emitting PutByVal in DFG / FTL. This edge-case is found via a microbenchmark. Let's consider the case: one put_by_val site has one identifier "foo", but it has so many different Structures. Previously, we emit JITPutByIdGenerator adhocly, and still we cache this "foo" identifier in cachedId. In DFG / FTL, while we cannot make it PutByOffset, we can emit PutById since we know that identifier is always "foo". But after this patch's change, such a site becomes slow-path. And then this identifier information is missed, and we were emitting PutByVal for that. For now, we attempt to fold to one identifier in DFGByteCodeParser so that we can still attempt to make it PutById, which can be PutByOffset in constant folding phase. We would like to handle this one identifier slow-path case in PutByStatus / GetByStatus in the future patch.
  4. Now, DFG OSR exit does not query to ByValInfo for setter calls since JITPutByValGenerator use StructureStubInfo in Baseline.

Results of Microbenchmarks look good.

ToT Patched

put-by-val-direct-large-index 94.6265+-0.9076 93.4550+-0.7121 might be 1.0125x faster
inlined-put-by-val-with-string-transition

23.7131+-0.3282 22.7679+-0.1137 definitely 1.0415x faster

put-by-val-with-string-slightly-polymorphic

1.9852+-0.0284 1.9580+-0.0224 might be 1.0139x faster

get-and-put-by-val-double-index-dont-fall-off-a-cliff

185.4762+-0.5737 ? 185.6325+-0.5819 ?

polymorphic-put-by-val-with-string 30.9903+-0.1207 30.8097+-0.1285
put-by-val-machine-int 1.8803+-0.0384 1.8707+-0.0440
fold-put-by-val-with-symbol-to-multi-put-by-offset

4.8463+-0.1148 4.7839+-0.0547 might be 1.0130x faster

put-by-val-with-string-replace-and-transition

8.8730+-1.5934 6.2276+-0.0585 definitely 1.4248x faster

fold-put-by-val-with-string-to-multi-put-by-offset

4.8183+-0.0841 ? 4.8233+-0.0892 ?

put-by-val-direct 0.2845+-0.0091 ? 0.2901+-0.0088 ? might be 1.0196x slower
put-by-val-with-symbol-replace-and-transition

6.3527+-0.0686 ? 6.3933+-0.0961 ?

put-by-val-with-symbol 9.3556+-3.1421 7.1509+-0.1019 might be 1.3083x faster
put-by-val-with-symbol-slightly-polymorphic

2.0052+-0.0309 1.9781+-0.0397 might be 1.0137x faster

put-by-val-negative-array-index 14.9572+-0.1221 14.5636+-0.1044 definitely 1.0270x faster
put-by-val-with-string 11.6345+-4.3048 7.0919+-0.0918 definitely 1.6405x faster
put-by-val-large-index-blank-indexing-type

3.1425+-0.1165 3.1236+-0.0378

inlined-put-by-val-with-symbol-transition

23.4932+-0.3186 22.8469+-0.0873 definitely 1.0283x faster

polymorphic-put-by-val-with-symbol 36.6046+-1.6519 30.8597+-0.1474 definitely 1.1862x faster

Speedometer2 showed roughly 0.2-0.3% progression.


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |121.916667 |121.958333 |1.000342 | 0.876802 |
| VueJS-TodoMVC |26.263333 |26.006667 |0.990227 | 0.263868 |
| EmberJS-TodoMVC |127.080000 |127.866667 |1.006190 | 0.011497 (significant) |
| BackboneJS-TodoMVC |48.920000 |49.318333 |1.008143 | 0.003395 (significant) |
| Preact-TodoMVC |19.828333 |19.828333 |1.000000 | 1.000000 |
| AngularJS-TodoMVC |134.011667 |132.080000 |0.985586 | 0.000000 (significant) |
| Vanilla-ES2015-TodoMVC |63.726667 |63.838333 |1.001752 | 0.408404 |
| Inferno-TodoMVC |65.153333 |63.753333 |0.978512 | 0.000000 (significant) |
| Flight-TodoMVC |78.133333 |78.780000 |1.008276 | 0.097794 |
| Angular2-TypeScript-TodoMVC |40.415000 |40.100000 |0.992206 | 0.287630 |
| VanillaJS-TodoMVC |51.931667 |52.500000 |1.010944 | 0.004149 (significant) |
| jQuery-TodoMVC |226.056667 |225.073333 |0.995650 | 0.007796 (significant) |
| EmberJS-Debug-TodoMVC |341.210000 |340.978333 |0.999321 | 0.623386 |
| React-TodoMVC |87.198333 |86.893333 |0.996502 | 0.042189 |
| React-Redux-TodoMVC |146.506667 |145.958333 |0.996257 | 0.018801 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.450000 |61.870000 |1.006835 | 0.000049 (significant) |


a mean = 254.85111
b mean = 255.25735
pValue = 0.1856561656
(Bigger means are better.)
1.002 times better
Results ARE NOT significant

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::guardedByStructureCheckSkippingConstantIdentifierCheck const):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
(JSC::AccessCase::toTypedArrayType):
(JSC::AccessCase::canBeShared):

  • bytecode/AccessCase.h:

(JSC::SharedJITStubSet::Hash::Key::Key):
(JSC::SharedJITStubSet::Hash::Key::operator==):
(JSC::SharedJITStubSet::Searcher::Translator::equal):

  • bytecode/ArrayProfile.h:

(JSC::ArrayProfile::offsetOfMayStoreToHole):
(JSC::ArrayProfile::offsetOfLastSeenStructureID):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::emitDOMJITGetter):

  • bytecode/ICStatusMap.h:
  • bytecode/InlineAccess.cpp:

(JSC::getScratchRegister):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):

  • bytecode/PutByStatus.cpp: Renamed from Source/JavaScriptCore/bytecode/PutByIdStatus.cpp.

(JSC::PutByStatus::appendVariant):
(JSC::PutByStatus::shrinkToFit):
(JSC::PutByStatus::computeFromLLInt):
(JSC::PutByStatus::PutByStatus):
(JSC::PutByStatus::computeFor):
(JSC::PutByStatus::computeForStubInfo):
(JSC::PutByStatus::makesCalls const):
(JSC::PutByStatus::slowVersion const):
(JSC::PutByStatus::singleIdentifier const):
(JSC::PutByStatus::visitAggregateImpl):
(JSC::PutByStatus::markIfCheap):
(JSC::PutByStatus::finalize):
(JSC::PutByStatus::merge):
(JSC::PutByStatus::filter):
(JSC::PutByStatus::dump const):

  • bytecode/PutByStatus.h: Renamed from Source/JavaScriptCore/bytecode/PutByIdStatus.h.
  • bytecode/PutByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/PutByIdVariant.cpp.

(JSC::PutByVariant::PutByVariant):
(JSC::PutByVariant::operator=):
(JSC::PutByVariant::replace):
(JSC::PutByVariant::transition):
(JSC::PutByVariant::setter):
(JSC::PutByVariant::oldStructureForTransition const):
(JSC::PutByVariant::fixTransitionToReplaceIfNecessary):
(JSC::PutByVariant::writesStructures const):
(JSC::PutByVariant::reallocatesStorage const):
(JSC::PutByVariant::makesCalls const):
(JSC::PutByVariant::attemptToMerge):
(JSC::PutByVariant::attemptToMergeTransitionWithReplace):
(JSC::PutByVariant::visitAggregateImpl):
(JSC::PutByVariant::markIfCheap):
(JSC::PutByVariant::finalize):
(JSC::PutByVariant::dump const):
(JSC::PutByVariant::dumpInContext const):

  • bytecode/PutByVariant.h: Renamed from Source/JavaScriptCore/bytecode/PutByIdVariant.h.

(JSC::PutByVariant::PutByVariant):
(JSC::PutByVariant::identifier const):
(JSC::PutByVariant::overlaps):

  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::addPutByStatus):
(JSC::RecordedStatuses::visitAggregateImpl):
(JSC::RecordedStatuses::addPutByIdStatus): Deleted.

  • bytecode/RecordedStatuses.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::load):
(JSC::DFG::ByteCodeParser::store):
(JSC::DFG::ByteCodeParser::emitPutById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::handlePutPrivateNameById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addPutByVal):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasPutByStatus):
(JSC::DFG::Node::putByStatus):
(JSC::DFG::Node::hasPutByIdStatus): Deleted.
(JSC::DFG::Node::putByIdStatus): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGValidate.cpp:
  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):

  • generator/DSL.rb:
  • jit/ICStats.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByValGenerator::JITPutByValGenerator):
(JSC::JITPutByValGenerator::generateFastPath):
(JSC::JITPutByValGenerator::finalize):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h:

(JSC::JIT::emitArrayProfilingSiteWithCell):
(JSC::JIT::chooseArrayMode): Deleted.

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::putByVal):
(JSC::directPutByVal):
(JSC::putByValOptimize):
(JSC::directPutByValOptimize):
(JSC::tryPutByValOptimize): Deleted.
(JSC::tryDirectPutByValOptimize): Deleted.

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_prepareCallGenerator):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_prepareCallGenerator):
(JSC::JIT::emitGenericContiguousPutByVal): Deleted.
(JSC::JIT::emitArrayStoragePutByVal): Deleted.
(JSC::JIT::privateCompilePutByVal): Deleted.
(JSC::JIT::privateCompilePutByValWithCachedId): Deleted.
(JSC::JIT::emitIntTypedArrayPutByVal): Deleted.
(JSC::JIT::emitFloatTypedArrayPutByVal): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal): Deleted.
(JSC::JIT::emitArrayStoragePutByVal): Deleted.

  • jit/Repatch.cpp:

(JSC::appropriateGenericPutByFunction):
(JSC::appropriateOptimizingPutByFunction):
(JSC::tryCachePutBy):
(JSC::repatchPutBy):
(JSC::tryCacheArrayPutByVal):
(JSC::repatchArrayPutByVal):
(JSC::tryCacheInBy):
(JSC::resetPutBy):
(JSC::appropriateGenericPutByIdFunction): Deleted.
(JSC::appropriateOptimizingPutByIdFunction): Deleted.
(JSC::tryCachePutByID): Deleted.
(JSC::repatchPutByID): Deleted.
(JSC::resetPutByID): Deleted.

  • jit/Repatch.h:
  • llint/LowLevelInterpreter.h:
12:25 AM Changeset in webkit [281614] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[curl] REGRESSION(r281158): fetch('http://localhost/') from about:blank doesn't emit the console error message
https://bugs.webkit.org/show_bug.cgi?id=229515

Unreviewed, reverting r281158.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse):

Aug 25, 2021:

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

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

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

Source/WebCore:

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

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

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::addContextObject):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking):

LayoutTests:

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

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

Reviewed by Chris Dumez.

Source/WebKit:

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

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

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

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

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

LayoutTests:

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

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

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

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

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

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

Reviewed by Tim Horton.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

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

(WebCore::isFunctionKey):

Source/WebKit:

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

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

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

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

(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):

  • Shared/WebKeyboardEvent.cpp:

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

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

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

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

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

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

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

  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:

(WebKit::WebEditorClient::handleInputMethodKeydown):

Source/WTF:

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

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

Tools:

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

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

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

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

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

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

Reviewed by Alexey Proskuryakov.

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

  • Scripts/generate-derived-sources.sh:

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

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

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

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

Reviewed by Alexey Proskuryakov.

Skip unneeded commands when preprocessing sandbox on iOS.

  • Scripts/generate-derived-sources.sh:

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

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

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

Reviewed by Mark Lam.

Fix debug JSC test failures by using RELEASE_AND_RETURN.

  • runtime/IntlObject.cpp:

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

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

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

Reviewed by Alex Christensen.

Introduce FormSubmitListenerIdentifier and use it in place of a uint64_t.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

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

(WebKit::WebPageProxy::willSubmitForm):

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

(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):

  • WebProcess/WebPage/WebFrame.cpp:

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

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

(WebKit::WebPage::continueWillSubmitForm):

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

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

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

Reviewed by Mark Lam.

JSTests:

Fix typo in test name.

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

Source/JavaScriptCore:

Add missing exception checks.

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

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

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

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

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:

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

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

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

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

Source/WebCore:

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

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

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

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

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

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

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

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

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Darin Adler.

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

Fix this by first converting _visualSearchPreviewImageBounds to window coordinates.

  • UIProcess/ios/WKContentViewInteraction.mm:

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

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

Versioning.

WebKit-7612.2.3

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

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

Reviewed by Jer Noble.

Source/WebCore:

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

Tested manually.

  • platform/audio/AudioSession.cpp:

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

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

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

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

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

Source/WebKit:

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

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

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

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

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

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

Reviewed by Dean Jackson.

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

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

Reviewed by Alexey Proskuryakov.

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

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:

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

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

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

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

Source/WebCore:

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

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

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

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

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

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

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

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

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Saam Barati.

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

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

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

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

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

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

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

Convert Pre-Index Load Pattern to the Canonical Form:

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

Convert Pre-Index Store Pattern to the Canonical Form:

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

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

  • b3/B3CanonicalizePrePostIncrements.cpp:

(JSC::B3::canonicalizePrePostIncrements):

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

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

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

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

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

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

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

Reviewed by Aakash Jain.

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

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

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

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

  • CISupport/ews-build/steps.py:

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

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

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

Unreviewed test gardening.

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

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

Unreviewed, address test flakiness by silencing console logging.

LayoutTests/imported/w3c:

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

LayoutTests:

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Stephanie Lewis.

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

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

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

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

Reviewed by Tim Horton.
LayoutTests/imported/w3c:

Re-import css-masking tests from WPT fe104253de3197002a2600a4ed7e3b5e18fc9121.

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

LayoutTests:

Re-import css-masking tests from WPT fe104253de3197002a2600a4ed7e3b5e18fc9121.

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

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

Reviewed by Wenson Hsieh.

Source/WebKit:

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

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

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

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

  • UIProcess/ios/WKActionSheetAssistant.mm:

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

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

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

(-[WKContentView presentContextMenu:atLocation:]):

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

(-[WKContentView imageAnalysisGestureDidTimeOut:]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(-[WKDataListSuggestionsDropdown _showSuggestions]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker showDateTimePicker]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showDocumentPickerMenu]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker showSelectPicker]):

LayoutTests:

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

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

Unreviewed test gardening after r228617.

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

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

Reviewed by Alexey Proskuryakov.

Skip unneeded commands when preprocessing sandbox on iOS.

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

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

Reviewed by Tim Horton.

Source/WebKit:

See changes in Tools for more details.

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

Tools:

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

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

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

  • WebKitTestRunner/ios/TestControllerIOS.mm:

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

LayoutTests:

Remove the failing test expectations.

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

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

Reviewed by Antti Koivisto.

Consider the following case:

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

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

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

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

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

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

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

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineLineRun.h:

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

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

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

Unreviewed test gardening.

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

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

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

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

  • dfg/DFGSpeculativeJIT.cpp:

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

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

Versioning.

WebKit-7612.1.29.3

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

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

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

LayoutTests/imported/w3c:

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

Source/WebCore:

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

This patch supports it.

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

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

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

(WebCore::HTMLElement::createEventHandlerNameMap):

LayoutTests:

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Saam Barati.

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

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

  • dfg/DFGSpeculativeJIT.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_enumerator_get_by_val):

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

(JSC::Butterfly::indexOfPropertyStorage):

  • runtime/JSObject.h:

(JSC::offsetInButterfly):

  • runtime/PropertyOffset.h:

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

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

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

Reviewed by Antti Koivisto.

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationLine.h:

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

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

Tag Safari-612.1.29.2.

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

Versioning.

WebKit-7612.1.29.2

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

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

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix a flaky test.

  • html/HTMLMediaElement.cpp:

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

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

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

  • WebProcess/cocoa/VideoFullscreenManager.mm:

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

LayoutTests:

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

Enable the mock video presentation mode for testing.

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

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

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

Source/WebCore:

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

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

  • accessibility/AccessibilityObject.cpp:

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

LayoutTests:

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

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

AccessibilityUIElement::domIdentifier implementation.

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

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

broke cloop build

Reverted changeset:

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

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

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

Reviewed by Brent Fulgham.

Source/WebCore:

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

Replace deprecated CCKeyDerivationHMac with CCDeriveKey.

  • crypto/mac/CryptoUtilitiesCocoa.cpp:

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

  • crypto/mac/CryptoUtilitiesCocoa.h:

Source/WebCore/PAL:

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

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

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

  • platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:

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

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

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

Unreviewed test gardening.

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

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

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

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

  • accessibility/AccessibilitySVGElement.cpp:

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

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

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

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

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

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

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

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

if (...) {

markConversionBufferDirty();

} else {

clearConversionBuffers();

}

(rx::BufferMtl::getRestartIndices):

Aug 24, 2021:

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

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

causes local builds to fail reliably

Reverted changeset:

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

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

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

Reviewed by Simon Fraser.

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

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • html/HTMLDialogElement.cpp:

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

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

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

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

Source/ThirdParty/ANGLE:

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

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

(GenMetalTraverser::emitSingleConstant):

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

(rx::mtl::CreateShaderLibrary):

LayoutTests:

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

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

[WinCairo] Unreviewed test gardening

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

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

Unreviewed.

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

(WebCore::CACFLayerTreeHost::initialize):

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

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

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/JITOperationList.cpp:

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

  • assembler/JITOperationList.h:

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

  • runtime/JSCPtrTag.h:

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

Source/WebCore:

  • bindings/js/WebCoreJITOperations.cpp:

(WebCore::populateJITOperations):

  • bindings/js/WebCoreJITOperations.h:

(WebCore::populateJITOperations):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::populateJITOperations):

  • testing/js/WebCoreTestSupport.h:

(WebCoreTestSupport::populateJITOperations):

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

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

Reviewed by Eric Carlson.

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

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

  • platform/mac/WebPlaybackControlsManager.mm:

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

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

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

Unreviewed.

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

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

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

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

Reviewed by Keith Miller.

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

include? LowLevelInterpreterAdditions

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

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

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

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

emit "b ", .done
...

.done:

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

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

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

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

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

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

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

Reviewed by Alexey Proskuryakov.

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

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

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

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

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

Unreviewed test gardening.

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

Tag Safari-612.1.29.14.1.

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

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

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

Apply patch. rdar://problem/81915461

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

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

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

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

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

Speculative build fix. rdar://79147214.

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

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

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

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

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

Versioning.

WebKit-7612.1.29.14.1

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

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

Reviewed by Yusuke Suzuki.

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

  • b3/testb3_6.cpp:

(testInterpreter):

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

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

Reviewed by Eric Carlson.

Only enable artwork logging in debug builds.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):

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

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

Unreviewed test gardening.

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

New branch.

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

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

Unreviewed test gardening.

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

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

Reviewed by Mark Lam.

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

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

(vm.icuVersion):

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

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

Reviewed by Dewei Zhu.

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

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

Reviewed by Darin Adler.

Source/WebCore:

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

This aligns our behavior with both Chrome and Firefox.

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

  • html/FileInputType.cpp:

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

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

(WebCore::HTMLInputElement::setFiles):

  • html/HTMLInputElement.h:

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

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

(WebCore::InputType::setFiles):

  • html/InputType.h:

LayoutTests:

Add layout test coverage.

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

Tag Safari-612.1.27.0.31.

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

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

Unreviewed.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):

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

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

Reviewed by Wenson Hsieh.

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

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

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

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

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

Reviewed by Saam Barati.

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

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

  • dfg/DFGSpeculativeJIT.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_enumerator_get_by_val):

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

(JSC::Butterfly::indexOfPropertyStorage):

  • runtime/JSObject.h:

(JSC::offsetInButterfly):

  • runtime/PropertyOffset.h:

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

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

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

Rebaseline WPT test now that more checks are passing.

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

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

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

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

Source/WebCore:

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

  • Modules/geolocation/Geolocation.cpp:

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

  • bindings/js/JSDOMConvertCallbacks.h:

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

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

  • dom/IdleCallbackController.cpp:

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

  • dom/TaskSource.h:

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

LayoutTests:

Update / rebaseline existing layout tests to reflect behavior change.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Minor test rebaseline due to logging changes.

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

Source/WebCore:

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

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

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

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

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

  • loader/DocumentLoader.cpp:

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

  • loader/DocumentLoader.h:

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

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForResponse):

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

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

  • loader/FrameLoader.cpp:

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

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

Source/WebKit:

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

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

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

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

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

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

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::shouldClosePreviousPageAfterCommit const):

  • UIProcess/WebPageProxy.cpp:

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

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

(WebKit::WebProcessProxy::optionalRegistrableDomain const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

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

(WebKit::WebPage::loadDataImpl):

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

Source/WebKitLegacy/mac:

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

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebCoreSupport/WebFrameLoaderClient.h:

Tools:

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

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

LayoutTests:

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

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

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

Reviewed by Stephanie Lewis.

  • CISupport/kill-old-processes:

(main):

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

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

Reviewed by Tim Horton.

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

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

Reviewed by Ross Kirsling.

JSTests:

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

(shouldBe):
(shouldThrow):

  • stress/intl-locale-info.js:

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

Source/JavaScriptCore:

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

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

  • runtime/IntlDateTimeFormat.cpp:

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

  • runtime/IntlLocale.cpp:

(JSC::createArrayFromStringVector): Deleted.

  • runtime/IntlNumberFormat.cpp:

(JSC::sanctionedSimpleUnitIdentifier):

  • runtime/IntlObject.cpp:

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

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

Source/WTF:

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createFromLiteral):

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

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

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

LayoutTests/imported/w3c:

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

Source/WebCore:

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

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

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

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

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
12:11 PM Changeset in webkit [281511] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

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

Reviewed by Alex Christensen.

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

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

[WPE] Gardening two WebXR-related failures

Unreviewed test gardening.

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

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

Reviewed by Chris Dumez.

  • html/FormController.cpp:

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

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

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

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

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

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

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

Unreviewed test gardening.

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

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

Reviewed by Eric Carlson.

Tests: media/media-css-muted.html

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

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

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

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

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

Invalidate styles when the "muted" attribute changes state.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

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

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorCheckerTestFunctions.h:

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

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

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

  • html/HTMLMediaElement.cpp:

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

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::volumeLocked const):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementVolumeLocked):

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

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

Reviewed by Eric Carlson.

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

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

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import layout test coverage from WPT.

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

(assertNoLoadAndPageshowEvent):

Source/WebCore:

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

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

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldPerformFragmentNavigation):

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

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

Unreviewed test gardening.

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

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

Reviewed by Mark Lam.

JSTests:

Fix typo in test name.

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

Source/JavaScriptCore:

Add missing exception checks.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

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

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

Unreviewed test gardening.

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

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

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

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

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

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

Unreviewed test gardening.

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

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

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

causes crashes on ARM64

Reverted changeset:

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

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

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

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

Call the FormDataElement destructor on the main thread in advanceCurrentStream.

  • platform/network/cf/FormDataStreamCFNet.cpp:

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

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

Versioning.

WebKit-7612.1.27.0.31

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

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

Unreviewed non-unified build fixes.

Source/WebCore:

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

LibWebRTCProvider.h and JavaScriptCore/ArrayBuffer.h headers.

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

header.

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

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

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: Add missing

wtf/SuspendableWorkQueue.h header.

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

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

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Updated test expectations.

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

Source/WebCore:

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

Allows preventDefault() on keydown event to prevent cancelation.

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

  • html/HTMLDialogElement.cpp:

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

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

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

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

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

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

Source/WebCore:

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

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

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

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:

LayoutTests:

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

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

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

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

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

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

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

Source/WebCore:

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

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

  • dom/Node.cpp:

(WebCore::Node::isInert const):

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

Source/WTF:

Add runtime InertAttributeEnabled feature flag disabled by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Create iOS baselines.

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-retargeting.tentative-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.