⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 23, 2022:

11:17 PM Changeset in webkit [294740] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7614.1.14.0-branch

Cherry-pick r294186. rdar://problem/93805727

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

11:14 PM Changeset in webkit [294739] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7614.1.14.1-branch

Cherry-pick r294186. rdar://problem/93805727

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

11:13 PM Changeset in webkit [294738] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.10

11:10 PM Changeset in webkit [294737] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.10

11:00 PM Changeset in webkit [294736] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r294291): Another nullptr crash with ::first-letter
https://bugs.webkit.org/show_bug.cgi?id=240795
<rdar://93645746>

Reviewed by Alan Bujtas.

  • LayoutTests/fast/css/first-letter-remove-crash-expected.txt: Added.
  • LayoutTests/fast/css/first-letter-remove-crash.html: Added.
  • LayoutTests/fast/css/first-letter-removed-added-expected.txt:
  • Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):

We should always find :first-letter style when we get here.

  • Source/WebCore/style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Rebuild the renderer subtree if ::first-letter pseudo-class stops applying.

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

10:38 PM Changeset in webkit [294735] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.0-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp

Unreviewed build fix. rdar://problem/87980543

Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:247:36:|error: no matching constructor for initialization of 'WebCore::FEImage::SourceImage &&' (aka 'variant<Ref<WebCore::Image>, Ref<WebCore::ImageBuffer>, ObjectIdentifier<WebCore::RenderingResourceIdentifierType>> &&')

10:38 PM Changeset in webkit [294734] by Alan Coon
  • 7 edits in branches/safari-7613.3.1.0-branch/Source

Cherry-pick r294280. rdar://problem/87980543

This reverts r294694.

10:36 PM Changeset in webkit [294733] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.0-branch/Source

Versioning.

WebKit-7613.3.1.0.4

10:28 PM Changeset in webkit [294732] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.1-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp

Unreviewed build fix. rdar://87980543

Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:247:36:|error: no matching constructor for initialization of 'WebCore::FEImage::SourceImage &&' (aka 'variant<Ref<WebCore::Image>, Ref<WebCore::ImageBuffer>, ObjectIdentifier<WebCore::RenderingResourceIdentifierType>> &&')

10:26 PM Changeset in webkit [294731] by Alan Coon
  • 7 edits in branches/safari-7613.3.1.1-branch/Source

Cherry-pick r294280. rdar://problem/87980543

This reverts r294684.

10:24 PM Changeset in webkit [294730] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.1-branch/Source

Versioning.

WebKit-7613.3.1.1.4

10:13 PM Changeset in webkit [294729] by commit-queue@webkit.org
  • 2 edits in trunk

REGRESSION (250413@main): [ iOS ] system-preview/badge.html is a consistent image failure
https://bugs.webkit.org/show_bug.cgi?id=240352
rdar://93191053

Patch by Antoine Quint <Antoine Quint> on 2022-05-23
Reviewed by Simon Fraser.

In the case of an ARKit image, we should only be returning when we don't
have a native image to record, otherwise the system image itself needs
to be recorded as well.

  • LayoutTests/platform/ios-wk2/TestExpectations:
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawSystemImage):

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

10:09 PM Changeset in webkit [294728] by ntim@apple.com
  • 5 edits in trunk/Source/WebCore

Remove RenderSliderThumb
https://bugs.webkit.org/show_bug.cgi?id=240794

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

  • Source/WebCore/html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
(WebCore::RenderSliderThumb::RenderSliderThumb): Deleted.
(WebCore::RenderSliderThumb::updateAppearance): Deleted.
(WebCore::RenderSliderThumb::isSliderThumb const): Deleted.
(WebCore::SliderThumbElement::createElementRenderer): Deleted.

  • Source/WebCore/html/shadow/SliderThumbElement.h:
  • Source/WebCore/rendering/RenderObject.h:

(WebCore::RenderObject::isSlider const):
(WebCore::RenderObject::isSliderThumb const): Deleted.

  • Source/WebCore/rendering/RenderSlider.cpp:

(WebCore::RenderSlider::layout): Deleted.

  • Source/WebCore/rendering/RenderSlider.h:

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

9:09 PM Changeset in webkit [294727] by Diego Pino Garcia
  • 1 edit
    2 deletes in trunk/LayoutTests/platform/glib

[GLIB] Unreviewed test gardening, update expectations after r293691

9:00 PM Changeset in webkit [294726] by Ben Nham
  • 3 edits in trunk

Fix webpushd crash when removing notification permissions
https://bugs.webkit.org/show_bug.cgi?id=240737

Reviewed by Chris Dumez and Geoffrey Garen.

When removing notification permissions for an origin, webpushd crashes because of a RELEASE_ASSERT
that fires in AppBundleRequest::start when INSTALL_COORDINATION_BUNDLES isn't enabled and mock
bundles aren't enabled.

Fix this by removing the calls into AppBundleRequest when INSTALL_COORDINATION_BUNDLES isn't enabled.
Those requests are only meant to run when that feature is enabled.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm: Only run the permission management test when INSTALL_COORDINATION_BUNDLES is enabled (e.g. on iOS); that is the only time it makes sense to test that codepath.
  • Source/WebKit/webpushd/WebPushDaemon.h:
  • Source/WebKit/webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::deletePushRegistration):
(WebPushD::Daemon::deletePushAndNotificationRegistration):

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

8:53 PM Changeset in webkit [294725] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.11.3

Tag WebKit-7614.1.14.11.3.

8:50 PM Changeset in webkit [294724] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.11-branch/Source

Versioning.

WebKit-7614.1.14.11.3

8:11 PM Changeset in webkit [294723] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.10.5

Tag WebKit-7614.1.14.10.5.

8:10 PM Changeset in webkit [294722] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.5

8:06 PM Changeset in webkit [294721] by Diego Pino Garcia
  • 2 edits
    10 moves in trunk/LayoutTests/platform

[WPE] Unreviewed test gardening, fix missing baselines reported by test bot

8:02 PM Changeset in webkit [294720] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.0.3

Tag WebKit-7613.3.1.0.3.

8:00 PM Changeset in webkit [294719] by Alan Coon
  • 1 delete in tags/WebKit-7613.3.1.0.3

Delete tag.

7:45 PM Changeset in webkit [294718] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.10.4

Tag WebKit-7614.1.14.10.4.

7:43 PM Changeset in webkit [294717] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.1.3

Tag WebKit-7613.3.1.1.3.

7:40 PM Changeset in webkit [294716] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js

Web Inspector: Network Table: activity is not marked as a previous session when the Network Tab is not selected
https://bugs.webkit.org/show_bug.cgi?id=240846

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._mainResourceDidChange):
(WI.NetworkTableContentView.prototype._entryForResource):
Also mark WI.Resource that haven't yet been inserted into the WI.Table when navigating the main
resource. Use this when generating an entry for that WI.Resource for the first time, instead of
always assuming that the WI.Resource is part of the current session.

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

7:39 PM Changeset in webkit [294715] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.4

7:06 PM Changeset in webkit [294714] by Wenson Hsieh
  • 1 edit
    2 adds in trunk

Breaking out of a quoted reply block by inserting a new paragraph should reset writing direction
https://bugs.webkit.org/show_bug.cgi?id=240778
rdar://14839536

Reviewed by Devin Rousso.

The process of breaking out of a blockquote via the "InsertNewlineInQuotedContent" editor command currently works by
splitting the blockquote into two sibling elements underneath the same parent container, and then inserting a br
element in between these sibling blockquote elements. The selection is then moved to the end of the newly created
br, which inherits the writing direction (dir) of the element containing the blockquote. In the case of Mail, if
the system language is right-to-left but the quoted content is left-to-right, this can lead to some unintuitive behavior
when breaking out of quoted LTR content, since the newly created line break will inherit the right-to-left direction of
its ancestor.

