Timeline



May 26, 2022: Today

2:56 PM Changeset in webkit [294900] by Jonathan Bedard
  • 7 edits in trunk/Tools/Scripts/libraries/webkitscmpy

[git-webkit] Use --git-common-dir over hard-coded .git
https://bugs.webkit.org/show_bug.cgi?id=240732
<rdar://93676555>

Reviewed by Dewei Zhu.

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

(Git.Cache.path): Use common_directory instead of .git.
(Git.is_svn): Ditto.
(Git.common_directory): Attempt to determine path to .git directory with
git rev-parse --git-common-dir.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.common_directory): Added.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.Cache.path): Use common_directory instead of .svn.
(Svn.common_directory): Added.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Use common_directory instead of .git.

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

2:31 PM Changeset in webkit [294899] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in

[iOS][GPUP] Block unused system calls
https://bugs.webkit.org/show_bug.cgi?id=240960
<rdar://84826074>

Reviewed by Chris Dumez.

  • Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:

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

2:29 PM Changeset in webkit [294898] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in

[macOS][GPUP] Block unused system calls
https://bugs.webkit.org/show_bug.cgi?id=240966
<rdar://84826074>

Reviewed by Chris Dumez.

  • Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

2:12 PM Changeset in webkit [294897] by david_quesada@apple.com
  • 22 edits in trunk

Define WK_NOT_NO in SDKVariant.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=240963
rdar://problem/93984643

Reviewed by Alexey Proskuryakov.

Provide a definition of WK_NOT_NO = YES, so that the $(WK_NOT_$(SOME_BUILD_SETTING)) construction can
be relied upon to produce a result of YES if the original build setting has a value of NO, which shouldn't
be handled substantially different from an empty string.

  • PerformanceTests/MediaTime/Configurations/SDKVariant.xcconfig:
  • Source/JavaScriptCore/Configurations/SDKVariant.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/SDKVariant.xcconfig:
  • Source/ThirdParty/gtest/xcode/Config/SDKVariant.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/SDKVariant.xcconfig:
  • Source/WTF/Configurations/SDKVariant.xcconfig:
  • Source/WebCore/Configurations/SDKVariant.xcconfig:
  • Source/WebCore/PAL/Configurations/SDKVariant.xcconfig:
  • Source/WebGPU/Configurations/SDKVariant.xcconfig:
  • Source/WebInspectorUI/Configurations/SDKVariant.xcconfig:
  • Source/WebKit/Configurations/SDKVariant.xcconfig:
  • Source/WebKitLegacy/mac/Configurations/SDKVariant.xcconfig:
  • Source/bmalloc/Configurations/SDKVariant.xcconfig:
  • Tools/ContentExtensionTester/Configurations/SDKVariant.xcconfig:
  • Tools/DumpRenderTree/mac/Configurations/SDKVariant.xcconfig:
  • Tools/ImageDiff/cg/Configurations/SDKVariant.xcconfig:
  • Tools/MiniBrowser/Configurations/SDKVariant.xcconfig:
  • Tools/MobileMiniBrowser/Configurations/SDKVariant.xcconfig:
  • Tools/TestWebKitAPI/Configurations/SDKVariant.xcconfig:
  • Tools/WebEditingTester/Configurations/SDKVariant.xcconfig:
  • Tools/WebKitTestRunner/Configurations/SDKVariant.xcconfig:
  • Tools/lldb/lldbWebKitTester/Configurations/SDKVariant.xcconfig:

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

2:07 PM Changeset in webkit [294896] by don.olmstead@sony.com
  • 1 edit in trunk/Source/WebCore/accessibility/AXObjectCache.h

Fix !ENABLE(ACCESSIBILITY) after r294878
https://bugs.webkit.org/show_bug.cgi?id=240976

Reviewed by Chris Fleizach.

Some methods with AXObjectCache were missing an !ENABLE(ACCESSIBILITY) build.

  • Source/WebCore/accessibility/AXObjectCache.h:

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

1:45 PM Changeset in webkit [294895] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Build with -Wno-stringop-overflow when using GCC
https://bugs.webkit.org/show_bug.cgi?id=240596

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-26
Reviewed by Adrian Perez de Castro.

Also, rearrange and simplify the warning flag code.

And remove suppression of -Wno-attributes, since GCC 8 is everywhere nowadays.

  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

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

  • Source/JavaScriptCore/ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):

  • Source/WebCore/loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::end):

  • Source/cmake/WebKitCompilerFlags.cmake:

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

1:19 PM Changeset in webkit [294894] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore/accessibility/isolatedtree

AX: Don't create isolated objects from ignored live objects
https://bugs.webkit.org/show_bug.cgi?id=240507

Reviewed by Chris Fleizach.

Sometimes, we can get into a state where a live object has dynamically
become ignored but not removed as a child from its parent (since
unignored objects are the only thing that should be in any
AccessibilityObject::m_children). This can cause us to create an
isolated object for this ignored live object.

With this change, we now return a std::nullopt NodeChange for an
ignored live object.

I split this change off from a different patch improving our handling of
modals. It is required to make accessibility/aria-modal-multiple-dialogs.html
pass in isolated tree mode.

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueRemovalsAndUnresolvedChanges):
(WebCore::AXIsolatedTree::updateNode):

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

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

1:18 PM Changeset in webkit [294893] by Jonathan Bedard
  • 2 edits in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy

[git-webkit] Support radar when auto-filing bug
https://bugs.webkit.org/show_bug.cgi?id=240969
<rdar://problem/93989777>

Reviewed by Dewei Zhu.

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

(Branch.main): Handle case where tracker does not have defined credentials.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:

(TestBranch.test_create_bug): Added.

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

1:06 PM Changeset in webkit [294892] by Alan Coon
  • 1 edit in branches/safari-7614.1.14.1-branch/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm

Cherry-pick r294877. rdar://problem/93834054

Uniform buffer reuse causes flush, creates invalid state
https://bugs.webkit.org/show_bug.cgi?id=240896

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-26
Patch by Kyle Piddington.

Reviewed by Kimmo Kinnunen.

A flush during draw setup would leave the render command encoder
not started and render pipeline unset. This would assert in debug
and leak memory with corrupted draws in release.

This would happen for example when uniform buffer pool would run
out of uniform memory. If the pool is maxed out, we flush the
existing rendering to obtain free buffers. After the flush,
we need to re-run the setup.

Test is tracked in bug 240948.

  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw): (rx::ContextMtl::setupDrawImpl):

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

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

1:06 PM Changeset in webkit [294891] by Alan Coon
  • 5 edits in branches/safari-7614.1.14.1-branch/Source/WebKit/UIProcess

Cherry-pick r294831. rdar://problem/93656000

Prevent NSAttributedString crashes when AppSSO URLs are provided
https://bugs.webkit.org/show_bug.cgi?id=240739
<rdar://93656000>

Reviewed by Chris Dumez.

When NSAttributedString is used in a sandboxed app, it is prevented from checking in with the
AppSSO plugin manager, causing a Sandbox Violation and crash. We don't want NSAttributedString
to ever hand-off to AppSSO, so we should configure it's internal WKWebView to do the right thing.
Reviewed by Chris Dumez.

  • Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm: (+[_WKAttributedStringWebViewCache configuration]): Turn off AppSSO for string uses.
  • Source/WebKit/UIProcess/Cocoa/NavigationState.mm: (WebKit::trySOAuthorization): Use new lazy loading approach.
  • Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::trySOAuthorization): Ditto.
  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::soAuthorizationCoordinator): Lazily initialize, and RELEASE_ASSERT if we somehow reach this code without enabling AppSSO.
  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::soAuthorizationCoordinator): Deleted.

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

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

1:03 PM Changeset in webkit [294890] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.13

1:02 PM Changeset in webkit [294889] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.12

12:50 PM Changeset in webkit [294888] by Devin Rousso
  • 1 edit in trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

spurious RELEASE_LOG when creating a WKWebView with an empty frame
https://bugs.webkit.org/show_bug.cgi?id=240959

Reviewed by Tim Horton.

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

(-[WKWebView _recalculateViewportSizesWithMinimumViewportInset:maximumViewportInset:throwOnInvalidInput:]):
Don't RELEASE_LOG (or throw) unless a minimumViewportInset/maximumViewportInset has been specified.

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

12:30 PM Changeset in webkit [294887] by Adrian Perez de Castro
  • 1 edit in releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp

Crash in WebCore::TextureMapperLayer::paintSelf https://bugs.webkit.org/show_bug.cgi?id=240283

Unreviewed merge.

There are 4 cases that can happen after there has been a layerFlush and
we're adopting the new state in the composition stage:

  1. The layer is removed from the tree and the proxy is not assigned to any other layer: the deletion of the layer causes an invalidation of the proxy and both are destroyed afterwards. This works fine.
  1. The layer is removed from the tree and the proxy is reassigned to a new layer: the deletion of the first layer causes the invalidation of the proxy, which is then activated on the second layer. As the first layer is destroyed, we don't have to worry about dangling references from it to the proxy's currentBuffer. This works fine.
  1. The layer is kept in the tree and the proxy gets disassociated from it and not used by any other layer: we detect that the proxy is not used anymore and call invalidate on it, but the layer keeps a reference to the proxy's currentBuffer, which has been deleted during invalidate, which leads to a crash when trying to render the layer.
  1. The layer is kept in the tree and the proxy gets associated to a new layer: as we detect that the proxy is still being used it's not invalidated, but it gets activated on the second layer. The first layer keeps a reference to the proxy's currentBuffer, which will be destroyed a bit later when swapBuffers is called on the proxy. This leads to a crash when trying to render the first layer.

This patch addresses cases 3. and 4. described above.

  • Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp:

(WebCore::TextureMapperPlatformLayerProxyGL::activateOnCompositingThread):
Ensure that the layer no longer keeps a reference to the current buffer if the
proxy is already active on a different layer.
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate): Ensure that
the invalidated layer does not keep a reference to the current buffer.

11:41 AM Changeset in webkit [294886] by Sam Sneddon
  • 10 edits in trunk

Remove resolution media feature dpi/dpcm unit warning
https://bugs.webkit.org/show_bug.cgi?id=240907

Reviewed by Simon Fraser.

  • LayoutTests/fast/media/mq-resolution-dpi-dpcm-warning-expected.txt:
  • LayoutTests/fast/media/mq-resolution-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • Source/WebCore/css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::setMediaQueries):

  • Source/WebCore/css/MediaList.cpp:

(WebCore::addResolutionWarningMessageToConsole): Deleted.
(WebCore::reportMediaQueryWarningIfNeeded): Deleted.

  • Source/WebCore/css/MediaList.h:
  • Source/WebCore/css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::matchMedia):

  • Source/WebCore/css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parserAppendRule):

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

11:30 AM Changeset in webkit [294885] by Chris Dumez
  • 7 edits in trunk/Source

Drop unnecessary overloads now that StringView(const char*) is explicit
https://bugs.webkit.org/show_bug.cgi?id=240941

Reviewed by Darin Adler.

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

(WTF::StringImpl::find):
(WTF::StringImpl::reverseFind):

  • Source/WTF/wtf/text/StringView.h:
  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/platform/network/HTTPHeaderMap.h:
  • Source/WebCore/platform/network/ResourceRequestBase.h:
  • Source/WebCore/platform/network/ResourceResponseBase.h:

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

11:21 AM Changeset in webkit [294884] by Russell Epstein
  • 9 edits in branches/safari-7614.1.15-branch/Source

Versioning.

WebKit-7614.1.15

11:00 AM Changeset in webkit [294883] by Russell Epstein
  • 1 copy in branches/safari-7614.1.15-branch

New branch.

10:46 AM Changeset in webkit [294882] by Aditya Keerthi
  • 1 edit in trunk/Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm

[iOS] Update the presentation style of the photo picker
https://bugs.webkit.org/show_bug.cgi?id=240926
rdar://89670039

Reviewed by Wenson Hsieh.

The photo picker should no longer be displayed as a popover. Instead, let UIKit
decide the modal presentation style.

  • Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel dealloc]):
(-[WKFileUploadPanel dismiss]):
(-[WKFileUploadPanel _dismissDisplayAnimated:]):
(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):

Set the presentationController's delegate so that we are informed when the picker
is dismissed by swiping down.

(-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]): Deleted.

This method was already unused.

(-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]): Deleted.
(-[WKFileUploadPanel popoverControllerDidDismissPopover:]): Deleted.

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

10:25 AM Changeset in webkit [294881] by Fujii Hironori
  • 5 edits in trunk/Source

Cannot link WebKitTestRunner in non-unified builds
https://bugs.webkit.org/show_bug.cgi?id=240755

Reviewed by Adrian Perez de Castro.

In GTK non-unified build, WebKit shared library didn't export all
WEBCORE_EXPORT marked WebCore symbols because WebCore was a static
library.

WebCore should be an SHARED or OBJECT library to work WEBCORE_EXPORT
macro as expected.

  • Source/WebCore/PlatformGTK.cmake:
  • Source/WebCore/page/gtk/DragControllerGtk.cpp:
  • Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

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

9:56 AM Changeset in webkit [294880] by Simon Fraser
  • 1 edit in trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

Incorrect layout on iframe with object-fit
https://bugs.webkit.org/show_bug.cgi?id=240940
<rdar://93188925>

Reviewed by Alan Bujtas.

Don't use replacedContentRect() when positioning iframe content layers, because iframes
don't (yet) respond to object-fit.

  • Source/WebCore/rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::contentsBox const):

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

9:16 AM Changeset in webkit [294879] by commit-queue@webkit.org
  • 2 edits in trunk

[GStreamer][WebRTC] Local/remote ICE candidates stats gathering support
https://bugs.webkit.org/show_bug.cgi?id=240949

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

The corresponding feature was implemented in GStreamer as part of:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998

  • LayoutTests/platform/glib/TestExpectations:
  • Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::iceCandidateType):
(WebCore::fillRTCCandidateStats):
(WebCore::fillRTCCandidatePairStats):
(WebCore::fillReportCallback):

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

9:01 AM Changeset in webkit [294878] by Andres Gonzalez
  • 10 edits
    2 adds in trunk

AX: Refactor implementation of AX object relationships.
https://bugs.webkit.org/show_bug.cgi?id=240842

Reviewed by Chris Fleizach and Tyler Wilcock.

Test: accessibility/grid-with-aria-owned-cells.html

Relationships between AX objects were being computed by the methods
AccessibilityObject::ariaElementsFromAttribute and
ariaElementsReferencedByAttribute, both of which performed walks of the DOM tree
to match ids between origin and target of a specific relationship, having a
significant performance impact when called repeatedly.
With this patch, these two methods are replaced with a single method,
AccessibilityObject::relatedObjects, that in turn calls
AXObjectCache::relatedObjectsFor. This AXObjectCache method computes and caches
all relationships in one walk of the DoM tree. The cache is updated when
relevant event notifications are received. This makes support of relationships between objects more efficient, and the code clearer.
The test added exercises this implementation of relationships via the aria-owns
attribute to relate table rows to their cells. The execution time of this test
before this change was estimated in one system at about 1.91s, and after the
change was reduced to 1.87s.

  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::objectsForIDs const):
(WebCore::AXObjectCache::handleActiveDescendantChanged):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::relationAttributes):
(WebCore::AXObjectCache::symmetricRelation):
(WebCore::AXObjectCache::attributeToRelationType):
(WebCore::AXObjectCache::addRelation):
(WebCore::AXObjectCache::updateRelationsIfNeeded):
(WebCore::AXObjectCache::relatedObjectsFor):

  • Source/WebCore/accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::relationsNeedUpdate):

  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::relatedObjects const):
(WebCore::AccessibilityObject::activeDescendantOfObjects const):
(WebCore::AccessibilityObject::controlledObjects const):
(WebCore::AccessibilityObject::controllers const):
(WebCore::AccessibilityObject::describedByObjects const):
(WebCore::AccessibilityObject::descriptionForObjects const):
(WebCore::AccessibilityObject::detailedByObjects const):
(WebCore::AccessibilityObject::detailsForObjects const):
(WebCore::AccessibilityObject::errorMessageObjects const):
(WebCore::AccessibilityObject::errorMessageForObjects const):
(WebCore::AccessibilityObject::flowToObjects const):
(WebCore::AccessibilityObject::flowFromObjects const):
(WebCore::AccessibilityObject::labelledByObjects const):
(WebCore::AccessibilityObject::labelForObjects const):
(WebCore::AccessibilityObject::ownedObjects const):
(WebCore::AccessibilityObject::owners const):
(WebCore::AccessibilityObject::ariaElementsFromAttribute const): Deleted.
(WebCore::AccessibilityObject::ariaElementsReferencedByAttribute const): Deleted.

  • Source/WebCore/accessibility/AccessibilityObject.h:
  • Source/WebCore/accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::findRelatedObjectInAncestry):

  • Source/WebCore/accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::activeDescendant const):

  • Source/WebCore/accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::columnHeaders):

  • Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::relationMap const):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):

  • LayoutTests/accessibility/grid-with-aria-owned-cells-expected.txt: Added.
  • LayoutTests/accessibility/grid-with-aria-owned-cells.html: Added.

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

7:00 AM Changeset in webkit [294877] by commit-queue@webkit.org
  • 1 edit in trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm

Uniform buffer reuse causes flush, creates invalid state
https://bugs.webkit.org/show_bug.cgi?id=240896

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-26
Patch by Kyle Piddington.

Reviewed by Kimmo Kinnunen.

A flush during draw setup would leave the render command encoder
not started and render pipeline unset. This would assert in debug
and leak memory with corrupted draws in release.

This would happen for example when uniform buffer pool would run
out of uniform memory. If the pool is maxed out, we flush the
existing rendering to obtain free buffers. After the flush,
we need to re-run the setup.

Test is tracked in bug 240948.

  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::setupDraw):
(rx::ContextMtl::setupDrawImpl):

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

5:13 AM Changeset in webkit [294876] by ntim@apple.com
  • 1 delete in trunk/LayoutTests/platform/win/fast/css3-text/css3-text-decoration/getComputedStyle

[Windows] Remove obsolete css3-text-decoration test results
https://bugs.webkit.org/show_bug.cgi?id=240951

Unreviewed test gardening.

  • LayoutTests/platform/win/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line-expected.txt: Removed.
  • LayoutTests/platform/win/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style-expected.txt: Removed.

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

4:40 AM Changeset in webkit [294875] by Tyler Wilcock
  • 9 edits
    4 adds in trunk

AccessibilityTable::m_isExposable is never recomputed after AccessibilityTable::init
https://bugs.webkit.org/show_bug.cgi?id=240750

Reviewed by Andres Gonzalez.

AccessibilityTable::m_isExposable is never recomputed after
AccessibilityTable::init. This is bad because the semantics of table,
and the semantics of the table cells in the table, are dependent on
whether the table is exposed.

With this commit, we recompute m_isExposable when a table's row count
changes. This commit also updates the isolated tree for row count
changes, meaning we handle dynamic aria-rowcount value modifications.

Test: accessibility/table-exposure-updates-dynamically.html.
Also added another testcase to accessibility/aria-table-attributes.html.

  • LayoutTests/accessibility/aria-table-attributes-expected.txt:
  • LayoutTests/accessibility/aria-table-attributes.html: Add testcase.
  • LayoutTests/accessibility/table-exposure-updates-dynamically-expected.txt: Added.
  • LayoutTests/accessibility/table-exposure-updates-dynamically.html: Added.
  • LayoutTests/platform/glib/accessibility/table-exposure-updates-dynamically-expected.txt: Added.
  • LayoutTests/platform/ios/TestExpectations: Enable new test.
  • LayoutTests/platform/ios/accessibility/table-exposure-updates-dynamically-expected.txt: Added.
  • LayoutTests/platform/win/TestExpectations: Disable new test.
  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::handleRowCountChanged): Added.
(WebCore::AXObjectCache::handleAriaExpandedChange):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::filterWeakHashSetForRemoval):
(WebCore::AXObjectCache::prepareForDocumentDestruction):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::updateIsolatedTree):

  • Source/WebCore/accessibility/AXObjectCache.h:
  • Source/WebCore/accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::recomputeIsExposable): Added.
