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

Timeline



May 14, 2022:

7:08 PM Changeset in webkit [294214] by Justin Michaud
  • 6 edits in trunk/Source/bmalloc

[LIBPAS] Add extra assert information to malloc enumeration API
https://bugs.webkit.org/show_bug.cgi?id=240292

Reviewed by Yusuke Suzuki.

In the heap enumerator (which is a slow path), we have asserts that
have the opportunity to include extra information to aid debugging.

We add PAS_ASSERT_WITH_DETAIL, which stuffs extra data into registers before crashing
so that we can see it in crash logs. We also add a debugging option to allow logging
to syslog, for cases when we do not have access to stdout.

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(consider_allocator):

  • libpas/src/libpas/pas_local_allocator_config_kind.h:

(pas_local_allocator_config_kind_create_normal):
(pas_local_allocator_config_kind_create_primordial_partial):
(pas_local_allocator_config_kind_create_bitfit):
(pas_local_allocator_config_kind_get_segregated_page_config_kind):
(pas_local_allocator_config_kind_get_bitfit_page_config_kind):
(pas_local_allocator_config_kind_get_string):

  • libpas/src/libpas/pas_log.c:

(pas_vlog):

  • libpas/src/libpas/pas_utils.c:

(pas_crash_with_info_impl):
(pas_panic):
(pas_assertion_failed_no_inline):
(pas_assertion_failed_no_inline_with_extra_detail):

  • libpas/src/libpas/pas_utils.h:
5:47 PM Changeset in webkit [294213] by ysuzuki@apple.com
  • 9 edits in trunk/Source

Put ThreadGlobalData in Thread
https://bugs.webkit.org/show_bug.cgi?id=240116

Reviewed by Darin Adler and Mark Lam.

This patch puts ThreadGlobalData into Thread's m_clientData field.
Thread is stored in fast TLS, so accessing to this field is quite fast
compared to the current ThreadSpecific one.

At the same time, this change can remove a hack in ThreadGlobalData.
Previously worker thread needs to tear down ThreadGlobalData explicitly
because Thread::current() can be destroyed earlier than ThreadGlobalData.
In that case, EventNames etc., which accesses to AtomString's destruction
can have problem because of lack of Thread::current() access. But since
we now move it to Thread, we can control how it is destroyed with Thread::current()
precisely, and we can explicitly destroy it before Thread::current() is fully
cleared. So we do not need to call it explicitly anymore.
Currently, we are calling it just to make ThreadGlobalData destroyed for debugging.

  • Source/WebCore/PAL/pal/ThreadGlobalData.cpp:

(PAL::ThreadGlobalData::ThreadGlobalData):
(PAL::ThreadGlobalData::destroy): Deleted.

  • Source/WebCore/PAL/pal/ThreadGlobalData.h:

(PAL::ThreadGlobalData::ThreadGlobalData::cachedConverterICU): Deleted.

  • Source/WTF/wtf/Threading.h:

(WTF::Thread::Thread):

  • Source/WTF/wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::destructTLS):

  • Source/WTF/wtf/win/ThreadingWin.cpp:

(WTF::Thread::ThreadHolder::~ThreadHolder):

  • Source/WebCore/platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::destroy):
(WebCore::ThreadGlobalData::setWebCoreThreadData):
(WebCore::threadGlobalData):

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

5:45 PM Changeset in webkit [294212] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkit-patch] Include commit messages in patches (Follow-up #2)
https://bugs.webkit.org/show_bug.cgi?id=240256
<rdar://problem/92982358>

Unreviewed follow-up fix.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): Allow caller to exclude commit message, run git diff against HEAD by
default to include both staged and unstaged changes.

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.create_patch): Match function signature for git.

  • Scripts/webkitpy/common/checkout/scm/scm_mock.py:

(MockSCM.create_patch): Match function signature for git.

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN.create_patch): Match function signature for git.

  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter._wpt_patch): Exclude commit message since we won't be able
to classify it's file.

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.MockGit.create_patch): Match function signature for git.

3:39 PM Changeset in webkit [294211] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Changing text color and removing line-clamp on hover causes text to disappear permanently
https://bugs.webkit.org/show_bug.cgi?id=240410

Reviewed by Simon Fraser.

Source/WebCore:

Invalidate the flex items' line layout path when line-clamp property value changes.

While the line clamp property is set on the flex box, it is "forced on" the flex items' inline content.
(i.e. the property is not inherited, it is propagated to the flex children)
It means dynamic value change only runs on the flex box renderer.

Test: fast/block/dynamic-line-clamp-empty-content.html

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::styleWillChange):

LayoutTests:

  • fast/block/dynamic-line-clamp-empty-content-expected.html: Added.
  • fast/block/dynamic-line-clamp-empty-content.html: Added.
2:35 PM Changeset in webkit [294210] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed win build fix.

  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::flexBoxLogicalBorder):
(WebCore::LayoutIntegration::flexBoxLogicalPadding):
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::logicalBorder): Deleted.
(WebCore::LayoutIntegration::logicalPadding): Deleted.

1:08 PM Changeset in webkit [294209] by ysuzuki@apple.com
  • 14 edits in trunk/Source

Rename EventTrackingRegions::Event to EventTrackingRegions::EventType
https://bugs.webkit.org/show_bug.cgi?id=240295

Reviewed by Darin Adler.

This patch is follow-up after r293967 by Darin's comment. EventTrackingRegions::Event is not event actually,
it is just an EventType. This patch renames it with EventType. We also rename variables "event" to "eventType".

  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<EventTrackingRegions>::decode):

  • Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint const):

  • Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateTouchEventTracking):

  • Source/WebCore/page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::drawRect):

  • Source/WebCore/page/Page.cpp:

(WebCore::Page::touchEventRectsForEventForTesting):

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

(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):

  • Source/WebCore/page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::computeWheelProcessingSteps):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):

  • Source/WebCore/page/scrolling/ScrollingTree.h:
  • Source/WebCore/platform/EventTrackingRegions.cpp:

(WebCore::EventTrackingRegions::eventName):
(WebCore::EventTrackingRegions::eventNameAtomString): We add this function to have a way to get AtomString event name. It simplifies Internal code.
(WebCore::EventTrackingRegions::trackingTypeForPoint):
(WebCore::EventTrackingRegions::uniteSynchronousRegion):

  • Source/WebCore/platform/EventTrackingRegions.h:
  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::touchEventRectsForEvent):

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

12:15 PM Changeset in webkit [294208] by Tyler Wilcock
  • 10 edits in trunk

AX: Remove CSSDisplayContentsAXSupportEnabled flag
https://bugs.webkit.org/show_bug.cgi?id=240409

Reviewed by Chris Fleizach.

Source/WebCore:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSDisplayContentsAXSupportEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssDisplayContentsAXSupportEnabled const): Deleted.

Source/WebKitLegacy/mac:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

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

(-[WebPreferences cssDisplayContentsAXSupportEnabled]): Deleted.
(-[WebPreferences setCSSDisplayContentsAXSupportEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

11:04 AM Changeset in webkit [294207] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.1.1

Tag WebKit-7614.1.14.1.1.

11:02 AM Changeset in webkit [294206] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.0.1

Tag WebKit-7614.1.14.0.1.

10:58 AM Changeset in webkit [294205] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.1

10:51 AM Changeset in webkit [294204] by Antti Koivisto
  • 13 edits in trunk/Source/WebCore

Template TextBoxPainter on line layout path
https://bugs.webkit.org/show_bug.cgi?id=240416

Reviewed by Alan Bujtas.

Painting currently goes via a line layout path agnostic iterator.
This is inefficient since we always know what sort of layout we are painting.

  • layout/integration/inline/InlineIteratorBox.cpp:

(WebCore::InlineIterator::Box::visualRect const):

  • layout/integration/inline/InlineIteratorBox.h:

(WebCore::InlineIterator::Box::containingBlock const):
(WebCore::InlineIterator::Box::visualRect const): Deleted.

  • layout/integration/inline/InlineIteratorBoxLegacyPath.h:

(WebCore::InlineIterator::BoxLegacyPath::containingBlock const):
(WebCore::InlineIterator::BoxLegacyPath::direction const):
(WebCore::InlineIterator::BoxLegacyPath::isFirstLine const):

  • layout/integration/inline/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::containingBlock const):
(WebCore::InlineIterator::BoxModernPath::direction const):
(WebCore::InlineIterator::BoxModernPath::isFirstLine const):
(WebCore::InlineIterator::BoxModernPath::renderText const):

  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • rendering/InlineBoxPainter.cpp:

(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::paint):

  • rendering/LegacyInlineTextBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):

  • rendering/TextBoxPainter.cpp:

(WebCore::LegacyTextBoxPainter::LegacyTextBoxPainter):
(WebCore::ModernTextBoxPainter::ModernTextBoxPainter):
(WebCore::TextBoxPainter<TextBoxPath>::TextBoxPainter):
(WebCore::TextBoxPainter<TextBoxPath>::~TextBoxPainter):
(WebCore::TextBoxPainter<TextBoxPath>::makeIterator const):
(WebCore::TextBoxPainter<TextBoxPath>::paint):
(WebCore::TextBoxPainter<TextBoxPath>::createMarkedTextFromSelectionInBox):
(WebCore::TextBoxPainter<TextBoxPath>::paintBackground):
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundAndDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionBackground):
(WebCore::TextBoxPainter<TextBoxPath>::paintForeground):
(WebCore::TextBoxPainter<TextBoxPath>::createDecorationPainter):
(WebCore::TextBoxPainter<TextBoxPath>::paintBackgroundDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionUnderlines):
(WebCore::TextBoxPainter<TextBoxPath>::textPosition):
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionUnderline):
(WebCore::TextBoxPainter<TextBoxPath>::paintPlatformDocumentMarkers):
(WebCore::LegacyTextBoxPainter::calculateUnionOfAllDocumentMarkerBounds):
(WebCore::TextBoxPainter<TextBoxPath>::paintPlatformDocumentMarker):
(WebCore::TextBoxPainter<TextBoxPath>::computePaintRect):
(WebCore::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter<TextBoxPath>::computeHaveSelection const):
(WebCore::TextBoxPainter<TextBoxPath>::fontCascade const):
(WebCore::TextBoxPainter<TextBoxPath>::textOriginFromPaintRect const):
(WebCore::TextBoxPainter<TextBoxPath>::debugTextShadow const):
(WebCore::TextBoxPainter::TextBoxPainter): Deleted.
(WebCore::TextBoxPainter::~TextBoxPainter): Deleted.
(WebCore::TextBoxPainter::paint): Deleted.
(WebCore::TextBoxPainter::createMarkedTextFromSelectionInBox): Deleted.
(WebCore::TextBoxPainter::paintBackground): Deleted.
(WebCore::TextBoxPainter::paintForegroundAndDecorations): Deleted.
(WebCore::TextBoxPainter::paintCompositionBackground): Deleted.
(WebCore::TextBoxPainter::paintForeground): Deleted.
(WebCore::TextBoxPainter::createDecorationPainter): Deleted.
(WebCore::TextBoxPainter::paintBackgroundDecorations): Deleted.
(WebCore::TextBoxPainter::paintForegroundDecorations): Deleted.
(WebCore::TextBoxPainter::paintCompositionUnderlines): Deleted.
(WebCore::textPosition): Deleted.
(WebCore::TextBoxPainter::paintCompositionUnderline): Deleted.
(WebCore::TextBoxPainter::paintPlatformDocumentMarkers): Deleted.
(WebCore::TextBoxPainter::calculateUnionOfAllDocumentMarkerBounds): Deleted.
(WebCore::TextBoxPainter::paintPlatformDocumentMarker): Deleted.
(WebCore::TextBoxPainter::computePaintRect): Deleted.
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds): Deleted.
(WebCore::TextBoxPainter::computeHaveSelection const): Deleted.
(WebCore::TextBoxPainter::fontCascade const): Deleted.
(WebCore::TextBoxPainter::textOriginFromPaintRect const): Deleted.
(WebCore::TextBoxPainter::debugTextShadow const): Deleted.

  • rendering/TextBoxPainter.h:

(WebCore::TextBoxPainter::textBox const):

10:40 AM Changeset in webkit [294203] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.1

10:25 AM Changeset in webkit [294202] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.3-branch

New branch.

10:25 AM Changeset in webkit [294201] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.2-branch

New branch.

10:25 AM Changeset in webkit [294200] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.1-branch

New branch.

10:25 AM Changeset in webkit [294199] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.0-branch

New branch.

9:56 AM Changeset in webkit [294198] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[FFC][Integration] Add "fixed sized/all default value" flex layout
https://bugs.webkit.org/show_bug.cgi?id=240414

Reviewed by Antti Koivisto.

This patch adds support for the simplest possible flex layout (fixed size, no-wrap, no-reversed etc).

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

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

9:26 AM Changeset in webkit [294197] by commit-queue@webkit.org
  • 6 edits in trunk/Source

WebCore::IOSurface refers to unused context size
https://bugs.webkit.org/show_bug.cgi?id=240385

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

Source/WebCore:

Remove unused IOSurface::m_contextSize.
Context related code makes IOSurface error-prone wrt
reusing the IOSurface in the pool.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):

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

(WebCore::IOSurface::create):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):

Source/WebKit:

Adjust after removing the IOSurface context size parameter.
All call sites passed the surface size.

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

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

8:59 AM Changeset in webkit [294196] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

Use an OptionSet<> for DisplayList::AsTextFlags
https://bugs.webkit.org/show_bug.cgi?id=240415

Reviewed by Alan Bujtas.

Simple adoption of OptionSet<DisplayList::AsTextFlag> in place of DisplayList::AsTextFlags.

  • html/HTMLCanvasElement.h:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::displayListAsText const):
(WebCore::GraphicsLayer::replayDisplayListAsText const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::displayListAsText const):
(WebCore::GraphicsLayerCA::replayDisplayListAsText const):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
(WebCore::DisplayList::DisplayList::asText const):

  • platform/graphics/displaylists/DisplayList.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::displayListAsText const):
(WebCore::RenderLayerBacking::replayDisplayListAsText const):

  • rendering/RenderLayerBacking.h:
  • rendering/TextPainter.cpp:

(WebCore::TextPainter::cachedGlyphDisplayListsForTextNodeAsText):

  • rendering/TextPainter.h:
  • testing/Internals.cpp:

(WebCore::Internals::displayListForElement):
(WebCore::Internals::replayDisplayListForElement):
(WebCore::Internals::cachedGlyphDisplayListsForTextNode):

8:24 AM Changeset in webkit [294195] by Alan Bujtas
  • 13 edits
    4 adds in trunk

[Repaint] Border ignores currentColor change when hovering
https://bugs.webkit.org/show_bug.cgi?id=240401

Reviewed by Antti Koivisto.

Source/WebCore:

This patch triggers repaint when currentColor is applied on border.

It most likely got broken at r150259 (9 years ago!) when StyleDifferenceRepaintIfText was introduced.
StyleDifferenceRepaintIfText is a "conditional repaint" diff value which only triggers repaint if the renderer has some text content.

Later, r156619 addressed some of the "content with border/outline is not painting" fallout by extending
StyleDifferenceRepaintIfText to RepaintIfTextOrBorderOrOutline.
RepaintIfTextOrBorderOrOutline turns "conditional repaints" to real repaints if, in addition to text, the content has outline/border.
However the fix was neither complete nor proper (it patched the repaint logic by changing hasImmediateNonWhitespaceTextChildOrBorderOrOutline
instead of computing the correct diff value -unconditional Repaint).

Fast-forward to 2020, r267528 ensured that content with outline is no longer a "conditional repaint".
It also made some of the code introduced in r156619 redundant (see hasImmediateNonWhitespaceTextChildOrBorderOrOutline).

This patch expands on r267528 by introducing isEquivalentForPainting for the border data. It ensures that we
compute (unconditional) Repaint diff value, if the border uses currentColor.

Tests: fast/repaint/repaint-current-color-border-on-hover.html

fast/repaint/repaint-pseudo-border-on-hover.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::hasImmediateNonWhitespaceTextChildOrBorderOrOutline const):

  • rendering/style/BorderData.h:

(WebCore::BorderData::isEquivalentForPainting const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint const):

LayoutTests:

  • fast/repaint/repaint-current-color-border-on-hover-expected.txt: Added.
  • fast/repaint/repaint-current-color-border-on-hover.html: Added.
  • fast/repaint/repaint-pseudo-border-on-hover-expected.txt: Added.
  • fast/repaint/repaint-pseudo-border-on-hover.html: Added.
7:40 AM Changeset in webkit [294194] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] Include commit messages in patches (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=240256
<rdar://problem/92982358>

Unreviewed follow-up fix.

  • Tools/Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): Prefer commit specified by user.

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

6:59 AM Changeset in webkit [294193] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[FFC][Integration] Add updateFormattingRootGeometryAndInvalidate/updateRenderers
https://bugs.webkit.org/show_bug.cgi?id=240413

Reviewed by Antti Koivisto.