To fix this, in the case where we're breaking out of a blockquote and the start of the selection is left-to-right but
the element that contains the blockquote is right-to-left, we can wrap the br in another block-level container
element with dir=auto to avoid inheriting the writing direction from the blockquote's ancestor. This means that the
writing direction of the newly inserted paragraph will automatically be determined by what the user types.

Test: editing/execCommand/reset-direction-after-breaking-blockquote.html

  • LayoutTests/editing/execCommand/reset-direction-after-breaking-blockquote-expected.txt: Added.
  • LayoutTests/editing/execCommand/reset-direction-after-breaking-blockquote.html: Added.
  • Source/WebCore/editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply):

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

6:44 PM Changeset in webkit [294713] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.0-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp

Revert build fix. rdar://problem/87980543

This reverts r294685.

6:42 PM Changeset in webkit [294712] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.0.3

Tag WebKit-7613.3.1.0.3.

6:04 PM Changeset in webkit [294711] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.3.1

Tag WebKit-7613.3.1.3.1.

6:03 PM Changeset in webkit [294710] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7613.3.1.3-branch

Cherry-pick r294186. rdar://problem/93213436

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

6:03 PM Changeset in webkit [294709] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.3-branch/Source

Versioning.

WebKit-7613.3.1.3.1

5:55 PM Changeset in webkit [294708] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.1.9

Tag WebKit-7614.1.14.1.9.

5:54 PM Changeset in webkit [294707] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.2.1

Tag WebKit-7613.3.1.2.1.

5:53 PM Changeset in webkit [294706] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7613.3.1.2-branch

Cherry-pick r294186. rdar://problem/93213436

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

5:47 PM Changeset in webkit [294705] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.2-branch/Source

Versioning.

WebKit-7613.3.1.2.1

5:41 PM Changeset in webkit [294704] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.0.9

Tag WebKit-7614.1.14.0.9.

5:33 PM Changeset in webkit [294703] by Said Abou-Hallawa
  • 1 edit in trunk/metadata/contributors.json

Add Said Abou-Hallawa's GitHub to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240840

Unreviewed.

  • metadata/contributors.json:

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

5:27 PM Changeset in webkit [294702] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk1/TestExpectations

[Gardening]: REGRESSION (r294610): [ macOS wk1 ] Two fast/forms/ tests are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240841
<rdar://93794351>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations:

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

5:12 PM Changeset in webkit [294701] by Alan Coon
  • 1 copy in branches/safari-7613.3.1.3-branch

New branch.

5:11 PM Changeset in webkit [294700] by Alan Coon
  • 1 copy in branches/safari-7613.3.1.2-branch

New branch.

5:00 PM Changeset in webkit [294699] by Alan Bujtas
  • 19 edits in trunk/Source/WebCore

RenderObject::containerForRepaint should be able to tell if a full repaint has already been scheduled.
https://bugs.webkit.org/show_bug.cgi?id=240721

Reviewed by Simon Fraser.

This patch is in preparation for reducing redundant repaints when an ancestor layer (between the renderer and the repaint container) has already been scheduled for one.

  • Source/WebCore/editing/SelectionGeometryGatherer.cpp:

(WebCore::SelectionGeometryGatherer::addQuad):
(WebCore::SelectionGeometryGatherer::addGapRects):

  • Source/WebCore/editing/SelectionGeometryGatherer.h:
  • Source/WebCore/page/FrameView.cpp:

(WebCore::FrameView::isEnclosedInCompositingLayer const):

  • Source/WebCore/rendering/LayoutRepainter.cpp:

(WebCore::LayoutRepainter::LayoutRepainter):
(WebCore::LayoutRepainter::repaintAfterLayout):

  • Source/WebCore/rendering/LayoutRepainter.h:
  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::layoutRunsAndFloats):

  • Source/WebCore/rendering/RenderElement.cpp:

(WebCore::RenderElement::issueRepaintForOutlineAuto):

  • Source/WebCore/rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::mapLocalToContainer const):

  • Source/WebCore/rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::layout):

  • Source/WebCore/rendering/RenderLayer.cpp:

(WebCore::RenderLayer::recursiveUpdateLayerPositions):
(WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
(WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll):
(WebCore::RenderLayer::setHasVisibleContent):
(WebCore::RenderLayer::calculateClipRects const):

  • Source/WebCore/rendering/RenderLayer.h:
  • Source/WebCore/rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::repaintOnCompositingChange):

  • Source/WebCore/rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange):

  • Source/WebCore/rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollTo):

  • Source/WebCore/rendering/RenderObject.cpp:

(WebCore::RenderObject::containerForRepaint const):
(WebCore::RenderObject::repaint const):
(WebCore::RenderObject::repaintRectangle const):
(WebCore::RenderObject::repaintSlowRepaintObject const):

  • Source/WebCore/rendering/RenderObject.h:
  • Source/WebCore/rendering/RenderSelectionInfo.cpp:

(WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):

  • Source/WebCore/rendering/RenderSelectionInfo.h:

(WebCore::RenderSelectionInfoBase::repaintContainer const):

  • Source/WebCore/rendering/RenderView.cpp:

(WebCore::RenderView::repaintRootContents):

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

4:58 PM Changeset in webkit [294698] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.2.4

Tag WebKit-7614.1.14.2.4.

4:57 PM Changeset in webkit [294697] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7614.1.14.2-branch

Cherry-pick r294186. rdar://problem/93213436

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

4:55 PM Changeset in webkit [294696] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.2-branch/Source

Versioning.

WebKit-7614.1.14.2.4

4:42 PM Changeset in webkit [294695] by Patrick Angle
  • 4 edits
    2 adds in trunk

Web Inspector: Layout panel doesn't always match visible nodes/order of nodes in document
https://bugs.webkit.org/show_bug.cgi?id=240775
rdar://93727833

Reviewed by Devin Rousso.

There were a couple issues preventing the layout panel from showing nodes that could actually have an overlay shown in
a predictable order.

First, DOMManager.prototype.nodesWithLayoutContextType provided an array of nodes sorted by nodeId, not their order in
the document. This meant that nodes created later and inserted into the page did not get placed in their logical order
relative to other containers, but at the end of the list. This is fixed with a new iterator that iterated through the
document and its tree in a way the preserves the order of elements as they would appear in a Tree view.

Second, LayoutDetailsSidebarPanel was not instrumenting the insertion/deletion of nodes, which meant that a node with a
layout context could be removed from the DOM tree, but still exist. These nodes weren't actually useful in the list
because you can't turn on the overlay for them. A similar issue existed for inserting a known node back into the DOM
tree.

Also fix an assertion reached from NodeOverlayListSection when toggling all overlays off.

  • Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.attachedNodes):
(WI.DOMManager.prototype.nodesWithLayoutContextType):

  • Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.detached):
(WI.LayoutDetailsSidebarPanel.prototype._handleNodeInserted):
(WI.LayoutDetailsSidebarPanel.prototype._handleNodeRemoved):
(WI.LayoutDetailsSidebarPanel.prototype._handleLayoutContextTypeChanged):
(WI.LayoutDetailsSidebarPanel.prototype._removeNodeFromNodeSets):
(WI.LayoutDetailsSidebarPanel.prototype._invalidateNodeSets):
(WI.LayoutDetailsSidebarPanel.prototype._refreshNodeSets):

  • Instead of iterating all the nodes twice every time something changes, iterate all the nodes once, an only do so when

doing layout to prevent multiple iterations for an eventual single layout.

  • Source/WebInspectorUI/UserInterface/Views/NodeOverlayListSection.js:

(WI.NodeOverlayListSection.prototype._handleToggleAllCheckboxChanged):

  • Fix for an assertion reachable while manually testing this patch. Toggling the overlay off when it is already off is