(WebCore::AccessibilityTable::updateChildrenRoles): Added.
(WebCore::AccessibilityTable::addChildren):

  • Source/WebCore/accessibility/AccessibilityTable.h:
  • Source/WebCore/html/HTMLTablePartElement.h:

Moved findParentTable from protected to public so it can be called from
accessibility code.

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

4:05 AM Changeset in webkit [294874] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp

[GStreamear] DMABufVideoSink can already handle Y41B
https://bugs.webkit.org/show_bug.cgi?id=240946

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-26
Reviewed by Philippe Normand.

In GStreamer-specific DMABufVideoSink, Y41B multi-planar format was listed as
problematic and not included in the list of formats that are supported by
default. In reality, it's handled properly already and works, so it's moved over
to the list of supported formats.

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

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

1:13 AM Changeset in webkit [294873] by ysuzuki@apple.com
  • 41 edits in trunk

[JSC] Introduce unlinked StructureStubInfo into uDFG
https://bugs.webkit.org/show_bug.cgi?id=240557

Reviewed by Saam Barati.

This patch introduces unlinked StructureStubInfo into uDFG. To make it work, we refactor existing StructureStubInfo mechanism
to make unlinked StructureStubInfo first citizen instead of adhoc code.

  1. JITXXXGenerator takes CompileTimeStructureStubInfo as its argument. It is variant of unlinked / linked StructureStubInfo. And we configure registers etc. in one place. JITXXXGenerator sets necessary fields for each type of StructureStubInfo so we have massive less code in Baseline and uDFG.
  2. DFG::JITCompiler::LinkableConstant takes DFG::JITCompiler instead of DFG::Graph to make code simpler.
  3. Introduce DFG::LinkerIR, which is currently just a constant pool. We will eventually extend it to support many uDFG LinkerIR opcodes.
  4. Clean up some of unused registers in some JITXXXGenerator to make code simpler.
  5. Rename useDataICInOptimizingJIT to useDataICInFTL and use it only for FTL. That flag was used to keep maintaining DataIC in DFG / FTL, and in uDFG case, we already have forceUnlinkedDFG flag.
  • Tools/Scripts/run-jsc-stress-tests:
  • JSTests/microbenchmarks/deltablue-varargs.js:
  • JSTests/microbenchmarks/richards-try-catch.js:
  • Source/JavaScriptCore/bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • Source/JavaScriptCore/bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeJITInlineCaches):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::useDataIC const):

  • Source/JavaScriptCore/bytecode/CodeBlock.h:

(JSC::CodeBlock::useDataIC const): Deleted.

  • Source/JavaScriptCore/bytecode/InlineAccess.cpp:

(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::generateStringLength):
(JSC::InlineAccess::generateSelfInAccess):

  • Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::makeDefaultScratchAllocator):
(JSC::PolymorphicAccess::regenerate):

  • Source/JavaScriptCore/bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):

  • Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:

(JSC::slowOperationFromUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::initializeFromDFGUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::checkConsistency):

  • Source/JavaScriptCore/bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::valueRegs const):
(JSC::StructureStubInfo::propertyRegs const):
(JSC::StructureStubInfo::baseRegs const):
(JSC::StructureStubInfo::thisValueIsInExtraGPR const):
(JSC::StructureStubInfo::thisGPR const):
(JSC::StructureStubInfo::prototypeGPR const):
(JSC::StructureStubInfo::propertyGPR const):
(JSC::StructureStubInfo::brandGPR const):
(JSC::StructureStubInfo::thisValueIsInThisGPR const): Deleted.

  • Source/JavaScriptCore/dfg/DFGInlineCacheWrapperInlines.h:

(JSC::DFG::InlineCacheWrapper<GeneratorType>::finalize):

  • Source/JavaScriptCore/dfg/DFGJITCode.cpp:

(JSC::DFG::JITData::JITData):

  • Source/JavaScriptCore/dfg/DFGJITCode.h:

(JSC::DFG::LinkerIR::ValueHash::hash):
(JSC::DFG::LinkerIR::ValueHash::equal):
(JSC::DFG::LinkerIR::ValueTraits::emptyValue):
(JSC::DFG::LinkerIR::ValueTraits::constructDeletedValue):
(JSC::DFG::LinkerIR::ValueTraits::isDeletedValue):
(JSC::DFG::LinkerIR::LinkerIR):
(JSC::DFG::LinkerIR::size const):
(JSC::DFG::LinkerIR::at const):
(JSC::DFG::JITData::create):

  • Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::loadConstant):
(JSC::DFG::JITCompiler::LinkableConstant::LinkableConstant):
(JSC::DFG::JITCompiler::addToConstantPool):
(JSC::DFG::JITCompiler::addStructureStubInfo):

  • Source/JavaScriptCore/dfg/DFGJITCompiler.h:
  • Source/JavaScriptCore/dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalizeJITData):
(JSC::DFG::Plan::addLinkableConstant): Deleted.

  • Source/JavaScriptCore/dfg/DFGPlan.h:
  • Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h:

(JSC::DFG::slowPathICCall):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::compilePushWithScope):
(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileCheckTraps):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByVal):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileFromCharCode):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:
  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileCompareEqPtr):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
(JSC::DFG::SpeculativeJIT::compile):

  • Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValImpl):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • Source/JavaScriptCore/ftl/FTLState.cpp:

(JSC::FTL::State::addStructureStubInfo):

  • Source/JavaScriptCore/ftl/FTLState.h:
  • Source/JavaScriptCore/jit/BaselineJITCode.h:
  • Source/JavaScriptCore/jit/BaselineJITRegisters.h:
  • Source/JavaScriptCore/jit/GPRInfo.h:

(JSC::JSValueRegs::gpr const):
(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::withTwoAvailableRegs):

  • Source/JavaScriptCore/jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter):

  • Source/JavaScriptCore/jit/JIT.cpp:

(JSC::JIT::addUnlinkedStructureStubInfo):
(JSC::JIT::link):

  • Source/JavaScriptCore/jit/JIT.h:
  • Source/JavaScriptCore/jit/JITCall.cpp:

(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):

  • Source/JavaScriptCore/jit/JITCode.h:

(JSC::JITCode::useDataIC): Deleted.

  • Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITInlineCacheGenerator::generateDFGDataICFastPath):
(JSC::JITInlineCacheGenerator::generateBaselineDataICFastPath):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::finalize):
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITGetByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITGetByIdGenerator::generateDFGDataICFastPath):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITGetByIdWithThisGenerator::generateFastPath):
(JSC::JITGetByIdWithThisGenerator::generateBaselineDataICFastPath):
(JSC::JITGetByIdWithThisGenerator::generateDFGDataICFastPath):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITPutByIdGenerator::generateDFGDataICFastPath):
(JSC::JITPutByIdGenerator::generateFastPath):
(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByValGenerator::finalize):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::finalize):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::JITInByValGenerator::finalize):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
(JSC::JITInByIdGenerator::generateFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInByIdGenerator::generateDFGDataICFastPath):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::finalize):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):
(JSC::JITPutByValGenerator::JITPutByValGenerator):
(JSC::JITPutByValGenerator::generateFastPath):
(JSC::JITPutByValGenerator::finalize):
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):

  • Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:

(JSC::JITInlineCacheGenerator::setUpStubInfoImpl):
(JSC::JITByIdGenerator::setUpStubInfoImpl):
(JSC::JITInByValGenerator::setUpStubInfo):

  • Source/JavaScriptCore/jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):

  • Source/JavaScriptCore/jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emit_op_enumerator_get_by_val):

  • Source/JavaScriptCore/runtime/OptionsList.h:
  • Source/WTF/wtf/CompactPointerTuple.h:

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

May 25, 2022: Yesterday

11:58 PM Changeset in webkit [294872] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/Scripts/update-angle

Generate better ChangeLogs in update-angle script
https://bugs.webkit.org/show_bug.cgi?id=238649

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-25
Auto-generate the preferred commit message format during ANGLE rolls
into a commit-message.txt file.

Reviewed by Kimmo Kinnunen.

  • Tools/Scripts/update-angle:

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

11:08 PM Changeset in webkit [294871] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp

[Soup] USE(SOUP2) build fix after 250730@main
https://bugs.webkit.org/show_bug.cgi?id=240943

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-25
Unreviewed build fix for USE(SOUP2), switching to string literals in a couple of
places where URL::protocolIs() is expecting them.

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

(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::didStartRequest):

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

10:36 PM Changeset in webkit [294870] by Diego Pino Garcia
  • 5 edits in trunk/Source

Unreviewed, non unified build fixes after 250949@main

10:21 PM Changeset in webkit [294869] by Jonathan Bedard
  • 4 edits in trunk/Tools/Scripts/libraries/reporelaypy

[commits.webkit.org] Support compare redirect
https://bugs.webkit.org/show_bug.cgi?id=240908
<rdar://problem/93904385>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py: Bump version.
  • Tools/Scripts/libraries/reporelaypy/setup.py: Ditto.
  • Tools/Scripts/libraries/reporelaypy/reporelaypy/checkoutroute.py:

(Redirector):
(Redirector.bitbucket_compare): Added.
(Redirector.trac_compare): Added.
(Redirector.github_compare): Added.
(Redirector.init): Define a compare function.
(CheckoutRoute):
(CheckoutRoute.find_newer): Add function to sort a commit pair.
(CheckoutRoute.init): Add 'compare' endpoints.

  • Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/checkoutroute_unittest.py:

(CheckoutRouteUnittest.test_compare):
(CheckoutRouteUnittest.test_compare_trac):

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

9:09 PM Changeset in webkit [294868] by Brandon
  • 2 edits in trunk/LayoutTests

Address flaky test case scroll-into-view-and-show-validation-message.html when run using WK1
https://bugs.webkit.org/show_bug.cgi?id=240875

Reviewed by Wenson Hsieh.

Address failing test case fast/forms/scroll-into-view-and-show-validation-message.html
when run using WK1. This test only fails when running WK1 and only when run
in parallel.

  • LayoutTests/fast/forms/textarea-scrolled-endline-caret.html:
  • LayoutTests/platform/mac-wk1/TestExpectations:

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

8:49 PM Changeset in webkit [294867] by bshafiei@apple.com
  • 1 copy in tags/WebKit-7614.1.14.1.12

Tag WebKit-7614.1.14.1.12.

8:46 PM Changeset in webkit [294866] by Brandon
  • 21 edits in trunk/Source/bmalloc/libpas

[libpas] Refactor PGM to align with libpas allocation norms and split pas_get_random
https://bugs.webkit.org/show_bug.cgi?id=240331

Reviewed by Yusuke Suzuki.

This patch touches a few major areas.

PGM did not properly align with how we returned allocation results with the rest of the code base.
We now use pas_allocation_result instead. This resulted in touching a lot of the PGM testing code.

Added numerous helper utilities to make it easier to check whether we should call into PGM.

Added config option for each heap whether PGM will be enabled or not.

Cleaned up documentation.

I split the pas_get_random into two functions (pas_get_fast_random and pas_get_secure_random).

  • Source/bmalloc/libpas/Documentation.md:
  • Source/bmalloc/libpas/ReadMe.md:
  • Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/hotbit_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/iso_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/iso_test_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/minalign32_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/pagesize64k_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/pas_baseline_allocator_table.c:

(pas_baseline_allocator_table_get_random_index):

  • Source/bmalloc/libpas/src/libpas/pas_dynamic_primitive_heap_map.c:

(pas_dynamic_primitive_heap_map_find_slow):

  • Source/bmalloc/libpas/src/libpas/pas_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.h:
  • Source/bmalloc/libpas/src/libpas/pas_large_heap.c:

(pas_large_heap_try_allocate_pgm):

  • Source/bmalloc/libpas/src/libpas/pas_large_heap.h:
  • Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:

(pas_probabilistic_guard_malloc_allocate):
(pas_probabilistic_guard_malloc_deallocate):
(pas_probabilistic_guard_malloc_check_exists):
(pas_probabilistic_guard_malloc_get_free_virtual_memory):
(pas_probabilistic_guard_malloc_get_free_wasted_memory):
(pas_probabilistic_guard_malloc_debug_info):
(pas_probabilistic_guard_malloc_trigger): Deleted.
(pas_probabilistic_guard_malloc_can_use): Deleted.
(pas_probabilistic_guard_malloc_should_use): Deleted.

  • Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h:
  • Source/bmalloc/libpas/src/libpas/pas_random.h:

(pas_get_fast_random):
(pas_get_secure_random):
(pas_get_random): Deleted.

  • Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c:

(find_first_eligible_consider_view):

  • Source/bmalloc/libpas/src/libpas/thingy_heap_config.h:
  • Source/bmalloc/libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:
  • Source/bmalloc/libpas/src/test/PGMTests.cpp:

(std::testPGMSingleAlloc):
(std::testPGMMultipleAlloc):
(std::testPGMErrors):

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

8:39 PM Changeset in webkit [294865] by bshafiei@apple.com
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.12

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

Capturing a canvas that is not in the DOM can lead to erratic frame rates or no frame emission at all
https://bugs.webkit.org/show_bug.cgi?id=240380

Patch by Dan Glastonbury <djg@apple.com> on 2022-05-25
Reviewed by Simon Fraser.

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::canvasChanged):
Schedule a rendering update whenever a canvas with out a rect needing display
preparation is added. This ensures that the prepareForDisplay is called on all
pending canvases, since this is handled in doAfterUpdateRendering.

  • Source/WebCore/dom/Document.h:

Update size of RenderingUpdateState to accomodate PrepareCanvasesForDisplay.

  • Source/WebCore/page/Page.cpp:
  • Source/WebCore/page/Page.h:

Introduce new RenderingUpdateStep, PrepareCanvasesForDisplay, which signals that
prepareCanvasesForDisplayInNeeded() needs to be called from
doAfterRenderingUpdate(). Update size of RenderingUpdateState to accomodate
PrepareCanvasesForDisplay.

  • LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-capture-out-of-DOM-canvas-expected.txt: Added.
  • LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-capture-out-of-DOM-canvas.html:

Test that frame rate of captured video from out-of-DOM canvas is with in 25% of
the generating frame rate.

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

7:56 PM Changeset in webkit [294863] by Tyler Wilcock
  • 8 edits in trunk

AX: Update the isolated tree in response to dynamic aria-grabbed and aria-posinset changes
https://bugs.webkit.org/show_bug.cgi?id=240844

Reviewed by Chris Fleizach.

Added test cases to accessibility/aria-setsize-posinset.html and
accessibility/mac/aria-drag-drop.html.

  • Source/WebCore/accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):

  • Source/WebCore/accessibility/AXObjectCache.h:
  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):

  • LayoutTests/accessibility/aria-setsize-posinset-expected.txt:
  • LayoutTests/accessibility/aria-setsize-posinset.html:
  • LayoutTests/accessibility/mac/aria-drag-drop-expected.txt:
  • LayoutTests/accessibility/mac/aria-drag-drop.html:

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

7:16 PM Changeset in webkit [294862] by Devin Rousso
  • 13 edits in trunk

Web Inspector: CSS autocomplete: suggestion hint should be the most commonly used property and not the alphabetically first one
https://bugs.webkit.org/show_bug.cgi?id=156271
<rdar://problem/25588888>

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:

(WI.CSSProperty):
(WI.CSSProperty.sortByPropertyNameUsageCount): Added.
(WI.CSSProperty._initializePropertyNameCounts): Added.
(WI.CSSProperty.prototype.update):
(WI.CSSProperty.prototype.remove):
(WI.CSSProperty.prototype.set name):
(WI.CSSProperty.prototype._updateName): Added.
Every time a WI.CSSProperty is created/updated, increment/decrement the count of that property's
name in the global map of property name counts. When showing CSS completions for property names,
initially focus the property with the highest count (but only if the count is over 100).

  • Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:

(WI.ObjectStore._open):
(WI.ObjectStore.async getAllKeys): Added.
Increment the version to add a new WI.ObjectStore for CSS property name counts.

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

(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldInitialCompletionIndex): Added.

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

(WI.SpreadsheetTextField.prototype._updateCompletions):
Add delegate methods to adjust the initial selectedIndex whenever completions are updated.

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

(WI.CompletionSuggestionsView.prototype.set selectedIndex):
(WI.CompletionSuggestionsView.prototype.selectNext):
(WI.CompletionSuggestionsView.prototype.selectPrevious):
Make sure the delegate is informed whenever the selectedIndex changes, not just when selecting
the next/previous item.

  • Source/WebInspectorUI/UserInterface/Base/Setting.js:
  • Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:

Add an experimental setting to control this behavior.

  • Source/WebInspectorUI/UserInterface/Base/Utilities.js:

(Array.prototype.minIndex): Added.
Add a utility method for finding the index of the smallest item in an array.

  • LayoutTests/inspector/css/css-property.html:
  • LayoutTests/inspector/css/css-property-expected.txt:
  • LayoutTests/inspector/unit-tests/array-utilities.html:
  • LayoutTests/inspector/unit-tests/array-utilities-expected.txt:

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

6:56 PM Changeset in webkit [294861] by mark.lam@apple.com
  • 1 edit in trunk/Source/WTF/wtf/CheckedArithmetic.h

Build fix: Don't use builtin_mul_overflow on PLATFORM(IOS_FAMILY_SIMULATOR).
https://bugs.webkit.org/show_bug.cgi?id=240937

Reviewed by Saam Barati and Alex Christensen.

The mulodi4 symbol used by clang for builtin_mul_overflow is not available.

  • Source/WTF/wtf/CheckedArithmetic.h:

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

6:52 PM Changeset in webkit [294860] by sihui_liu@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp

REGRESSION(r294381): [ Debug ] TestWebKitAPI.WebKit.CookieObserverCrash is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=240595

Reviewed by Alex Christensen.

The crash is an assertion failure. The assertion ensures that WebCookieManagerProxy has no cookies observer when it gets
destroyed. The assertion was valid when it was added, since WKHTTPCookieStore does not outlive WebKit::WebsiteDataStore
(r219550), and observers will be removed when WKHTTPCookieStore is deallocated. Since r279074, WKHTTPCookieStore can
outlive WebKit::WebsiteDataStore -- it holds a weak reference to WebKit::WebsiteDataStore instead of a strong reference,
so the assertion does not hold.

  • Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::~WebCookieManagerProxy):

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

6:48 PM Changeset in webkit [294859] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp

Unreviewed Windows build fix after r294852
https://bugs.webkit.org/show_bug.cgi?id=240936

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

(WebCore::copyCookiesForURLWithFirstPartyURL):

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

6:36 PM Changeset in webkit [294858] by achristensen@apple.com
  • 1 edit in trunk/Source/WebKitLegacy/mac/Plugins/WebPluginDatabase.mm

Stop searching for WebKitLegacy plug-ins on iOS
https://bugs.webkit.org/show_bug.cgi?id=240923
<rdar://92748471>

Reviewed by Chris Dumez.

NPAPI plug-in support has been completely removed, but support for plugInViewWithArguments:
is being kept on macOS until one more internal user of it finishes migration to WKWebView
even though developer.apple.com says it is "unsupported in OS X v10.7 and later"

On iOS, though, there is a concern about the API we are using to get the path to
/System/Library/Internet Plug-Ins and since it is unused, let's just remove it for now.
Soon we will remove all the plug-in support code.

  • Source/WebKitLegacy/mac/Plugins/WebPluginDatabase.mm:

(+[WebPluginDatabase _defaultPlugInPaths]):

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

6:21 PM Changeset in webkit [294857] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.1.11

Tag WebKit-7614.1.14.1.11.

6:20 PM Changeset in webkit [294856] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.0.11

Tag WebKit-7614.1.14.0.11.

6:16 PM Changeset in webkit [294855] by david_quesada@apple.com
  • 26 edits in trunk/Source

USE_SYSTEM_CONTENT_PATH and USE_STAGING_INSTALL_PATH should be able to coexist
https://bugs.webkit.org/show_bug.cgi?id=240723
rdar://92000421

Reviewed by Michael Saboff.

Make it possible to build with both USE_SYSTEM_CONTENT_PATH and USE_STAGING_INSTALL_PATH
enabled. With USE_STAGING_INSTALL_PATH, all the frameworks and dylibs will be relocated
to a common "StagedFrameworks" directory, but USE_SYSTEM_CONTENT_PATH directs the build
to locate this directory at a different location, i.e. in a system content path. The
presence of USE_STAGING_INSTALL_PATH also disables all targets' current behavior of
creating symlinks into the system content path -- in this configuration, the frameworks
only need to be referenceable from their location in the StagedFrameworks directory.