Make sure that the layout box/renderer geometries are all up-to-date.

  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::FlexLayout::layout):
(WebCore::LayoutIntegration::FlexLayout::updateRenderers const):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h:

(WebCore::LayoutIntegration::FlexLayout::flexBoxRenderer const):
(WebCore::LayoutIntegration::FlexLayout::flexBoxRenderer):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

6:30 AM Changeset in webkit [294192] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[FFC][Integration] Do not reset the effective display value for flex root
https://bugs.webkit.org/show_bug.cgi?id=240412

Reviewed by Antti Koivisto.

Non-inline formatting roots (e.g. flex) should not need display type adjustment.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::rootBoxStyle):
(WebCore::LayoutIntegration::rootBoxFirstLineStyle):
(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::updateStyle):

6:19 AM Changeset in webkit [294191] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] LayoutState should track the integration formatting context type
https://bugs.webkit.org/show_bug.cgi?id=240411

Reviewed by Antti Koivisto.

Let's not use RuntimeEnabledFeatures to check wheter the integration codepath is enabled as
the new FCs (e.g. flex) don't even have such flags.

  • layout/LayoutContext.cpp:
  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::LayoutState):
(WebCore::Layout::LayoutState::formattingStateForFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForInlineFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForFlexFormattingContext const):
(WebCore::Layout::LayoutState::ensureInlineFormattingState):
(WebCore::Layout::LayoutState::ensureFlexFormattingState):
(WebCore::Layout::LayoutState::setViewportSize):
(WebCore::Layout::LayoutState::viewportSize const):
(WebCore::Layout::LayoutState::setIsIntegratedRootBoxFirstChild):
(WebCore::Layout::LayoutState::shouldIgnoreTrailingLetterSpacing const):
(WebCore::Layout::LayoutState::shouldNotSynthesizeInlineBlockBaseline const):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::isInlineFormattingContextIntegration const):
(WebCore::Layout::LayoutState::isFlexFormattingContextIntegration const):

  • layout/floats/FloatingState.cpp:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):

  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

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

  • layout/integration/inline/LayoutIntegrationInlineContent.cpp:
  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::LineLayout):
(WebCore::LayoutIntegration::LineLayout::releaseCaches):

5:41 AM Changeset in webkit [294190] by commit-queue@webkit.org
  • 66 edits
    2 adds
    2 deletes in trunk/Source/WebKit

SharedBuffer should be copied and then attributed back to WebContent
https://bugs.webkit.org/show_bug.cgi?id=240223
rdar://91006582

Patch by Jean-Yves Avenard <jean-yves.avenard@apple.com> on 2022-05-14
Reviewed by Jer Noble.

Ideally, when mapping an IPCHandle we would prefer to use Copy On Write.
However, there's no support for COW with explicitly-owned memory such as
those created with VM_FLAGS_PURGABLE flag.
As such, when calling mach_vm_map with copy=true argument is set the
entire page will be copied.
It is therefore more performant to manually create a new buffer and copy
the actual content.
The memory can then be blamed on a particular process.

Rework FragmentedSharedBuffer/SharedBuffer IPC's serializer to perform
a copy, partially reverting changes made in bug 233401.

We replace the unnecessary use of SharedMemory::IPCHandle and directly
send SharedBuffer in clipboard and PDF related methods.
Rename SharedBufferCopy to SharedBufferReference to more accurately
describe what it does.

Make new use of the SharedBufferReference class, replacing the use of IPCHandle
in RemoteSourceBufferProxy and RemoteMediaResourceManager.

Rename SharedBufferReference::buffer() into
SharedBufferReference::unsafeBuffer() to give better clarity that accessing
SharedBuffer and SharedMemory should be treated with care.

SharedBuffer sent from trusted processes such as network process should
prefer the use of SharedBufferReference over directly using IPCHandle or
SharedBuffer, it makes optimisation easier and avoid duplicating code.

No observable change, covered by existing tests.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::remoteMediaResourceManager):

  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::setData):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::RemoteMediaResourceManager):
(WebKit::RemoteMediaResourceManager::dataReceived):

  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/media/RemoteMediaResourceManager.messages.in:
  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::append):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):

  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:

(WebKit::ServiceWorkerDownloadTask::didReceiveData):

  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.messages.in:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • Platform/IPC/SharedBufferCopy.cpp: Removed.
  • Platform/IPC/SharedBufferCopy.h: Removed.
  • Platform/IPC/SharedBufferReference.cpp: Added.

(IPC::SharedBufferReference::encode const):
(IPC::SharedBufferReference::decode):
(IPC::SharedBufferReference::unsafeBuffer const):
(IPC::SharedBufferReference::data const):
(IPC::SharedBufferReference::bufferWithOwner const):

  • Platform/IPC/SharedBufferReference.h: Added.

(IPC::SharedBufferReference::SharedBufferReference):
(IPC::SharedBufferReference::size const):
(IPC::SharedBufferReference::isEmpty const):
(IPC::SharedBufferReference::isNull const):

  • Platform/SharedMemory.cpp:

(WebKit::transferOwnershipOfMemory const):

  • Platform/SharedMemory.h:
  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::changeOwnershipOfMemory):
(WebKit::SharedMemory::Handle::takeOwnershipOfMemory const):
(WebKit::SharedMemory::Handle::transferOwnershipOfMemory const):
(WebKit::machProtection):
(WebKit::SharedMemory::map):

  • Scripts/process-entitlements.sh:
  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):

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

(-[WKWebView createPDFWithConfiguration:completionHandler:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • UIProcess/WebPageProxy.cpp:

(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifierFromData):
(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveData):

  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::readBuffer):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_pageCountForPrintFormatter:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::drawToPDFiOS):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::setData):

  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:

(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):

  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::dataReceived):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::append):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerAttachmentIdentifier):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::readBufferFromClipboard):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • 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):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::drawToPDFiOS):
(WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

# Please populate the above commit message. Lines starting
# with '#' will be ignored

# 13 Tim Horton <timothy_horton@apple.com>
#
# ApplePayLogoSystemImage needlessly loads PassKit in WebKit child processes on iOS
# https://bugs.webkit.org/show_bug.cgi?id=240404
# <rdar://93070349>
#
# Reviewed by Chris Dumez.
#
# * UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
# (WebKit::ProcessLauncher::launchProcess): Adopt the WTF implementation of systemDirectoryPath.
# (WebKit::systemDirectoryPath): Moved to WTF.
#
# 13 Wenson Hsieh <Wenson Hsieh>
#
# ImageAnalysisQueue should reanalyze image elements whose image sources have changed
# https://bugs.webkit.org/show_bug.cgi?id=240371
# rdar://93175651
#
# Reviewed by Tim Horton.
#
# To aid with debugging similar issues in the future, plumb the image URL through to
# requestImageAnalysisWithIdentifier, which (if an engineering default is specified) will additionally reveal
# the URL in system logs.
#
# * Platform/cocoa/ImageAnalysisUtilities.h:
# * UIProcess/Cocoa/WebViewImpl.mm:
# (WebKit::WebViewImpl::requestTextRecognition):
# * UIProcess/ios/WKContentViewInteraction.mm:
# (-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):
#
# 13 Aditya Keerthi <Aditya Keerthi>
#
# [iOS] Multiple visible find highlights when searching for text after beginning a "find from selection"
# https://bugs.webkit.org/show_bug.cgi?id=240393
# rdar://91441895
#
# Reviewed by Wenson Hsieh.
#
# Some WebKit clients use SPI on WKWebView to support "find from selection"
# functionality (the Cmd+E shortcut). However, to support general
# find functionality, they use new find API that uses a different codepath
# to draw highlights. Mixing use of the API and SPI can currently result
# in two highlights showing up.
#
# To fix, ensure SPI highlights are removed once the API is being used.
# The long term solution is for clients to adopt API for the
# "find from selection" functionality, but in the short term the SPI
# should remain supported.
#
# * WebProcess/WebPage/WebPage.cpp:
# (WebKit::WebPage::clearAllDecoratedFoundText):
#
# 13 Kimmo Kinnunen <kkinnunen@apple.com>
#
# IPC cannot encode, decode Ref<>, causing duplicate code
# https://bugs.webkit.org/show_bug.cgi?id=240160
#
# Reviewed by Antti Koivisto.
#
# Consider reference counted type T:
# Encoding is of signature encode(const T&)
# Decoding is of signature std::optional<Ref<T>> decode()
# This is usable for both RefPtr and Ref use-cases.
#
# Add Ref<T> encoder that is polymorphic to T.
# This way clients do not need to write encoders for
# Ref<T>, RefPtr<T>. They just need one encoder, for T.
#
# When clients do not need to write RefPtr<T>, they make less
# bugs. These will be corrected in future patches.
#
# Having Ref<T> encoders allows clients to use Vector<Ref<T>> encoding
# via Vector<U> encoder, and they would not need to duplicate that
# logic, making less bugs. These will be corrected in future patches.
#
# Remove most IPC::ArgumentCoder<Ref<..>> in favor of IPC::ArgumentCoder<..>.
# In the cases where removal was done, remove also redundant
# IPC::ArgumentCoder<RefPtr<..>>.
#
# * Platform/IPC/ArgumentCoders.h:
# (IPC::ArgumentCoder<RefPtr<T>>::decode):
# (IPC::ArgumentCoder<Ref<T>>::encode):
# (IPC::ArgumentCoder<Ref<T>>::decode):
# * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
# (IPC::ArgumentCoder<WebCore::Font>::encodePlatformData):
# (IPC::ArgumentCoder<WebCore::Font>::decodePlatformData):
# * Shared/WebCoreArgumentCoders.cpp:
# (IPC::ArgumentCoder<WebCore::Font>::encode):
# (IPC::ArgumentCoder<Font>::decode):
# (IPC::ArgumentCoder<SystemImage>::encode):
# (IPC::ArgumentCoder<SystemImage>::decode):
# * Shared/WebCoreArgumentCoders.h:
# * Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
# * Shared/soup/WebCoreArgumentCodersSoup.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
# * Shared/win/WebCoreArgumentCodersWin.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
#
# 13 Tim Horton <timothy_horton@apple.com>
#
# Add UI-side layers for optionally indicating interaction regions
# https://bugs.webkit.org/show_bug.cgi?id=240372
# <rdar://problem/87170289>
#
# Reviewed by Dean Jackson.
#
# * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
# (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
# (WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
# Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.
#
# * SourcesCocoa.txt:
# * UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
# * UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added.
# (configureLayerForInteractionRegion):
# (WebKit::interactionRegionForLayer):
# (WebKit::isInteractionRegionLayer):
# (WebKit::setInteractionRegion):
# Box WebCore::InteractionRegion in a Objective-C object and store it on the layer.
# Use this as a key to indicate that a given layer is an interaction region.
#
# (WebKit::appendInteractionRegionLayersForLayer):
# Make sure that interaction region layers are always at the end of the layer's sublayers array.
#
# (WebKit::updateLayersForInteractionRegions):
# Add new layers for interaction regions.
# Maintain the same layer for regions that cover the same area.
# Add a green wash if the default WKInteractionRegionDebugFill is set.
#
# * WebKit.xcodeproj/project.pbxproj:
#
# 13 Simon Fraser <Simon Fraser>
#
# Simplify the usage of DrawGlyphsRecorder
# https://bugs.webkit.org/show_bug.cgi?id=240363
#
# Reviewed by Myles Maxfield.
#
# Move the DeconstructDrawGlyphs switch from inside DrawGlyphsRecorder to
# DisplayList::Recorder, so that DrawGlyphsRecorder is only ever used when deconstructing
# glyphs.
#
# Also, ensure that the only time that glyph deconstruction is enabled is when
# recording display lists via RemoteDisplayListRecorderProxy. There's no reason for
# paintAttachmentText() to need glyph deconstruction.
#
# This is a small perf improvement on the MotionMark Design subtest.
#
# * WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
# (WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
# (WebKit::m_renderingBackend):
# * WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
#
# it takes from the XPC message is sent until the XPC reply is received. Add reporting when this happens

# On branch bz/240223
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: Source/WebKit/ChangeLog
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# 0001-SharedBuffer-should-be-copied-and-then-attributed-ba.patch
#

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

12:21 AM Changeset in webkit [294189] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/text/WTFString.h

Drop unused appendNumber(Vector<CharacterType>& vector, unsigned char) function
https://bugs.webkit.org/show_bug.cgi?id=240387

Reviewed by Darin Adler.

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

(WTF::appendNumber): Deleted.

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

May 13, 2022:

11:14 PM Changeset in webkit [294188] by timothy_horton@apple.com
  • 7 edits in trunk/Source

ApplePayLogoSystemImage needlessly loads PassKit in WebKit child processes on iOS
https://bugs.webkit.org/show_bug.cgi?id=240404
<rdar://93070349>

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/applepay/ApplePayLogoSystemImage.mm:

(WebCore::passKitBundle):
Adopt systemDirectoryPath instead of unnecessarily loading PassKit just
to find its bundle path (the previous implementation made use of the fact
that dlopen internally adjusts the search path to look in the simulator
root, but also resulted in wasted time loading and initializing PassKit
and its dependencies).

Source/WebKit:

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess): Adopt the WTF implementation of systemDirectoryPath.
(WebKit::systemDirectoryPath): Moved to WTF.

Source/WTF:

  • wtf/FileSystem.h:
  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::systemDirectoryPath):
Move the implementation of systemDirectoryPath() from WebKit2.

systemDirectoryPath() provides the correct path to /System
in the simulator, for consumption by APIs (like NSURL) that do not
adjust to the simulator-rooted path themselves.

10:29 PM Changeset in webkit [294187] by ntim@apple.com
  • 11 edits
    2 deletes in trunk

[css-ui] Unexpose appearance property values already handled by appearance: auto
https://bugs.webkit.org/show_bug.cgi?id=240384

Reviewed by Aditya Keerthi.

These are only used internally, and are handled by appearance: auto in the UA sheets:

  • caps-lock-indicator
  • color-well
  • list-button
  • searchfield-decoration
  • searchfield-results-decoration
  • searchfield-results-button
  • searchfield-cancel-button

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Source/WebCore:

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

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • platform/ThemeTypes.h:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • fast/css/appearance-caps-lock-indicator-expected.txt: Removed.
  • fast/css/appearance-caps-lock-indicator.html: Removed.
9:37 PM Changeset in webkit [294186] by Tyler Wilcock
  • 8 edits
    2 adds in trunk

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.
8:20 PM Changeset in webkit [294185] by Alan Coon
  • 9 edits in branches/safari-7614.1.12-branch/Source

Versioning.

WebKit-7614.1.12.4

6:42 PM Changeset in webkit [294184] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] Apply patches commit messages
https://bugs.webkit.org/show_bug.cgi?id=240402
<rdar://93272455>

Reviewed by Dewei Zhu.

  • Tools/Scripts/webkitpy/common/checkout/checkout.py:

(Checkout):
(filter_patch_content): Insert reviewer to git patch as we're applying it.
(apply_patch): If a patch has a commit subject, it contains commit messages
and we should apply those commit messages.

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

4:37 PM Changeset in webkit [294183] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkit-patch] Include commit messages in patches
https://bugs.webkit.org/show_bug.cgi?id=240256
<rdar://92982358>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/common/checkout/checkout.py:

(Checkout.commit_message_for_this_commit): If no changelogs are modified, prefer
the commit message.

  • Scripts/webkitpy/common/checkout/diff_parser.py:

(DiffParser._parse_into_diff_files): Ignore commit message headers.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): Prefer git format-patch when local commits are available.
(Git.rev_parse): Determine hash for ref.
(Git.format_patch): Deleted.
(Git.request_pull): Deleted.

  • Scripts/webkitpy/tool/steps/abstractstep.py:

(AbstractStep): Keep record of local commit.

  • Scripts/webkitpy/tool/steps/editchangelog.py:

(EditChangeLog.run): Do not edit changelog if no changelog is present.

  • Scripts/webkitpy/tool/steps/preparechangelog.py:

(PrepareChangeLog.run): Do not prepare changelog if local commit is present.

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

4:12 PM Changeset in webkit [294182] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Unreviewed correction based on a comment from Darin.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):

3:56 PM Changeset in webkit [294181] by Ben Nham
  • 2 edits in trunk/Source/WTF

Enforce foreground WebContent memory limit on macOS
https://bugs.webkit.org/show_bug.cgi?id=240397

Reviewed by Chris Dumez.

We removed the foreground memory limit for WebContent on macOS in r272046. But based on some
bug reports that we've seen, it seems like we need to restore some limit to prevent bad user
outcomes when a misbehaving process has runaway memory usage.

This patch adds a foreground memory limit of 8GB or 16GB depending on RAM size. This matches
the limits set by other browsers for their content process.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillOfActiveProcess):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):

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

3:28 PM Changeset in webkit [294180] by mark.lam@apple.com
  • 28 edits in trunk/Source/JavaScriptCore

Enhance the ARM64Disassembler to print pc indices and better branch target labels.
https://bugs.webkit.org/show_bug.cgi?id=240370