not allowed, and turning an overlay on that is already on is needlessly chatty over the protocol (unless changing the
settings/color, which is left untouched).

  • LayoutTests/inspector/dom/attachedNodes-expected.txt: Added.
  • LayoutTests/inspector/dom/attachedNodes.html: Added.
  • LayoutTests/inspector/css/setLayoutContextTypeChangedMode.html:
  • Update to use WI.domManager.attachedNodes() iterator.

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

4:28 PM Changeset in webkit [294694] by Alan Coon
  • 7 edits in branches/safari-7613.3.1.0-branch/Source

Revert r294280. rdar://problem/87980543

This reverts r294672.

4:27 PM Changeset in webkit [294693] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.1-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp

Revert fix. rdar://problem/87980543

This reverts r294689.

4:25 PM Changeset in webkit [294692] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/loader/cache/CachedRawResource.cpp

Capture WeakPtr to CachedResourceClient in lambdas in CachedRawResource::didAddClient()
https://bugs.webkit.org/show_bug.cgi?id=240828
<rdar://93781799>

Reviewed by Alex Christensen.

Capture WeakPtr to CachedResourceClient in lambdas in CachedRawResource::didAddClient()
instead of a raw pointer, for hardening.

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

(WebCore::iterateRedirects):
(WebCore::CachedRawResource::didAddClient):

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

3:53 PM Changeset in webkit [294691] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/editing/IndentOutdentCommand.cpp

Null check split node parent in outdentParagraph
https://bugs.webkit.org/show_bug.cgi?id=240806

Patch by Rob Buis <rbuis@igalia.com> on 2022-05-23
Reviewed by Wenson Hsieh.

The split node parent needs an extra null check to access its parent
before safely calling hasEditableStyle.

  • Source/WebCore/editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

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

3:37 PM Changeset in webkit [294690] by Wenson Hsieh
  • 1 edit in trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

[iPadOS] Align scroll position to origin on resize in Multitasking mode
https://bugs.webkit.org/show_bug.cgi?id=240815
rdar://92888214

Reviewed by Devin Rousso.

Make a minor adjustment to avoid re-centering the target unobscured content rect on the hit-tested
node in the center of the viewport, when multitasking mode is enabled; instead, we can simply
preserve the existing unobscured content rect offset.

  • Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:

We can also avoid this hit-test when usesMultitaskingModeViewportBehaviors() is enabled, since we
only need to anchor to the origin of the current unobscured rect.

(WebKit::WebPage::dynamicViewportSizeUpdate):

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

3:19 PM Changeset in webkit [294689] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.1-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp

Unreviewed build fix. rdar://problem/87980543

WebKit/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:247:36:|error: no matching constructor for initialization of 'Ref<WebCore::Image>'

3:15 PM Changeset in webkit [294688] by Alan Coon
  • 2 edits in branches/safari-7614.1.14.100-branch/Source

Cherry-pick r294467. rdar://problem/93507791

REGRESSION (r294160): Occasional infinite loops under updateLayersForInteractionRegions
https://bugs.webkit.org/show_bug.cgi?id=240610
<rdar://problem/93507791>

Reviewed by Wenson Hsieh.

  • Source/WebCore/page/InteractionRegion.cpp: (WebCore::regionForElement): Avoid emitting empty rects for interaction regions, and avoid emitting the region at all if this results in an empty set of rects.
  • Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: (WebKit::updateLayersForInteractionRegions): Never re-use a layer with empty bounds; we should never get here, but I'd rather re-create the layer if we do than corrupt the hash table.

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

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

3:14 PM Changeset in webkit [294687] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ Monterey wk2 ] webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240830
<rdar://93786598>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

3:13 PM Changeset in webkit [294686] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.100-branch/Source

Versioning.

WebKit-7614.1.14.100.3

3:11 PM Changeset in webkit [294685] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.0-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp

Unreviewed build fix. rdar://problem/87980543

WebKit/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:247:36:|error: no matching constructor for initialization of 'Ref<WebCore::Image>'

2:40 PM Changeset in webkit [294684] by Alan Coon
  • 7 edits in branches/safari-7613.3.1.1-branch/Source

Revert r294280. rdar://problem/87980543

This reverts commit r294675.

2:36 PM Changeset in webkit [294683] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ Monterey wk2 ] WebGL conformance tests are a flaky time out
https://bugs.webkit.org/show_bug.cgi?id=239386

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

2:29 PM Changeset in webkit [294682] by Matt Woodrow
  • 1 edit in trunk/metadata/contributors.json

Add mattwoohdrow's GitHub to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240824

Reviewed by Jonathan Bedard.

  • metadata/contributors.json:

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

2:21 PM Changeset in webkit [294681] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ Monterey Release wk2 ] webgl/max-active-contexts-webglcontextlost-prevent-default.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240821
<rdar://93782808>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

2:03 PM Changeset in webkit [294680] by ntim@apple.com
  • 17 edits
    20 deletes in trunk

[css-ui] Remove support for *-level-indicator appearance values
https://bugs.webkit.org/show_bug.cgi?id=240446

Reviewed by Antti Koivisto.

These only were implemented on macOS to display stars, or other alternative types of progress on <meter> elements.

These were already removed in Chromium: https://codereview.chromium.org/1747763002

  • continuous-capacity-level-indicator
  • discrete-capacity-level-indicator
  • relevancy-level-indicator
  • rating-level-indicator

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

  • LayoutTests/accessibility/accessibility-crash-setattribute.html:
  • LayoutTests/editing/execCommand/crash-breaking-blockquote-with-list.html:
  • LayoutTests/editing/selection/modify-by-lineboundary-toward-pseudo-element.html:
  • LayoutTests/fast/block/float/float-list-changed-before-layout-crash.html:
  • LayoutTests/fast/css/content/content-quotes-crash-with-details.html:
  • LayoutTests/fast/dom/HTMLMeterElement/meter-appearances-capacity.html: Removed.
  • LayoutTests/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html: Removed.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.png: Removed.
  • LayoutTests/platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
  • LayoutTests/platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.png: Removed.
  • LayoutTests/platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Removed.
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
  • LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Removed.
  • LayoutTests/platform/mac/TestExpectations:
  • LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.png: Removed.
  • LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
  • LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.png: Removed.
  • LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Removed.
  • LayoutTests/platform/win/TestExpectations:
  • LayoutTests/platform/win/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.png: Removed.
  • LayoutTests/platform/win/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
  • LayoutTests/platform/win/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.png: Removed.
  • LayoutTests/platform/win/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Removed.
  • LayoutTests/platform/wincairo/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
  • LayoutTests/platform/wincairo/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Removed.
  • LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
  • LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Removed.
  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/CSSValueKeywords.in:
  • Source/WebCore/platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/ThemeTypes.h:
  • Source/WebCore/rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::isControlStyled const):

  • Source/WebCore/rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::supportsMeter const):
(WebCore::RenderThemeMac::levelIndicatorFor const):
(WebCore::RenderThemeMac::levelIndicatorStyleFor const): Deleted.

  • Source/WebCore/rendering/RenderThemeMac.h:

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

2:03 PM Changeset in webkit [294679] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/gtk/po/uk.po

[GTK] Update Ukrainian translation
https://bugs.webkit.org/show_bug.cgi?id=240119

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-23
Unreviewed.

  • Source/WebCore/platform/gtk/po/uk.po:

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

1:47 PM Changeset in webkit [294678] by Karl Rackler
  • 3 edits in trunk/LayoutTests/platform

[Gardening]: [Mac wk1 Debug] webaudio/audioworket-out-of-memory.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=227845
<rdar://80398130>

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:
  • LayoutTests/platform/mac-wk1/TestExpectations:
  • LayoutTests/platform/mac/TestExpectations:

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

1:17 PM Changeset in webkit [294677] by ntim@apple.com
  • 10 edits in trunk

[css-ui] Unexpose remaining media-* appearance values
https://bugs.webkit.org/show_bug.cgi?id=240484
<rdar://93376288>