Throughout this patch, there are multiple common changes to the same build settings:

INSTALL_PATH_PREFIX:

This variable adds the system content path as a prefix to products' install paths.
Leave it empty when USE_STAGING_INSTALL_PATH is set, as the effective prefix will
be baked into WK_OVERRIDE_FRAMEWORKS_DIR via WK_INSTALL_PATH_PREFIX instead.

OUTPUT_ALTERNATE_ROOT_PATH:

Define this as empty under USE_STAGING_INSTALL_PATH, since we don't need to create
the symlinks pointing into the system content path.

WK_INSTALL_PATH_PREFIX:

This variable is used to define a prefix for the override install path when using
staged frameworks. Use a different prefix under USE_SYSTEM_CONTENT_PATH. Also
remove a now-unneeded comparison against WK_MACOS_1015. WebKit doesn't support
building for versions of macOS prior to 10.15, so this *always* would evaluate to
'MACOS_SINCE_1015'.

No new tests; no behavior should be changed. (Except for output of this particular
build configuration.)

  • Source/JavaScriptCore/Configurations/Base.xcconfig:

Update INSTALL_PATH_PREFIX and WK_INSTALL_PATH_PREFIX.

  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:

Update OUTPUT_ALTERNATE_ROOT_PATH.

  • Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig:

Update INSTALL_PATH_PREFIX.

  • Source/ThirdParty/ANGLE/Configurations/Base.xcconfig:

Update WK_INSTALL_PATH_PREFIX.

  • Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:

Moved the common definition of INSTALL_PATH_PREFIX here, updated WK_INSTALL_PATH_PREFIX.

  • Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig:

Removed definition of INSTALL_PATH_PREFIX, which has been moved to Base.xcconfig. (x9)

  • Source/ThirdParty/libwebrtc/Scripts/create-symlink-to-altroot.sh:

Avoid creating any symlinks when USE_STAGING_INSTALL_PATH is set.

  • Source/WebCore/Configurations/WebCore.xcconfig:

Update INSTALL_PATH_PREFIX and WK_INSTALL_PATH_PREFIX.

  • Source/WebCore/PAL/Configurations/PAL.xcconfig:

Update WK_INSTALL_PATH_PREFIX.

  • Source/WebGPU/Configurations/WebGPU.xcconfig:

Update INSTALL_PATH_PREFIX, OUTPUT_ALTERNATE_ROOT_PATH, and WK_INSTALL_PATH_PREFIX.

  • Source/WebInspectorUI/Configurations/Base.xcconfig:

Update WK_INSTALL_PATH_PREFIX.

  • Source/WebInspectorUI/Configurations/WebInspectorUIFramework.xcconfig:

Modify the definition of INSTALL_PATH so that the "override-ness" of
WK_USE_OVERRIDE_FRAMEWORKS_DIR takes precedence over USE_SYSTEM_CONTENT_PATH. With
these two set, WebInspectorUI.framework should end up in the override path (e.g. the
StagedFrameworks directory), rather than the standard system content path location.
Also update OUTPUT_ALTERNATE_ROOT_PATH.

  • Source/WebKit/Configurations/Base.xcconfig:

Update INSTALL_PATH_PREFIX.

  • Source/WebKit/Configurations/BaseTarget.xcconfig:

Update WK_INSTALL_PATH_PREFIX.

  • Source/WebKit/Configurations/WebKit.xcconfig:

Update OUTPUT_ALTERNATE_ROOT_PATH.

  • Source/WebKit/Configurations/adattributiond.xcconfig:

Somewhat unrelated tweak -- remove WK_OVERRIDE_FRAMEWORKS_DIR from this file since
it is redundant with the definition of this setting in BaseTarget.xcconfig.

  • Source/WebKitLegacy/mac/Configurations/Base.xcconfig:

Update INSTALL_PATH_PREFIX.

  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:

Update WK_INSTALL_PATH_PREFIX.

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

5:47 PM Changeset in webkit [294854] by jer.noble@apple.com
  • 5 edits
    5 adds in trunk

Sequential WebVTT cues with the same contents can be dropped
https://bugs.webkit.org/show_bug.cgi?id=240893

Reviewed by Eric Carlson.

When sequential WebVTT cues are parsed with the same contents, instead of dropping the new cue, extend its endTime of the existing cue to include the endTime of the newly parsed one.

  • LayoutTests/http/tests/media/hls/hls-webvtt-flashing-expected.txt: Added.
  • LayoutTests/http/tests/media/hls/hls-webvtt-flashing.html: Added.
  • LayoutTests/http/tests/media/resources/hls/subtitles/flashSequence0.webvtt: Added.
  • LayoutTests/http/tests/media/resources/hls/subtitles/prog_flashing.m3u8: Added.
  • LayoutTests/http/tests/media/resources/hls/test-webvtt-flashing.m3u8: Added.
  • LayoutTests/platform/glib/TestExpectations:
  • Source/WebCore/html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::newCuesParsed):

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

(WebCore::InbandWebVTTTextTrack::newCuesParsed):

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

(WebCore::TextTrack::matchCue):
(WebCore::TextTrack::hasCue): Deleted.

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

(WebCore::TextTrack::hasCue):

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

5:23 PM Changeset in webkit [294853] by david_quesada@apple.com
  • 1 edit in trunk/metadata/contributors.json

Add my GitHub account to contributors.json

Reviewed by Jonathan Bedard.

  • metadata/contributors.json:

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

5:13 PM Changeset in webkit [294852] by Chris Dumez
  • 159 edits in trunk

Make the StringView(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=240754

Reviewed by Darin Adler.

Make the StringView(const char*) constructor explicit, to encourage people to use
ASCIILiteral / ""_s. StringView::fromLatin1() is available when the caller
really has a non-string literal. In a future patch, I will make this constructor
private.

  • Source/WTF/wtf/Assertions.cpp:
  • Source/WTF/wtf/text/StringBuilder.h:

(WTF::StringBuilder::append):

  • Source/WTF/wtf/text/StringView.h:
  • Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:

(WebCore::toRtpCodecCapability):

  • Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.cpp:

(WebCore::ComputedStylePropertyMapReadOnly::entries const):

  • Source/WebCore/dom/DatasetDOMStringMap.cpp:

(WebCore::isValidAttributeName):
(WebCore::propertyNameMatchesAttributeName):

  • Source/WebCore/dom/ViewportArguments.cpp:

(WebCore::viewportErrorMessage):

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

(HTMLConverterCaches::elementHasOwnBackgroundColor):

  • Source/WebCore/history/BackForwardCache.cpp:

(WebCore::canCacheFrame):

  • Source/WebCore/html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setPort):

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

(WebCore::WebVTTParser::checkAndCreateRegion):
(WebCore::WebVTTParser::checkAndStoreStyleSheet):

  • Source/WebCore/loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::appStoreURLAdamID):

  • Source/WebCore/loader/mac/LoaderNSURLExtras.mm:

(suggestedFilenameWithMIMEType):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::getUnmangledInfoLog):

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

(WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem):

  • Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData const):

  • Source/WebKit/NetworkProcess/NetworkSchemeRegistry.cpp:

(WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):

  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):

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

(WebKit::NetworkCache::BlobStorage::blobPathForHash const):

  • Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp:
  • Source/WebKit/Platform/unix/EnvironmentUtilities.cpp:

(WebKit::EnvironmentUtilities::removeValuesEndingWith):

  • Source/WebKit/Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

  • Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getProcessIdentifier):

  • Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp:

(API::constructedPathPrefix):

  • Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h:
  • Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration additionalReadAccessAllowedURLs]):
(-[_WKProcessPoolConfiguration setAdditionalReadAccessAllowedURLs:]):

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

(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):
(WebKit::WebPageProxy::isQuarantinedAndNotUserApproved):

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

(WebKit::WebProcessProxy::messageSourceIsValidWebContentProcess):

  • Source/WebKit/UIProcess/DeviceIdHashSaltStorage.cpp:

(WebKit::DeviceIdHashSaltStorage::deleteHashSaltFromDisk):

  • Source/WebKit/UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::resume):
(WebKit::ViewGestureController::SnapshotRemovalTracker::start):
(WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately):
(WebKit::ViewGestureController::SnapshotRemovalTracker::watchdogTimerFired):

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::savePDFToFileInDownloadsFolder):

  • Source/WebKit/UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::resolvePathsForSandboxExtensions):

  • Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):

  • Source/WebKit/UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const):

  • Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetDatabaseQuota):

  • Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::tryLoadingUsingPDFJSHandler):

  • Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::streamDidReceiveResponse):

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

(WebKit::dumpHistoryItem):

  • Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::shouldUsePDFPlugin const):
(WebKit::WebPage::platformCanHandleRequest):

  • Source/WebKit/webpushd/AppBundleRequest.mm:

(WebPushD::AppBundleRequest::start):

  • Source/WebKit/webpushd/PushClientConnection.mm:

(WebPushD::ClientConnection::connectionClosed):

  • Source/WebKit/webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::broadcastAllConnectionIdentities):
(WebPushD::Daemon::injectPushMessageForTesting):
(WebPushD::Daemon::injectEncryptedPushMessageForTesting):

  • Source/WebKitLegacy/mac/WebView/WebHTMLRepresentation.mm:

(regExpForLabels):
(matchLabelsAgainstString):

  • Tools/DumpRenderTree/mac/DumpRenderTree.mm:

(changeWindowScaleIfNeeded):

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

(TestWebKitAPI::TEST_F):

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

(TEST):

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

(TestWebKitAPI::TEST):
(TestWebKitAPI::doStaticStringImplTests):

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

(TestWebKitAPI::TEST):

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

(TestWebKitAPI::TEST):

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

(TestWebKitAPI::TEST_F):

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

(TestWebKitAPI::invalidParts):
(TestWebKitAPI::shouldFail):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::testUserPassword):

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

(TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebCore/DFACombiner.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebCore/DFAHelpers.h:

(TestWebKitAPI::buildDFAFromPatterns):

  • Tools/TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::readContentsOfFile):

  • Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKit/EnvironmentUtilitiesTest.cpp:

(TestWebKitAPI::testStrip):
(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/FTP.mm:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:

(TEST):
(runMultipleIndicesTestWithDatabase):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IDBObjectStoreInfoUpgradeToV2.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::parseUserAgent):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:

(addAttributedPCMv2):
(addUnattributedPCMv2):
(addAttributedPCMv3):
(addUnattributedPCMv3):
(addUnattributedPCMv4):
(addAttributedPCMv4):
(addAttributedPCMv5):
(createAndPopulateObservedDomainTable):
(createAndPopulatePCMObservedDomainTable):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[ServiceWorkerSchemeHandler webView:startURLSchemeTask:]):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(ParsedRange::ParsedRange):

  • Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didFinishProgress):
(WTR::InjectedBundlePage::dump):
(WTR::InjectedBundlePage::didDisplayInsecureContentForFrame):
(WTR::InjectedBundlePage::didRunInsecureContentForFrame):
(WTR::InjectedBundlePage::didDetectXSSForFrame):
(WTR::InjectedBundlePage::willSendRequestForFrame):
(WTR::InjectedBundlePage::willAddMessageToConsole):
(WTR::InjectedBundlePage::supportsFullScreen):
(WTR::InjectedBundlePage::enterFullScreenForElement):
(WTR::InjectedBundlePage::exitFullScreenForElement):
(WTR::InjectedBundlePage::beganEnterFullScreen):
(WTR::InjectedBundlePage::beganExitFullScreen):
(WTR::InjectedBundlePage::closeFullScreen):

  • Tools/WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureContentExtensionForTest):

  • Tools/WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::TestInvocation):
(WTR::TestInvocation::urlContains const):
(WTR::TestInvocation::shouldLogHistoryClientCallbacks const):

  • Tools/WebKitTestRunner/TestInvocation.h:
  • Tools/WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::configureContentExtensionForTest):

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

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

Cherry-pick 1a810ee6f98a. rdar://problem/87980543

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>> &&')

Canonical link: https://commits.webkit.org/245886.575@safari-7613.3.1.1-branch
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-7613.3.1.1-branch@294732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:50 PM Changeset in webkit [294850] by Alan Coon
  • 7 edits in branches/safari-613-branch/Source

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

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

This reverts r294684.

Canonical link: https://commits.webkit.org/245886.574@safari-7613.3.1.1-branch
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-7613.3.1.1-branch@294731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:50 PM Changeset in webkit [294849] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

Cherry-pick 589c2b5478bb. rdar://problem/92780272

Apply patch. rdar://problem/92780272

Canonical link: https://commits.webkit.org/245886.563@safari-7613.3.1.1-branch
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-7613.3.1.1-branch@294055 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:50 PM Changeset in webkit [294848] by Alan Coon
  • 6 edits
    2 adds in branches/safari-613-branch

Cherry-pick f5e42d63fc9. 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

4:50 PM Changeset in webkit [294847] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/JavaScriptCore/b3/B3ReduceStrength.cpp

Cherry-pick 6983e76741a1. rdar://problem/93536782

Refine B3ReduceStrength's range for sign extension operations.
https://bugs.webkit.org/show_bug.cgi?id=240720
<rdar://problem/93536782>

Reviewed by Yusuke Suzuki and Keith Miller.

  • Source/JavaScriptCore/b3/B3ReduceStrength.cpp:

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

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

Cherry-pick r293094. rdar://problem/91683009

Some AutoscrollController cleanup
https://bugs.webkit.org/show_bug.cgi?id=239512

Reviewed by Alan Bujtas.

Have AutoscrollController store a WeakPtr to the render object. Address an apparent
null de-ref in AutoscrollController::stopAutoscrollTimer() where the Frame can null.

Refactor updateDragAndDrop() with a lambda so that all the code paths that exit early
clearly call stopAutoscrollTimer() which nulls out the renderer.

  • page/AutoscrollController.cpp: (WebCore::AutoscrollController::autoscrollRenderer const): (WebCore::AutoscrollController::startAutoscrollForSelection): (WebCore::AutoscrollController::stopAutoscrollTimer): (WebCore::AutoscrollController::updateAutoscrollRenderer): (WebCore::AutoscrollController::updateDragAndDrop): (WebCore::AutoscrollController::startPanScrolling):
  • page/AutoscrollController.h:
  • page/EventHandler.cpp: (WebCore::EventHandler::startPanScrolling):

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

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

Cherry-pick r292596. rdar://problem/88862115

Take top layers into account in addLayers/removeLayers
https://bugs.webkit.org/show_bug.cgi?id=238946

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-08
Reviewed by Simon Fraser.

Take top layers into account in addLayers/removeLayers, they
should use the RenderView layer as parent (emulating layerParent).

  • rendering/RenderElement.cpp: (WebCore::addLayers): (WebCore::RenderElement::addLayers): (WebCore::RenderElement::removeLayers): (WebCore::RenderElement::willBeRemovedFromTree):
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::calculateClipRects const):

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

4:49 PM Changeset in webkit [294844] by Alan Coon
  • 8 edits in branches/safari-613-branch

Cherry-pick r294234. rdar://problem/93602100

Web Inspector: Regression(r266885) Crash sometimes when rehydrating imported audit results
https://bugs.webkit.org/show_bug.cgi?id=240366

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Source/WebCore:

Added test cases to inspector/model/dom-node.html

After r266885, there is no path to handle the possibility that there may not be a resulting node for calls to
DOM.querySelector. To correct this, mark the return value as optional (Web Inspector frontend already treats
it as optional) and return early if there was no Element matching the selector.

  • inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::querySelector):
  • inspector/agents/InspectorDOMAgent.h:

LayoutTests:

  • inspector/model/dom-node.html:
  • inspector/model/dom-node-expected.txt:

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

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

Cherry-pick r293922. rdar://problem/93602176

null ptr deref in WebCore::Frame::setPrinting
https://bugs.webkit.org/show_bug.cgi?id=240173

Reviewed by Wenson Hsieh.

Check m_doc in Frame::setPrinting before access, as it is a RefPtr that can become null.

  • page/Frame.cpp: (WebCore::Frame::setPrinting):

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

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

Cherry-pick r293857. rdar://problem/93602013

Remove unnecessary calls to CachedResource::updateBuffer and CachedResource::updateData
https://bugs.webkit.org/show_bug.cgi?id=240126

Patch by Alex Christensen <achristensen@webkit.org> on 2022-05-05
Reviewed by Chris Dumez.

It adds a function call that does nothing but a redundant assert.

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::updateBufferInternal): (WebCore::CachedImage::updateBuffer): (WebCore::CachedImage::updateData):

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

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

Cherry-pick r293827. rdar://problem/92624773

replaceTrack with different constraints stops sending packets
https://bugs.webkit.org/show_bug.cgi?id=239978
<rdar://problem/92624773>

Reviewed by Eric Carlson.

We should always reconfigure the microphone processor even if we are not using it,
as VPIO expects that input and output formats should match.

Manually tested with https://bugs.webkit.org/show_bug.cgi?id=239978 and https://jsfiddle.net/72qsLw9a/.
A follow-up should allow to put more common code between CoreAudioSharedUnit and MockAudioSharedUnit
so that we can write a regression test.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

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

4:49 PM Changeset in webkit [294840] by Alan Coon
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r293819. rdar://problem/93602086

Crash in WindowProxy::setDOMWindow
https://bugs.webkit.org/show_bug.cgi?id=232763

Patch by Alex Christensen <achristensen@webkit.org> on 2022-05-04
Reviewed by Chris Dumez.

Source/WebCore:

Add a few null checks here and there.

Test: fast/dom/set-dom-window-without-page.html

  • bindings/js/WindowProxy.cpp: (WebCore::WindowProxy::setDOMWindow):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::findFrameForNavigation):

LayoutTests:

  • fast/dom/set-dom-window-without-page-expected.txt: Added.
  • fast/dom/set-dom-window-without-page.html: Added.

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

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

Cherry-pick r293728. rdar://problem/92362769

Fix buggy assert in CoreAudioSharedUnit::configureSpeakerProc
https://bugs.webkit.org/show_bug.cgi?id=240001

Reviewed by Eric Carlson.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: Initialize the sampleRate field before using it.

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

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

Cherry-pick r293664. rdar://problem/92362769

VPIO requires the same sample rate for microphone and speaker formats
https://bugs.webkit.org/show_bug.cgi?id=239956

Reviewed by Eric Carlson.

VPIO requires the speaker sample rate and microphone sample rate to be the same.
This is not guaranteed to be true : getUserMedia/applyConstraints may set the microphone sample rate to different values.
If audio rendering already started at capture start time, we use the audio rendering sample rate.
This is not strictly compliant, given required constraints but they are not widely used.
Applications that want to make sure to use a specific sample rate would need to pause audio rendering when starting to capture.
We reset exposed settings when starting to capture to expose the actual sample rate to JavaScript through MediaStreamTrack.getSettings().

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

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

4:49 PM Changeset in webkit [294837] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/ThirdParty/libwebrtc

Cherry-pick r293643. rdar://problem/92445366

[Mac] VTVideoDecoderClass object pointers can become unaligned on x86
https://bugs.webkit.org/show_bug.cgi?id=239916
<rdar://92445366>

Reviewed by Eric Carlson.

Both the base class and the derived class must be 4-byte aligned on x86, or there
is a chance that a pointer member of that struct will cross a page boundary, and
dereferencing that pointer will fail.

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

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

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

Cherry-pick r293147. rdar://problem/93601944

Skip release assert during container query resolution
https://bugs.webkit.org/show_bug.cgi?id=239537

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-21
Reviewed by Antti Koivisto.

Skip release assert during container query resolution
since resolveStyle will be a no-op as the container
query resolution was started in resolveStyle, so calling
resolveStyle the second time will bail right away.

  • dom/Document.cpp: (WebCore::Document::updateStyleIfNeeded):

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

4:42 PM Changeset in webkit [294835] by Wenson Hsieh
  • 1 edit in trunk/Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp

Avoid extracting the main video in element fullscreen when fullscreen mode isn't active
https://bugs.webkit.org/show_bug.cgi?id=240910
rdar://93906888