Reviewed by Saam Barati.

Disassemblies used to look like this:

0x10e480ff8: ldurb w17, [x0, #7]
0x10e480ffc: cmp w17, #0
0x10e481000: b.hi 0x10e48103c
0x10e481004: stur x0, [fp, #-72]
...
0x10e481040: movk x3, #0xfffe, lsl #48
0x10e481044: b 0x10e4814f4
0x10e481048: nop

With this patch, it will now look like this:

<748> 0x10e120aec: ldurb w17, [x0, #7]
<752> 0x10e120af0: cmp w17, #0
<756> 0x10e120af4: b.hi 0x10e120b30 -> <816>
<760> 0x10e120af8: stur x0, [fp, #-80]
...
<820> 0x10e120b34: movk x3, #0xfffe, lsl #48
<824> 0x10e120b38: b 0x10e120fc8 -> <1992>
<828> 0x10e120b3c: nop

  1. Each instruction pc is now prefixed with a pc index i.e. the offset of the pc address from the start of the compilation unit e.g. <756>.
  1. Relative branches now show the branch target as a pc index (effectively, an internal label in this compilation unit) in addition to the pc address e.g. the "-> <816>" in:

<756> 0x10e120af4: b.hi 0x10e120b30 -> <816>

Also fixed a formatting bug where the space between relative branch instructions
and their target pc was short 2 spaces.

  1. If the relative branch target is a known thunk, the disassembler will now print the thunk label e.g.

<828> 0x10e12033c: bl 0x10e0f0a00 -> <thunk: get_from_scope thunk>

<1476> 0x10e120dc4: cbnz x16, 0x10e104100 -> <thunk: handleExceptionWithCallFrameRollback>
<2368> 0x10e121140: b 0x10e10c000 -> <thunk: DFG OSR exit generation thunk>

Introduced a FINALIZE_THUNK macro that will be used instead of FINALIZE_CODE in
thunk generators. By doing so, thunk labels will automatically be registered
with the disassembler, and will be used for the above look up.

Thunk label registration is only done if disassembly is enabled.

  1. If the branch target is neither an internal label nor a thunk, then the disassembler will print some useful info about it to the best of its knowledge e.g.

<168> 0x10e1002e8: b 0x10e120b60 -> <JIT PC>
<168> 0x10e1002e8: b 0x10e120b60 -> <LLInt PC>
<168> 0x10e1002e8: b 0x10e120b60 -> <unknown>

  1. The disassemble() function now takes 2 additional arguments: codeStart, and codeEnd. These are needed so that the disassembler can compute the pc index for each instruction, as well as determine if a branch target is internal to this compilation unit, or pointing out of it.

This feature is currently only supported for the ARM64 disassembler.

Printing of JIT operation labels (via movz + movk + indirect branch) is not yet
supported.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassemblyImpl):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::setIsThunk):

  • b3/air/AirDisassembler.cpp:

(JSC::B3::Air::Disassembler::dump):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dumpDisassembly):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset):
(JSC::ARM64Disassembler::A64DOpcodeConditionalBranchImmediate::format):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcode::A64DOpcode):
(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset): Deleted.

  • disassembler/ARM64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/CapstoneDisassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/Disassembler.cpp:

(JSC::disassemble):
(JSC::disassembleAsynchronously):
(JSC::ensureThunkLabelMap):
(JSC::registerThunkLabel):
(JSC::labelForThunk):

  • disassembler/Disassembler.h:

(JSC::tryToDisassemble):

  • disassembler/RISCV64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/X86Disassembler.cpp:

(JSC::tryToDisassemble):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/JIT.cpp:

(JSC::JIT::consistencyCheckGenerator):

  • jit/JITCall.cpp:

(JSC::JIT::returnFromBaselineGenerator):

  • jit/JITDisassembler.cpp:

(JSC::JITDisassembler::dump):
(JSC::JITDisassembler::dumpDisassembly):

  • jit/JITDisassembler.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_with_this_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::slow_op_resolve_scopeGenerator):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):

  • jit/SlowPathCall.cpp:

(JSC::JITSlowPathCall::generateThunk):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerator.h:
  • jit/ThunkGenerators.cpp:

(JSC::handleExceptionGenerator):
(JSC::handleExceptionWithCallFrameRollbackGenerator):
(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
(JSC::checkExceptionGenerator):
(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::stringGetByValGenerator):
(JSC::boundFunctionCallGenerator):
(JSC::remoteFunctionCallGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::generateThunkWithJumpToPrologue):
(JSC::LLInt::generateThunkWithJumpToLLIntReturnPoint):
(JSC::LLInt::createJSGateThunk):
(JSC::LLInt::createWasmGateThunk):
(JSC::LLInt::createTailCallGate):
(JSC::LLInt::tagGateThunk):
(JSC::LLInt::untagGateThunk):

  • yarr/YarrDisassembler.cpp:

(JSC::Yarr::YarrDisassembler::dump):
(JSC::Yarr::YarrDisassembler::dumpDisassembly):

  • yarr/YarrDisassembler.h:
3:20 PM Changeset in webkit [294179] by Wenson Hsieh
  • 9 edits in trunk

ImageAnalysisQueue should reanalyze image elements whose image sources have changed
https://bugs.webkit.org/show_bug.cgi?id=240371
rdar://93175651

Reviewed by Tim Horton.

Currently, ImageAnalysisQueue maintains the set of all image elements that have been queued for analysis, and
avoids re-queueing such image elements. However, on some websites, this leads to stale analysis results being
shown in certain image elements that have changed image sources (and subsequently finished loaded the new image).
To address this, we introduce a mechanism to remember the latest image URL for image elements that have been
analyzed using the analysis queue; we only avoid reanalyzing these same image elements if the source URL is the
same as the source URL when we last analyzed it.

This allows us (for instance) to handle the scenario where a single image element periodically cycles between
different src attribute values.

Test: ImageAnalysisTests.AnalyzeImageAfterChangingSource

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):

Also avoid trying to prematurely analyze images whose cached images only contain the null image. This caused
empty results to sometimes be incorrectly cached for some image elements, if analysis is triggered too early.

(WebCore::ImageAnalysisQueue::resumeProcessing):

  • page/ImageAnalysisQueue.h:

To aid with debugging similar issues in the future, plumb the image URL through to
requestImageAnalysisWithIdentifier, which (if an engineering default is specified) will additionally reveal
the URL in system logs.

  • Platform/cocoa/ImageAnalysisUtilities.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requestTextRecognition):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):

Add an API test to exercise the scenario by verifying that the same image element is reanalyzed after setting
the src to a different image URL.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::TEST):

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

3:11 PM Changeset in webkit [294178] by Lauro Moura
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add Breakpad to SDK
https://bugs.webkit.org/show_bug.cgi?id=240367

Reviewed by Philippe Normand.

To be used to generate minidumps of crashes.

Based on original bst file by Adrian Perez de Castro.

  • elements/sdk-platform.bst:
  • elements/sdk/breakpad.bst: Added.
3:02 PM Changeset in webkit [294177] by Adrian Perez de Castro
  • 5 edits in trunk/Source

Non-unified build broken in debug mode
https://bugs.webkit.org/show_bug.cgi?id=240378

Unreviewed non-unified build fixes.

  • heap/StructureAlignedMemoryAllocator.cpp: Include <sys/mman.h> if needed.

Non-unified build broken in debug mode
https://bugs.webkit.org/show_bug.cgi?id=240378

Unreviewed non-unified build fixes.

  • contentextensions/ContentExtensionCompiler.cpp: Add missing wtf/CrossThreadCopier.h header.
  • workers/service/ServiceWorkerClients.cpp: Add missing Logging.h header.

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

2:55 PM Changeset in webkit [294176] by Ross Kirsling
  • 6 edits in trunk

TemporalPlainTime::toTemporalTimeRecord shouldn't require all properties to be provided
https://bugs.webkit.org/show_bug.cgi?id=240394

Reviewed by Yusuke Suzuki and Darin Adler.

Following the spec correction of https://github.com/tc39/proposal-temporal/pull/1862, this patch
fixes our Temporal.PlainTime implementation to require that *one* property be provided, not *all* of them.

  • stress/temporal-plaintime.js:
  • test262/expectations.yaml: Mark 32 test cases as passing.
  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::fromDurationLike):

  • runtime/TemporalPlainTime.cpp:

(JSC::toTemporalTimeRecord):

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

2:43 PM Changeset in webkit [294175] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[iOS] Multiple visible find highlights when searching for text after beginning a "find from selection"
https://bugs.webkit.org/show_bug.cgi?id=240393
rdar://91441895