Reviewed by Aditya Keerthi.

These are made UA sheet-only (since they're used in the mediaControls*.css sheets):

  • media-fullscreen-volume-slider
  • media-slider
  • media-volume-slider

These are made internal (only used from C++ code):

  • media-fullscreen-volume-slider-thumb
  • media-sliderthumb
  • media-volume-sliderthumb

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

  • LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/CSSValueKeywords.in:
  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • Source/WebCore/html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):

  • Source/WebCore/platform/ThemeTypes.h:
  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json:
  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js:

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

12:56 PM Changeset in webkit [294676] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7613.3.1.1-branch

Cherry-pick r294186. rdar://problem/93213436

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

12:55 PM Changeset in webkit [294675] by Alan Coon
  • 7 edits in branches/safari-7613.3.1.1-branch/Source

Cherry-pick r294280. rdar://problem/87980543

REGRESSION(r249162): CanvasRenderingContext2DBase::drawImage() crashes if the image is animated and the first frame cannot be decoded
https://bugs.webkit.org/show_bug.cgi?id=239113
rdar://87980543

Reviewed by Simon Fraser.

Source/WebCore:

CanvasRenderingContext2DBase::drawImage() needs to ensure the first frame
of the animated image can be decoded correctly before creating the temporary
static image. If the first frame can't be decoded, this function should return
immediately. This matches the behavior of this function before r249162.

The animated image decodes its frames asynchronously in a work queue. But
the first frame has to be decoded synchronously in the main run loop. So
to avoid running the image decoder in two different threads we are going
to keep the first and the current frame cached when we receive a memory
pressure warning. This should not increase the memory allocation of the
animated image because the numbers of cached frames increases quickly and
we keep all of them till a memory warning is received. But the memory
pressure warning will be received a little bit more often. This depends
on the memory size of the first frame.

To make the code more robust, make ImageSource take a Ref<NativeImage>
instead of taking a RefPtr<NativeImage>.

  • html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::drawImage):
  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::destroyDecodedData):
  • platform/graphics/BitmapImage.h:
  • platform/graphics/ImageSource.cpp: (WebCore::ImageSource::ImageSource): (WebCore::ImageSource::destroyDecodedData): (WebCore::ImageSource::setNativeImage):
  • platform/graphics/ImageSource.h: (WebCore::ImageSource::create): (WebCore::ImageSource::isDecoderAvailable const): (WebCore::ImageSource::destroyAllDecodedData): Deleted. (WebCore::ImageSource::destroyAllDecodedDataExcludeFrame): Deleted. (WebCore::ImageSource::destroyDecodedDataBeforeFrame): Deleted.

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::drawSystemImage):

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

12:55 PM Changeset in webkit [294674] by Alan Coon
  • 2 edits in branches/safari-7613.3.1.1-branch/Source/bmalloc

Cherry-pick r293952. rdar://problem/92913312

Force PAS_ASSERT to generate different crash sites for each assertion.
https://bugs.webkit.org/show_bug.cgi?id=240209

Reviewed by Yusuke Suzuki.

Clang currently optimizes all crash sites into one in each function. Hence, if we
get a crash address at the 1 crash site, we don't know which failed assertion got
us there. This patch uses an asm statement to force Clang to emit a different
crash site for each assertion.

Benchmarks show that performance is neutral on both Jetstream2 and Speedometer2.

Size-wise, there is some increase. The following is the "size" output on
JavaScriptCore on M1:

TEXT. DATA OBJC others dec hex

old 19628032 180224 0 18792448 38600704 24d0000
new 19644416 180224 0 19251200 39075840 2544000

diff 16384 0 0 458752 475136

The increase in the "others" categories are mostly in the String Table, Symbol
Table, and Function Start Addresses. These take up disk space but should not
impact RAM usage unless they are accessed by a a debugger.

  • libpas/src/libpas/pas_utils.h: (pas_assertion_failed):

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

12:55 PM Changeset in webkit [294673] by Alan Coon
  • 6 edits
    2 adds in branches/safari-7613.3.1.1-branch

Cherry-pick r289713. rdar://problem/93601919

Expose the correct role, subrole and role description properties for the <dialog> element.
https://bugs.webkit.org/show_bug.cgi?id=236359

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/dialog-properties.html

Elements with role="dialog" are exposed to accessibility clients with
role AXGroup, subrole AXApplicationDialog and role description
"web dialog". This patch implements this behavior for the <dialog>
element.

  • accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::defaultObjectInclusion const):

LayoutTests:

Tests that these AX properties have the expected values both when the
dialog is shown modal or modeless.

  • accessibility/dialog-properties-expected.txt: Added.
  • accessibility/dialog-properties.html: Added.

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

12:52 PM Changeset in webkit [294672] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7613.3.1.0-branch

Cherry-pick r294186. rdar://problem/93213436

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

Canonical link: https://commits.webkit.org/250552@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:51 PM Changeset in webkit [294671] by mmaxfield@apple.com
  • 1 edit in trunk/metadata/contributors.json

Add Mike Wyrzykowski to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240816

Unreviewed.

He is a contributor.

  • metadata/contributors.json:

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

12:46 PM Changeset in webkit [294670] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit/UIProcess

REGRESSION (r294469): [ iOS ] TestWebKitAPI.NSAttributedStringWebKitAdditions.DirectoriesNotCreated is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240690

Reviewed by Chris Dumez.

r294469 failed to check if WebsiteDataStore is persistent before getting and creating directories in WebProcessPool. To
fix this and to avoid future issues, we make WebsiteDataStore return null for directory getters if it's not persistent.

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::GPUProcessProxy):

  • Source/WebKit/UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::cookieStorageDirectory const):
(WebKit::WebsiteDataStore::containerCachesDirectory const):
(WebKit::WebsiteDataStore::parentBundleDirectory const):
(WebKit::WebsiteDataStore::networkingCachesDirectory const):
(WebKit::WebsiteDataStore::containerTemporaryDirectory const):
(WebKit::WebsiteDataStore::defaultContainerTemporaryDirectory):
(WebKit::WebsiteDataStore::cookieStorageDirectory): Deleted.
(WebKit::WebsiteDataStore::containerCachesDirectory): Deleted.
(WebKit::WebsiteDataStore::parentBundleDirectory): Deleted.
(WebKit::WebsiteDataStore::networkingCachesDirectory): Deleted.
(WebKit::WebsiteDataStore::containerTemporaryDirectory): Deleted.

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:

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

12:44 PM Changeset in webkit [294669] by Alan Coon
  • 7 edits in branches/safari-7613.3.1.0-branch/Source

Cherry-pick r294280. rdar://problem/87980543

REGRESSION(r249162): CanvasRenderingContext2DBase::drawImage() crashes if the image is animated and the first frame cannot be decoded
https://bugs.webkit.org/show_bug.cgi?id=239113
rdar://87980543

Reviewed by Simon Fraser.

Source/WebCore:

CanvasRenderingContext2DBase::drawImage() needs to ensure the first frame
of the animated image can be decoded correctly before creating the temporary
static image. If the first frame can't be decoded, this function should return
immediately. This matches the behavior of this function before r249162.

The animated image decodes its frames asynchronously in a work queue. But
the first frame has to be decoded synchronously in the main run loop. So
to avoid running the image decoder in two different threads we are going
to keep the first and the current frame cached when we receive a memory
pressure warning. This should not increase the memory allocation of the
animated image because the numbers of cached frames increases quickly and
we keep all of them till a memory warning is received. But the memory
pressure warning will be received a little bit more often. This depends
on the memory size of the first frame.