Reviewed by Eric Carlson.

Add a check that we're actually still in element fullscreen before extracting the main video. Since
WebFullScreenManager and its m_element both persist after exiting fullscreen mode, there's
currently nothing preventing us from re-triggering video extraction when a video is paused once
again outside of fullscreen mode.

Covered by a new API test (more details in the bug).

  • Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::handleEvent):
(WebKit::WebFullScreenManager::mainVideoElementExtractionTimerFired):

Deal with another corner case, wherein the main video element we previously detected may no longer
be in the fullscreen element's subtree by the time that the extraction timer fires. To avoid this,
always update the main video element again when the extraction timer is fired (as long as we're
still in fullscreen mode), before proceeding with extraction.

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

4:27 PM Changeset in webkit [294834] by commit-queue@webkit.org
  • 534 edits
    4 copies
    6 moves
    22 adds
    2 deletes in trunk/Source/ThirdParty/ANGLE

Update ANGLE to 2022-05-24 (8291f2d3e72eca3a25826b689a013c292ef4ba94)
https://bugs.webkit.org/show_bug.cgi?id=240894

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-25
Reviewed by Kimmo Kinnunen.

Contains upstream commits:
8291f2d3e Fix ValidCompressedSubImageSize for 3D uploads
84a0b462d Vulkan: Bug fix in GL_QCOM_shading_rate
1afb80587 Add Vulkan backend support for texture labels
7a243dbe2 Capture/Replay: Allow repeated Gen-on-Bind for resources
7df1f5816 GN: Add angle_build_tests.
11e9c8351 Vulkan: Dump graphics pipeline cache graph
2f0b6429b Revert "util/X11Window: Set PMinSize and PMaxSize hints."
cd48eedd9 Roll Chromium from 99a468a0505d to d624307d6d25 (438 revisions)
35e54dbb6 Vulkan: Fix EXT_texture_buffer support condition
f6c149339 dEQP: Support Wayland
6e2588639 Vulkan: Use packed enum for present modes
9e0a7be6c Traces: Update restricted_trace_perf.py
2ae8bdb3a Roll vulkan-deps from 880c9e0050c6 to 82a65519c521 (5 revisions)
80be1bb38 Roll SwiftShader from 73679602bc0b to b5cb037f0292 (2 revisions)
2db4297ad Roll Chromium from f0d8ec07c77f to 99a468a0505d (698 revisions)
e4a517c92 Vulkan: Rearrange GraphicsPipelineDesc to reduce footprint
f52c629b9 Capture/Replay: Make sure replay tests build libEGL
0b808c746 Silence all std::iterator deperecation warnings
bb3afdf42 Drop support for 64xMSAA+
688553c03 Vulkan: Dynamic state for primitive restart enable
c76fb2d82 Enable EXT_texture_norm16 on ES2/D3D11
3b78e0d56 Vulkan: Dynamic state for depth bias enable
7c83a3635 Vulkan: Dynamic state for rasterizer discard enable
2faabfe5e Vulkan: Optimize pipeline desc w.r.t dynamic state
ee1894e5f Account for GL_ANGLE_yuv_internal_format when setting yuv state
3da24b5cd Move trace loader code to a common location.
52c42e5a8 Temporarily disable deprecation warnings for VK-GL-CTS
88f582f6a D3D: fix whole-array assignment to SSBOs.
f8e8b7cc3 Roll vulkan-deps from c37d1e2ab98c to 880c9e0050c6 (19 revisions)
8af51b7ef Roll SwiftShader from 2933d3126969 to 73679602bc0b (4 revisions)
c3687f079 Roll Chromium from 170d12460fd5 to f0d8ec07c77f (430 revisions)
58fd31577 Vulkan: Dynamic state for vertex stride
e71a3e5fa Insert Metal polyfill for Matrix /= Scalar when needed
78ea85213 Suppress Flaky Tests
af869f4ac Update capture replay expectation file
118a6484c Metal: Upstream buffer cache fix from WebKit
f674e501f Tests: Add Bridge Constructor Portal trace
728dea2be Suppress Vulkan Validation Error
40269f91c Fix trigger.py to run mb.py with python3
c7182af2b Vulkan: Reserve varying for xfb if pre-rotation is enabled
86074fc77 Roll Chromium from dbb1f3a2b2f7 to 170d12460fd5 (586 revisions)
54a6b76f6 Roll third_party/rapidjson/src/ 7484e06c5..781a4e667 (156 commits)
2fd7444bc Fetch gn binary for the correct architecture on linux.
06fa297b6 Roll SwiftShader from cb4fc6d02fe4 to 2933d3126969 (1 revision)
6ae0c3214 Vulkan: clamp dynamic line width to supported values
d3eb61d4a D3D11: fix SSBO load in a return statement.
28dfa45d6 Spawn via vpython when old module detected.
b7474d0ae D3D11: Add GL_EXT_texture_buffer support
87ea0c7df Vulkan: SPIR-V Gen: Apply Flat to gl_Layer in FS
8701f53a4 Vulkan: Fix clear value for incomplete MS textures
dbeba9004 Reland "CGL, MTL: pbuffer for IOSurface fails for some formats"
b4ec8eac5 D3D11: implement image load/store for non-compute shaders.
2fdd7bfd1 Vulkan: Support binding 2D slice of a 3D texture to an image unit
14ca09bcf Metal: Remove the long type from program preludes
ff011779c Vulkan: Let texture buffer handle BufferVk's storage change
3d430f5f3 Vulkan: Add test for texture buffer and buffer data interaction
2abf9adf6 Vulkan: Bug fix in YUV descriptor pool allocation
78b8f5467 Roll SwiftShader from 89eb09307fbc to cb4fc6d02fe4 (1 revision)
428cd884e Tests: Add Stardew Valley trace
5e34541a1 Roll SwiftShader from 4011ab35f3d8 to 89eb09307fbc (3 revisions)
4dc9c79e0 Roll Chromium from 73ffbbeac851 to dbb1f3a2b2f7 (503 revisions)
c649979b7 Create EGLImage from VkImage correctly with non sized format
cd4cce3f8 Add more tips about recovering the qpa file.
957a44f41 Clarify that angle_debug_package is necessary to load the apk
93c0c90db Suppress the failing egl test to unblock roller
a277f1bce Vulkan: Fix Wayland surface size queries
6136ba273 D3D: minor cleanup of gl::RangeUI usage.
4ece3b08f Vulkan: Multiple DRM formats
d75bf9ad0 Capture/Replay: Also limit the number of per shader SSBOs
552b01d15 Roll vulkan-deps from 131de3fd9ec7 to c37d1e2ab98c (2 revisions)
7d7ed2538 Roll Chromium from 11b60f867851 to 73ffbbeac851 (445 revisions)
807c94ea8 Capture/Replay: Adjust tests do adhere to capture limits
891a46820 Vulkan: Dynamic state for stencil test/op
66dcca5e5 Vulkan: Dynamic state for depth test/write/op
bedb3075b Do not call RendererVK::handleDeviceLost() for device lost
15ecf068e Vulkan: Dynamic state for depth bounds
20820bb4b Make BitSetArray constexpr
36f5e6ce5 Vulkan: Fix DRM to GL format conversion
1cbcc1da1 Roll vulkan-deps from c6a60f3cc711 to 131de3fd9ec7 (22 revisions)
459c367ed D3D: Initialize storage after generating mipmap images.
ed909ee8a Roll SwiftShader from f1c2c0b07281 to 4011ab35f3d8 (1 revision)
7f14dd79b Roll Chromium from 3aa3e39b0aca to 11b60f867851 (666 revisions)
48b1f07b0 Vulkan: Dynamic state for front face
4e5da2d28 Vulkan: Dynamic state for cull mode
62fe36d3b Vulkan: Emulate YUV built-ins
4b95ac7df Vulkan: Don't invalidate pipeline on dynamic state change
81c84292f Do not do cleanup for Vulkan device lost
808192a74 Code Cleanup
87058cb8a Re-skip flaky test un-skipped by crrev.com/c/3641181
1b434e96b Skip flaky test on Mac NVIDIA.
4a7dd9429 Metal: Fix dangling pointer warning in IntermRebuild.cpp
e56f227d6 Vulkan: Add case: TextureSampleByDrawDispatchDraw
ece8fb5df Roll vulkan-deps from b768d03422ea to c6a60f3cc711 (1 revision)
03ccd9cc9 Revert "Vulkan: Flush texture updates more often"
21ad9b3c8 Vulkan: Add generic descriptors for DS cache.
d8d396dbc Vulkan: Add shared descriptor set caches.
0f2fc7664 TracePerfTest: Add ability to screenshot after reset.
7dc316c8f Roll Chromium from 65b23f3c9e05 to 3aa3e39b0aca (497 revisions)
8bb7c35c2 Vulkan: Flush texture updates more often
addfab1f7 Update docs for SwANGLE triage process.
8e844d0ff Tests: Add Black Desert Mobile trace.
389ae6b9a Add extension for read-only DS feedback loops.
40583b0f9 Tests: Skip pubg_mobile_skydive on Nvidia
4df8ca04f Remove angle_util from restricted traces.
580f90c7d Test Runner: Accept Chromium bot mode flag.
73cb1e6e2 Vulkan: Tag dynamic dirty bits with DYNAMIC
4ffab3bf5 Vulkan: Dynamic state for stencil reference
3d55cf0c0 Vulkan: Optimize the vkImage layout when used as GL_image
7e9e597ea Roll SwiftShader from e0a1188d7652 to f1c2c0b07281 (2 revisions)
8ec7b8b87 Roll Chromium from 693c7419bd5c to 65b23f3c9e05 (580 revisions)
1d8227dab Vulkan: Dynamic state for stencil write mask
c3def6fab Vulkan: Dynamic state for stencil compare mask
e9dc0f86d Cleanup from glBlitFramebuffer() 3D texture fix.
dcaa18b9c Vulkan: Dynamic state for blend color
536d6f57e Vulkan: Dynamic state for depth bias
42789b630 Use GLTexture in TextureTest for RAII goodness.
780f1a41b Vulkan: Dynamic state for line width
9b15e1c23 D3D11: clean up ES31 test expectations.
f6610106f Add a draw call perf test for changing a single uniform.
e73121b19 Vulkan: Fix VulkanPipelineCachePerfTest
dd9b4afe5 D3D: minor cleanup for image load/store.
1fa4442ba Vulkan: Set dynamic state after binding pipeline
089f2871b PerfTests: Add support for eglCreateImage and eglDestroyImage
5b623dd4b D3D9: Enable OES_fbo_render_mipmap
25ebc3b86 Roll vulkan-deps from 27ef4a0d9701 to b768d03422ea (7 revisions)
eea6366c7 Roll SwiftShader from e4a6f2d74d3c to e0a1188d7652 (1 revision)
029a4c948 util: Add calls for createImage* and destroyImage* to GLWindow
486ae89e4 Roll Chromium from 46c13be19f0f to 693c7419bd5c (567 revisions)
a8ebdf2b5 Basis Universal Texture Experiment
6ddbfa397 Metal: Log the shader source when a shader fails to translate
52904367d D3D: Mark images clean after syncing from storage
f1640db8c Fix crash when calling certain gl APIs before initialization.
66b9214fb Capture/Replay: rename ANGLE_CAPTURE to ANGLE_CAPTURE_GL
2fb58a95b Re-land: "Vulkan: GBM platform"
4ecb1e3e6 Vulkan: Support wide lines
18089dff2 Vulkan: Clean up flag passing in ImageView init.
8e1215716 D3D11: fix 3D texture blits.
464f30f4e Vulkan: Refactor UtilsVk dynamic state handling
86d9d66dc Vulkan: Determined sized-ness of format in initImageViews.
9872c1d63 Switch deqp merge to python3
5fa8f9045 Roll vulkan-deps from 626b2fd72bde to 27ef4a0d9701 (2 revisions)
c8c2664af Roll SwiftShader from 1dd93361b1d9 to e4a6f2d74d3c (2 revisions)
6bf0e620a Roll Chromium from 7f78f00fdc5c to 46c13be19f0f (273 revisions)
2b8172b9b Vulkan: Add missing initialization for mTotalMemorySize
31321cb73 Vulkan: Remove suppressions and workarounds for old AMD/Windows
0db4c39b5 Revert "Vulkan: GBM platform"
26a2e1471 Roll Chromium from bc117969dbb5 to 7f78f00fdc5c (162 revisions)
d4442f538 Reset the program executable if async linking fails.
825d5b2c5 Vulkan: GBM platform
0b0744f3e Vulkan: Fix VVL error for black desert mobile
b51bbe246 Add CopyTextureTest.ClearAfterCopySubTexture
b54b11460 Vulkan: Use ImageView layer count functions in TextureVk.
c8c4109cd HLSL: Disambiguate functions that have int/uint parameters.
e1de0950d Vulkan: Always init image views using image format.
8b4e74127 Roll SwiftShader from 74e34ab97aeb to 1dd93361b1d9 (3 revisions)
78d88796b Roll Chromium from 333c8248b125 to bc117969dbb5 (506 revisions)
e316203a6 Vulkan: add forceContinuousRefreshOnSharedPresent feature
225d8f83a Tests: Add Mortal Kombat App Trace
fa4523cf2 Roll vulkan-deps from 4ca7acf89869 to 626b2fd72bde (22 revisions)
cadb933fd Roll Chromium from 3bc34dd4d819 to 333c8248b125 (124 revisions)
1d073482a Tests: Add Basemark GPU trace
38a53d654 Revert "Remove limit_max_texture_size_to_4096 workaround"
bec809fe9 [Fuchsia] Download the gn sdk instead of core
5f2ad1537 Tests: Add Puzzles and Survival trace
b33d15556 Roll VK-GL-CTS from 106df4122297 to acf70aaf3fdb (12 revisions)
950db602b Roll SwiftShader from 643179694ec7 to 74e34ab97aeb (7 revisions)
dbbfac650 Tests: Add Monument Valley trace
b365a6069 Tests: Add Dead Cells trace
72cc8cbca Migrate Fuchsia sdk checkout from using script to CIPD
e0d00563f Vulkan: Simplify external format Chroma code.
51d6a1d96 Roll Chromium from 617cd3226543 to 3bc34dd4d819 (40 revisions)
a78eca2ca util/X11Window: Set PMinSize and PMaxSize hints.
332c9ad04 Roll Chromium from 7a60295b6324 to 617cd3226543 (278 revisions)
1d5d09e41 Vulkan: Prefer MAILBOX over IMMEDIATE present mode
d075dfe25 Vulkan: Reduce kMaxBufferToImageCopySize to 64M
333da2cf1 Vulkan: Limit the total bytes of suballocation garbages in flight
98488a196 FramebufferTest: Add FramebufferChangeTest test.
b79178a3e Scripts: Strip prebuilt debug APK from AOSP roll
8dcba9ae6 Roll Chromium from 1c301e690de1 to 7a60295b6324 (184 revisions)
51dc3c3e6 Vulkan: Force prune when there are lots of suballocations destroyed
bcc03bd62 Remove limit_max_texture_size_to_4096 workaround
2fae9482c Vulkan: Use heuristic to decide how many empty buffers to keep
0afa5b9f9 Tests: Add Alto's Odyssey trace.
2ce60b52a Fixes for C++20 support.
3f216ee74 Vulkan: Set timeout for MultiContextDrawWithSwap*
bd44b29d2 Roll Chromium from 6db3a94387ed to 1c301e690de1 (550 revisions)
d73468673 Decommission win7-x86-amd and win7-x64-nvidia
9865ed8b8 Check in build files needed.
9053a641b Vulkan: Wayland dmabuf extensions
77cd0b5a3 Re-land: "Vulkan: Cache ImageView serials on texture changes."
b72cff8c0 Fix build flags not in declare_args when angle_has_build is true
14c483f1c Presubmit: Verify comment before new tests
dc1ab34c9 Roll SwiftShader from cdf43bd816d7 to 643179694ec7 (4 revisions)
34fb4f790 Roll Chromium from 55c89a3a09ac to 6db3a94387ed (508 revisions)
edd331ebe Traces: Add a device arg to restricted_trace_perf
a7238b525 Consolidate handle list before pushing to mReleasedList
064fc64aa infra: Remove some slow *SAN tests.
9ab470749 D3D11: fix BufferToTexture copy when UNPACK_ROW_LENGTH is set.
9ad43bdd2 Re-land: "Vulkan: Support Wayland"
5c9f676d3 Basis Universal Texture Experiment
84e42c3b0 Fix validation cache when deleting a Transform Feedback.
b5f0fd1bd Skip flaky tests on Win ASAN
c0942c2d4 Roll vulkan-deps from 1cde45b8d7aa to 4ca7acf89869 (6 revisions)
c92d69d7d Roll SwiftShader from adef92e7b4c6 to cdf43bd816d7 (8 revisions)
4bbc55f4c Revert "Re-land: "Vulkan: Support Wayland""
58526dea2 Roll Chromium from 929311ac6298 to 55c89a3a09ac (470 revisions)
5113ae8ef Vulkan: Explicitly enable per-sample shading if sample used
9200ba537 Reland "Make SPIRV optional for Metal backend"
802504add Vulkan: Add log for buffer pool stats
4d26c66d0 Vulkan: Call cleanupGarbage only if mLastCompletedQueueSerial changed
527557b9c Fix ValidateFramebufferTextureLayer for cubemap arrays
e6662832a Re-land fixing of commit ID for Android builds.
3e05b93af Vulkan: MSAA swapchain resolve based on renderArea
c6e6e284e Update Android deqp and end2end sharding
237479a27 Fix presubmit following https://crrev.com/c/3611486
bc929e6e5 D3D11: recompile all shaders using 10.0.20348.0 toolchain.
b953bc13e Tests: Add GFXBench Tessellation trace
f7615d0ad OpenGL: Add allow_astc_formats workaround
4dc4c0f05 Remove whitespace from features json files
df163d714 Test both MSL translators in APPLEClipDistanceTest
06fa7e39a Expand Intel GPU detection
e0dd196a0 Re-land: "Vulkan: Support Wayland"
ea9a2dbea Capture/Replay: handle glGetVertexAttrib parameter value
41adabc48 Use app data dir instead of /sdcard for writing qpa file
5b4f180cd Fix formatting
f1c5e2b11 Roll vulkan-deps from 7b51f5f85aad to 1cde45b8d7aa (4 revisions)
fd57d8f0c Roll Chromium from 3a1ff9044aec to 929311ac6298 (541 revisions)
e55990e35 Capture/Replay: Handle arrays with uniform block indices
1aa4c120d gl_tests: Fix formatting
c7a9f0c6c Vulkan: Remove syncval suppressions no longer triggering
e39dfe0fe Roll VK-GL-CTS from a22069b4e3b7 to 106df4122297 (1 revision)
3eb2bcf77 Vulkan: Fix syncval errors with DONT_CARE for unused attachments
3eb891960 Roll Chromium from 1e97e6cd1c3c to 3a1ff9044aec (639 revisions)
31f841386 Add option for Metal output to angle_shader_translator
394fb0d34 Vulkan: Don't take lock for getLastCompletedQueueSerial
5e4c141c2 Tests: Add GFXBench Driver Overhead 2 trace
7184fe38c Tests: Add Jetpack Joyride trace.
8b26c14c0 Roll SwiftShader from b92f7acb7e81 to adef92e7b4c6 (4 revisions)
2d3ad8ec6 Roll vulkan-deps from 1963b94c99e8 to 7b51f5f85aad (4 revisions)
1c4c9fe95 Capture/Replay: Fix formatting
2c58e7a5b Reduce console spam from Metal shader translation
437053a16 Revert "Make SPIRV optional for Metal backend"
f9729598a Revert "Fix commit ID gathering on Android builds."
c1d0e139d Roll vulkan-deps from 4f93dbdc6060 to 1963b94c99e8 (2 revisions)
d5ceba0b4 Roll SwiftShader from f88fc3b53c52 to b92f7acb7e81 (3 revisions)
3e4069290 Roll Chromium from c7e51a124fab to 1e97e6cd1c3c (915 revisions)
2a6e123b1 Vulkan: Move pruneOrphanedBufferBlocks to last
266111a55 Vulkan: Fix SemaphoreCount best practice warning
1ef90012b Vulkan: Remove API access for mTotalBufferToImageCopySizen
454efd1d5 Add forceDepthAttachmentInitOnClear frontend workaround
29287e1fc Make SPIRV optional for Metal backend
3b65b8037 Vulkan: Work around Qualcomm imprecision with dithering
6c2486918 Enable SINGLE_BUFFER with eglCreateWindowSurface
1835e5d89 Fix commit ID gathering on Android builds.
c9794d6c0 Run a smoke test in each shard and crash on timeouts.
80d50b992 Add build arg to automatically attach renderdoc
7d31a47fc Vulkan: Optimize away eglSwapBuffers for single buffer surfaces
5c756bc1a Perf Tests: Compute GPU time periodically
c402f002b Android perf tests shards 20->6 (only --smoke-test-mode)
6930184ef Log runTests so that it shows up in logcat dumps.
c45aff4f2 Roll SwiftShader from 5f5faa3a2aad to f88fc3b53c52 (4 revisions)
cc834907f Roll vulkan-deps from f685346e2e51 to 4f93dbdc6060 (2 revisions)
95c1ff52b EGL: Fix EGL_KHR_mutable_render_buffer
0c59b5d90 Log debuggerd $PID output when instrumentation gets stuck.
fe2c82ad3 check integer overflow in Texture copyImage
cdcf17153 Add missing result_skip and result_fail.
1a144edfe Metal:ReadPixels AMD Copy Texture to Buffer optimization
6b9c5c8d1 Vulkan: Improve GetStorageMemoryType logic
cbdefd933 Roll chromium_revision 192db13f85..c7e51a124f (995097:996181)
d0c8363e0 Dump logcat if instrumentation doesn't finish in 10 minutes.
ebfb9b9f0 Configure logging in perf and gold tests to include time.
7555a1590 DEPS: Remove deprecated chromium dep
fc8282875 Tests for Nvidia/Vulkan bugs with tessellation control

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