Reviewed by Wenson Hsieh.

Some WebKit clients use SPI on WKWebView to support "find from selection"
functionality (the Cmd+E shortcut). However, to support general
find functionality, they use new find API that uses a different codepath
to draw highlights. Mixing use of the API and SPI can currently result
in two highlights showing up.

To fix, ensure SPI highlights are removed once the API is being used.
The long term solution is for clients to adopt API for the
"find from selection" functionality, but in the short term the SPI
should remain supported.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::clearAllDecoratedFoundText):

2:40 PM Changeset in webkit [294174] by achristensen@apple.com
  • 2 edits in trunk/Tools

Disable MediaLoading.CaptivePortalHLS API test
https://bugs.webkit.org/show_bug.cgi?id=239859

It is always timing out.
Disable it to speed up EWS.

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

2:39 PM Changeset in webkit [294173] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14

Tag WebKit-7614.1.14.

2:36 PM Changeset in webkit [294172] by Chris Dumez
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm

Regression(r293803) ProcessSwap.MediaTypeAfterSwap and ProcessSwap.PageZoomLevelAfterSwap are failing
https://bugs.webkit.org/show_bug.cgi?id=240399

Reviewed by Alex Christensen.

Since r293803, WebKit's default WebContent process crash handler only reloads WebViews that are
visible. However, those 2 API tests were relying on the old behavior. To address the issue, use
a custom process termination handler which reloads the view.

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

(-[PSONNavigationDelegate webViewWebContentProcessDidTerminate:]):

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

2:12 PM Changeset in webkit [294171] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Use None for architecture when dump-class-layout does not have -a option
https://bugs.webkit.org/show_bug.cgi?id=240395

Reviewed by Saam Barati and Simon Fraser.

We can pass None to architecture, then SBDebugger::CreateTargetWithFileAndArch
will call CreateTarget with nullptr architecture string. Then, TargetList constructs
ArchSpec based on currently selected platform automatically and it covers most of cases.
I tried it, and it worked with watchOS, macOS, iOS so far.
So, we should just pass None to CreateTargetWithFileAndArch by default.

  • Tools/lldb/lldb_dump_class_layout.py:

(LLDBDebuggerInstance.init):
(LLDBDebuggerInstance.del):
(LLDBDebuggerInstance._get_first_file_architecture): Deleted.

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

12:38 PM Changeset in webkit [294170] by ntim@apple.com
  • 14 edits
    1 delete in trunk

[css-ui] Remove caret/progress-bar-value/listitem values from appearance property
https://bugs.webkit.org/show_bug.cgi?id=240390

Reviewed by Aditya Keerthi.

LayoutTests/imported/w3c:

They're basically unimplemented.

  • web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Source/WebCore:

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

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • platform/ThemeTypes.h:

LayoutTests:

They're basically unimplemented.

Remove WPE expectations which were very out-of-date.

  • fast/css/appearance-with-pseudo-elements-expected.html:
  • fast/css/appearance-with-pseudo-elements-in-quirks-mode-expected.html:
  • fast/css/appearance-with-pseudo-elements-in-quirks-mode.html:
  • fast/css/appearance-with-pseudo-elements.html:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt: Removed.
12:16 PM Changeset in webkit [294169] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

IPC cannot encode, decode Ref<>, causing duplicate code
https://bugs.webkit.org/show_bug.cgi?id=240160

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-13
Reviewed by Antti Koivisto.

Consider reference counted type T:
Encoding is of signature encode(const T&)
Decoding is of signature std::optional<Ref<T>> decode()
This is usable for both RefPtr and Ref use-cases.

Add Ref<T> encoder that is polymorphic to T.
This way clients do not need to write encoders for
Ref<T>, RefPtr<T>. They just need one encoder, for T.

When clients do not need to write RefPtr<T>, they make less
bugs. These will be corrected in future patches.

Having Ref<T> encoders allows clients to use Vector<Ref<T>> encoding
via Vector<U> encoder, and they would not need to duplicate that
logic, making less bugs. These will be corrected in future patches.

Remove most IPC::ArgumentCoder<Ref<..>> in favor of IPC::ArgumentCoder<..>.
In the cases where removal was done, remove also redundant
IPC::ArgumentCoder<RefPtr<..>>.

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<RefPtr<T>>::decode):
(IPC::ArgumentCoder<Ref<T>>::encode):
(IPC::ArgumentCoder<Ref<T>>::decode):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::Font>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::Font>::decodePlatformData):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::Font>::encode):
(IPC::ArgumentCoder<Font>::decode):
(IPC::ArgumentCoder<SystemImage>::encode):
(IPC::ArgumentCoder<SystemImage>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

  • Shared/win/WebCoreArgumentCodersWin.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

11:25 AM Changeset in webkit [294168] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebCore

Cherry-pick r294135. rdar://problem/93201070

[WebAuthn] Remove document focus requirement for conditional mediation requests
https://bugs.webkit.org/show_bug.cgi?id=240361
rdar://problem/93201070

Reviewed by Brent Fulgham.

This is necessary so conditional mediation requests work when you open a page in
a new tab. Conditional mediation requests do not support security keys and the
request will be aborted if conditional mediation is not available.

  • Modules/credentialmanagement/CredentialsContainer.cpp: (WebCore::CredentialsContainer::get):

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

11:22 AM Changeset in webkit [294167] by Andres Gonzalez
  • 9 edits in trunk/Source/WebCore

Move handling of active descendant changed notifications out of AccessibilityRenderObject.
https://bugs.webkit.org/show_bug.cgi?id=240357
<rdar://problem/93196901>

Reviewed by Chris Fleizach.

No change in functionality.

AXObjectCache::handleActiveDescendantChanged now handles this
notifications as appropriate. This makes the code cleaner and more
straightforward. More importantly this change is necessary for the
refactoring of relationships implementation.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleActiveDescendantChanged):
(WebCore::AXObjectCache::handleAttributeChange):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::handleActiveDescendantChanged):

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

(WebCore::Accessibility::findRelatedObjectInAncestry):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::activeDescendant const):
(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant const): Deleted.
(WebCore::AccessibilityRenderObject::targetElementForActiveDescendant const): Deleted.
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged): Deleted.

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

(WebCore::AXIsolatedObject::handleActiveDescendantChanged): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:06 AM Changeset in webkit [294166] by commit-queue@webkit.org
  • 26 edits
    8 adds in trunk

Web Inspector: [Meta] Implement Timelines Film Strip
https://bugs.webkit.org/show_bug.cgi?id=239350

Patch by Anjali Kumar <anjalik_22@apple.com> on 2022-05-13
Reviewed by Devin Rousso and Patrick Angle.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Source/WebCore:

Test: inspector/timeline/timeline-event-screenshots.html

  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createScreenshotData):

  • inspector/TimelineRecordFactory.h:
  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::didComposite):
(WebCore::InspectorTimelineAgent::willPaint):
(WebCore::InspectorTimelineAgent::didPaint):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::captureScreenshot):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::createRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):

  • inspector/agents/InspectorTimelineAgent.h:

Source/WebInspectorUI:

Add the ability to see screenshots taken of the viewport within the Timelines tab. The purpose of the
screenshots is to provide more context to the other data presented within the Timelines tab, so that
developers can improve the efficiency of their page loading times. They can see what is painting on their
pages in addition to when the paints are occuring.

The screenshots presented are taken immediately after each composite. They are designed to be layered
on top of one another as opposed to being presented in a non-overlapping fashion in order to provide developers
with the exact screenshot that occured during a particular point in time on the timeline. This allows developers
to zoom in and pinpoint the exact moment the page looked like that particularly rendered screenshot.

When a screenshot is clicked on, the details section opens up to an enlarged view of that particular image.
Developers can utilize this to view each screenshot in greater detail.

This feature is named "Screenshots" (one word), as in the UI we currently have existing strings for "Capture
Screenshot" and "Could not capture screenshot".

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):

  • UserInterface/Images/IdentifierIcons.svg:
  • UserInterface/Main.html:
  • UserInterface/Models/Instrument.js:

(WI.Instrument.createForTimelineType):

  • UserInterface/Models/ScreenshotsInstrument.js: Added.

(WI.ScreenshotsInstrument):
(WI.ScreenshotsInstrument.supported):
(WI.ScreenshotsInstrument.prototype.get timelineRecordType):

  • UserInterface/Models/ScreenshotsTimelineRecord.js: Added.