To make the code more robust, make ImageSource take a Ref<NativeImage>
instead of taking a RefPtr<NativeImage>.

  • html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::drawImage):
  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::destroyDecodedData):
  • platform/graphics/BitmapImage.h:
  • platform/graphics/ImageSource.cpp: (WebCore::ImageSource::ImageSource): (WebCore::ImageSource::destroyDecodedData): (WebCore::ImageSource::setNativeImage):
  • platform/graphics/ImageSource.h: (WebCore::ImageSource::create): (WebCore::ImageSource::isDecoderAvailable const): (WebCore::ImageSource::destroyAllDecodedData): Deleted. (WebCore::ImageSource::destroyAllDecodedDataExcludeFrame): Deleted. (WebCore::ImageSource::destroyDecodedDataBeforeFrame): Deleted.

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::drawSystemImage):

Canonical link: https://commits.webkit.org/250624@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294280 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:44 PM Changeset in webkit [294668] by Alan Coon
  • 2 edits in branches/safari-7613.3.1.0-branch/Source/bmalloc

Cherry-pick r293952. rdar://problem/92913312

Force PAS_ASSERT to generate different crash sites for each assertion.
https://bugs.webkit.org/show_bug.cgi?id=240209

Reviewed by Yusuke Suzuki.

Clang currently optimizes all crash sites into one in each function. Hence, if we
get a crash address at the 1 crash site, we don't know which failed assertion got
us there. This patch uses an asm statement to force Clang to emit a different
crash site for each assertion.

Benchmarks show that performance is neutral on both Jetstream2 and Speedometer2.

Size-wise, there is some increase. The following is the "size" output on
JavaScriptCore on M1:

TEXT. DATA OBJC others dec hex

old 19628032 180224 0 18792448 38600704 24d0000
new 19644416 180224 0 19251200 39075840 2544000

diff 16384 0 0 458752 475136

The increase in the "others" categories are mostly in the String Table, Symbol
Table, and Function Start Addresses. These take up disk space but should not
impact RAM usage unless they are accessed by a a debugger.

  • libpas/src/libpas/pas_utils.h: (pas_assertion_failed):

Canonical link: https://commits.webkit.org/250398@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293952 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:44 PM Changeset in webkit [294667] by Alan Coon
  • 6 edits
    2 adds in branches/safari-7613.3.1.0-branch

Cherry-pick r289713. rdar://problem/93601919

Expose the correct role, subrole and role description properties for the <dialog> element.
https://bugs.webkit.org/show_bug.cgi?id=236359

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/dialog-properties.html

Elements with role="dialog" are exposed to accessibility clients with
role AXGroup, subrole AXApplicationDialog and role description
"web dialog". This patch implements this behavior for the <dialog>
element.

  • accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::defaultObjectInclusion const):

LayoutTests:

Tests that these AX properties have the expected values both when the
dialog is shown modal or modeless.

  • accessibility/dialog-properties-expected.txt: Added.
  • accessibility/dialog-properties.html: Added.

Canonical link: https://commits.webkit.org/247198@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:41 PM Changeset in webkit [294666] by eric.carlson@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm

[macOS] 3 TestWebKitAPI.GetDisplayMediaTest API tests time out
https://bugs.webkit.org/show_bug.cgi?id=240813
rdar://92831194

Reviewed by Youenn Fablet.

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

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't
prompt for getDisplayMedia if the UI delegate implements the old SPI.

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

12:33 PM Changeset in webkit [294665] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.1-branch/Source

Versioning.

WebKit-7613.3.1.1.3

12:21 PM Changeset in webkit [294664] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/html

MediaController should be an ContextDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=240749
<rdar://93525670>

Reviewed by Youenn Fablet.

  • html/MediaController.cpp:

(WebCore::MediaController::MediaController):

  • html/MediaController.h:

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

12:11 PM Changeset in webkit [294663] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.0-branch/Source

Versioning.

WebKit-7613.3.1.0.3

11:54 AM Changeset in webkit [294662] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.10.3

Tag WebKit-7614.1.14.10.3.

11:53 AM Changeset in webkit [294661] by Jonathan Bedard
  • 6 edits in trunk/Tools/Scripts/libraries

git webkit setup opens a GitHub web page without warning
https://bugs.webkit.org/show_bug.cgi?id=240490
<rdar://93522009>

Reviewed by Alexey Proskuryakov.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.credentials.prompt): Prompt user before generating token.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:

(Terminal.open_url): Allow caller to specify a prompt before opening URL.

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

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

Use kCGImageSourceCreateUnpremultipliedPNG on iOS family to correctly read PNG files without premultiplication.
https://bugs.webkit.org/show_bug.cgi?id=240137
<rdar://93198134>

Patch by John Cunningham <johncunningham@apple.com> on 2022-05-23
Reviewed by Simon Fraser.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):

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

11:36 AM Changeset in webkit [294659] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.3

11:16 AM Changeset in webkit [294658] by eric.carlson@apple.com
  • 2 edits
    1 move in trunk/Tools/TestWebKitAPI

REGRESSION(r293671): [ iOS ] 2 TestWebKitAPI.MediaLoading.RangeRequestSynthesis (API-Tests) are constant failures
https://bugs.webkit.org/show_bug.cgi?id=240033
rdar://92689429

Refactor the new code, add the transport stream to the copy resources step.

Reviewed by Jer Noble.

  • Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add .ts file, copy to resources.
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST): Update test.

  • Tools/TestWebKitAPI/Tests/WebKit/cocoa/start-offset.ts -> Tools/TestWebKitAPI/Tests/WebKitCocoa/start-offset.ts

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

11:05 AM Changeset in webkit [294657] by Alan Coon
  • 4 edits in branches/safari-7614.1.14.0-branch

Cherry-pick r294589. rdar://problem/92006847

[MacCatalyst] REGRESSION(r290091): sometimes can hang if WKWebView is unparented before the next visible content rect update
https://bugs.webkit.org/show_bug.cgi?id=240691
<rdar://problem/92006847>

Reviewed by Wenson Hsieh.

Test: WKWebViewResize.RemovesAssertionsAfterMovingToWindow

  • Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _processWillSwapOrDidExit]): (-[WKWebView didMoveToWindow]): (-[WKWebView _acquireResizeAssertionForReason:]): Drive-by: WebProcess crashes should also clear the resize assertions. Drive-by: Add a 1s timeout in case the next visible content rect update takes too long.
  • Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm: (-[WKWebView _hasResizeAssertion]): Added.
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewResize.mm: (TEST.WKWebViewResize.RemovesAssertionsAfterMovingToWindow): Added.

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

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

11:02 AM Changeset in webkit [294656] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.9

10:58 AM Changeset in webkit [294655] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.9

10:57 AM Changeset in webkit [294654] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

[Cocoa] fast/text/international/generic-font-family-language-traditional.html is failing due to language minimization
https://bugs.webkit.org/show_bug.cgi?id=240751
<rdar://problem/93394618>

Reviewed by Chris Dumez.

We're saying the language list ["en", "zh-tw"] gets minimized to en, which then removes the signal about whether we should render simplified or traditional Chinese.

On one hand, this is kind of good, because the whole point of minimization is to make different browser configurations in the same bucket as identical. On the other hand, it means a user with these language preferences won't get the rendering they expect.

I could change the test to just use the language list zh-tw and I think it would still test the thing it's trying to test, so that's what this patch does.

  • LayoutTests/fast/text/international/generic-font-family-language-traditional.html:
  • LayoutTests/platform/ios/TestExpectations:
  • LayoutTests/platform/mac/TestExpectations:

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

10:54 AM Changeset in webkit [294653] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: REGRESSION (r294536): [ macOS Release wk2 ] Twelve webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240735

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

10:32 AM Changeset in webkit [294652] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: REGRESSION (r293885?): [ macOS wk2 ] webrtc/canvas-to-peer-connection.html is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240814
<rdar://93768909>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

10:11 AM Changeset in webkit [294651] by Patrick Angle
  • 2 edits in trunk/Source/WebKit/UIProcess/API/Cocoa