4:24 PM Changeset in webkit [294833] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[Gardening]: [ iOS Debug ] resize-observer/resize-observer-with-zoom.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240929
<rdar://93934172>

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

3:57 PM Changeset in webkit [294832] by Said Abou-Hallawa
  • 19 edits in trunk/Source/WebCore/platform/graphics

[GPU Process] [Filters] Don't use Uint8ClampedArray in software filter appliers
https://bugs.webkit.org/show_bug.cgi?id=240777
rdar://93916935

Reviewed by Simon Fraser.

The plan is to allocate the FilterImage buffers differently for GPUProcess. The
first step is to hide the underlying memory of PixelBuffer from the software
filter appliers. Helpers functions will provide access to Uint8ClampedArray. In
future patches different memory allocation will be used by new sub-classes of
PixelBuffer.

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

(WebCore::PixelBuffer::bytes const):
(WebCore::PixelBuffer::byteLength const):
(WebCore::PixelBuffer::setRange):
(WebCore::PixelBuffer::zeroRange):
(WebCore::PixelBuffer::item const):
(WebCore::PixelBuffer::set):
(WebCore::PixelBuffer::createScratchPixelBuffer const):

  • Source/WebCore/platform/graphics/PixelBuffer.h:

(WebCore::PixelBuffer::zeroFill):

  • Source/WebCore/platform/graphics/filters/FEComposite.h:
  • Source/WebCore/platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::correctPremultipliedPixelBuffer):

  • Source/WebCore/platform/graphics/filters/software/FEColorMatrixSoftwareApplier.cpp:

(WebCore::FEColorMatrixSoftwareApplier::applyPlatformAccelerated const):
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformUnaccelerated const):

  • Source/WebCore/platform/graphics/filters/software/FEComponentTransferSoftwareApplier.cpp:

(WebCore::FEComponentTransferSoftwareApplier::applyPlatform const):

  • Source/WebCore/platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic const):

  • Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp:

(WebCore::FEConvolveMatrixSoftwareApplier::setDestinationPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::setInteriorPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::setOuterPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
  • Source/WebCore/platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp:

(WebCore::FEDisplacementMapSoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp:

(WebCore::FEDropShadowSoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:

(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAlphaOnly):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlur):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAccelerated):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurUnaccelerated):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurGeneric):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurWorker):
(WebCore::FEGaussianBlurSoftwareApplier::applyPlatform):
(WebCore::FEGaussianBlurSoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
  • Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.cpp:

(WebCore::FELightingSoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
  • Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:

(WebCore::FEMorphologySoftwareApplier::columnExtremum):
(WebCore::FEMorphologySoftwareApplier::applyPlatformGeneric):
(WebCore::FEMorphologySoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
  • Source/WebCore/platform/graphics/filters/software/FETurbulenceSoftwareApplier.cpp:

(WebCore::FETurbulenceSoftwareApplier::applyPlatformGeneric):
(WebCore::FETurbulenceSoftwareApplier::applyPlatformWorker):
(WebCore::FETurbulenceSoftwareApplier::applyPlatform):
(WebCore::FETurbulenceSoftwareApplier::apply const):

  • Source/WebCore/platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:

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

3:45 PM Changeset in webkit [294831] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit/UIProcess

Prevent NSAttributedString crashes when AppSSO URLs are provided
https://bugs.webkit.org/show_bug.cgi?id=240739
<rdar://93656000>

Reviewed by Chris Dumez.

When NSAttributedString is used in a sandboxed app, it is prevented from checking in with the
AppSSO plugin manager, causing a Sandbox Violation and crash. We don't want NSAttributedString
to ever hand-off to AppSSO, so we should configure it's internal WKWebView to do the right thing.
Reviewed by Chris Dumez.

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

(+[_WKAttributedStringWebViewCache configuration]): Turn off AppSSO for string uses.

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

(WebKit::trySOAuthorization): Use new lazy loading approach.

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::trySOAuthorization): Ditto.

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

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::soAuthorizationCoordinator): Lazily initialize, and RELEASE_ASSERT
if we somehow reach this code without enabling AppSSO.

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

(WebKit::WebsiteDataStore::soAuthorizationCoordinator): Deleted.

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

3:36 PM Changeset in webkit [294830] by Kate Cheney
  • 5 edits in trunk

Directories showing up as terminal icons in mail compose
https://bugs.webkit.org/show_bug.cgi?id=240882
rdar://45111300

Reviewed by Wenson Hsieh.

  • Source/WebCore/rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::iconForAttachment):
We should not try to fetch an icon if all three provided strings are
null. This was causing issues by attempting to fetch an icon after
already rendering a valid icon using the filewrapper.

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

(WebKit::WebPageProxy::requestThumbnailWithOperation):
(WebKit::WebPageProxy::requestThumbnailWithPath):
Remove some extra spaces and unnecessary WebCore:: prefix.

(WebKit::WebPageProxy::updateIconForDirectory):
New function to update the icon for directories to use the filewrapper
icon instead of the iconForFileType API. This method flips the icon so
it is right-side-up and converts it to a bitmap to pass to the web
process.

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestAttachmentIcon):

  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(testDirectoryAttachmentFileURL):
(-[TestWKWebView waitForAttachmentElementSizeToBecome:]):
(TestWebKitAPI::_icon):
(TestWebKitAPI::TEST):
Add a test to make sure we hit the new NSFileWrapper icon path to fetch
the correct icon for the bundle.

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

3:36 PM Changeset in webkit [294829] by Karl Rackler
  • 2 edits in trunk/LayoutTests/platform

[Gardening]: [ iOS Debug Big Sur Debug wk2 ] ASSERTION FAILED: WebCore::IDBTransaction::dispatchEvent(WebCore::Event&)
https://bugs.webkit.org/show_bug.cgi?id=240927
<rdar://93929670>

Unreviewed test gardening.

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

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

3:29 PM Changeset in webkit [294828] by commit-queue@webkit.org
  • 3 edits in trunk

[LFC][IFC] Support each-line keyword in text-indent
https://bugs.webkit.org/show_bug.cgi?id=240731

Patch by Kiet Ho <Kiet Ho> on 2022-05-25
Reviewed by Alan Bujtas.

Normally, text-indent only affects the first line. When 'each-line' is specified,
subsequent lines where the previous line ends with a hard break are also indented.
This is supported in the legacy layout engine but not in LFC. Adds support for
'each-line' to bring LFC to parity with the legacy engine.

Test: imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-hanging.html

  • LayoutTests/TestExpectations: Remove ImageOnlyFailure expectation.
  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const): Add logic to
indent line when 'each-line' is specified, and the previous line ends with a
hard break.

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:
  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h: Modify

initialConstraintsForLine to accept information about the previous line,
not just whether there's one or not.

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

3:14 PM Changeset in webkit [294827] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.10.7

Tag WebKit-7614.1.14.10.7.

3:12 PM Changeset in webkit [294826] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.7

2:47 PM Changeset in webkit [294825] by Angelos Oikonomopoulos
  • 1 edit in trunk/Tools/Scripts/run-jsc-stress-tests

[run-jsc-stress-tests] Catch user error
https://bugs.webkit.org/show_bug.cgi?id=240905

Reviewed by Adrian Perez de Castro and Jonathan Bedard.

When the user has made a typo in the argument to --filter (selecting no
tests to execute), bring that to the user's attention instead of exiting
without an error.

  • Tools/Scripts/run-jsc-stress-tests:

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

2:38 PM Changeset in webkit [294824] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/Scripts/process-entitlements.sh

[iOS] WebContent captive portal XPC service needs entitlement to set sandbox state variables
https://bugs.webkit.org/show_bug.cgi?id=240921

Reviewed by Geoffrey Garen.

This patch also adds a function for the shared WebContent entitlements on iOS.

  • Source/WebKit/Scripts/process-entitlements.sh:

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

2:36 PM Changeset in webkit [294823] by Patrick Angle
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

Re-enable http/tests/inspector/network/har/har-page.html for mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=229458

Unreviewed test expectations update.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

2:26 PM Changeset in webkit [294822] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.11

2:16 PM Changeset in webkit [294821] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/win/TestExpectations

[ Win EWS ] Six webanimations/offset-compositing tests are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240617

Unreviewed test gardening.

  • LayoutTests/platform/win/TestExpectations: Mark tests as flaky.

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

1:29 PM Changeset in webkit [294820] by sihui_liu@apple.com
  • 11 edits
    1 copy
    1 delete in trunk/Source/WebKit

Remove old WebStorage implementation
https://bugs.webkit.org/show_bug.cgi?id=240833

Reviewed by Geoffrey Garen.

No behavior change; the new implementation inside Source/WebKit/NetworkProcess/storage/ is in use.

  • Source/WebKit/CMakeLists.txt:
  • Source/WebKit/NetworkProcess/NetworkProcess.h:
  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/SessionStorageNamespace.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/SessionStorageNamespace.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/StorageArea.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/StorageManager.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: Removed.
  • Source/WebKit/NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: Removed.
  • Source/WebKit/Platform/Logging.h:
  • Source/WebKit/PlatformPlayStation.cmake:
  • Source/WebKit/PlatformWin.cmake:
  • Source/WebKit/Shared/StorageAreaIdentifier.h: Renamed from Source/WebKit/NetworkProcess/WebStorage/StorageAreaIdentifier.h.
  • Source/WebKit/Sources.txt:
  • Source/WebKit/SourcesCocoa.txt:
  • Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
  • Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

12:53 PM Changeset in webkit [294819] by Patrick Griffis
  • 7 edits in trunk

Add support for Link nonces
https://bugs.webkit.org/show_bug.cgi?id=240817

This reads the nonce from link elements and Link headers.

This was implemented by Chromium in 2017 to be consistent with the HTMLPreloader:
https://chromium-review.googlesource.com/c/chromium/src/+/676769/

Reviewed by Kate Cheney.

  • LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce.html:

These test changes were already upstream: https://github.com/web-platform-tests/wpt/commit/306dc506adba97ca84ada67bdab6227dba65bbcb

  • Source/WebCore/html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • Source/WebCore/loader/LinkHeader.cpp:

(WebCore::paramterNameFromString):
(WebCore::LinkHeader::setValue):

  • Source/WebCore/loader/LinkHeader.h:

(WebCore::LinkHeader::nonce const):

  • Source/WebCore/loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader):
(WebCore::LinkLoader::preloadIfNeeded):
(WebCore::LinkLoader::prefetchIfNeeded):

  • Source/WebCore/loader/LinkLoader.h:

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

12:39 PM Changeset in webkit [294818] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI/UserInterface/Views

Web Inspector: Timelines Tab: Screenshots: images should be centered
https://bugs.webkit.org/show_bug.cgi?id=240854

Reviewed by Patrick Angle.

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

(WI.ScreenshotsTimelineView.prototype.layout):

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots):
(.timeline-view.screenshots > .spacer): Added.
(.timeline-view.screenshots > img):

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

12:21 PM Changeset in webkit [294817] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[Gardening]: [ iOS Debug ] Two fast/loader/ tests are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240918
<rdar://93918602>

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

12:05 PM Changeset in webkit [294816] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore/platform/graphics

REGRESSION(r294215): : r294317 was reverted, it fixed an edge-case for 294217
https://bugs.webkit.org/show_bug.cgi?id=240645

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

Revert r294215, its dependency r294317 was reverted.

Reverted changeset:

"WebCore::IOSurface has WebCore::GraphicsContext as its
property, it should be the other way around"
https://bugs.webkit.org/show_bug.cgi?id=240417
https://commits.webkit.org/r294215

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

(WebCore::GraphicsContextCG::drawNativeImage):

  • Source/WebCore/platform/graphics/cg/GraphicsContextCG.h:
  • Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::willAddSurface):

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

(WebCore::ImageBufferIOSurfaceBackend::~ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::context const):
(WebCore::ImageBufferIOSurfaceBackend::releaseGraphicsContext):

  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm:

(WebCore::GraphicsContextCG::GraphicsContextCG): Deleted.

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

(WebCore::IOSurface::create):
(WebCore::IOSurface::ensureGraphicsContext):
(WebCore::IOSurface::releaseGraphicsContext):
(WebCore::IOSurface::releasePlatformGraphicsContext): Deleted.

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

12:03 PM Changeset in webkit [294815] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit/UIProcess/ios

[iOS] Refactor some logic around tap gesture handling when VKCImageAnalysisInteraction is active
https://bugs.webkit.org/show_bug.cgi?id=240891
rdar://93808100

Reviewed by Aditya Keerthi.

Currently, when handling a single tap in WKContentView, we check whether or not the tap occurred
over the Live Text button in the VKCImageAnalysisInteraction; if so, we manually toggle Live Text
interaction highlight state. This special treatment exists (instead of simply relying on the
UIButton's tap gesture) because WKContentView already has its own synthetic click gesture which
conflicts with the UIButton's tap gesture; without this logic, taps on the analysis button would be
completely ignored.

While this works for the Live Text button, it doesn't work for other actionable buttons in the image
analysis interaction. To address this, we install a UIButtonConfigurationUpdateHandler on the
image analysis interaction just to collect the set of UIButtons that are owned by the interaction.
When tapping on the content view, if we hit one of these VisionKitCore-owned buttons, then invoke
the button action on its behalf.

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

(-[WKContentView _singleTapIdentified:]):

Also, pull this VisionKit interception logic out into a new helper method below, named
-_handleTapOverImageAnalysisInteractionButton:. This returns whether or not the tap was handled by
VisionKit (in which case we avoid treating this as a synthetic click on the page).

(-[WKContentView _handleTapOverImageAnalysisInteractionButton:]):
(-[WKContentView installImageAnalysisInteraction:]):
(-[WKContentView uninstallImageAnalysisInteraction]):

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

11:55 AM Changeset in webkit [294814] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in

[iOS] Remove obsolete graphics message filters
https://bugs.webkit.org/show_bug.cgi?id=240736
<rdar://93527356>

Reviewed by Geoffrey Garen.

Remove obsolete graphics filters in the WebContent process' sandbox on iOS, since this filtering is
now done in other parts of the system.

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

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

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

Versioning.

WebKit-7614.1.14.0.11

11:33 AM Changeset in webkit [294812] by J Pascoe
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm

REGRESSION (r294434): [ iOS ] TestWebKitAPI.WebAuthenticationPanel.ExportImportDuplicateCredential is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240686
<rdar://93603762>

Reviewed by Brent Fulgham.

The sync flag may differ at runtime due to internal reasons. This patch modifies the test to support either value
of the flag.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

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

11:13 AM Changeset in webkit [294811] by Alexey Shvayka
  • 1 edit in trunk/Source/JavaScriptCore/API/tests/testapi.cpp

[JSC] TestAPI::promiseUnhandledRejection() predominantly fails on MacOS 12.3 in --debug
https://bugs.webkit.org/show_bug.cgi?id=240243
<rdar://92975620>

Reviewed by Mark Lam.

The failures are caused by an unhandled rejection, that was originated in
TestAPI::promiseDrainDoesNotEatExceptions() and ended up in the callback of
TestAPI::promiseUnhandledRejection(), with an unexpected promise and reason.

That is, the callback of TestAPI::promiseUnhandledRejection() is called twice,
with only the first invocation being successful.

The failures weren't observed before MacOS 12.3 because TestAPI::promiseDrainDoesNotEatExceptions()
is a DYLD_MACOSX_VERSION-conditional test.

To fix the tests, this change ensures that TestAPI::promiseUnhandledRejection() performs assertions
only on the first run, aligning it with TestAPI::promiseUnhandledRejectionFromUnhandledRejectionCallback().

  • Source/JavaScriptCore/API/tests/testapi.cpp:

(TestAPI::promiseUnhandledRejection):

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

11:11 AM Changeset in webkit [294810] by mark.lam@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp

Speculative build fix: Revert use of .alt_entry directive in LLInt asm code.
https://bugs.webkit.org/show_bug.cgi?id=240916

Unreviewed.

We suspect that this is causing linker issues on some builds.

  • Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:

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

11:01 AM Changeset in webkit [294809] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Add logging related to Mach bootstrap enablement
https://bugs.webkit.org/show_bug.cgi?id=240909

Reviewed by Chris Dumez.

We are seeing telemetry that indicates that enabling Mach bootstrap is failing in some cases.
Add logging to help diagnose this.

  • Source/WebKit/Platform/Logging.h:
  • Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandleForMachLookup):

  • Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandleForMachLookup):

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

10:57 AM Changeset in webkit [294808] by Jon Davis
  • 1 edit in trunk/metadata/contributors.json

Add my GitHub account to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240915

Unreviewed.

  • metadata/contributors.json:

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

10:54 AM Changeset in webkit [294807] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.1.5

Tag WebKit-7613.3.1.1.5.

10:45 AM Changeset in webkit [294806] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.1-branch/Source

Versioning.

WebKit-7613.3.1.1.5

10:43 AM Changeset in webkit [294805] by keith_miller@apple.com
  • 1 edit in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py

git-webkit pr crashes when run from detached HEAD
https://bugs.webkit.org/show_bug.cgi?id=240468

Reviewed by Jonathan Bedard.

repository.branch is None when on a detached HEAD. This causes us to throw an Error when performing a regex on the branch name.
This patch treats a detached HEAD the same as being on main.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py: (PullRequest.pull_request_branch_point):

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

10:29 AM Changeset in webkit [294804] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Expand flex-grow support
https://bugs.webkit.org/show_bug.cgi?id=240898

Reviewed by Antti Koivisto.

This patch add support for flex-grow. This property defines how flex items take over the available space.

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

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

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

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

10:22 AM Changeset in webkit [294803] by zan@falconsigh.net
  • 4 edits in trunk/Source/WebCore/platform/graphics

[Linux] GBMBufferSwapchain should only conditionally create linear-formatted buffer objects
https://bugs.webkit.org/show_bug.cgi?id=240637

Reviewed by Adrian Perez de Castro.

Spawning new gbm_bo objects should not default to requesting linear-storage
buffers. Instead, these should only be created when necessary, e.g. when
copying software-decoded video data into these buffers.

By default, no GBM flags are used. When required, the linear-storage requirement
is enscribed in the new flags field of the GBMBufferSwapchain::BufferDescription
object and acted upon in the GBMBufferSwapchain::getBuffer() call, using the
GBM_BO_USE_LINEAR flag in the gbm_bo_create() call.