(WI.ScreenshotsTimelineRecord):
(WI.ScreenshotsTimelineRecord.async fromJSON):
(WI.ScreenshotsTimelineRecord.prototype.toJSON):
(WI.ScreenshotsTimelineRecord.prototype.get imageData):
(WI.ScreenshotsTimelineRecord.prototype.get width):
(WI.ScreenshotsTimelineRecord.prototype.get height):

  • UserInterface/Models/TimelineRecord.js:

(WI.TimelineRecord.async fromJSON):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.addRecord):

  • UserInterface/Test.html:
  • UserInterface/Views/ContentView.js:

(WI.ContentView.createFromRepresentedObject):

  • UserInterface/Views/ScreenshotsTimelineOverviewGraph.css: Added.

(body .sidebar > .panel.navigation.timeline > .timelines-content li.item.screenshots,):
(.timeline-overview-graph.screenshots > img):
(.timeline-overview-graph.screenshots > img.selected):

  • UserInterface/Views/ScreenshotsTimelineOverviewGraph.js: Added.

(WI.ScreenshotsTimelineOverviewGraph):
(WI.ScreenshotsTimelineOverviewGraph.prototype.get height):
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):
(WI.ScreenshotsTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.ScreenshotsTimelineOverviewGraph.prototype._visibleRecords):

  • UserInterface/Views/ScreenshotsTimelineView.css: Added.

(.timeline-view.screenshots):
(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img.selected):

  • UserInterface/Views/ScreenshotsTimelineView.js: Added.

(WI.ScreenshotsTimelineView):
(WI.ScreenshotsTimelineView.prototype.reset):
(WI.ScreenshotsTimelineView.prototype.clear):
(WI.ScreenshotsTimelineView.prototype.get showsFilterBar):
(WI.ScreenshotsTimelineView.prototype.layout):
(WI.ScreenshotsTimelineView.prototype.selectRecord):
(WI.ScreenshotsTimelineView.prototype._selectTimelineRecord):
(WI.ScreenshotsTimelineView.prototype._visibleRecords):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/TimelineIcons.css:

(.screenshots-icon .icon):
(@media (prefers-color-scheme: dark) .screenshots-icon .icon):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WI.TimelineOverviewGraph.createForTimeline):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.displayNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForTimelineType):
(WI.TimelineTabContentView.genericClassNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForRecord):
(WI.TimelineTabContentView.displayNameForRecord):

LayoutTests:

  • inspector/timeline/resources/timeline-event-utilities.js:

(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
(TestPage.registerInitializer):

  • inspector/timeline/timeline-event-screenshots-expected.txt: Added.
  • inspector/timeline/timeline-event-screenshots.html: Added.
  • inspector/timeline/timeline-recording-expected.txt:
11:04 AM Changeset in webkit [294165] by commit-queue@webkit.org
  • 2 edits in trunk

Add self to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240389

Patch by Geza Lore <Geza Lore> on 2022-05-13
Reviewed by Jonathan Bedard.

  • metadata/contributors.json:
10:58 AM Changeset in webkit [294164] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wstringop-overflow warning in DocumentWriter.cpp
https://bugs.webkit.org/show_bug.cgi?id=239340

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WebCore/loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::end):

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

10:25 AM Changeset in webkit [294163] by Ziran Sun
  • 4 edits in trunk

input.showPicker() should throw when input is readonly/disabled
https://bugs.webkit.org/show_bug.cgi?id=240302

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html: Added.

Source/WebCore:

When input is readonly or disabled, input.showPicker() should throw InvalidStateError.

Test: imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::showPicker):

10:21 AM Changeset in webkit [294162] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wreturn-type warning in PathOperation.cpp
https://bugs.webkit.org/show_bug.cgi?id=240383

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WebCore/rendering/PathOperation.cpp:

(WebCore::RayPathOperation::lengthForPath const):

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

10:05 AM Changeset in webkit [294161] by Jonathan Bedard
  • 2 edits in trunk/Websites/bugs.webkit.org

[PrettyPatch] Support commit messages
https://bugs.webkit.org/show_bug.cgi?id=240386
<rdar://problem/93248835>

Rubber-stamped by Aakash Jain.

  • Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:

(PrettyPatch.message_header): Match a commit message header.
(PrettyPatch.message_footer): Match a commit message footer.
(PrettyPatch.MESSAGE_HEADER_FORMATS): List of commit message headers.
(PrettyPatch.BUG_URL_RE): Regex to match bug urls in subject.
(PrettyPatch.MESSAGE_FOOTER_FORMATS): List of commit messagae footers.
(PrettyPatch.parse): Treat commit messages a new file named 'COMMIT_MESSAGE'.

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

9:31 AM Changeset in webkit [294160] by timothy_horton@apple.com
  • 17 edits
    2 adds in trunk/Source

Add UI-side layers for optionally indicating interaction regions
https://bugs.webkit.org/show_bug.cgi?id=240372
<rdar://problem/87170289>

Reviewed by Dean Jackson.

Source/WebCore:

  • page/DebugPageOverlays.cpp:

(WebCore::pathsForRegion):
Move inline rect inflation into InteractionRegion so that all clients get it.

  • page/Page.cpp:

(WebCore::Page::shouldBuildInteractionRegions const):

  • page/Page.h:
  • page/Frame.cpp:

(WebCore::Frame::invalidateContentEventRegionsIfNeeded):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::maintainsEventRegion const):
(WebCore::RenderLayerBacking::updateEventRegion):
If the ENABLE() and setting are both enabled, update event regions
due to possible interaction region changes. We could make this more
conservative later, but chances are high that most layers include
interaction regions.

For now, compute interaction regions only for the root layer.
In a future patch, we will adopt the normal fake paint mechanism
and maintain them on the layer that owns them.

  • page/InteractionRegion.cpp:

(WebCore::regionForElement):
Move inline rect inflation into InteractionRegion so that all clients get it.
Limit interaction rects to half of the viewport. Ignore regions that are larger.

  • page/InteractionRegion.h:

(WebCore::operator==): Added.
(WebCore::InteractionRegion::encode const):
(WebCore::InteractionRegion::decode):
Remove the isInline bit, since we only used it for rect inflation.

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::operator== const):
(WebCore::EventRegion::translate):
(WebCore::EventRegion::uniteInteractionRegions):
(WebCore::EventRegion::computeInteractionRegions):

  • rendering/EventRegion.h:

(WebCore::EventRegion::interactionRegions const):
(WebCore::EventRegion::encode const):
(WebCore::EventRegion::decode):
Store interaction regions on EventRegion.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added.

(configureLayerForInteractionRegion):
(WebKit::interactionRegionForLayer):
(WebKit::isInteractionRegionLayer):
(WebKit::setInteractionRegion):
Box WebCore::InteractionRegion in a Objective-C object and store it on the layer.
Use this as a key to indicate that a given layer is an interaction region.

(WebKit::appendInteractionRegionLayersForLayer):
Make sure that interaction region layers are always at the end of the layer's sublayers array.

(WebKit::updateLayersForInteractionRegions):
Add new layers for interaction regions.
Maintain the same layer for regions that cover the same area.
Add a green wash if the default WKInteractionRegionDebugFill is set.

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add a preference to toggle interaction region layers.

9:05 AM Changeset in webkit [294159] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.14

9:02 AM Changeset in webkit [294158] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r294113.
https://bugs.webkit.org/show_bug.cgi?id=240381

This bug needs to be addressed using a different approach

Reverted changeset:

"Mail compose: right clicking an image attachment selects it"
https://bugs.webkit.org/show_bug.cgi?id=240315
https://commits.webkit.org/r294113

7:54 AM Changeset in webkit [294157] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

False positive warning when building RefCounter test with GCC 12
https://bugs.webkit.org/show_bug.cgi?id=239338

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WTF/wtf/RefCounter.h:

(WTF::RefCounter<T>::Count::deref):

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

7:38 AM Changeset in webkit [294156] by ntim@apple.com
  • 3 edits
    1 copy
    11 deletes in trunk/LayoutTests

Clean up some html/semantics/forms/ test expectations
https://bugs.webkit.org/show_bug.cgi?id=240344

Unreviewed test gardening.

Combine multiple files to reduce the number of platform specific expectations.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt.
  • web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/win/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
4:41 AM Changeset in webkit [294155] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Remove leftover for WINDOWS support in GraphicsContextGLGBM
https://bugs.webkit.org/show_bug.cgi?id=240314

GBM is a Linux technology we would need another sharing buffers
technology to add support in Windows. This is leftover from the
code copied originally.

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-05-13
Reviewed by Žan Doberšek.

No new tests, we are just removing some compilation option.

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLGBM::platformInitializeContext):

4:30 AM Changeset in webkit [294154] by Lauro Moura
  • 5 edits in trunk/Source

Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=240369