Web Driver: Expose new isPendingTermination property on _WKAutomationSession
https://bugs.webkit.org/show_bug.cgi?id=240669
rdar://93367943

Reviewed by Devin Rousso.

  • Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.h:
  • Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession isPendingTermination]):

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

10:09 AM Changeset in webkit [294650] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm

Bump the priority of iOS ProcessAssertion Queue
https://bugs.webkit.org/show_bug.cgi?id=240784

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-23
Reviewed by Chris Dumez.

It is important to acquire assertions in a timely manner as otherwise the UIProcess
might think a process is unresponsive.
Bump the priority to WorkQueue::QOS::UserInitiated.

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

(assertionsWorkQueue):

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

9:55 AM Changeset in webkit [294649] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[Gardening]: [ iOS ] fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=231266
<rdar://83910715>

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

9:36 AM Changeset in webkit [294648] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: REGRESSION (r294536): [ macOS Release wk2 ] Twelve webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240735

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

9:32 AM Changeset in webkit [294647] by ntim@apple.com
  • 8 edits in trunk

[css-ui] Restrict default-button CSS appearance value to useSystemAppearance
https://bugs.webkit.org/show_bug.cgi?id=240391

Reviewed by Aditya Keerthi.

This appearance value renders a button in its highlighted state to designate a button that is activated by default on macOS.

The most important reason to keep it around is for internal macOS apps, so we restrict it to webviews with useSystemAppearance.

  • LayoutTests/editing/deleting/insert-in-orphaned-selection-crash.html:
  • LayoutTests/editing/deleting/insert-in-orphaned-selection-crash-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json:
  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js:

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

9:09 AM Changeset in webkit [294646] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-app/ews/views/statusbubble.py

Disable mac-debug-wk1 ews status bubble
https://bugs.webkit.org/show_bug.cgi?id=240803

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-app/ews/views/statusbubble.py:

(StatusBubble):

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

9:04 AM Changeset in webkit [294645] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/Modules/webdatabase/Database.cpp

Regression(r294611): ASSERTION FAILED: m_isConstructed under WebCore::fullyQualifiedInfoTableName()
https://bugs.webkit.org/show_bug.cgi?id=240800

Unreviewed, use LazyNeverDestroyed::construct() instead of assignment to LazyNeverDestroyed::get()
to address the debug assertion on the bots.

  • Source/WebCore/Modules/webdatabase/Database.cpp:

(WebCore::fullyQualifiedInfoTableName):

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

8:58 AM Changeset in webkit [294644] by commit-queue@webkit.org
  • 1 edit in trunk/metadata/contributors.json

Update philn's emails in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240799

Patch by Philippe Normand <philn@igalia.com> on 2022-05-23
Unreviewed.

  • metadata/contributors.json: Update philn's emails and expertise.

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

8:44 AM Changeset in webkit [294643] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/gtk/po/sv.po

[GTK] Update Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=240791

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-23
Unreviewed.

  • Source/WebCore/platform/gtk/po/sv.po:

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

8:35 AM Changeset in webkit [294642] by Mikhail R. Gadelha
  • 4 edits in trunk

Unskip JSTests/stress/shadow-realm-import-value.js on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=240662

Reviewed by Yusuke Suzuki.

Fix tag and payload being swapped in the resultRegs object.

Also updated some places that can use JSRInfo::returnValueJSR instead
of manually writing the GPR order.

Patch by Geza Lore and Mikhail R. Gadelha.

  • jit/ThunkGenerators.cpp: (JSC::boundFunctionCallGenerator): (JSC::remoteFunctionCallGenerator):

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

8:13 AM WebKitEmacsTips edited by Philippe Normand
(diff)
8:02 AM Changeset in webkit [294641] by ntim@apple.com
  • 24 edits
    5 deletes in trunk

[css-ui] Remove support for appearance: media-controls-{dark/light}-bar-background
https://bugs.webkit.org/show_bug.cgi?id=240756

Reviewed by Antoine Quint.

Reverts r180965 (adapted with new code), this was originally added for old media controls, but was never used.

Marked relevant WPT as passing.

  • LayoutTests/compositing/media-controls-bar-appearance-big-expected.txt: Removed.
  • LayoutTests/compositing/media-controls-bar-appearance-big.html: Removed.
  • LayoutTests/compositing/media-controls-bar-appearance-expected.txt: Removed.
  • LayoutTests/compositing/media-controls-bar-appearance.html: Removed.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/ios/compositing/media-controls-bar-appearance-expected.txt: Removed.
  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/CSSValueKeywords.in:
  • Source/WebCore/platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/ThemeTypes.h:
  • Source/WebCore/platform/graphics/GraphicsLayer.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/GraphicsLayer.h:
  • Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::changeLayerTypeTo):
(WebCore::layerTypeForCustomBackdropAppearance): Deleted.
(WebCore::isCustomBackdropLayerType): Deleted.

  • Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
  • Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/ca/PlatformCALayer.h:
  • Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
(WebCore::PlatformCALayerCocoa::updateCustomAppearance):

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

(printLayer):

  • Source/WebCore/rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateConfigurationAfterStyleChange):
(WebCore::RenderLayerBacking::updateCustomAppearance): Deleted.

  • Source/WebCore/rendering/RenderLayerBacking.h:
  • Source/WebKit/Platform/spi/ios/UIKitSPI.h:
  • Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::updateCustomAppearance):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
(WebKit::RemoteLayerTreePropertyApplier::updateMask):

  • Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
  • Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKBackdropView hitTest:withEvent:]): Deleted.
(-[WKBackdropView description]): Deleted.

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

7:58 AM Changeset in webkit [294640] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore/rendering

Remove RenderTheme::adjustSearchFieldDecorationStyle()
https://bugs.webkit.org/show_bug.cgi?id=240798

Reviewed by Antti Koivisto.

Let appearance: auto; handle this instead, to centralize this in one place.

  • Source/WebCore/rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::autoAppearanceForElement const):
(WebCore::RenderTheme::adjustSearchFieldDecorationStyle const): Deleted.

  • Source/WebCore/rendering/RenderTheme.h:

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

7:34 AM Changeset in webkit [294639] by commit-queue@webkit.org
  • 1 edit in trunk/metadata/contributors.json

Add github account for Kimmo Kinnunen
https://bugs.webkit.org/show_bug.cgi?id=240789

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-23
Unreviewed.

  • metadata/contributors.json:

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

6:49 AM Changeset in webkit [294638] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore/layout

Add support for block direction grow
https://bugs.webkit.org/show_bug.cgi?id=240776

Reviewed by Antti Koivisto.

This is a basic block direction grow support (e.g. default block direction (top->bottom) with flex direction of column) when
flex box's height is fixed.

  • Source/WebCore/layout/formattingContexts/FormattingConstraints.h:
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::updateRenderers const):

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

6:41 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
6:38 AM Changeset in webkit [294637] by commit-queue@webkit.org
  • 2 edits in trunk

RealtimeOutgoingVideoSourceCocoa pixelBufferPool should use video range
https://bugs.webkit.org/show_bug.cgi?id=240463
rdar://problem/93354226

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-23
Reviewed by Eric Carlson.

We switched to using a pixel conformer that was using preferredPixelFormat to using libyuv routine.
Update the pixel buffer pool to use kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange to be compliant with libyuv routines.

  • LayoutTests/platform/ios/TestExpectations:
  • Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::pixelBufferPool):

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

6:24 AM Changeset in webkit [294636] by Adrian Perez de Castro
  • 1 edit in releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp

Merge r294540 - [GStreamer] Block legacy VAAPI plugin
https://bugs.webkit.org/show_bug.cgi?id=240664

Patch by Philippe Normand <philn@igalia.com> on 2022-05-20
Reviewed by Xabier Rodriguez-Calvar.

The VAAPI plugin is not much maintained anymore and prone to rendering issues. In the
mid-term we will leverage the new stateless VA decoders. Disable the legacy plugin,
unless the WEBKIT_GST_ENABLE_LEGACY_VAAPI environment variable is set to 1.

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