The DMABuf-specific sink in MediaPlayerPrivateGStreamer is the only place at the
moment where linear-storage buffers are used since software-decoded material
originates here and is stored in linear memory.

  • Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp:

(WebCore::GBMBufferSwapchain::getBuffer):

  • Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.h:
  • Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

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

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

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

9:53 AM Changeset in webkit [294802] by sihui_liu@apple.com
  • 22 edits in trunk/Source/WebKit

Add remainingRunningTime info to logging of PrepareToSuspend message
https://bugs.webkit.org/show_bug.cgi?id=240879

Reviewed by Chris Dumez.

Replace background timing info with remaining run time info, so we have a better idea of when the message is sent and
when it is processed. We will know if the message is handled after process resumes (since process can be suspended
before it handles the message).

  • Source/WebKit/GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::prepareToSuspend):

  • Source/WebKit/GPUProcess/GPUProcess.h:
  • Source/WebKit/GPUProcess/GPUProcess.messages.in:
  • Source/WebKit/NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::applicationDidEnterBackground):
(WebKit::NetworkProcess::applicationWillEnterForeground):
(WebKit::NetworkProcess::processDidResume):

  • Source/WebKit/NetworkProcess/NetworkProcess.h:
  • Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
  • Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _processWillSuspendForTesting:]):
(-[WKWebView _processWillSuspendImminentlyForTesting]):

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

(WebKit::GPUProcessProxy::sendPrepareToSuspend):

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
  • Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendPrepareToSuspend):

  • Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
  • Source/WebKit/UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::remainingRunTimeInSeconds):

  • Source/WebKit/UIProcess/ProcessAssertion.h:
  • Source/WebKit/UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::sendPrepareToSuspendIPC):

  • Source/WebKit/UIProcess/ProcessThrottlerClient.h:
  • Source/WebKit/UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::sendPrepareToSuspend):

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

(WebKit::WebsiteDataStore::sendNetworkProcessPrepareToSuspendForTesting):

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

(WebKit::ProcessAssertion::remainingRunTimeInSeconds):

  • Source/WebKit/WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prepareToSuspend):

  • Source/WebKit/WebProcess/WebProcess.h:
  • Source/WebKit/WebProcess/WebProcess.messages.in:

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

9:47 AM Changeset in webkit [294801] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in

Syscall should only be allowed for newer macOS versions
https://bugs.webkit.org/show_bug.cgi?id=240714

Reviewed by Chris Dumez.

  • Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

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

8:44 AM Changeset in webkit [294800] by Razvan Caliman
  • 4 edits in trunk/Source/WebInspectorUI/UserInterface/Views

Web Inspector: Computed Panel: Move ungrouped CSS variables to dedicated DetailsSidebar
https://bugs.webkit.org/show_bug.cgi?id=240805

Reviewed by Patrick Angle.

A follow-up from https://github.com/WebKit/WebKit/pull/782#pullrequestreview-978824063

As an aside, it is unfortunate in hindsight that the variables section
element can either directly contain variables for ungrouped mode, or contain
sections. I wonder if there is a better way to handle this where we never
have to even add the variables section to the map and instead have a single
"section" within it (without a header) that behaves just like the grouped
sections, but for ungrouped mode.

The top-level Variables details section contains either:

  • the list of ungrouped variables
  • nested detail sections for each group of variables grouped by type

When toggling between grouping modes, we remove the host details sections for
variable groups, but we need to take care not to remove the top-level Variables
details section. This isn't ideal. All variable lists, ungrouped or grouped,
need their own independent host details section that can be safely removed
without impacting others.

A details section has a header with text and a button to toggle collapsing the
section contents. Ungrouped variables don't need this. The top-level Variables
details section serves this role (the reason why the code was written with it
doing double duty).

We can change the implementation of WI.DetailsSection to hide the header
if a title is not provided. This enables us to nest details sections without
showing extraneous headers. This relieves WI.ComputedStyleDetailsPanel.layout()
of the duty to avoid removing the top-level Variables details section.

  • Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-variables .scope-bar.computed-style-variables-grouping-mode:hover):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-variables .computed-style-section):

Adding symmetric padding to the top of the section to space out the contents
from the header's bottom border.

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

(WI.ComputedStyleDetailsPanel.prototype.layout):
(WI.ComputedStyleDetailsPanel.prototype._renderVariablesStyleSectionGroup):

  • Source/WebInspectorUI/UserInterface/Views/DetailsSection.css:

(.details-section > .header:not(:empty)):
(.details-section .details-section > .header:not(:empty)):
(.details-section .details-section:not(.collapsed) > .header:not(:empty)):
(.details-section > .header:not(:empty)::before):
(.details-section > .header): Deleted.
(.details-section .details-section > .header): Deleted.
(.details-section .details-section:not(.collapsed) > .header): Deleted.
(.details-section > .header::before): Deleted.

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

(WI.DetailsSection):
(WI.DetailsSection.prototype.get title):
(WI.DetailsSection.prototype.set title):

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

8:18 AM Changeset in webkit [294799] by Oriol Brufau
  • 14 edits in trunk

Don't index shorthands in computed styles
https://bugs.webkit.org/show_bug.cgi?id=240356

Reviewed by Tim Nguyen.

Most shorthands were already not indexed, but legacy shorthands with a
single longhand were indexed. This didn't make much sense, since they
are like aliases with a different syntax, and aliases are not indexed.

Tests: fast/css/getComputedStyle/computed-style.html

fast/css/getComputedStyle/computed-style-without-renderer.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
svg/css/getComputedStyle-basic.xhtml

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

8:03 AM Changeset in webkit [294798] by Jonathan Bedard
  • 3 edits in trunk/Tools/Scripts/libraries/webkitbugspy

[git-webkit] Check expiration in token
https://bugs.webkit.org/show_bug.cgi?id=240883
<rdar://problem/93859778>

Reviewed by Chris Dumez.

  • 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.validater): Check token expiration explicitly.

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

7:49 AM Changeset in webkit [294797] by Jonathan Bedard
  • 5 edits in trunk/Tools/Scripts/libraries/webkitscmpy

[git-webkit] clean all dead pr branches
https://bugs.webkit.org/show_bug.cgi?id=240589
<rdar://93521924>

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/clean.py:

(DeletePRBranches): Iterate through all local branches and remove those
associated with a closed PR.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/clean_unittest.py:

(TestClean.test_delete_pr_branches):

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

7:00 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
6:45 AM Changeset in webkit [294796] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/graphics/gstreamer

Merge r294537 - REGRESSION(r288092): Deadlock when the playback is stopping just right after startup
https://bugs.webkit.org/show_bug.cgi?id=240661

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2022-05-20
Reviewed by Philippe Normand.

r288092 causes a deadlock with the "28. ChangeType.H264.VP9" test in "https://ytlr-cert.appspot.com/2020/main.html".

The background thread locks the GStPad and sends a notify::caps signal which is caught by
VideoTrackPrivateGStreamer that calls callOnMainThreadAndWait.

At the same time the main thread destroys MediaPlayerPrivateGStreamer and sets the pipeline to NULL
that calls "gst_pad_set_active" which wants to lock the GStPad.

This commit uses AbortableTaskQueue and calls enqueueTask instead of callOnMainThreadAndWait
in order to be able to abort the waiting job and avoid using the "AndWait" variant, consequently
we avoid the deadlock.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromTags):
(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::AudioTrackPrivateGStreamer::disconnect):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromTags):
(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::VideoTrackPrivateGStreamer::disconnect):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:

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

6:45 AM Changeset in webkit [294795] by Adrian Perez de Castro
  • 2 edits
    4 adds in releases/WebKitGTK/webkit-2.36

Merge r294791 - [MSE][GStreamer] Support Google Dynamic Ad Insertion (DAI)
https://bugs.webkit.org/show_bug.cgi?id=216039
<rdar://problem/68638316>

Patch by Philippe Normand <philn@igalia.com> on 2022-05-25
Reviewed by Alicia Boya Garcia.

The "simple DAI" demo was not working as expected because the new source pad of the demuxer in the append
pipeline was sinking buffers to a "black hole". That was happening because the second time the
no-more-pads signal was emitted, the previous source pad was still linked to a track, and there was
no code to unlink/relink demuxer pads. This is now handled...

The specific "simple DAI" demo generates 2 AAC streams, with different tkhd track-id fields, we had
no layout test reproducing this use-case, so this patch provides one.

Test: media-source/media-source-audio-track-id-switch.html

  • LayoutTests/media/media-source/content/test-48kHz-new-track-id.m4a: Added.
  • LayoutTests/media/media-source/content/test-48khz-new-track-id-manifest.json: Added.
  • LayoutTests/media/media-source/media-source-audio-track-id-switch-expected.txt: Added.
  • LayoutTests/media/media-source/media-source-audio-track-id-switch.html: Added.
  • Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::handleErrorSyncMessage):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::recycleTrackForPad):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack): Deleted.

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

(WebCore::AppendPipeline::Track::isLinked const):

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

6:32 AM Changeset in webkit [294794] by commit-queue@webkit.org
  • 24 edits in trunk/Source/JavaScriptCore

[JSC][ARMv7] Support callee save FPRs

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

Reviewed by Yusuke Suzuki.

ARMv7 FPRs d8-d15 (also referenced as s16-s32 and q4-q7) are callee save
in the host ABI, but currently JSC is unaware of this. This does not
currently cause problems as they are not used, but will be used by the
Wasm JITs.

In preparation for the 32-bit ports of the Wasm JITs, this patch:

  • Teaches JSC about callee save FPRs on ARMv7. d8-d15 are host ABI callee save, but only d8-d14 are VM callee save, i.e.: we treat d15 as a volatile register in JIT code. This is so we can use d15 as a macro assembler scratch register.
  • Changes offlineasm and MacroAssemblerARMv7 to use d15 as the FP scratch register. We do this so we can use the full range of d0-d7 as temporary, and in particular as Wasm argument/return registers.
  • To achieve the above, we need to modify RegisterAtOffsetList as GPRs and FPRs have different sizes on JSVALUE32_64 platforms
  • Adds the ARMv7 specific registers to RegisterSet::macroScratchRegisters()
  • assembler/ARMv7Registers.h:
  • assembler/MacroAssemblerARMv7.h:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::calleeSaveRegisterAtOffsetList const):
(JSC::B3::Air::Code::dump const):

  • b3/testb3_7.cpp:

(testInfiniteLoopDoesntCauseBadHoisting):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::llintBaselineCalleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
(JSC::roundCalleeSaveSpaceAsVirtualRegisters): Deleted.

  • bytecode/ValueRecovery.h:

(JSC::ValueRecovery::calleeSaveGPRDisplacedInJSStack):
(JSC::ValueRecovery::calleeSaveRegDisplacedInJSStack): Deleted.

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::calleeSaveSlot):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::copyCalleeSavesToEntryFrameCalleeSavesBuffer const):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::restoreCalleeSavesFromEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBufferImpl):
(JSC::AssemblyHelpers::copyCalleeSavesToEntryFrameCalleeSavesBufferImpl):
(JSC::AssemblyHelpers::emitSave):
(JSC::AssemblyHelpers::emitRestore):
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor):
(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitSaveOrCopyLLIntBaselineCalleeSavesFor):

  • jit/CallFrameShuffleData.cpp:

(JSC::CallFrameShuffleData::setupCalleeSaveRegisters):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::snapshot const):

  • jit/CallFrameShuffler32_64.cpp:

(JSC::CallFrameShuffler::emitDisplace):

  • jit/FPRInfo.h:
  • jit/GPRInfo.h:
  • jit/RegisterAtOffsetList.cpp:

(JSC::RegisterAtOffsetList::RegisterAtOffsetList):

  • jit/RegisterAtOffsetList.h:

(JSC::RegisterAtOffsetList::registerCount const):
(JSC::RegisterAtOffsetList::sizeOfAreaInBytes const):
(JSC::RegisterAtOffsetList::adjustOffsets):
(JSC::RegisterAtOffsetList::size const): Deleted.
(JSC::RegisterAtOffsetList::at): Deleted.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::macroScratchRegisters):
(JSC::RegisterSet::vmCalleeSaveRegisters):

  • llint/LowLevelInterpreter.asm:
  • offlineasm/arm.rb:
  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

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

4:05 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
3:42 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
3:41 AM Changeset in webkit [294793] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/graphics/gstreamer/mse

Merge r294634 - 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

2:54 AM Changeset in webkit [294792] by commit-queue@webkit.org
  • 1 edit
    6 deletes in trunk/Tools/buildstream/elements

[Flatpak SDK] Remove Subversion
https://bugs.webkit.org/show_bug.cgi?id=240903

Patch by Philippe Normand <philn@igalia.com> on 2022-05-25
Reviewed by Adrian Perez de Castro.

  • Tools/buildstream/elements/sdk-build-depends/swig.bst: Removed.
  • Tools/buildstream/elements/sdk-build-depends/utf8proc.bst: Removed.
  • Tools/buildstream/elements/sdk-platform.bst:
  • Tools/buildstream/elements/sdk/libsecret.bst: Removed.
  • Tools/buildstream/elements/sdk/libserf.bst: Removed.
  • Tools/buildstream/elements/sdk/perl-term-readkey.bst: Removed.
  • Tools/buildstream/elements/sdk/subversion.bst: Removed.

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

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

[MSE][GStreamer] Support Google Dynamic Ad Insertion (DAI)
https://bugs.webkit.org/show_bug.cgi?id=216039
<rdar://problem/68638316>

Patch by Philippe Normand <philn@igalia.com> on 2022-05-25
Reviewed by Alicia Boya Garcia.

The "simple DAI" demo was not working as expected because the new source pad of the demuxer in the append
pipeline was sinking buffers to a "black hole". That was happening because the second time the
no-more-pads signal was emitted, the previous source pad was still linked to a track, and there was
no code to unlink/relink demuxer pads. This is now handled...

The specific "simple DAI" demo generates 2 AAC streams, with different tkhd track-id fields, we had
no layout test reproducing this use-case, so this patch provides one.

Test: media-source/media-source-audio-track-id-switch.html

  • LayoutTests/media/media-source/content/test-48kHz-new-track-id.m4a: Added.
  • LayoutTests/media/media-source/content/test-48khz-new-track-id-manifest.json: Added.
  • LayoutTests/media/media-source/media-source-audio-track-id-switch-expected.txt: Added.
  • LayoutTests/media/media-source/media-source-audio-track-id-switch.html: Added.
  • Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::handleErrorSyncMessage):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::recycleTrackForPad):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack): Deleted.

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

(WebCore::AppendPipeline::Track::isLinked const):

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

May 24, 2022:

11:20 PM Changeset in webkit [294790] by commit-queue@webkit.org
  • 44 edits
    2 adds
    2 deletes in trunk/Source/WebKit

Rename SharedBufferCopy to SharedBufferReference
https://bugs.webkit.org/show_bug.cgi?id=240796
rdar://problem/93754681

Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2022-05-24
Reviewed by Jer Noble.

  1. SharedBufferCopy doesn't perform a copy, but passes SharedMemory and return a SharedBuffer that wraps such SharedMemory.

Rename it to SharedBufferReference to more accurately reflect what it actually does.

  1. Remove SharedBufferCopy::safeBuffer() and rename SharedBufferCopy::buffer with SharedBufferCopy::unsafeBuffer. This gives better clarity that accessing SharedBufferCopy should be treated with care.
  1. Add SharedBufferCopy::isNull() method
  2. When passing a SharedBufferReferal across multiple processes, we remove the need for a new allocation and copy of the content; instead we move the underlying SharedMemory.

No change of observable behaviour.

  • Source/WebKit/GPUProcess/media/RemoteCDMInstanceProxy.h:
  • Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::setData):

  • Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):

  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:

(WebKit::ServiceWorkerDownloadTask::didReceiveData):

  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.messages.in:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):

  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • Source/WebKit/Platform/IPC/SharedBufferCopy.cpp: Removed.
  • Source/WebKit/Platform/IPC/SharedBufferCopy.h: Removed.
  • Source/WebKit/Platform/IPC/SharedBufferReference.cpp: Added.

(IPC::SharedBufferReference::encode const):
(IPC::SharedBufferReference::decode):
(IPC::SharedBufferReference::unsafeBuffer const):
(IPC::SharedBufferReference::data const):

  • Source/WebKit/Platform/IPC/SharedBufferReference.h: Added.

(IPC::SharedBufferReference::SharedBufferReference):
(IPC::SharedBufferReference::size const):
(IPC::SharedBufferReference::isEmpty const):
(IPC::SharedBufferReference::isNull const):

  • Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):

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

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Source/WebKit/Sources.txt:
  • Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createPDFWithConfiguration:completionHandler:]):

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

(WebKit::WebPageProxy::platformRegisterAttachment):

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

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifierFromData):
(WebKit::WebPageProxy::platformRegisterAttachment):

  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Source/WebKit/UIProcess/WebPageProxy.messages.in:
  • Source/WebKit/UIProcess/WebPasteboardProxy.h:
  • Source/WebKit/UIProcess/WebPasteboardProxy.messages.in:
  • Source/WebKit/UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveData):

  • Source/WebKit/UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::readBuffer):

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

(-[WKContentView _wk_pageCountForPrintFormatter:]):

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

(WebKit::WebPageProxy::drawToPDFiOS):

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
  • Source/WebKit/WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::setData):

  • Source/WebKit/WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:

(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.h:
  • Source/WebKit/WebProcess/Network/WebResourceLoader.messages.in:
  • Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):

  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerAttachmentIdentifier):

  • Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::readBufferFromClipboard):

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

(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::getAccessibilityTreeData):
(WebKit::WebPage::drawToPDF):
(WebKit::WebPage::drawPagesToPDF):
(WebKit::WebPage::didGetLoadDecisionForIcon):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::updateAttachmentAttributes):

  • Source/WebKit/WebProcess/WebPage/WebPage.h:
  • Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
  • Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::drawToPDFiOS):

  • Source/WebKit/WebProcess/WebProcess.h:
  • Source/WebKit/WebProcess/WebProcess.messages.in:
  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

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

10:57 PM Changeset in webkit [294789] by Simon Fraser
  • 2 edits in trunk/Source/WebCore/svg

Simplify SVGPropertyOwnerRegistry slightly
https://bugs.webkit.org/show_bug.cgi?id=240839

Reviewed by Yusuke Suzuki.

SVGPropertyOwnerRegistry::findAccessor() had to loop through the hash table entries
because it wanted the behavior of QualifiedName::matches(), which is different from
QualifiedName::operator==. However, we can achieve this by using hash traits, and
the appropriate traits already exist in the form of SVGAttributeHashTranslator.

  • Source/WebCore/svg/SVGElementInlines.h:

(WebCore::SVGAttributeHashTranslator::hash): Deleted.
(WebCore::SVGAttributeHashTranslator::equal): Deleted.

  • Source/WebCore/svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGAttributeHashTranslator::hash):
(WebCore::SVGAttributeHashTranslator::equal):
(WebCore::SVGPropertyOwnerRegistry::attributeNameToAccessorMap):
(WebCore::SVGPropertyOwnerRegistry::findAccessor):

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

9:43 PM Changeset in webkit [294788] by mark.lam@apple.com
  • 4 edits in trunk/Source

Use dladdr to get labels instead of stashing them in the JITOperationAnnotation.
https://bugs.webkit.org/show_bug.cgi?id=240895

Reviewed by Saam Barati.

We no longer need to stash these label strings in the JITOperationAnnotations.

This change also fixes an ASAN crasher. As such, we can re-enable
ENABLE(JIT_OPERATION_DISASSEMBLY) even when ASAN_ENABLED.

  • Source/JavaScriptCore/assembler/JITOperationList.cpp:

(JSC::JITOperationList::addDisassemblyLabels):

  • Source/JavaScriptCore/assembler/JITOperationValidation.h:
  • Source/WTF/wtf/PlatformCallingConventions.h:
  • Source/WTF/wtf/PlatformEnable.h:

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

9:03 PM Changeset in webkit [294787] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore/offlineasm

Use jsc_llint as a LLInt local label prefix instead of _offlineasm.
https://bugs.webkit.org/show_bug.cgi?id=240885

Reviewed by Geoffrey Garen.

Code generated by the offlineasm is tightly coupled with JSC anyway. Might as well
make the local labels more informative about where the code came from in crash traces.

So, instead of this:

JavaScriptCore`vmEntryToJavaScript:

0x1028b5d90 <+0 >: pacibsp
0x1028b5d94 <+4 >: stp x29, x30, [sp, #-0x10]!
0x1028b5d98 <+8 >: mov x29, sp
0x1028b5d9c <+12 >: sub sp, x29, #0xb0
0x1028b5da0 <+16 >: mov x13, #0xc800
0x1028b5da4 <+20 >: add x17, x1, x13
0x1028b5da8 <+24 >: ldr w4, [x17]
0x1028b5dac <+28 >: cbnz w4, 0x1028b5f34 ; _offlineasm_doVMEntrycheckVMEntryPermission
0x1028b5db0 <+32 >: str x1, [sp]
0x1028b5db4 <+36 >: mov x17, #0x9e78
...
0x1028b5de8 <+88 >: sub x3, sp, x4
0x1028b5dec <+92 >: cmp sp, x3
0x1028b5df0 <+96 >: b.ls 0x1028b5ef4 ; _offlineasm_doVMEntry
throwStackOverflow
0x1028b5df4 <+100 >: mov x17, #0xca00
0x1028b5df8 <+104 >: add x13, x1, x17
0x1028b5dfc <+108 >: ldr x17, [x13]
0x1028b5e00 <+112 >: cmp x3, x17
0x1028b5e04 <+116 >: b.lo 0x1028b5ef4 ; _offlineasm_doVMEntrythrowStackOverflow

JavaScriptCore`_offlineasm_doVMEntrystackHeightOK:

0x1028b5e08 <+0 >: mov sp, x3
0x1028b5e0c <+4 >: mov x3, #0x4

JavaScriptCore`_offlineasm_doVMEntrycopyHeaderLoop:

0x1028b5e10 <+0 >: sub w3, w3, #0x1
0x1028b5e14 <+4 >: add x17, x2, x3, lsl #3
0x1028b5e18 <+8 >: ldr x5, [x17]

We now get this:

JavaScriptCore`vmEntryToJavaScript:

0x1028cdd90 <+0>: pacibsp
0x1028cdd94 <+4>: stp x29, x30, [sp, #-0x10]!
0x1028cdd98 <+8>: mov x29, sp
0x1028cdd9c <+12>: sub sp, x29, #0xb0
0x1028cdda0 <+16>: mov x13, #0xc800
0x1028cdda4 <+20>: add x17, x1, x13
0x1028cdda8 <+24>: ldr w4, [x17]
0x1028cddac <+28>: cbnz w4, 0x1028cdf34 ; jsc_llint_doVMEntrycheckVMEntryPermission
0x1028cddb0 <+32>: str x1, [sp]
0x1028cddb4 <+36>: mov x17, #0x9e78
...
0x1028cdde8 <+88>: sub x3, sp, x4
0x1028cddec <+92>: cmp sp, x3
0x1028cddf0 <+96>: b.ls 0x1028cdef4 ; jsc_llint_doVMEntry
throwStackOverflow
0x1028cddf4 <+100>: mov x17, #0xca00
0x1028cddf8 <+104>: add x13, x1, x17
0x1028cddfc <+108>: ldr x17, [x13]
0x1028cde00 <+112>: cmp x3, x17
0x1028cde04 <+116>: b.lo 0x1028cdef4 ; jsc_llint_doVMEntrythrowStackOverflow

JavaScriptCore`jsc_llint_doVMEntrystackHeightOK:

0x1028cde08 <+0>: mov sp, x3
0x1028cde0c <+4>: mov x3, #0x4

JavaScriptCore`jsc_llint_doVMEntrycopyHeaderLoop:

0x1028cde10 <+0>: sub w3, w3, #0x1
0x1028cde14 <+4>: add x17, x2, x3, lsl #3
0x1028cde18 <+8>: ldr x5, [x17]

  • Source/JavaScriptCore/offlineasm/arm.rb:
  • Source/JavaScriptCore/offlineasm/arm64.rb:
  • Source/JavaScriptCore/offlineasm/backends.rb:
  • Source/JavaScriptCore/offlineasm/config.rb:

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

8:30 PM Changeset in webkit [294786] by mark.lam@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp

[Clang only] Make every LLInt asm global label an alt entry.
https://bugs.webkit.org/show_bug.cgi?id=240890

Reviewed by Yusuke Suzuki.

This is needed to keep Clang from moving these labels around. For correctness, the AfterGate
labels rely on themselves not being move from where they are declared in source asm code. We
should enforce this with the .alt_entry directive.

  • Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:

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

7:53 PM Changeset in webkit [294785] by Diego Pino Garcia
  • 1 edit in trunk/Source/WebCore/platform/text/TextFlags.h

[GCC] Debian stable build bot broken after 250926@main
https://bugs.webkit.org/show_bug.cgi?id=240897

Reviewed by Cameron McCormack.

GCC8.3 (Debian 10) doesn't support direct brace enclosed initialization of
bitfield enums.

  • Source/WebCore/platform/text/TextFlags.h: Move initialization of bitfield enums to constructor.

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

7:12 PM Changeset in webkit [294784] by Jean-Yves Avenard
  • 8 edits in trunk/Source/WebKit

Reduce refcount of SharedMemory when sending them over IPC.
https://bugs.webkit.org/show_bug.cgi?id=240855
rdar://problem/93806688

Reviewed by Jer Noble.

In the future, we want to be able to donate memory with exclusive access to another process, this require the VM to have a refcount of 1.
No change in obeservable behaviour. Covered by existing tests.

  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeSharedBuffer):

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

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::dataReceived):

  • Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::append):

  • Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

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

(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame):

  • Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

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

6:43 PM Changeset in webkit [294783] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.100.3

Tag WebKit-7614.1.14.100.3.

6:37 PM Changeset in webkit [294782] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.0.10

Tag WebKit-7614.1.14.0.10.

6:37 PM Changeset in webkit [294781] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.1.10

Tag WebKit-7614.1.14.1.10.

5:22 PM Changeset in webkit [294780] by Devin Rousso
  • 19 edits in trunk

Web Inspector: Timelines Tab: Screenshots: include images from console.screenshot
https://bugs.webkit.org/show_bug.cgi?id=240853

Reviewed by Patrick Angle.

This is nice for developers as it gives them a way to visualize all of their console.screenshot,
which can be used to see visual snapshots of particular nodes/areas since it's configurable (instead
of the general "snapshot the viewport after compositing").

  • Source/JavaScriptCore/inspector/protocol/Console.json:
  • Source/JavaScriptCore/inspector/ConsoleMessage.h:
  • Source/JavaScriptCore/inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::addToFrontend):

  • Source/WebInspectorUI/UserInterface/Protocol/ConsoleObserver.js:

(WI.ConsoleObserver.prototype.messageAdded):

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

(WI.ConsoleManager.prototype.messageWasAdded):

  • Source/WebInspectorUI/UserInterface/Models/ConsoleMessage.js:

(WI.ConsoleMessage):
(WI.ConsoleMessage.prototype.get timestamp): Added.
Add a timestamp to console messages so that the frontend can know when the message was created.

  • Source/WebCore/page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):
Capture a timestamp before snapshotting so it doesn't skew where it's shown in the Timelines Tab.

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

(WI.TimelineManager):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._handleMessageAdded): Added.
Listen for WI.ConsoleManager.Event.MessageAdded to add console.screenshot to the Timelines Tab.

  • Source/WebCore/inspector/TimelineRecordFactory.h:
  • Source/WebCore/inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createScreenshotData):

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

(WebCore::InspectorTimelineAgent::captureScreenshot):

  • Source/WebInspectorUI/UserInterface/Models/ScreenshotsTimelineRecord.js:

(WI.ScreenshotsTimelineRecord):
(WI.ScreenshotsTimelineRecord.async fromJSON):
(WI.ScreenshotsTimelineRecord.prototype.toJSON):
(WI.ScreenshotsTimelineRecord.prototype.get width): Deleted.
(WI.ScreenshotsTimelineRecord.prototype.get height): Deleted.

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

(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):
Drop width/height from screenshot records as the dataURL will contain it (after loading).

  • LayoutTests/inspector/console/console-api-expected.txt:
  • LayoutTests/inspector/console/console-screenshot.html:
  • LayoutTests/inspector/console/console-table-expected.txt:
  • LayoutTests/inspector/timeline/timeline-event-screenshots.html:
  • LayoutTests/inspector/timeline/timeline-event-screenshots-expected.txt:
  • LayoutTests/inspector/worker/console-basic-expected.txt:

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

5:06 PM Changeset in webkit [294779] by svillar@igalia.com
  • 1 edit in trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

Remove floating objects during tree normalization after style changes
https://bugs.webkit.org/show_bug.cgi?id=240797

Reviewed by Darin Adler.

Float boxes define their own block formatting context and thus can't have other intruding
floats. That's why this scenario is not allowed in the code, except in the case when
a regular box with floatting descendants becomes float. In that case the tree might
be temporarily in a semi-correct state until we don't remove the intruding floats.

The current code deals with that by calling rebuildFloatingObjectSetFromIntrudingFloats()
in the subsequent layout. However it's possible that before that a style change kicks in and
mutates the render tree. In that case we could be manipulating stale objects. To prevent
that we can simply directly call removeFloatingObjects() when normalizing the tree after
a style change.

  • Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): Call removeFloatingObjects().

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

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

[ macOS wk2 ] compositing/video/video-border-radius.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223383
<rdar://75529480>

Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2022-05-24
Reviewed by Eric Carlson.

The test waited on the event "canplaythrough" before performing
the screen comparison, assuming that the two videos would have
rendered their first video frame.
canplaythrough is fired, per spec, when the media engine has
buffered sufficient data to ensure a smooth playback to the end.
It provides no guarantee that playback/decoding has actually started.

So instead we wait for a frame to be actually painted with my new
favourite method of the day: requestVideoFrameCallback

  • LayoutTests/compositing/video/video-border-radius.html:
  • LayoutTests/platform/mac-wk2/TestExpectations:

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

4:54 PM Changeset in webkit [294777] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.0.4

Tag WebKit-7613.3.1.0.4.

4:50 PM Changeset in webkit [294776] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.1.4

Tag WebKit-7613.3.1.1.4.

4:07 PM Changeset in webkit [294775] by Devin Rousso
  • 6 edits
    2 adds in trunk

Web Inspector: Timelines Tab: Screenshots: images flash while recording is still active
https://bugs.webkit.org/show_bug.cgi?id=240852

Reviewed by Patrick Angle.

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

(WI.ScreenshotsTimelineOverviewGraph):
(WI.ScreenshotsTimelineOverviewGraph.prototype.reset):
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):

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

(WI.ScreenshotsTimelineView):
(WI.ScreenshotsTimelineView.prototype.reset):
(WI.ScreenshotsTimelineView.prototype.layout):
(WI.ScreenshotsTimelineView.prototype.selectRecord):
(WI.ScreenshotsTimelineView.prototype.clear): Deleted.
Keep a WeakMap of <img> for each WI.ScreenshotsTimelineRecord so that we don't recreate it
over and over in layout. Also, don't show the <img> until after it "load".

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots):
(.timeline-view.screenshots > img.selected):
Remove scroll snapping as it prevents the selected image from being scrolled offscreen, which is
unnecessarily hostile. The changing border color is enough to identify it as the selected image.

  • Source/WebInspectorUI/UserInterface/Base/Utilities.js:

(Map.prototype.getOrInitialize):
(WeakMap.prototype.getOrInitialize): Added.
Adjust utility function to allow for value to be a function that's only executed if the key does
not exist in the Map/WeakMap.

  • LayoutTests/inspector/unit-tests/map-utilities.html:
  • LayoutTests/inspector/unit-tests/map-utilities-expected.txt:
  • LayoutTests/inspector/unit-tests/weakmap-utilities.html: Added.
  • LayoutTests/inspector/unit-tests/weakmap-utilities-expected.txt: Added.

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

3:43 PM Changeset in webkit [294774] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.10.6

Tag WebKit-7614.1.14.10.6.

3:42 PM Changeset in webkit [294773] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.js

Web Inspector: Timelines Tab: Screenshots: clicking on another screenshot doesn't select it if there's already a selected screenshot
https://bugs.webkit.org/show_bug.cgi?id=240884

Reviewed by Patrick Angle.

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

(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):

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

3:34 PM Changeset in webkit [294772] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css

Web Inspector: Timelines Tab: Screenshots: images should have something to make them "pop" when not selected
https://bugs.webkit.org/show_bug.cgi?id=240850

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img.selected):

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

3:31 PM Changeset in webkit [294771] by Ryan Haddad
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm

[iOS] TestWebKitAPI.IndexedDB.IndexedDBSuspendImminently is consistently timing out on release
https://bugs.webkit.org/show_bug.cgi?id=240886

Unreviewed test gardening.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm:

(TEST): Skip the test.

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

3:24 PM Changeset in webkit [294770] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css

Web Inspector: Timelines Tab: Screenshots: not enough space between images
https://bugs.webkit.org/show_bug.cgi?id=240849

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img + img): Added.

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

3:18 PM Changeset in webkit [294769] by Ryan Haddad
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm

[ iOS & MacOS Release ]TestWebKitAPI.WebpagePreferences.WebsitePoliciesAutoplayQuirksAsyncPolicyDelegate is a flaky timeout

Unreviewed test gardening.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST): Skip the test.

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

2:55 PM Changeset in webkit [294768] by mark.lam@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp

Use the Clang .alt_entry directive to allow use of global labels in LLInt asm.
https://bugs.webkit.org/show_bug.cgi?id=240881

Reviewed by Geoffrey Garen.

With this, debugging LLInt code will be easier. LLInt code will no longer all be at an
offset from vmEntryToJavaScript. They will instead be broken up into different sections
under human readable labels.

Secondly, crash traces of LLInt crashes will now be able to give us the nearest label
for a crash site, as opposed to everything being an offset from vmEntryToJavaScript.

For example, instead of this:

JavaScriptCore`vmEntryToJavaScript:

0x1026525b8 <+0>: pacibsp
0x1026525bc <+4>: stp x29, x30, [sp, #-0x10]!
0x1026525c0 <+8>: mov x29, sp
0x1026525c4 <+12>: sub sp, x29, #0xb0
0x1026525c8 <+16>: mov x13, #0xc800
0x1026525cc <+20>: add x17, x1, x13
0x1026525d0 <+24>: ldr w4, [x17]
0x1026525d4 <+28>: cbnz w4, 0x10265275c ; vmEntryToJavaScriptGateAfter + 120
0x1026525d8 <+32>: str x1, [sp]
0x1026525dc <+36>: mov x17, #0x9e78
0x1026525e0 <+40>: add x13, x1, x17
0x1026525e4 <+44>: ldr x4, [x13]
0x1026525e8 <+48>: str x4, [sp, #0x8]
0x1026525ec <+52>: mov x13, #0x9e70
0x1026525f0 <+56>: add x17, x1, x13
0x1026525f4 <+60>: ldr x4, [x17]
0x1026525f8 <+64>: str x4, [sp, #0x10]
0x1026525fc <+68>: ldr x4, [x2, #0x8]
0x102652600 <+72>: str x4, [sp, #0x18]
0x102652604 <+76>: ldr w4, [x2, #0x20]
0x102652608 <+80>: add x4, x4, #0x5
0x10265260c <+84>: lsl x4, x4, #3
0x102652610 <+88>: sub x3, sp, x4
0x102652614 <+92>: cmp sp, x3
0x102652618 <+96>: b.ls 0x10265271c ; vmEntryToJavaScriptGateAfter + 56
0x10265261c <+100>: mov x17, #0xca00
0x102652620 <+104>: add x13, x1, x17
0x102652624 <+108>: ldr x17, [x13]
0x102652628 <+112>: cmp x3, x17
0x10265262c <+116>: b.lo 0x10265271c ; vmEntryToJavaScriptGateAfter + 56
0x102652630 <+120>: mov sp, x3
0x102652634 <+124>: mov x3, #0x4
0x102652638 <+128>: sub w3, w3, #0x1
0x10265263c <+132>: add x17, x2, x3, lsl #3
0x102652640 <+136>: ldr x5, [x17]

We now get this:

JavaScriptCore`vmEntryToJavaScript:

0x1028b5d90 <+0>: pacibsp
0x1028b5d94 <+4>: stp x29, x30, [sp, #-0x10]!
0x1028b5d98 <+8>: mov x29, sp
0x1028b5d9c <+12>: sub sp, x29, #0xb0
0x1028b5da0 <+16>: mov x13, #0xc800
0x1028b5da4 <+20>: add x17, x1, x13
0x1028b5da8 <+24>: ldr w4, [x17]
0x1028b5dac <+28>: cbnz w4, 0x1028b5f34 ; _offlineasm_doVMEntrycheckVMEntryPermission
0x1028b5db0 <+32>: str x1, [sp]
0x1028b5db4 <+36>: mov x17, #0x9e78
0x1028b5db8 <+40>: add x13, x1, x17
0x1028b5dbc <+44>: ldr x4, [x13]
0x1028b5dc0 <+48>: str x4, [sp, #0x8]
0x1028b5dc4 <+52>: mov x13, #0x9e70
0x1028b5dc8 <+56>: add x17, x1, x13
0x1028b5dcc <+60>: ldr x4, [x17]
0x1028b5dd0 <+64>: str x4, [sp, #0x10]
0x1028b5dd4 <+68>: ldr x4, [x2, #0x8]
0x1028b5dd8 <+72>: str x4, [sp, #0x18]
0x1028b5ddc <+76>: ldr w4, [x2, #0x20]
0x1028b5de0 <+80>: add x4, x4, #0x5
0x1028b5de4 <+84>: lsl x4, x4, #3
0x1028b5de8 <+88>: sub x3, sp, x4
0x1028b5dec <+92>: cmp sp, x3
0x1028b5df0 <+96>: b.ls 0x1028b5ef4 ; _offlineasm_doVMEntry
throwStackOverflow
0x1028b5df4 <+100>: mov x17, #0xca00
0x1028b5df8 <+104>: add x13, x1, x17
0x1028b5dfc <+108>: ldr x17, [x13]
0x1028b5e00 <+112>: cmp x3, x17
0x1028b5e04 <+116>: b.lo 0x1028b5ef4 ; _offlineasm_doVMEntrythrowStackOverflow

JavaScriptCore`_offlineasm_doVMEntrystackHeightOK:

0x1028b5e08 <+0>: mov sp, x3
0x1028b5e0c <+4>: mov x3, #0x4

JavaScriptCore`_offlineasm_doVMEntrycopyHeaderLoop:

0x1028b5e10 <+0>: sub w3, w3, #0x1
0x1028b5e14 <+4>: add x17, x2, x3, lsl #3
0x1028b5e18 <+8>: ldr x5, [x17]

This feature is only available when COMPILER(CLANG) is true.

  • Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:

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

2:49 PM Changeset in webkit [294767] by Elliott Williams
  • 2 edits in trunk/Source

WK_ALTERNATE_FRAMEWORKS_DIR should not affect WK_OVERRIDE_FRAMEWORKS_DIR
https://bugs.webkit.org/show_bug.cgi?id=240831

Reviewed by Tim Horton.

Resolve an inconsistency among projects regarding whether
WK_OVERRIDE_FRAMEWORKS_DIR is set for Mac Catalyst. Catalyst builds work
by setting WK_ALTERNATE_FRAMEWORKS_DIR. With this change, we update
projects so that an alternates directory never affects
WK_OVERRIDE_FRAMEWORKS_DIR.

This brings JavaScriptCore and WebGPU in
line with build settings logic in ANGLE, libwebrtc, PAL, WebCore,
WebInspectorUI, WebKitLegacy, and WebKit. Some of these projects were
changed to have these semantics years ago in <https://commits.webkit.org/r230958>.

Separating WK_ALTERNATE_FRAMEWORKS_DIR from WK_OVERRIDE_FRAMEWORKS_DIR
is valuable for distinguishing between system-installed Mac Catalyst
WebKit and self-contained WebKit builds such as STP.

  • Source/JavaScriptCore/Configurations/Base.xcconfig:
  • Source/WebGPU/Configurations/Base.xcconfig:

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

2:37 PM Changeset in webkit [294766] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

[iOS] No message displayed when Parental content filter blocked load
https://bugs.webkit.org/show_bug.cgi?id=240724

Reviewed by Geoffrey Garen.

The request to unblock a load after it has being blocked by the Parental content filter on iOS needs to be
performed in the UI process, since it may show UI. This path does not set the blocked error description on
the content filter like we do in the other path, which is addressed in this patch. This is a regression
from moving the content filtering to the Network process.

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::contentFilterDidBlock):

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

2:36 PM Changeset in webkit [294765] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.6

2:05 PM Changeset in webkit [294764] by Nikos Mouchtaris
  • 6 edits
    3 adds in trunk

Re-enable HEIC tests
https://bugs.webkit.org/show_bug.cgi?id=240843
<rdar://90658250>

Reviewed by Per Arne Vollan.

Re-enable HEIC tests as although we are not supporting them in web content, we
want to re-enable them as the process they are testing is still being used in
Mail and other apps.

  • LayoutTests/fast/images/heic-as-background-image-expected.html: Added.
  • LayoutTests/fast/images/heic-as-background-image.html: Added.
  • LayoutTests/fast/images/resources/green-400x400.heic: Added.
  • LayoutTests/platform/ios/TestExpectations:
  • LayoutTests/platform/mac/TestExpectations:
  • Source/WebCore/platform/RuntimeApplicationChecks.h:
  • Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::CocoaApplication::isWebkitTestRunner):

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

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

1:54 PM Changeset in webkit [294763] by Razvan Caliman
  • 4 edits in trunk

Web Inspector: Assertion Failed: Expect an array of string values CSSCompletions.js:39
https://bugs.webkit.org/show_bug.cgi?id=240715

Reviewed by Devin Rousso.

When instantiating WI.CSSCompletions in WI.CSSKeywordCompletions.forFunction()
for "var" functions, the values array is initally empty.
An array of strings was expected.

The actual values are added immediately after instantiation via
WI.CSSCompletions.addValues(). They come from the custom completion provider
referenced by the additionalFunctionValueCompletionsProvider option.

There's no reason to have this two step approach. We can provide the result of
additionalFunctionValueCompletionsProvider("var") at WI.CSSCompletions
instantiation.

  • Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js:

Updated the assertion in the constructor to accept an empty array of values.
One may be returned when requesting CSS variable name completions on a
page without any variables defined.

(WI.CSSCompletions.prototype.addValues): Deleted.

The method can be removed because there are no other callers of WI.CSSCompletions.addValues().

  • Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

We can concatenate the array of pre-defined values in
WI.CSSKeywordCompletions.forFunction() with the result of
additionalFunctionValueCompletionsProvider() and use the result when
instantiating WI.CSSCompletions.

  • Source/WebInspectorUI/UserInterface/Models/CSSPropertyNameCompletions.js:

(WI.CSSPropertyNameCompletions.prototype.addValues): Deleted.

It was never expected to call WI.CSSPropertyNameCompletions.addValues() else
it would screw up the fixed list of supported property names instantiated only
once when Web Inspector connects to the backend. The subclass had an assertion
on .addValues() to remind us of this pitfall. This can go away too now.

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

1:53 PM Changeset in webkit [294762] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.1-branch/Source/JavaScriptCore/b3/B3ReduceStrength.cpp

Cherry-pick r294563. rdar://problem/93536782

Refine B3ReduceStrength's range for sign extension operations.
https://bugs.webkit.org/show_bug.cgi?id=240720
<rdar://problem/93536782>

Reviewed by Yusuke Suzuki and Keith Miller.

  • Source/JavaScriptCore/b3/B3ReduceStrength.cpp:

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

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

1:47 PM Changeset in webkit [294761] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css

Web Inspector: Timelines Tab: Screenshots: white images blend in with the background
https://bugs.webkit.org/show_bug.cgi?id=240848

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots):
(@media (prefers-color-scheme: dark) .timeline-view.screenshots): Added.

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

1:37 PM Changeset in webkit [294760] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.0-branch/Source/JavaScriptCore/b3/B3ReduceStrength.cpp

Cherry-pick r294563. rdar://problem/93536782

Refine B3ReduceStrength's range for sign extension operations.
https://bugs.webkit.org/show_bug.cgi?id=240720
<rdar://problem/93536782>

Reviewed by Yusuke Suzuki and Keith Miller.

  • Source/JavaScriptCore/b3/B3ReduceStrength.cpp:

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

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

1:14 PM Changeset in webkit [294759] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines Tab: Screenshots: show placeholder text when there's no images
https://bugs.webkit.org/show_bug.cgi?id=240851

Reviewed by Patrick Angle.

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

(WI.ScreenshotsTimelineView.prototype.layout):

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:

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

12:43 PM Changeset in webkit [294758] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Simplify ExpansionBehavior to avoid using getters/setters
https://bugs.webkit.org/show_bug.cgi?id=240823

Patch by Kiet Ho <Kiet Ho> on 2022-05-24
Reviewed by Cameron McCormack.

  • Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):

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

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

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

(WebCore::FontCascade::expansionOpportunityCountInternal):

  • Source/WebCore/platform/graphics/TextRun.cpp:
  • Source/WebCore/platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::calculateAdditionalWidth const):

  • Source/WebCore/platform/text/TextFlags.h:

(WebCore::ExpansionBehavior::ExpansionBehavior):
(WebCore::ExpansionBehavior::defaultBehavior):
(WebCore::ExpansionBehavior::allowRightOnly):
(WebCore::ExpansionBehavior::allowLeftOnly):
(WebCore::ExpansionBehavior::forceLeftOnly):
(WebCore::ExpansionBehavior::forbidAll):
(WebCore::ExpansionBehavior::left const): Deleted.
(WebCore::ExpansionBehavior::setLeft): Deleted.
(WebCore::ExpansionBehavior::right const): Deleted.
(WebCore::ExpansionBehavior::setRight): Deleted.

  • Source/WebCore/rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::expansionBehavior const):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::expansionBehaviorForInlineTextBox):
(WebCore::applyExpansionBehavior):

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

12:36 PM Changeset in webkit [294757] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit/NetworkProcess/cocoa

Private relay should fail closed for third party loads if the main resource was loaded over private relay
https://bugs.webkit.org/show_bug.cgi?id=240483

Reviewed by Chris Dumez.

This re-lands the change from r293861 along with r293481 except it uses ResourceRequest.firstPartyForCookies
instead of NetworkLoadParameters.topOrigin, which ought to be equivalent but the latter seems less reliable
and has been the cause of performance regressions associated with a few previous attempts at this fix.

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

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

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

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::createWebSocketTask):

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

12:18 PM Changeset in webkit [294756] by commit-queue@webkit.org
  • 5 edits
    3 moves
    5 adds
    1 delete in trunk/LayoutTests

Import text-indent tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=240835

Patch by Kiet Ho <Kiet Ho> on 2022-05-24
Reviewed by Tim Nguyen.

Imported directory css/css-text/text-indent from WPT commit
2afc2f61703755c91daaf1a7ddf9ddf868c76699. This includes tests migrated from WebKit
to WPT in PR https://github.com/web-platform-tests/wpt/pull/34153.

  • LayoutTests/TestExpectations:
  • LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html: Removed.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-flex-item-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-flex-item-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-grid-item-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-grid-item-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-hanging-expected.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-hanging.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-with-absolute-pos-child-expected.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-with-absolute-pos-child-expected.html.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-with-absolute-pos-child.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-with-absolute-pos-child.html.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/w3c-import.log:

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

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

Start using min/max content size for flexing
https://bugs.webkit.org/show_bug.cgi?id=240872

Reviewed by Antti Koivisto.

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

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

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

(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions):

  • Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h:
  • Source/WebCore/rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

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

11:48 AM Changeset in webkit [294754] by Alan Bujtas
  • 2 edits
    2 adds
    4 deletes in trunk

REGRESSION (r292532): pge.com: Unable to focus on any of the inputs
https://bugs.webkit.org/show_bug.cgi?id=240832
<rdar://92538460>

Reviewed by Simon Fraser.

This is a revert of r292532. Blank float avoiders (used width = 0px) do fit even when the available space is zero. We have to find a different way to address the float fitting issue in contain-inline-size-bfc-floats-001.html (though I am not convinced that the expected result is correct anymore).

  • LayoutTests/TestExpectations:
  • LayoutTests/fast/block/float/zero-size-float-avoider-incorrect-position-expected.html: Added.
  • LayoutTests/fast/block/float/zero-size-float-avoider-incorrect-position.html: Added.
  • Source/WebCore/rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::getClearDelta):

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

10:28 AM Changeset in webkit [294753] by timothy_horton@apple.com
  • 3 edits
    2 adds in trunk

isContentEditable returns false for display:none contenteditable elements, but true for children
https://bugs.webkit.org/show_bug.cgi?id=240834

Reviewed by Ryosuke Niwa.

  • Source/WebCore/dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle):
Remove a display: none check. This check is wrong for two reasons:

1) It only consults the style of the immediate element, not whether or not

that element is in a display: none subtree. This regressed in r160966.
This causes a confusing situation where display: none affects the editability
of only the element it is directly applied to.

2) isContentEditable is not specified to be affected by display: none.

  • LayoutTests/editing/editability/isContentEditable-in-display-none-expected.txt: Added.
  • LayoutTests/editing/editability/isContentEditable-in-display-none.html: Added.

Add a test that dumps the editability of a variety of different configurations of
contenteditable elements and their children.

Before this change, this test would have said that #nonVisible (the display: none
contenteditable element) was read-only, but its child <p> was editable. Now we
agree with Gecko and Blink who both say that both are editable.

  • LayoutTests/fast/events/event-input-contentEditable-expected.txt:
  • LayoutTests/fast/events/event-input-contentEditable.html:

Adjust this test to expect an input event to be dispatched for programmatic
editing in display: none elements. Also add a sub-test that checks the same,
but in a child element.

Before this change, we would not dispatch an input event to the display: none
contenteditable itself, but *would* dispatch an input event for input into a child element.
Now we agree with Gecko, who dispatch events in both cases.

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

9:57 AM Changeset in webkit [294752] by Martin Robinson
  • 2 edits
    2 adds in trunk

REGRESSION (r289032): rotate animation doesn't interpolate between 0 and 1turn without forced 50% https://bugs.webkit.org/show_bug.cgi?id=239906

Reviewed by Simon Fraser.

When using CoreAnimation non-matrix animations to animate rotations,
CoreAnimation will use the shortest direction between two rotation
angles. This means that a rotation from 0 to 360 will not rotate at all.
This is different from how CSS works, where it expects the animation to
do a full turn. In order to avoid problems with this difference, when an
animation includes larger angles (> 180 degrees), fall back to software
animation.

No new tests. It is difficult to make a test for this because
when pausing animations the software path is used.

  • LayoutTests/animations/3d/full-rotation-animation-expected.html: Added.
  • LayoutTests/animations/3d/full-rotation-animation.html: Added.
  • Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::transformationAnimationValueAt):
(WebCore::hasBigRotationAngle):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):

  • Source/WebCore/platform/graphics/transforms/TransformOperations.h:

(WebCore::SharedPrimitivesPrefix::primitives const):
(WebCore::SharedPrimitivesPrefix::primitives): Deleted.

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

9:39 AM Changeset in webkit [294751] by Ryan Haddad
  • 1 edit in trunk/Tools/CISupport/build-webkit-org/master.cfg

[build.webkit.org] Allow configuring multiple user credentials
https://bugs.webkit.org/show_bug.cgi?id=240826

Reviewed by Aakash Jain.

Allow configuring multiple user credentials for build.webkit.org as we
did for ews-build.webkit.org in 246332@main. This also loads credentials
from passwords.json instead of environment variables.

  • Tools/CISupport/build-webkit-org/master.cfg:

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

9:15 AM Changeset in webkit [294750] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/FastBitVector.cpp

Avoid unnecessary calls to fastZeroedMalloc() in FastBitVector
https://bugs.webkit.org/show_bug.cgi?id=240812

Reviewed by Yusuke Suzuki.

We were calling fastZeroedMalloc() which would allocate the memory and memset it to 0,
only to then overwrite all (or most) of that memory with memcpy().

  • Source/WTF/wtf/FastBitVector.cpp:

(WTF::FastBitVectorWordOwner::setEqualsSlow):
(WTF::FastBitVectorWordOwner::resizeSlow):

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

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

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

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

8:38 AM Changeset in webkit [294748] by Jonathan Bedard
  • 1 add in trunk/Tools/Scripts/hooks/pre-commit

[GitHub] git-webkit pr doesn't sort Xcode project files before uploading
https://bugs.webkit.org/show_bug.cgi?id=239975
<rdar://92976140>

Reviewed by Chris Dumez.

  • Tools/Scripts/hooks/pre-commit: Sort Xcode project files on commit.

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

8:24 AM Changeset in webkit [294747] by Wenson Hsieh
  • 1 edit in trunk/Source/WebCore/page/ImageAnalysisQueue.cpp

ImageAnalysisTests.AnalyzeDynamicallyLoadedImages is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240847
rdar://93268890

Reviewed by Tim Horton.

This API test was created to verify that ImageAnalysisQueue detects and enqueues images that are
inserted into the document via script, after -_startImageAnalysis: has been invoked. Currently, it
occasionally times out, when the logic in ImageAnalysisQueue::enqueueIfNeeded to reject tiny
(< 20 by 20) images from the analysis queue falsely prevents us from enqueueing the newly inserted
image element.

Note that enqueueIfNeeded is called after the image has finished loading (i.e., dispatched its
"load" event for the new image). However, in this state, the image element's renderer hasn't
necessarily been laid out yet since its image source has changed, which means that the actual size
of the renderer might still be empty (0 by 0) when invoking enqueueIfNeeded. Since we currently
consult RenderBox::size() on the RenderImage in this method, we end up bailing too early.

Instead of checking the size of the renderer, we should be checking the size of the image instead
since the image itself is what's used to generate the bitmap image, over which we'll eventually run
image analysis. Unlike the renderer, this cached image's size doesn't depend on layout, and is
guaranteed to be up to date when the image has finished loading. This also allows us to simplify the
logic here -- since null WebCore::Images are empty, checking that both the width and height of the
image are at least 20 is sufficient to avoid queueing null images for analysis.

  • Source/WebCore/page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):

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

8:01 AM Changeset in webkit [294746] by ntim@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unused RenderTheme video-related methods
https://bugs.webkit.org/show_bug.cgi?id=240862

Reviewed by Antoine Quint.

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

(WebCore::hasVerticalAppearance):

  • Source/WebCore/rendering/RenderTheme.cpp:

(WebCore::RenderTheme::formatMediaControlsTime const): Deleted.
(WebCore::RenderTheme::formatMediaControlsCurrentTime const): Deleted.
(WebCore::RenderTheme::formatMediaControlsRemainingTime const): Deleted.
(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton const): Deleted.

  • Source/WebCore/rendering/RenderTheme.h:

(WebCore::RenderTheme::supportsClosedCaptioning const): Deleted.
(WebCore::RenderTheme::hasOwnDisabledStateHandlingFor const): Deleted.
(WebCore::RenderTheme::usesMediaControlStatusDisplay): Deleted.
(WebCore::RenderTheme::usesMediaControlVolumeSlider const): Deleted.
(WebCore::RenderTheme::usesVerticalVolumeSlider const): Deleted.
(WebCore::RenderTheme::mediaControlsFadeInDuration): Deleted.
(WebCore::RenderTheme::mediaControlsFadeOutDuration): Deleted.

  • Source/WebCore/rendering/RenderThemeMac.h:

(WebCore::RenderThemeMac::supportsClosedCaptioning const final): Deleted.

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

7:31 AM Changeset in webkit [294745] by commit-queue@webkit.org
  • 54 edits
    2 copies in trunk

[LBSE] Add support for <circle> & <ellipse>
https://bugs.webkit.org/show_bug.cgi?id=240793

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2022-05-24
Reviewed by Rob Buis.

Rename RenderSVGEllipse -> LegacyRenderSVGEllipse and adapt callees.

Re-introduce RenderSVGEllipse for LBSE, and activate renderer creation
for <circle> & <ellipse>, if LBSE is enabled at run-time.

This allows 14 more SVG 1.1 testcases to pass.

  • LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-21-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-23-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-26-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-28-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-29-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-44-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-80-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/coords-units-02-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/interact-cursor-01-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/interact-order-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/interact-zoom-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-a-04-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-a-05-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-uri-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-uri-02-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/script-handle-02-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/script-handle-03-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/script-handle-04-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-circle-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-ellipse-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-02-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-03-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-04-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-css-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-css-02-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-css-03-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-inherit-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-pres-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/text-align-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/text-align-05-b-expected.txt:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.cpp: Copied from Source/WebCore/rendering/svg/RenderSVGEllipse.cpp.

(WebCore::LegacyRenderSVGEllipse::LegacyRenderSVGEllipse):
(WebCore::LegacyRenderSVGEllipse::updateShapeFromElement):
(WebCore::LegacyRenderSVGEllipse::calculateRadiiAndCenter):
(WebCore::LegacyRenderSVGEllipse::fillShape const):
(WebCore::LegacyRenderSVGEllipse::strokeShape const):
(WebCore::LegacyRenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGEllipse::shapeDependentFillContains const):
(WebCore::LegacyRenderSVGEllipse::isRenderingDisabled const):

  • Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.h: Copied from Source/WebCore/rendering/svg/RenderSVGEllipse.h.
  • Source/WebCore/rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::RenderSVGEllipse):
(WebCore::RenderSVGEllipse::updateShapeFromElement):
(WebCore::RenderSVGEllipse::fillShape const):
(WebCore::RenderSVGEllipse::strokeShape const):
(WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::RenderSVGEllipse::shapeDependentFillContains const):

  • Source/WebCore/rendering/svg/RenderSVGEllipse.h:
  • Source/WebCore/svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::createElementRenderer):

  • Source/WebCore/svg/SVGElement.cpp:

(WebCore::createSVGLayerAwareElementSet):

  • Source/WebCore/svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::createElementRenderer):

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

7:22 AM Changeset in webkit [294744] by Oriol Brufau
  • 3 edits
    2 adds in trunk

Obey intrinsic min-height in nested column flex container
https://bugs.webkit.org/show_bug.cgi?id=240068

Reviewed by Sergio Villar Senin.

Fixes a regression from bug 230755. An intrinsic min-height should make
a column flex container grow enough for its contents, even if it's also
a flex item with a small definite flex-basis like 0px.

Test: imported/w3c/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-031.html

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

6:34 AM Changeset in webkit [294743] by Claudio Saavedra
  • 1 edit in trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp

[sqlite] Remove superfluous assertion
https://bugs.webkit.org/show_bug.cgi?id=240869

Reviewed by NOBODY (OOPS!).

Span::size() always returns a non-negative value, so checking
that the blob's size is greater than zero is unnecessary.

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

(WebCore::SQLiteStatement::bindBlob):

6:08 AM Changeset in webkit [294742] by Jean-Yves Avenard
  • 3 edits in trunk/LayoutTests

canvas-createPattern-video-modify.html is an intermittent failure
https://bugs.webkit.org/show_bug.cgi?id=240780
rdar://93731906

Reviewed by Youenn Fablet.

The tests relied on the event "loadeddata" to be fired to check if the first video frame got painted.
However, at present there's no guarantee that a frame would have been painted at the time this event is fired.
This issue is separately tracked in bug 240779

So instead we use the new requestVideoCallbackFrame API which is designed specifically for this case.
We also simplify the existing page, using more modern JS features.

  • LayoutTests/fast/canvas/canvas-createPattern-video-loading.html:
  • LayoutTests/fast/canvas/canvas-createPattern-video-modify.html:
  • LayoutTests/media/utilities.js:

(once):
(fetchWithXHR):
(waitForVideoFrame):
(waitForVideoFrameUntil):

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

5:31 AM EnvironmentVariables edited by Michael Catanzaro
(diff)
5:29 AM EnvironmentVariables edited by Michael Catanzaro
Add WEBKIT_GST_ENABLE_LEGACY_VAAPI (diff)
1:17 AM Changeset in webkit [294741] by Diego Pino Garcia
  • 41 edits
    4 deletes in trunk/LayoutTests/platform

[WPE] Unreviewed test gardening, update baselines

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.