Source/JavaScriptCore:

  • runtime/DateConversion.cpp:

Source/WebCore:

  • Modules/highlight/HighlightRegister.h:
  • rendering/TextPainter.h:
2:25 AM Changeset in webkit [294153] by Ziran Sun
  • 60 edits
    1 copy
    1 move
    23 adds
    10 deletes in trunk/LayoutTests

Resync web-platform-tests/html/semantics/forms tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=240301

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Upstream commit: https://github.com/web-platform-tests/wpt/commit/23e7602b7784c758397308183f414bb99e0c622b

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/forms/beforeinput.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/beforeinput.tentative.html: Added.
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing.html:
  • web-platform-tests/html/semantics/forms/constraints/support/validator.js:

(validator.run_test):
(validator.test_support_type): Deleted.

  • web-platform-tests/html/semantics/forms/form-submission-0/enctypes-helper.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl.html:
  • web-platform-tests/html/semantics/forms/form-submission-0/multipart-formdata.window.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/getactionurl-iframe.html: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window.js:
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps.html:
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local.html:
  • web-platform-tests/html/semantics/forms/the-input-element/input-untrusted-key-event-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-untrusted-key-event.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-whitespace-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-whitespace.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/invalid-datalist-options-crash.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/large-step-crash.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html:
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-user-gesture-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-user-gesture.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker.html.
  • web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html:
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-ask-for-reset.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-form-submission.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-labels.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-many-options.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-many-options.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed-ref.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed.tentative-expected.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-not-displayed.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-focusable.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position-with-zoom.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-required-attribute.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-value-selectedOption.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/support/cat.png: Removed.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/forms/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/notifications/idlharness.https.any-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • tests-options.json:
2:14 AM Changeset in webkit [294152] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebCore

[GStreamer] Properly handle DMABuf-containing GstBuffers with missing DMABuf GstCaps feature
https://bugs.webkit.org/show_bug.cgi?id=240374

Reviewed by Chris Lord.

To detect DMABuf-backed GstBuffers, for now we relied on the appropriate
feature being present on the related GstCaps object. This doesn't cover
every decoder which for one reason or another isn't specifying their
caps like this.

For those cases, we have to do a weaker but sufficient check on the
base GstMemory object contained in the GstBuffer, namely test that it
comes from a DMABuf-capable allocator, through using the
gst_is_dmabuf_memory() function. When true, we can proceed on handling
the buffer and its contained DMABuf object.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

2:07 AM Changeset in webkit [294151] by zan@falconsigh.net
  • 4 edits
    1 add in trunk/Source/WebCore

[Linux][GBM] Provide utility function for construction of eglCreateImage attributes data
https://bugs.webkit.org/show_bug.cgi?id=240373

Reviewed by Chris Lord.

Provide DMABufEGLUtilities::constructEGLCreateImageAttributes() helper
function that unifies the construction of the EGLImage creation
attributes. For a given DMABufObject and plane index, a Vector of EGLint
attributes for a single-plane EGLImage object is returned, optionally
including the modifier value if requested (when the EGL implementation,
through the necessary extensions, supports modifiers).

The new function replaces duplicated code in GraphicsContextGLGBM and
TextureMapperPlatformLayerProxyDMABuf.

  • platform/TextureMapper.cmake:
  • platform/graphics/gbm/DMABufEGLUtilities.h: Added.

(WebCore::DMABufEGLUtilities::constructEGLCreateImageAttributes):

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

1:36 AM Changeset in webkit [294150] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Sandbox access to pipewire socket
https://bugs.webkit.org/show_bug.cgi?id=240338

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

Starting from version 0.5 of Bubblewrap bind mounts behavior slightly changed. Without this
patch the pipewire socket wouldn't be available from the default XDG runtime directory.

  • flatpak/webkit-bwrap:

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

1:31 AM Changeset in webkit [294149] by Diego Pino Garcia
  • 1 edit
    5 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening, follow-up to r294148

Add removed baselines in corresponding directory.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt: Added.
1:22 AM Changeset in webkit [294148] by Diego Pino Garcia
  • 1 edit
    3 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening, follow-up to r294142

Remove wrongly generated baselines. Parent directoy has the same name
as baseline and that ends up in an Exception error while running the
layout-tests.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt/location_hash-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt/getresponseheader.any-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt/getresponseheader.any.worker-expected.txt: Removed.
1:13 AM Changeset in webkit [294147] by youenn@apple.com
  • 14 edits in trunk/Source/WebCore

Remove WorkerLoaderProxy::postTaskForModeToWorkerOrWorkletGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=240299

Reviewed by Alex Christensen.

WorkerLoaderProxy::postTaskForModeToWorkerOrWorkletGlobalScope is no longer needed given we have
ScriptExecutionContext infrastructure that can be used instead.

Covered by existing tests.

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope): Deleted.

  • Modules/webaudio/AudioWorkletMessagingProxy.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::postTaskTo):
(WebCore::ScriptExecutionContext::postTaskForModeToWorkerOrWorklet):

  • dom/ScriptExecutionContext.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::m_contextIdentifier):
(WebCore::WorkerThreadableLoader::MainThreadBridge::notifyIsDone):
(WebCore::WorkerThreadableLoader::MainThreadBridge::redirectReceived):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishTiming):

  • loader/WorkerThreadableLoader.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/shared/context/SharedWorkerThreadProxy.h:
12:54 AM Changeset in webkit [294146] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][WPE] Unreviewed test gardening, move test image failures to GLIB

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:29 AM Changeset in webkit [294145] by Simon Fraser
  • 14 edits in trunk/Source

Simplify the usage of DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=240363

Reviewed by Myles Maxfield.

Move the DeconstructDrawGlyphs switch from inside DrawGlyphsRecorder to
DisplayList::Recorder, so that DrawGlyphsRecorder is only ever used when deconstructing
glyphs.

Also, ensure that the only time that glyph deconstruction is enabled is when
recording display lists via RemoteDisplayListRecorderProxy. There's no reason for
paintAttachmentText() to need glyph deconstruction.
Source/WebCore:

This is a small perf improvement on the MotionMark Design subtest.

  • platform/graphics/DrawGlyphsRecorder.h:

(WebCore::DrawGlyphsRecorder::deconstructDrawGlyphs const): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
(WebCore::DrawGlyphsRecorder::drawNativeText):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawGlyphs):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::RecorderImpl):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • rendering/RenderThemeIOS.mm:

(WebCore::paintAttachmentText):

Source/WebKit:

This is a small perf improvement on the MotionMark Design subtest.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
(WebKit::m_renderingBackend):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
12:26 AM Changeset in webkit [294144] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

Remove unneeded check in HTMLSlotElement::assignedNodes()
https://bugs.webkit.org/show_bug.cgi?id=240340

Reviewed by Ryosuke Niwa.

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::assignedNodes const):

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

12:19 AM Changeset in webkit [294143] by Diego Pino Garcia
  • 31 edits
    3 moves
    1 add
    3 deletes in trunk/LayoutTests

[WPE] Unreviewed test gardening, update baselines

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t0805-c5520-brdr-b-01-e-expected.txt: Renamed from LayoutTests/platform/gtk/css2.1/t0805-c5520-brdr-b-01-e-expected.txt.
  • platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt.
  • platform/glib/fast/text/international/hindi-spacing-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/international/hindi-spacing-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/wpe/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/wpe/css2.1/t0805-c5518-brdr-t-01-e-expected.txt:
  • platform/wpe/css2.1/t0805-c5520-brdr-b-01-e-expected.txt: Removed.
  • platform/wpe/css3/flexbox/button-expected.txt:
  • platform/wpe/fast/block/float/float-avoidance-expected.txt:
  • platform/wpe/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/wpe/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/wpe/fast/css/continuationCrash-expected.txt:
  • platform/wpe/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/wpe/fast/css/rtl-ordering-expected.txt:
  • platform/wpe/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/wpe/fast/html/details-replace-summary-child-expected.txt:
  • platform/wpe/fast/html/details-replace-text-expected.txt:
  • platform/wpe/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/wpe/fast/overflow/scrollRevealButton-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/width100percent-button-expected.txt:
  • platform/wpe/fast/table/003-expected.txt:
  • platform/wpe/fast/table/append-cells2-expected.txt:
  • platform/wpe/fast/table/remove-td-display-none-expected.txt:
  • platform/wpe/fast/text/emoji-expected.txt:
  • platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/hindi-spacing-expected.txt: Removed.
  • platform/wpe/fast/text/orientation-sideways-expected.txt:
Note: See TracTimeline for information about the timeline view.