(WebCore::registerWebKitGStreamerElements):

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

6:23 AM Changeset in webkit [294635] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r293319 - [GStreamer] Disable new demuxers based on adaptivedemux2
https://bugs.webkit.org/show_bug.cgi?id=239701

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

The new demuxers based on adaptivedemux2 cannot be used in WebKit yet because this new base
class does not abstract away network access. They can't work in a sandboxed media process,
so demote their rank in order to prevent decodebin3 from auto-plugging them.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

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

6:14 AM Changeset in webkit [294634] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore/platform/graphics/gstreamer/mse

REGRESSION(r290375) [GStreamer] Deadlock in WebProcess termination if AppendPipeline is started
https://bugs.webkit.org/show_bug.cgi?id=240716

Patch by Olivier Blin <Olivier Blin> on 2022-05-23
Reviewed by Alicia Boya Garcia.

Since r290375, GStreamer ports are calling gst_deinit() at WebProcess
termination.

This is causing a deadlock if a MSE SourceBuffer has been instantiated.
That is because the GstTask from the appsrc element in the
AppendPipeline is still running.

To avoid the deadlock, stop the appsrc element in the AppendPipeline
when the SourceBuffer is removed from the MediaSource, since it will
not be useful anymore after being removed from its associated MediaSource.

The W3C spec of MediaSource.removeSourceBuffer mentions as a last step
that it should destroy all resources for sourceBuffer.

The MediaSource will be stopped at WebProcess termination, since
active DOM objects are stopped when detaching the frame.
This ensures that MediaSource is detached from its media element, and
that it removes its source buffers.

Drive-by fix: remove resetPipeline declaration, deleted in r238892

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

(WebCore::AppendPipeline::stopParser):

  • Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:
  • Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):

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

4:33 AM Changeset in webkit [294633] by Ziran Sun
  • 1 edit in trunk/Source/WebCore/css/html.css

Remove unnecessary appearance: auto; declarations in html.css.
https://bugs.webkit.org/show_bug.cgi?id=240764

input and select already have an appearance: auto rule.

Reviewed by Tim Nguyen.

  • Source/WebCore/css/html.css:

(#endif):
(input[type="search"]::-webkit-search-cancel-button):
(input[type="search"]::-webkit-search-decoration):
(#if defined(ENABLE_DATE_AND_TIME_INPUT_TYPES) && ENABLE_DATE_AND_TIME_INPUT_TYPES):
(input:is([type="button"], [type="submit"], [type="reset"])):
(input[type="file"]::file-selector-button):
(input[type="checkbox"]):
(#if !(defined(WTF_PLATFORM_IOS_FAMILY) && WTF_PLATFORM_IOS_FAMILY)):
(select:is([size=""], [size="0"], [size="1"])):

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

4:21 AM Changeset in webkit [294632] by commit-queue@webkit.org
  • 2 edits in trunk

[JSC] Do not use bytecode cache on $.agent worker threads

Patch by Geza Lore <Geza Lore> on 2022-05-23
https://bugs.webkit.org/show_bug.cgi?id=240642

Reviewed by Yusuke Suzuki.

Workers started via $.agent.start are not shut down in a synchronous
manner, and it is possible the main thread terminates the process while
a worker is writing its bytecode cache, which results in intermittent
test failures. As $.agent.start is only a rarely used testing facility,
we simply do not cache bytecode on these threads.

Also un-skip test on ARMv7 that used to fail because of this.

  • Source/JavaScriptCore/jsc.cpp:

(Worker::isMain const):
(Worker::Worker):
(runJSC):

  • JSTests/stress/lars-sab-workers.js:

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

3:37 AM Changeset in webkit [294631] by commit-queue@webkit.org
  • 1 edit in trunk/JSTests/stress/class-subclassing-function.js

Re-enable JSTests/stress/class-subclassing-function.js in ARM+NoLLInt
https://bugs.webkit.org/show_bug.cgi?id=240648

Patch by Joseph Griego <jgriego@igalia.com> on 2022-05-23
Reviewed by Yusuke Suzuki.

This was originally skipped in
https://bugs.webkit.org/show_bug.cgi?id=194285 because it runs out of
executable memory without LLInt; this seems to no longer be the case, at
least as far as my testing revealed, and EWS can hopefully confirm this

Re-enable the test in ARM+NoLLInt configurations.

  • JSTests/stress/class-subclassing-function.js:

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

3:34 AM Changeset in webkit [294630] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Add a runtime setting for switching on/off AudioSampleDataSource buffer adaptation
https://bugs.webkit.org/show_bug.cgi?id=240634

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-23
Reviewed by Eric Carlson.

  • Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml:
  • Source/WebCore/page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCAudioLatencyAdaptationEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCAudioLatencyAdaptationEnabled):

  • Source/WebCore/platform/audio/cocoa/AudioSampleDataConverter.mm:

(WebCore::AudioSampleDataConverter::updateBufferedAmount):

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

2:06 AM Changeset in webkit [294629] by ntim@apple.com
  • 14 edits
    3 deletes in trunk

[css-ui] Remove media-play-button and media-volume-slider-mute appearance values
https://bugs.webkit.org/show_bug.cgi?id=240760

Reviewed by Antti Koivisto.

These are unimplemented/no-op on all platforms.

  • LayoutTests/fast/css-generated-content/empty-first-letter-with-columns-crash.html:
  • LayoutTests/fast/multicol/readjust-first-child-on-attach.html:

Stop using these appearance values in crashtests.

  • LayoutTests/imported/blink/fast/css-generated-content/empty-first-letter-with-columns-crash.html: Removed.

Remove duplicate test.

  • LayoutTests/imported/blink/media/video-webkit-appearance-expected.html: Removed.
  • LayoutTests/imported/blink/media/video-webkit-appearance.html: Removed.

Remove no longer relevant crashtest.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Marked subtests as passing.

  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/CSSValueKeywords.in:
  • Source/WebCore/css/mediaControls.css:

Clean up stylesheet and stop using unsupported appearance values.
(:is(audio, video)::-webkit-media-controls-panel):
(video:-webkit-full-page-media):
(:is(audio, video)::-webkit-media-controls-mute-button,):
(:is(audio, video)::-webkit-media-controls-overlay-play-button):
(:is(audio, video)::-webkit-media-controls-timeline-container):
(:is(audio, video)::-webkit-media-controls-current-time-display,):
(:is(audio, video)::-webkit-media-controls-timeline):
(:is(audio, video)::-webkit-media-controls-volume-slider):
(:is(audio, video)::-webkit-media-controls-seek-back-button,):
(:is(audio, video)::-webkit-media-controls-rewind-button,):
(:is(audio, video)::-webkit-media-controls-closed-captions-container,):
(:is(audio, video)::-webkit-media-controls-volume-slider-mute-button):
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel): Deleted.
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button): Deleted.
(audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button): Deleted.
(audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button): Deleted.
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container): Deleted.
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display): Deleted.
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display): Deleted.
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): Deleted.
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider): Deleted.
(audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button): Deleted.
(audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button): Deleted.
(audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button): Deleted.
(audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button): Deleted.
(audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button): Deleted.
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button): Deleted.
(audio::-webkit-media-controls-closed-captions-container, video::-webkit-media-controls-closed-captions-container): Deleted.
(audio::-webkit-media-controls-closed-captions-track-list, video::-webkit-media-controls-closed-captions-track-list): Deleted.
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button): Deleted.
(audio::-webkit-media-controls-fullscreen-volume-slider, video::-webkit-media-controls-fullscreen-volume-slider): Deleted.
(audio::-webkit-media-controls-fullscreen-volume-min-button, video::-webkit-media-controls-fullscreen-volume-min-button): Deleted.
(audio::-webkit-media-controls-fullscreen-volume-max-button, video::-webkit-media-controls-fullscreen-volume-max-button): Deleted.

  • Source/WebCore/platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/ThemeTypes.h:
  • Source/WebCore/rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustMediaControlStyle const): Deleted.

  • Source/WebCore/rendering/RenderTheme.h:

(WebCore::RenderTheme::paintMediaPlayButton): Deleted.
(WebCore::RenderTheme::paintMediaMuteButton): Deleted.

  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json:
  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js:

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

1:59 AM Changeset in webkit [294628] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

IPC stream work queues lack autoreleasepools
https://bugs.webkit.org/show_bug.cgi?id=240647
<rdar://problem/93575653>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-23
Reviewed by Simon Fraser.

Add the autorelease pool to each iteration of IPC stream message
processing.

This prevents leaks where the callgraph ends up using Objective-C
APIs that instantiate autoreleased objects. From WebKit code,
examples are things like dictionary literals from IOSurface.mm and
strings. Similarly other platform APIs use other similar, typically
small temporary autoreleased objects. Compared to GPUP held graphics
objects, even long running GPUP processes did not accumulate that much
leaked memory. The footprint would hike up 1-6 mb per hour on repeated
animation in the simplest case.

  • Source/WebKit/Platform/IPC/StreamConnectionWorkQueue.cpp:

(IPC::StreamConnectionWorkQueue::processStreams):

  • Source/WebKit/Shared/IPCStreamTester.cpp:

(WebKit::releaseUseCountHolder):
(WebKit::IPCStreamTester::checkAutoreleasePool):

  • Source/WebKit/Shared/IPCStreamTester.h:
  • Source/WebKit/Shared/IPCStreamTester.messages.in:
  • LayoutTests/ipc/stream-check-autoreleasepool-expected.txt: Added.
  • LayoutTests/ipc/stream-check-autoreleasepool.html: Added.

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

May 22, 2022:

11:45 PM Changeset in webkit [294627] by commit-queue@webkit.org
  • 1 edit in trunk/JSTests/wasm/wasm.json

WebAssembly: sync wasm.json files
https://bugs.webkit.org/show_bug.cgi?id=240741

Patch by Asumu Takikawa <asumu@igalia.com> on 2022-05-22
Reviewed by Yusuke Suzuki.

  • JSTests/wasm/wasm.json:

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

11:31 PM Changeset in webkit [294626] by Lauro Moura
  • 2 edits in trunk/Source/WebKit/Shared

Ignore SIGPIPE in subprocesses
https://bugs.webkit.org/show_bug.cgi?id=240444

Reviewed by Adrian Perez de Castro.

One common case where ignoring SIGPIPE is desired is to avoid issues
when logging to journald and it crashes. As stated in
https://www.freedesktop.org/software/systemd/man/systemd-journald.service

"In order to react gracefully in this (journald stopped) case it is
recommended that programs logging to standard output/error ignore such
errors."

  • Shared/AuxiliaryProcess.cpp: Avoid default platformInitialize on

Unix.

  • Shared/unix/AuxiliaryProcessMain.cpp:

(WebKit::AuxiliaryProcess::platformInitialize): Added, ignore SIGPIPE.

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

9:43 PM Changeset in webkit [294625] by commit-queue@webkit.org
  • 1 edit in trunk/LayoutTests/platform/glib/TestExpectations

Unreviewed, gardening glib timeouts
https://bugs.webkit.org/show_bug.cgi?id=240783

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

6:23 PM Changeset in webkit [294624] by Fujii Hironori
  • 2 edits in trunk/LayoutTests/platform

[WinCairo] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=240439

  • LayoutTests/platform/wincairo-wk1/TestExpectations:
  • LayoutTests/platform/wincairo/TestExpectations:

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

1:50 PM Changeset in webkit [294623] by Alan Bujtas
  • 6 edits
    1 add in trunk/Source/WebCore

Flex layout may use flex box's height to stretch flex items
https://bugs.webkit.org/show_bug.cgi?id=240774

Reviewed by Antti Koivisto.

This is in preparation for being able to stretch the flex items vertically (e.g. when the flex box has fixed height)

  • Source/WebCore/Headers.cmake:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/layout/formattingContexts/FormattingConstraints.h:

(WebCore::Layout::ConstraintsForInFlowContent::isConstraintsForFlexContent const):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingConstraints.h: Added.

(WebCore::Layout::ConstraintsForFlexContent::availableVerticalSpace const):
(WebCore::Layout::ConstraintsForFlexContent::ConstraintsForFlexContent):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContent):
(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:
  • Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::layout):

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

12:43 PM Changeset in webkit [294622] by Tyler Wilcock
  • 1 edit
    1 add in trunk/LayoutTests/platform/ios

AX: Update expectation for accessibility/aria-modal-with-text-crash.html on iOS
https://bugs.webkit.org/show_bug.cgi?id=240729

Reviewed by Chris Fleizach.

This test just needed a rebaseline.

  • LayoutTests/platform/ios/TestExpectations:
  • LayoutTests/platform/ios/accessibility/aria-modal-with-text-crash-expected.txt: Added.

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

11:00 AM Changeset in webkit [294621] by Patrick Angle
  • 10 edits in trunk

Unreviewed, reverting r249538 & r249598.
https://bugs.webkit.org/show_bug.cgi?id=240769

Introduced inconsistencies between backend and frontend DOM tree state.

Reverted changesets:

"Web Inspector: preserve DOM.NodeId if a node is removed and re-added"
https://bugs.webkit.org/show_bug.cgi?id=189687
https://commits.webkit.org/249538

"Web Inspector: Clean up WI.DOMNode to no longer require the shared WI.DOMManager be passed during construction"
https://bugs.webkit.org/show_bug.cgi?id=239129
https://commits.webkit.org/249598

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

7:36 AM Changeset in webkit [294620] by Antti Koivisto
  • 1 edit
    2 adds in trunk

REGRESSION(r293956): Bad color inheritance due to disallowsFastPathInheritance bit missing from RenderStyle::copyNonInheritedFrom
https://bugs.webkit.org/show_bug.cgi?id=240770

Reviewed by Alan Bujtas.

Test: fast/css/color-inheritance-dynamic.html

  • Source/WebCore/rendering/style/RenderStyle.h:

(WebCore::RenderStyle::NonInheritedFlags::copyNonInheritedFrom):

Add it.

  • LayoutTests/fast/css/color-inheritance-dynamic-expected.html: Added.
  • LayoutTests/fast/css/color-inheritance-dynamic.html: Added.

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

3:00 AM Changeset in webkit [294619] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

Clear StructureCache if it has Structure with relevant JSGlobalObjects
https://bugs.webkit.org/show_bug.cgi?id=240768
rdar://93232129

Reviewed by Saam Barati.

We need to clear Structures in StructureCache when having-a-bad-time: it is possible that Structure could have this have-a-bad-time
relevant JSGlobalObjects in its prototype chain. We are clearing it for InternalFunction's allocation cache. We should do the
same thing for JSGlobalObject's StructureCache.

This patch adds new watchpoint, structureCacheClearedWatchpoint. And use it in DFG. This watchpoint fires when the cache is cleared,
and it can happen even though JSGlobalObject is not getting have-a-bad-time.

  • JSTests/stress/global-object-have-a-bad-time-dependency.js: Added.

(shouldBe):
(cons):

  • Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:

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

  • Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • Source/JavaScriptCore/runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):
(JSC::JSGlobalObject::clearStructureCache):

  • Source/JavaScriptCore/runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::structureCacheClearedWatchpoint):
(JSC::JSGlobalObject::isStructureCacheCleared const):

  • Source/JavaScriptCore/runtime/StructureCache.h:

(JSC::StructureCache::forEach):

  • Source/JavaScriptCore/runtime/WeakGCMap.h:

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

Note: See TracTimeline for information about the timeline view.