[webkit-changes] [WebKit/WebKit] 80225a: Add limits to the number of ImageBuffers that the ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 80225aaf7451c18e20832dec77948e514d39d368 https://github.com/WebKit/WebKit/commit/80225aaf7451c18e20832dec77948e514d39d368 Author: Cameron McCormack Date: 2024-07-26 (Fri, 26 Jul 2024) Changed paths: M LayoutTests/TestExpectations A LayoutTests/fast/canvas/image-buffer-resource-limits-expected.txt A LayoutTests/fast/canvas/image-buffer-resource-limits.html A LayoutTests/platform/glib/fast/canvas/image-buffer-resource-limits-expected.txt M LayoutTests/platform/mac-wk1/TestExpectations M LayoutTests/platform/win/TestExpectations M Source/WebCore/Headers.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/page/ChromeClient.h A Source/WebCore/platform/graphics/ImageBufferResourceLimits.h M Source/WebCore/testing/Internals.cpp M Source/WebCore/testing/Internals.h M Source/WebCore/testing/Internals.idl M Source/WebKit/GPUProcess/RemoteSharedResourceCache.cpp M Source/WebKit/GPUProcess/RemoteSharedResourceCache.h M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h Log Message: --- Add limits to the number of ImageBuffers that the GPU process can create https://bugs.webkit.org/show_bug.cgi?id=273326 rdar://95930955 Reviewed by Matt Woodrow. On Cocoa ports, ImageBuffers created in the GPU process consume both global and process-wide resources. Accelerated ImageBuffers consume IOSurface handles (which the kernel has a limited number of, and which also have a per process limit) and Metal objects (which are also limited per process). Unaccelerated ImageBuffers consume Mach port handles for their ShareableBitmap handles (which are per process). Prevent leaks (both undiagnosed and from poorly behaving Web content creating 2D canvases) from exhausting these resources by placing limits on the number of ImageBuffers the GPU process can create. These limits are: * 200,000 ImageBuffers for the GPU process (a number a bit lower than the 256K Mach port limit) * 50,000 canvas ImageBuffers for each Web Content process (to prevent one Web Content process from using the entire global limit) * 10,000 accelerated ImageBuffers for the GPU process (a number a bit lower than the 16K per-process IOSurface limit) * 5,000 accelerated canvas ImageBuffers for each Web Content process (to prevent one Web Content process from using the entire global limit) * LayoutTests/fast/canvas/image-buffer-resource-limits-expected.txt: Added. * LayoutTests/fast/canvas/image-buffer-resource-limits.html: Added. * LayoutTests/platform/mac-wk1/TestExpectations: * Source/WebCore/Headers.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::getEffectiveRenderingModeForTesting): * Source/WebCore/page/ChromeClient.h: (WebCore::ChromeClient::getImageBufferResourceLimitsForTesting const): * Source/WebCore/platform/graphics/ImageBufferResourceLimits.h: Added. * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::getEffectiveRenderingModeOfNewlyCreatedAcceleratedImageBuffer): (WebCore::Internals::getImageBufferResourceLimits): * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: * Source/WebKit/GPUProcess/RemoteSharedResourceCache.cpp: (WebKit::RemoteSharedResourceCache::didCreateImageBuffer): (WebKit::RemoteSharedResourceCache::didReleaseImageBuffer): (WebKit::RemoteSharedResourceCache::reachedAcceleratedImageBufferLimit const): (WebKit::RemoteSharedResourceCache::reachedImageBufferForCanvasLimit const): (WebKit::RemoteSharedResourceCache::getResourceLimitsForTesting const): * Source/WebKit/GPUProcess/RemoteSharedResourceCache.h: * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp: (WebKit::RemoteImageBuffer::RemoteImageBuffer): (WebKit::RemoteImageBuffer::~RemoteImageBuffer): (WebKit::RemoteImageBuffer::stopListeningForIPC): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::adjustImageBufferRenderingMode): (WebKit::RemoteRenderingBackend::allocateImageBuffer): (WebKit::RemoteRenderingBackend::getImageBufferResourceLimitsForTesting): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h: * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in: * Source
[webkit-changes] [WebKit/WebKit] fbdfff: Put 'd' property support behind a feature flag
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fbdfff8e6dbaa200426e5cedfb3899818cffec40 https://github.com/WebKit/WebKit/commit/fbdfff8e6dbaa200426e5cedfb3899818cffec40 Author: Cameron McCormack Date: 2024-05-30 (Thu, 30 May 2024) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebCore/css/CSSProperties.json Log Message: --- Put 'd' property support behind a feature flag https://bugs.webkit.org/show_bug.cgi?id=274935 rdar://129028514 Reviewed by Matthieu Dubet. The feature is not yet complete, but we are currently parsing the property. Move it behind a disabled feature flag for now. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/css/CSSProperties.json: Canonical link: https://commits.webkit.org/279563@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2caf21: Add a ClosedArc path segment type
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2caf219a57a77bfec2cdbbb8c987f186356cfc02 https://github.com/WebKit/WebKit/commit/2caf219a57a77bfec2cdbbb8c987f186356cfc02 Author: Cameron McCormack Date: 2024-01-29 (Mon, 29 Jan 2024) Changed paths: M Source/WebCore/platform/graphics/Path.cpp M Source/WebCore/platform/graphics/Path.h M Source/WebCore/platform/graphics/PathImpl.h M Source/WebCore/platform/graphics/PathSegment.h M Source/WebCore/platform/graphics/PathSegmentData.cpp M Source/WebCore/platform/graphics/PathSegmentData.h M Source/WebCore/platform/graphics/PathStream.cpp M Source/WebCore/platform/graphics/PathStream.h M Source/WebCore/platform/graphics/cairo/PathCairo.cpp M Source/WebCore/platform/graphics/cairo/PathCairo.h M Source/WebCore/platform/graphics/cg/PathCG.cpp M Source/WebCore/platform/graphics/cg/PathCG.h M Source/WebCore/platform/graphics/displaylists/DisplayListItem.h M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h M Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Shared/DisplayListArgumentCoders.serialization.in M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h Log Message: --- Add a ClosedArc path segment type https://bugs.webkit.org/show_bug.cgi?id=268236 rdar://120928268 Reviewed by Simon Fraser. Store paths consisting of a arc() / closePath() pair as a single path segment, and add a single display list item to represent filling or stroking such paths. * Source/WebCore/platform/graphics/Path.cpp: (WebCore::Path::asSingleArc const): (WebCore::Path::closeSubpath): (WebCore::Path::singleClosedArc const): (WebCore::Path::isClosed const): * Source/WebCore/platform/graphics/Path.h: * Source/WebCore/platform/graphics/PathImpl.h: (WebCore::PathImpl::singleClosedArc const): * Source/WebCore/platform/graphics/PathSegment.h: (WebCore::PathSegment::closesSubpath const): (WebCore::PathSegment::isCloseSubPath const): Deleted. * Source/WebCore/platform/graphics/PathSegmentData.cpp: (WebCore::operator<<): (WebCore::PathClosedArc::calculateEndPoint const): (WebCore::PathClosedArc::tryGetEndPointWithoutContext const): (WebCore::PathClosedArc::extendFastBoundingRect const): (WebCore::PathClosedArc::extendBoundingRect const): * Source/WebCore/platform/graphics/PathSegmentData.h: * Source/WebCore/platform/graphics/PathStream.cpp: (WebCore::PathStream::add): (WebCore::PathStream::singleClosedArc const): (WebCore::PathStream::isClosed const): * Source/WebCore/platform/graphics/PathStream.h: * Source/WebCore/platform/graphics/cg/PathCG.cpp: (WebCore::PathCG::add): (WebCore::addToCGContextPath): * Source/WebCore/platform/graphics/cg/PathCG.h: * Source/WebCore/platform/graphics/displaylists/DisplayListItem.h: * Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp: (WebCore::DisplayList::FillClosedArc::apply const): (WebCore::DisplayList::FillClosedArc::dump const): (WebCore::DisplayList::StrokeClosedArc::apply const): (WebCore::DisplayList::StrokeClosedArc::dump const): * Source/WebCore/platform/graphics/displaylists/DisplayListItems.h: (WebCore::DisplayList::FillClosedArc::FillClosedArc): (WebCore::DisplayList::FillClosedArc::closedArc const): (WebCore::DisplayList::FillClosedArc::path const): (WebCore::DisplayList::StrokeClosedArc::StrokeClosedArc): (WebCore::DisplayList::StrokeClosedArc::closedArc const): (WebCore::DisplayList::StrokeClosedArc::path const): * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::fillPath): (WebCore::DisplayList::Recorder::strokePath): * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h: * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp: (WebCore::DisplayList::RecorderImpl::recordFillClosedArc): (WebCore::DisplayList::RecorderImpl::recordStrokeClosedArc): * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h: * Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in: * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::fillClosedArc): (WebKit::RemoteDisplayListRe
[webkit-changes] [WebKit/WebKit] fe1e48: Invalidate GlyphDisplayListCache entries in more p...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fe1e4812260edf0b2117c1f78ddecd7c3d584f86 https://github.com/WebKit/WebKit/commit/fe1e4812260edf0b2117c1f78ddecd7c3d584f86 Author: Cameron McCormack Date: 2024-01-22 (Mon, 22 Jan 2024) Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayBox.h M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContent.cpp M Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContent.cpp M Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContent.h M Source/WebCore/rendering/GlyphDisplayListCache.cpp M Source/WebCore/rendering/GlyphDisplayListCache.h A Source/WebCore/rendering/GlyphDisplayListCacheRemoval.cpp A Source/WebCore/rendering/GlyphDisplayListCacheRemoval.h M Source/WebCore/rendering/LegacyInlineBox.h M Source/WebCore/rendering/LegacyInlineTextBox.cpp M Source/WebCore/rendering/LegacyInlineTextBox.h M Source/WebCore/rendering/ReferencedSVGResources.cpp M Source/WebCore/rendering/TextPainter.h Log Message: --- Invalidate GlyphDisplayListCache entries in more places https://bugs.webkit.org/show_bug.cgi?id=267843 rdar://119833765 Reviewed by Simon Fraser. With IFC, we currently remove entries from the GlyphDisplayListCache in the InlineDisplay::Content destructor, and in some of the LayoutIntegration::InlineContent mutation methods. But we are not removing enough entries, since we use InlineDisplay::Box pointers as the GlyphDisplayListCache::m_entriesForLayoutRun keys, but we store InlineDisplay::Box objects in vectors, so they can move around in memory. This can cause us to replay the wrong display list, if we're unlucky enough to place an InlineDisplay::Box at the same address as one of the stale pointers. (This is not a security issue, since we only use the InlineDisplay::Box pointer as an opaque key, and we always hold a strong reference to the display list stored in the map.) Change to remove entries from the GlyphDisplayListCache in the destructor of InlineDisplay::Box instead. Store a bit on InlineDisplay::Box and LegacyInlineTextBox to record whether the box is present in the GlyphDisplayListCache, and only attempt to remove it if the bit is set. This avoids the overhead of hashing the pointer and looking up the GlyphDisplayListCache map in the common case of the cache not being engaged (and, for InlineDisplay::Box, if it's not a text box). (This does add an explicit destructor to InlineDisplay::Box, but the class already has a non-trivial destructor due to the CheckedPtr it stores.) * Source/WebCore/Headers.cmake: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayBox.h: (WebCore::InlineDisplay::Box::setIsInGlyphDisplayListCache): (WebCore::InlineDisplay::Box::Box): (WebCore::InlineDisplay::Box::~Box): (WebCore::InlineDisplay::Box::removeFromGlyphDisplayListCache): * Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContent.cpp: (WebCore::InlineDisplay::Content::clear): (WebCore::InlineDisplay::Content::set): (WebCore::InlineDisplay::Content::remove): (WebCore::InlineDisplay::invalidateGlyphCache): Deleted. * Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContent.cpp: (WebCore::LayoutIntegration::InlineContent::~InlineContent): Deleted. * Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContent.h: * Source/WebCore/rendering/GlyphDisplayListCache.cpp: (WebCore::GlyphDisplayListCache::getDisplayList): (WebCore::GlyphDisplayListCache::get): * Source/WebCore/rendering/GlyphDisplayListCache.h: (WebCore::GlyphDisplayListCache::get): Deleted. * Source/WebCore/rendering/GlyphDisplayListCacheRemoval.cpp: Added. (WebCore::removeBoxFromGlyphDisplayListCache): * Source/WebCore/rendering/GlyphDisplayListCacheRemoval.h: Added. * Source/WebCore/rendering/LegacyInlineBox.h: (WebCore::LegacyInlineBox::isInGlyphDisplayListCache const): (WebCore::LegacyInlineBox::setIsInGlyphDisplayListCache): * Source/WebCore/rendering/LegacyInlineTextBox.cpp: (WebCore::LegacyInlineTextBox::~LegacyInlineTextBox): * Source/WebCore/rendering/LegacyInlineTextBox.h: (WebCore::LegacyInlineTextBox::removeFromGlyphDisplayListCache): * Source/WebCore/rendering/TextPainter.h: (WebCore::TextPainter::setGlyphDisplayListIfNeeded): (WebCore::TextPainter::removeGlyphDisplayList): Deleted. Canonical link: https://commits.webkit.org/273320@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 372410: Invalidate scope-breaking :has(:is(...)) selectors...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3724105055b3d155fee1da5604623c6200cf1f28 https://github.com/WebKit/WebKit/commit/3724105055b3d155fee1da5604623c6200cf1f28 Author: Cameron McCormack Date: 2023-09-15 (Fri, 15 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has-expected.txt M Source/WebCore/style/ChildChangeInvalidation.cpp M Source/WebCore/style/ChildChangeInvalidation.h M Source/WebCore/style/ClassChangeInvalidation.cpp M Source/WebCore/style/RuleFeature.cpp M Source/WebCore/style/RuleFeature.h M Source/WebCore/style/StyleInvalidator.cpp M Source/WebCore/style/StyleInvalidator.h M Source/WebCore/style/StyleScopeRuleSets.cpp M Source/WebCore/style/StyleScopeRuleSets.h Log Message: --- Invalidate scope-breaking :has(:is(...)) selectors more thoroughly https://bugs.webkit.org/show_bug.cgi?id=253944 rdar://106768250 Reviewed by Antti Koivisto. It's possible to write :has() selectors with arguments that can match elements outside of the :has scope, such as :has(:is(.x .y)) which could match the .x against an ancestor of the :has scope, and :has(~ :is(.x .y)) which could match the .x against an ancestor of a later sibling of the :has scope. We currently handle scope breaking :has() selectors by generating RuleFeatures based on the nested selectors' features and storing them with MatchElement::HasNonSubjectOrScopeBreaking, which causes invalidation to match the inner scope-breaking selector (the :is()) against all elements in the document. Because we store these in InvalidationRuleSets keyed off the nested selectors' features, it means that for the above examples, we will process these document-wide invalidations whenever a class name changes to or from x or y. But this is not sufficient to invalidate for selectors like :has(:is(.x + .y .z)) where if the .x and .y elements are outside the :has scope, an element insertion or removal between them will not find any relevant invalidation rule sets, and :has(~ :is(.x ~ .y)) for similar reasons. This PR changes how we collect scope breaking :has() rules, so that in addition to generating entries in m_hasPseudoClassInvalidationRuleSets on Style::ScopeRuleSet, we also record them in a new m_scopeBreakingHasPseudoClassInvalidationRuleSet, which we look up for every element insertion or removal. For simplicity, we do this more drastic invalidation for both of the above cases. MatchElement::HasNonSubjectOrScopeBreaking is split into two separate values -- HasNonSubject and HasScopeBreaking -- where only the latter causes an entry to be added to m_scopeBreakingHasPseudoClassInvalidationRuleSet. This change does not regress the performance of invalidation of :has() selectors that do not contain logical combination pseudo-classes like :is() and :not(), or which have do have one but do not have any selector combinators inside them. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has-expected.txt: * Source/WebCore/style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement): (WebCore::Style::ChildChangeInvalidation::invalidateForChangeOutsideHasScope): (WebCore::Style::ChildChangeInvalidation::invalidateForHasBeforeMutation): (WebCore::Style::ChildChangeInvalidation::invalidateForHasAfterMutation): (WebCore::Style::needsDescendantTraversal): * Source/WebCore/style/ChildChangeInvalidation.h: * Source/WebCore/style/ClassChangeInvalidation.cpp: (WebCore::Style::ClassChangeInvalidation::computeInvalidation): * Source/WebCore/style/RuleFeature.cpp: (WebCore::Style::isSiblingOrSubject): (WebCore::Style::isHasPseudoClassMatchElement): (WebCore::Style::isScopeBreaking): (WebCore::Style::computeNextHasPseudoClassMatchElement): (WebCore::Style::computeHasPseudoClassMatchElement): (WebCore::Style::computeSubSelectorMatchElement): (WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector): (WebCore::Style::RuleFeatureSet::collectFeatures): (WebCore::Style::RuleFeatureSet::add): (WebCore::Style::RuleFeatureSet::clear): (WebCore::Style::RuleFeatureSet::shrinkToFit): * Source/WebCore/style/RuleFeature.h: (WebCore::Style::RuleFeatureSet::usesMatchElement const): (WebCore::Style::RuleFeatureSet::usesHasPseudoClass const): * Source/WebCore/style/StyleInvalidator.cpp: (WebCore::Style::Invalidator::invalidateStyleWithMatchElement): (WebCore::Style::Invalidator::invalidateWithScopeBreakingHasPseudoClassRuleSet): * Source/WebCore/style/StyleInvalidator.h: * Source/WebCore/style/StyleScopeRuleSets.cpp:
[webkit-changes] [WebKit/WebKit] 20ce50: Invalidate :has(~ :is(.x ~ .y)) correctly
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 20ce50e23068f44e6025e5d6c4196d8aa1116add https://github.com/WebKit/WebKit/commit/20ce50e23068f44e6025e5d6c4196d8aa1116add Author: Cameron McCormack Date: 2023-09-12 (Tue, 12 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has-expected.txt M Source/WebCore/style/ClassChangeInvalidation.cpp M Source/WebCore/style/RuleFeature.cpp M Source/WebCore/style/RuleFeature.h M Source/WebCore/style/StyleInvalidator.cpp Log Message: --- Invalidate :has(~ :is(.x ~ .y)) correctly https://bugs.webkit.org/show_bug.cgi?id=261370 rdar://problem/115205991 Reviewed by Antti Koivisto. While selectors like :has(~ .x ~ .y) need only consider the later siblings of an element with class name "x" or "y" changes, those like :has(~ :is(.x ~ .y)) must also consider previous siblings for "x" changes, since the ~ combinator inside the :is() can select past the :has scope. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has-expected.txt: * Source/WebCore/style/ClassChangeInvalidation.cpp: (WebCore::Style::ClassChangeInvalidation::computeInvalidation): * Source/WebCore/style/RuleFeature.cpp: (WebCore::Style::isSiblingOrSubject): (WebCore::Style::isHasPseudoClassMatchElement): (WebCore::Style::computeNextHasPseudoClassMatchElement): (WebCore::Style::computeHasPseudoClassMatchElement): * Source/WebCore/style/RuleFeature.h: (WebCore::Style::RuleFeatureSet::usesHasPseudoClass const): * Source/WebCore/style/StyleInvalidator.cpp: (WebCore::Style::Invalidator::invalidateStyleWithMatchElement): Canonical link: https://commits.webkit.org/267932@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 32c83e: Propagate scope element into :has CheckingContext
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 32c83e1e34db9c8cdd92217ee3240daff273e1e4 https://github.com/WebKit/WebKit/commit/32c83e1e34db9c8cdd92217ee3240daff273e1e4 Author: Cameron McCormack Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-argument-with-explicit-scope-expected.txt M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-closest-expected.txt M Source/WebCore/css/SelectorChecker.cpp Log Message: --- Propagate scope element into :has CheckingContext https://bugs.webkit.org/show_bug.cgi?id=261378 rdar://106524140 Reviewed by Tim Nguyen and Antti Koivisto. In https://bugs.webkit.org/show_bug.cgi?id=261320 we split out CheckingContext::scope into two separate fields: "scope" for the element that matches :scope, and "hasScope" for the scope of a :has() pseudo-class. We need to propagate scope into the child CheckingContext we create for :has() pseudo-class matching, otherwise :has(:scope) will never match anything. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-argument-with-explicit-scope-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-closest-expected.txt: * Source/WebCore/css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchHasPseudoClass const): Canonical link: https://commits.webkit.org/267856@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ec255a: Invalidate :default pseudo-class changes
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ec255a8cd5cce23106c903bd2fc8620c7eac1e01 https://github.com/WebKit/WebKit/commit/ec255a8cd5cce23106c903bd2fc8620c7eac1e01 Author: Cameron McCormack Date: 2023-09-10 (Sun, 10 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html M Source/WebCore/html/HTMLInputElement.cpp M Source/WebCore/html/HTMLInputElement.h Log Message: --- Invalidate :default pseudo-class changes https://bugs.webkit.org/show_bug.cgi?id=261382 Reviewed by Tim Nguyen. On an , the presence of the checked="" attribute determines whether :default matches. We must invalidate :default when the attribute is added or removed on a checkable input element. We also must invalidate :default when the type="" changes. Just use AnyValue rather than compute ahead of time what the new pseudo-class match value will be, in HTMLInputElement::updateType. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html: * Source/WebCore/html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateType): (WebCore::HTMLInputElement::attributeChanged): (WebCore::HTMLInputElement::matchesDefaultPseudoClass const): (WebCore::HTMLInputElement::setDefaultCheckedState): (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement): * Source/WebCore/html/HTMLInputElement.h: Canonical link: https://commits.webkit.org/267848@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ae0d40: Prevent :has(:scope ...) from breaking the :has scope
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ae0d407eae254cf17867edb5b9d66e77b03a521b https://github.com/WebKit/WebKit/commit/ae0d407eae254cf17867edb5b9d66e77b03a521b Author: Cameron McCormack Date: 2023-09-08 (Fri, 08 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-argument-with-explicit-scope-expected.txt M Source/WebCore/css/CSSSelector.cpp M Source/WebCore/css/CSSSelector.h M Source/WebCore/css/SelectorChecker.cpp M Source/WebCore/css/SelectorChecker.h M Source/WebCore/css/parser/CSSSelectorParser.cpp M Source/WebCore/cssjit/SelectorCompiler.cpp M Source/WebCore/style/ChildChangeInvalidation.cpp Log Message: --- Prevent :has(:scope ...) from breaking the :has scope https://bugs.webkit.org/show_bug.cgi?id=261320 rdar://problem/115158183 Reviewed by Antti Koivisto. This content: alert(x.matches(":has(:scope span)")); currently alerts "true", but it should show "false". We treat :scope as something that can match the :has() scope, but that is not supported by the spec. Instead it should only match against the scope induced by the matches() call. We also need to unconditionally insert the implicit pseudo-class at the start of the :has() selector argument that matches the :has scope. Currently we skip this if :scope is present in the select argument (irrelevant) or if the :has relation is DescendantSpace. But we still need to check for the :has scope element in these cases. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-argument-with-explicit-scope-expected.txt: * Source/WebCore/css/CSSSelector.cpp: (WebCore::simpleSelectorSpecificity): (WebCore::CSSSelector::selectorText const): * Source/WebCore/css/CSSSelector.h: * Source/WebCore/css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const): (WebCore::SelectorChecker::matchHasPseudoClass const): * Source/WebCore/css/SelectorChecker.h: * Source/WebCore/css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumeRelativeScopeSelector): * Source/WebCore/cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::addPseudoClassType): * Source/WebCore/style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement): Canonical link: https://commits.webkit.org/267809@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 12307b: Invalidate :has(:is(:host(...) ...)) correctly
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 12307bbe8a5a1eb20864ff71890f87469666c7d9 https://github.com/WebKit/WebKit/commit/12307bbe8a5a1eb20864ff71890f87469666c7d9 Author: Cameron McCormack Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/host-pseudo-class-in-has-expected.txt M Source/WebCore/style/RuleSet.cpp Log Message: --- Invalidate :has(:is(:host(...) ...)) correctly https://bugs.webkit.org/show_bug.cgi?id=253945 rdar://106768205 Reviewed by Antti Koivisto. RuleSet records whether it contains any :host() rules that could possibly match correctly in a shadow tree -- it checks that the :host() only appears in the leftmost compound. Invalidation uses this state to determine whether we need to traverse into a shadow tree, when a class changes on a host element. But this is not sufficient to invalidate rules like: :has(:is(:host(...) div)) This is a properly used :host() selector, since it appears in the leftmost position. So we adjust isHostSelectorMatchingInShadowTree to look into nested selector list arguments like those found in :has(). * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/host-pseudo-class-in-has-expected.txt: * Source/WebCore/style/RuleSet.cpp: (WebCore::Style::isHostSelectorMatchingInShadowTree): Canonical link: https://commits.webkit.org/267773@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 630e53: Invalidate :has() with nested positional pseudo-cl...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 630e5323e6dcbd3c95adb5b8caedb9d8038b445b https://github.com/WebKit/WebKit/commit/630e5323e6dcbd3c95adb5b8caedb9d8038b445b Author: Cameron McCormack Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/child-indexed-pseudo-classes-in-has-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has-expected.txt M Source/WebCore/css/SelectorChecker.cpp M Source/WebCore/style/ChildChangeInvalidation.cpp M Source/WebCore/style/ChildChangeInvalidation.h Log Message: --- Invalidate :has() with nested positional pseudo-class selectors correctly https://bugs.webkit.org/show_bug.cgi?id=253943 rdar://106768224 Reviewed by Antti Koivisto. ChildChangeInvalidation currently handles :has() invalidation by traversing the newly inserted or removed subtree and checking whether there are any :has() rules whose nested selector could match the elements in the subtree. This is not sufficient to invalidate rules like: :has(:first-child) :has(:nth-child(2n+1)) :has(:nth-child(n2+1 of .foo)) When the parent of the changed subtree has any of these flags: ChildrenAffectedByFirstChildRules ChildrenAffectedByLastChildRules ChildrenAffectedByForwardPositionalRules ChildrenAffectedByBackwardPositionalRules we must invalidate some siblings of the subtree, to determine if the :has() selector might have changed. The "check the existing sibling" optimization that ChildChangeInvalidation::invalidateForChangedElement does is not valid if it's called with a sibling of the changed subtree, so we pass in a ChangedElementRelation value to control whether to skip it. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/child-indexed-pseudo-classes-in-has-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has-expected.txt: * Source/WebCore/css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchHasPseudoClass const): * Source/WebCore/style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement): (WebCore::Style::ChildChangeInvalidation::invalidateForHasBeforeMutation): (WebCore::Style::ChildChangeInvalidation::invalidateForHasAfterMutation): (WebCore::Style::ChildChangeInvalidation::traverseRemovedElements): (WebCore::Style::ChildChangeInvalidation::traverseAddedElements): (WebCore::Style::ChildChangeInvalidation::traverseRemainingExistingSiblings): * Source/WebCore/style/ChildChangeInvalidation.h: Canonical link: https://commits.webkit.org/267771@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0c0bfc: Invalidate :nth-child() selectors correctly when n...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0c0bfc05ec5c27a7bd2176002fd581a4f3157f7e https://github.com/WebKit/WebKit/commit/0c0bfc05ec5c27a7bd2176002fd581a4f3157f7e Author: Cameron McCormack Date: 2023-09-03 (Sun, 03 Sep 2023) Changed paths: M LayoutTests/TestExpectations M Source/WebCore/style/ClassChangeInvalidation.cpp M Source/WebCore/style/RuleFeature.cpp M Source/WebCore/style/RuleFeature.h M Source/WebCore/style/StyleInvalidator.cpp Log Message: --- Invalidate :nth-child() selectors correctly when not in subject position https://bugs.webkit.org/show_bug.cgi?id=253941 rdar://106740353 Reviewed by Antti Koivisto. We use MatchResult::AnySibling when an element that matches the selector inside an :nth-child() pseudo-class changes. But when we process that invalidation, it only invalidates the element itself. This means that AnySibling is only correct when the :nth-child() is in the subject position. Introduce MatchResult::ParentAnySibling and AncestorAnySibling to represent invalidations required for :nth-child() pseudo-classes followed by child or descendant combinators. Canonical link: https://commits.webkit.org/267600@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bb27e4: [@property] Handle dynamic updates to viewport units
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bb27e4ae20f7f78a43ef1347c25be6eead488f29 https://github.com/WebKit/WebKit/commit/bb27e4ae20f7f78a43ef1347c25be6eead488f29 Author: Cameron McCormack Date: 2023-09-02 (Sat, 02 Sep 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-viewport-units-dynamic-expected.txt M Source/WebCore/css/CSSPrimitiveValue.cpp M Source/WebCore/css/CSSRegisteredCustomProperty.h M Source/WebCore/css/CSSValue.h M Source/WebCore/css/ComputedStyleExtractor.cpp M Source/WebCore/css/DOMCSSRegisterCustomProperty.cpp M Source/WebCore/style/CustomPropertyRegistry.cpp M Source/WebCore/style/CustomPropertyRegistry.h M Source/WebCore/style/StyleScope.cpp Log Message: --- [@property] Handle dynamic updates to viewport units https://bugs.webkit.org/show_bug.cgi?id=255689 rdar://108287215 Reviewed by Antti Koivisto. Viewport units are "computationally independent", and so are allowed in registered custom property initial values. But we don't have any mechanism to invalidate them when the viewport size changes. * Source/WebCore/css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::collectComputedStyleDependencies const): Record whether the value had any viewport units. * Source/WebCore/css/CSSRegisteredCustomProperty.h: Store the CSS parser tokens an initial value was created from if it it contains viewport units, so that we can re-parse it when the viewport is resized. * Source/WebCore/css/CSSValue.h: (WebCore::ComputedStyleDependencies::isComputationallyIndependent const): (WebCore::ComputedStyleDependencies::isEmpty const): Deleted. Rename isEmpty, since we don't want it to look at the new viewportDimensions member. * Source/WebCore/css/ComputedStyleExtractor.cpp: (WebCore::ComputedStyleExtractor::customPropertyValue const): (WebCore::ComputedStyleExtractor::propertyValue const): Flush layout in the parent document if there are viewport units used anywhere in the current document. * Source/WebCore/css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * Source/WebCore/style/CustomPropertyRegistry.cpp: (WebCore::Style::CustomPropertyRegistry::registerFromAPI): (WebCore::Style::CustomPropertyRegistry::registerFromStylesheet): (WebCore::Style::CustomPropertyRegistry::parseInitialValue): Factor out initial value parsing from DOMCSSRegisterCustomProperty::registerProperty and CustomPropertyRegistry::registerFromStylesheet into a new function parseInitialValue, which returns both the newly parsed CSSCustomPropertyValue as well as whether it contained viewport unit values. * Source/WebCore/style/CustomPropertyRegistry.h: (WebCore::Style::CustomPropertyRegistry::invalidatePropertiesWithViewportUnits): * Source/WebCore/style/StyleScope.cpp: (WebCore::Style::Scope::didChangeViewportSize): Respond to viewport size changes by invalidating all registered custom properties whose initial value contains viewport units. Canonical link: https://commits.webkit.org/267590@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f452d4: Support mixed percentage and length/number argumen...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f452d441b0232de141054206c0bd5ae0ab4e2bc0 https://github.com/WebKit/WebKit/commit/f452d441b0232de141054206c0bd5ae0ab4e2bc0 Author: Cameron McCormack Date: 2023-08-19 (Sat, 19 Aug 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-mod-rem-computed-expected.txt M Source/WebCore/css/calc/CSSCalcOperationNode.cpp Log Message: --- Support mixed percentage and length/number arguments in CSS step functions https://bugs.webkit.org/show_bug.cgi?id=259714 rdar://problem/113234898 Reviewed by Tim Nguyen. We shouldn't just check that the two numeric argumnets to round() etc. have the same value category, but if one is Percent then we should support Length or Number as the other, and produce an overall LengthPercent or NumberPercent category. Fix another bug in this code, where we currently check that the numeric arguments aren't isRoundOperation(), but this should be isRoundConstant(). Otherwise values like round(round(10, 5), 2) are rejected. * LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-mod-rem-computed-expected.txt: * Source/WebCore/css/calc/CSSCalcOperationNode.cpp: (WebCore::resolvedTypeForStep): (WebCore::CSSCalcOperationNode::createStep): (WebCore::CSSCalcOperationNode::createRound): (WebCore::validateRoundChildren): Deleted. Canonical link: https://commits.webkit.org/267072@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bc5272: Path::transform() should not trigger creation of a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bc527208a62ff94103079beae9e5e582134d9b49 https://github.com/WebKit/WebKit/commit/bc527208a62ff94103079beae9e5e582134d9b49 Author: Cameron McCormack Date: 2023-08-07 (Mon, 07 Aug 2023) Changed paths: M LayoutTests/platform/glib/TestExpectations M Source/WebCore/platform/graphics/Path.cpp M Source/WebCore/platform/graphics/PathImpl.h M Source/WebCore/platform/graphics/PathSegment.cpp M Source/WebCore/platform/graphics/PathSegment.h M Source/WebCore/platform/graphics/PathSegmentData.cpp M Source/WebCore/platform/graphics/PathSegmentData.h M Source/WebCore/platform/graphics/PathStream.cpp M Source/WebCore/platform/graphics/PathStream.h M Source/WebCore/platform/graphics/cairo/PathCairo.cpp M Source/WebCore/platform/graphics/cairo/PathCairo.h M Source/WebCore/platform/graphics/cg/PathCG.cpp M Source/WebCore/platform/graphics/cg/PathCG.h Log Message: --- Path::transform() should not trigger creation of a platform path https://bugs.webkit.org/show_bug.cgi?id=258759 rdar://problem/111934640 Reviewed by Simon Fraser. Many paths consist only of Move/Line/Quadratic/Cubic/Close segments, which are all simple to apply an AffineTransform to. Transform single segment and PathStream based paths in place when Path::transform() is called, to avoid the overhead of generating a CGPath. If other segment types are in the path, continue to convert to a platform path first. Some WPT (path + transform) tests fail on GTK ports because the tests are fragile to floating point calculations. The tests rotate the context by 90 degree and scale it by 283 then they stroke a line to cover the whole canvas by the stroke color. If we scale by 282, the last row in the canvas will not be stroked even without this patch. On GKT port and with this patch, the last row is stroked but it is anti-aliased with the background. * LayoutTests/platform/glib/TestExpectations: * Source/WebCore/platform/graphics/Path.cpp: (WebCore::Path::transform): * Source/WebCore/platform/graphics/PathImpl.h: * Source/WebCore/platform/graphics/PathSegment.cpp: (WebCore::PathSegment::canTransform const): (WebCore::PathSegment::transform): * Source/WebCore/platform/graphics/PathSegment.h: * Source/WebCore/platform/graphics/PathSegmentData.cpp: (WebCore::PathMoveTo::transform): (WebCore::PathLineTo::transform): (WebCore::PathQuadCurveTo::transform): (WebCore::PathBezierCurveTo::transform): (WebCore::PathDataLine::transform): (WebCore::PathDataQuadCurve::transform): (WebCore::PathDataBezierCurve::transform): (WebCore::PathCloseSubpath::transform): * Source/WebCore/platform/graphics/PathSegmentData.h: * Source/WebCore/platform/graphics/PathStream.cpp: (WebCore::PathStream::transform): * Source/WebCore/platform/graphics/PathStream.h: * Source/WebCore/platform/graphics/cairo/PathCairo.cpp: (WebCore::PathCairo::transform): * Source/WebCore/platform/graphics/cairo/PathCairo.h: * Source/WebCore/platform/graphics/cg/PathCG.cpp: (WebCore::PathCG::transform): * Source/WebCore/platform/graphics/cg/PathCG.h: Canonical link: https://commits.webkit.org/266672@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5466cd: Avoid going back to the GPU process for canvas Ima...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5466cd2c24514bdeee05075d5a2eb35e8c146e40 https://github.com/WebKit/WebKit/commit/5466cd2c24514bdeee05075d5a2eb35e8c146e40 Author: Cameron McCormack Date: 2023-08-07 (Mon, 07 Aug 2023) Changed paths: A LayoutTests/fast/canvas/canvas-ImageData-cache-expected.txt A LayoutTests/fast/canvas/canvas-ImageData-cache.html A LayoutTests/fast/canvas/imageData-consistency-expected.txt A LayoutTests/fast/canvas/imageData-consistency.html A LayoutTests/platform/gtk/fast/canvas/imageData-consistency-expected.txt A LayoutTests/platform/wpe/fast/canvas/imageData-consistency-expected.txt M Source/WebCore/html/ImageData.cpp M Source/WebCore/html/ImageData.h M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h M Source/WebCore/platform/Timer.h Log Message: --- Avoid going back to the GPU process for canvas ImageData when possible https://bugs.webkit.org/show_bug.cgi?id=259436 rdar://problem/112746729 Reviewed by Cameron McCormack and Myles C. Maxfield. On a 2D canvas, if a recent putImageData() was made with no other intervening drawing commands, we can use its data to fulfill a subsequent getImageData(). Start with some simple conditions for ImageData size and drawing dimensions, which can be extended later if it proves useful. * LayoutTests/fast/canvas/canvas-ImageData-cache-expected.txt: Added. * LayoutTests/fast/canvas/canvas-ImageData-cache.html: Added. * Source/WebCore/html/ImageData.cpp: (WebCore::ImageData::clone const): * Source/WebCore/html/ImageData.h: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::reset): (WebCore::CanvasRenderingContext2DBase::didDraw): (WebCore::CanvasRenderingContext2DBase::cacheImageDataIfPossible): (WebCore::CanvasRenderingContext2DBase::takeCachedImageDataIfPossible const): (WebCore::CanvasRenderingContext2DBase::getImageData const): (WebCore::CanvasRenderingContext2DBase::putImageData): * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h: Canonical link: https://commits.webkit.org/266632@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] fe314e: Use a new type PathCloseSubpath instead of std::mo...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fe314ea4b982abb2cf203a909be9c5fc180cbcb0 https://github.com/WebKit/WebKit/commit/fe314ea4b982abb2cf203a909be9c5fc180cbcb0 Author: Cameron McCormack Date: 2023-07-24 (Mon, 24 Jul 2023) Changed paths: M Source/WebCore/platform/graphics/PathSegment.cpp M Source/WebCore/platform/graphics/PathSegment.h M Source/WebCore/platform/graphics/PathSegmentData.cpp M Source/WebCore/platform/graphics/PathSegmentData.h M Source/WebCore/platform/graphics/PathStream.cpp M Source/WebCore/platform/graphics/cairo/PathCairo.cpp M Source/WebCore/platform/graphics/cg/PathCG.cpp M Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in Log Message: --- Use a new type PathCloseSubpath instead of std::monostate to represent a close command in PathSegment https://bugs.webkit.org/show_bug.cgi?id=259430 rdar://problem/112741404 Reviewed by Simon Fraser. Adding an empty struct lets us treat this command like all the others, and not special case it in the WTF::switchOn calls in PathSegment.cpp. * Source/WebCore/platform/graphics/PathSegment.cpp: (WebCore::PathSegment::calculateEndPoint const): (WebCore::PathSegment::extendFastBoundingRect const): (WebCore::PathSegment::extendBoundingRect const): (WebCore::PathSegment::addToImpl const): (WebCore::PathSegment::applyElements const): (WebCore::operator<<): * Source/WebCore/platform/graphics/PathSegment.h: (WebCore::PathSegment::isCloseSubPath const): * Source/WebCore/platform/graphics/PathSegmentData.cpp: (WebCore::PathCloseSubpath::calculateEndPoint const): (WebCore::PathCloseSubpath::extendFastBoundingRect const): (WebCore::PathCloseSubpath::extendBoundingRect const): (WebCore::PathCloseSubpath::addToImpl const): (WebCore::PathCloseSubpath::applyElements const): (WebCore::operator<<): * Source/WebCore/platform/graphics/PathSegmentData.h: * Source/WebCore/platform/graphics/PathStream.cpp: (WebCore::PathStream::closeSubpath): * Source/WebCore/platform/graphics/cg/PathCG.cpp: (WebCore::pathSegmentApplierCallback): * Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in: Canonical link: https://commits.webkit.org/266264@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5ec234: Avoid creating a new CSSParserContext each time a ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5ec234192a2eebd476418c0dea4a3fc20604b92c https://github.com/WebKit/WebKit/commit/5ec234192a2eebd476418c0dea4a3fc20604b92c Author: Cameron McCormack Date: 2023-07-23 (Sun, 23 Jul 2023) Changed paths: M Source/WebCore/html/HTMLCanvasElement.h M Source/WebCore/html/canvas/CanvasStyle.cpp Log Message: --- Avoid creating a new CSSParserContext each time a color is assigned to fillStyle/strokeStyle on a canvas context https://bugs.webkit.org/show_bug.cgi?id=259431 rdar://112439220 Reviewed by Tim Nguyen. Creating the CSSParserContext is slightly expensive, since it fetches all of the relevant document Settings. * Source/WebCore/html/HTMLCanvasElement.h: (WebCore::HTMLCanvasElement::cssParserContext): * Source/WebCore/html/canvas/CanvasStyle.cpp: (WebCore::parseColor): Canonical link: https://commits.webkit.org/266238@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 816bae: Add back inline storage to WebCore::Path
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 816baea44df683e2518b805a5dc65697c8e70492 https://github.com/WebKit/WebKit/commit/816baea44df683e2518b805a5dc65697c8e70492 Author: Cameron McCormack Date: 2023-07-19 (Wed, 19 Jul 2023) Changed paths: M Source/WebCore/platform/graphics/Path.cpp M Source/WebCore/platform/graphics/Path.h M Source/WebCore/platform/graphics/PathStream.cpp M Source/WebCore/platform/graphics/PathStream.h M Source/WebKit/Shared/WebCoreArgumentCoders.cpp Log Message: --- Add back inline storage to WebCore::Path https://bugs.webkit.org/show_bug.cgi?id=259326 rdar://112501668 Reviewed by Simon Fraser. After https://commits.webkit.org/265569@main, we have three separate heap allocations when creating a WebCore::Path with a single segment. (The PathStream, the SegmentsData, and its Vector buffer.) These heap allocations show up on profiles, and were part of a MotionMark Canvas Lines regression. * Source/WebCore/platform/graphics/Path.cpp: (WebCore::Path::Path): (WebCore::Path::operator=): (WebCore::Path::operator== const): (WebCore::Path::setImpl): (WebCore::Path::ensurePlatformPathImpl): (WebCore::Path::ensureImpl): (WebCore::Path::asImpl): (WebCore::Path::asImpl const): (WebCore::Path::moveTo): (WebCore::Path::asSingleMoveTo const): (WebCore::Path::addLineTo): (WebCore::Path::addQuadCurveTo): (WebCore::Path::addBezierCurveTo): (WebCore::Path::addArcTo): (WebCore::Path::addArc): (WebCore::Path::addEllipse): (WebCore::Path::addEllipseInRect): (WebCore::Path::addRect): (WebCore::Path::addRoundedRect): (WebCore::Path::closeSubpath): (WebCore::Path::applySegments const): (WebCore::Path::clear): (WebCore::Path::singleSegment const): (WebCore::Path::singleDataLine const): (WebCore::Path::singleArc const): (WebCore::Path::singleQuadCurve const): (WebCore::Path::singleBezierCurve const): (WebCore::Path::isEmpty const): (WebCore::Path::segmentsIfExists const): (WebCore::Path::isClosed const): (WebCore::Path::currentPoint const): (WebCore::Path::fastBoundingRect const): (WebCore::Path::boundingRect const): * Source/WebCore/platform/graphics/Path.h: (WebCore::Path::singleSegmentIfExists const): (WebCore::Path::asSingle): (WebCore::Path::asSingle const): * Source/WebCore/platform/graphics/PathStream.cpp: (WebCore::PathStream::create): (WebCore::PathStream::PathStream): (WebCore::PathStream::addArc): * Source/WebCore/platform/graphics/PathStream.h: Canonical link: https://commits.webkit.org/266156@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1ace3d: Don't call deferNonVisibleProcessEarlyMemoryCleanu...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1ace3d3f33b26d072a9c04c962986b2912232557 https://github.com/WebKit/WebKit/commit/1ace3d3f33b26d072a9c04c962986b2912232557 Author: Cameron McCormack Date: 2023-07-12 (Wed, 12 Jul 2023) Changed paths: M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp Log Message: --- Don't call deferNonVisibleProcessEarlyMemoryCleanupTimer from worker threads https://bugs.webkit.org/show_bug.cgi?id=259170 rdar://110910174 Reviewed by Simon Fraser. We call deferNonVisibleProcessEarlyMemoryCleanupTimer in RemoteResourceCacheProxy::recordNativeImageUse. The idea there is to avoid discarding decoded image data in background tabs if the background tab is drawing images, which might be some canvas work, or it could be other things like Safari taking a tab snapshot. If we didn't avoid this, we could thrash between discarding decoded data and redecoding. OffscreenCanvas can also draw images on worker threads, but deferNonVisibleProcessEarlyMemoryCleanupTimer is not safe to call from non-main threads. We can safely skip this call if we're not on the main thread: workers do not have access to images which are stored in the MemoryCache, so we are not at risk of discarding decoded image data that the worker will want to re-decode to draw. * Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp: (WebKit::RemoteResourceCacheProxy::recordNativeImageUse): Canonical link: https://commits.webkit.org/266024@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ecc7e5: Build fix after bug 258764
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ecc7e57627e54a220a3c6cddc7d2bb5dcdffb36c https://github.com/WebKit/WebKit/commit/ecc7e57627e54a220a3c6cddc7d2bb5dcdffb36c Author: Cameron McCormack Date: 2023-07-12 (Wed, 12 Jul 2023) Changed paths: M Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp Log Message: --- Build fix after bug 258764 https://bugs.webkit.org/show_bug.cgi?id=259164 rdar://problem/112158177 Unreviewed build fix. * Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp: (WebCore::UnrealizedCoreTextFont::realize const): Canonical link: https://commits.webkit.org/266008@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1be526: Unreviewed, reverting 262829@main
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1be5261428234b2357b74bb5de686c7bce227953 https://github.com/WebKit/WebKit/commit/1be5261428234b2357b74bb5de686c7bce227953 Author: Cameron McCormack Date: 2023-05-20 (Sat, 20 May 2023) Changed paths: M Source/WebCore/Modules/modern-media-controls/controls/time-control.js Log Message: --- Unreviewed, reverting 262829@main https://bugs.webkit.org/show_bug.cgi?id=257075 rdar://108764454 Reverting 262829@main since it broke the modern media controls scrubber. Reverted changeset: "REGRESSION (261912@main): [macOS WK2] imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-035.html is a flaky failure" https://bugs.webkit.org/show_bug.cgi?id=254745 https://commits.webkit.org/262829@main"; * Source/WebCore/Modules/modern-media-controls/controls/time-control.js: (TimeControl.prototype.get minimumWidth): (TimeControl.prototype.get idealMinimumWidth): (TimeControl.prototype.layout): (TimeControl.prototype._performIdealLayout): (TimeControl.prototype.get _scrubberMargin): Deleted. (TimeControl.prototype._performLayoutWithRightTimeLabel): Deleted. Canonical link: https://commits.webkit.org/264301@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7b6d03: Use document URL as source of ResizeObserver loop ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7b6d036d50a030bf898eedbe36ad583a50cb2b7f https://github.com/WebKit/WebKit/commit/7b6d036d50a030bf898eedbe36ad583a50cb2b7f Author: Cameron McCormack Date: 2023-04-14 (Fri, 14 Apr 2023) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/resize-observer/calculate-depth-for-node-expected.txt M Source/WebCore/dom/Document.cpp Log Message: --- Use document URL as source of ResizeObserver loop limit error https://bugs.webkit.org/show_bug.cgi?id=255439 rdar://107905388 Reviewed by Simon Fraser. In Document::updateResizeObservations we throw an error if we exceed some limit for the number of times we loop processing ResizeObserver notifications. This uses getParserLocation to get the location to use in the error, which returns the empty string if parsing the document has finished. But when we pass in the empty string to reportException, we end up censoring the error message as "Script error." because we think the error came from a different origin, and the "ResizeObserver loop completed with undelivered notifications." message gets lost. We can use the document URL here instead. There's no clear more specific location to use, since when this error is thrown there is no JS on the stack (updateResizeObservations is one of the rendering update steps), and no specific ResizeObserver is necessarily the one that caused the limit to be exceeded. * LayoutTests/imported/w3c/web-platform-tests/resize-observer/calculate-depth-for-node-expected.txt: * Source/WebCore/dom/Document.cpp: (WebCore::Document::updateResizeObservations): Canonical link: https://commits.webkit.org/262989@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] baeabe: Discard decoded image data in Web processes with n...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: baeabe11daecb0ce0df709e88ae0ef821f7a2bcb https://github.com/WebKit/WebKit/commit/baeabe11daecb0ce0df709e88ae0ef821f7a2bcb Author: Cameron McCormack Date: 2023-04-04 (Tue, 04 Apr 2023) Changed paths: M Source/WebCore/rendering/RenderBoxModelObject.cpp M Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h M Source/WebKit/WebProcess/WebPage/DrawingArea.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h Log Message: --- Discard decoded image data in Web processes with no foreground tabs https://bugs.webkit.org/show_bug.cgi?id=254768 Reviewed by Said Abou-Hallawa. To reduce memory footprint, this patch discards decoded image data in Web processes with no foreground tabs. Destroying the decoded data means there is a risk of images not rendering next time we paint, if we had decided to async decode (due to the images being large, or referenced with , etc.). This can manifest in a couple of ways: 1. When switching back to a tab that's had its decoded image data destroyed, we won't see the effect immediately, since we'll show the page snapshot without painting the page again. By the next time we do need to paint (e.g. after the user interacts with the page in some way), the image may briefly disappear while we wait for the async decode. 2. When hovering over the tab strip, Safari generates thumbnails showing the contents of the tabs. Although the image painting is performed with PaintBehavior::Snapshotting, this does not currently override , so any previously decoded image will appear blank in the thumbnail. To avoid these issues, we tell the RemoteLayerTreeDrawingArea to decode images synchronously in the next rendering update, and adjust RenderBoxModelObject::decodingModeForImageDraw to prioritize PaintBehavior::Snapshotting over . RemoteLayerTreeDrawingArea can perform no-paint rendering updates when switching back to a background tab, so we wait until we do some painting (a backing store has a non-empty dirty region) before clearing m_nextRenderingUpdateRequiresSynchronousImageDecoding. WebProcess::m_nonVisibleProcessEarlyMemoryCleanupTimer is changed to a DeferrableOneShotTimer. If a tab is in the background, and we have already destroyed the image decoded data, we schedule the timer again. This avoids the image data persisting if the page thumbnails are generated. If a tab is in the background, and we haven't yet destroyed the image decoded data (i.e., if the timer is pending), then we defer the timer when an image is painted. This avoids continuously destroying then regenerating the decoded data, if the page is repeatedly drawing images in the background. When the timer fires, we also tell the RemoteResourceCacheProxy to clear all its image resources at once, rather than have each NativeImage in its destructor tell the RemoteResourceCacheProxy to remove a single image resource, to reduce IPC traffic. For now, we only do this when UI side compositing is enabled, but it would also be beneficial in other configurations. * Source/WebCore/rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::decodingModeForImageDraw const): * Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h: (WebKit::QualifiedResourceHeap::releaseAllImageResources): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::releaseAllImageResources): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h: * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp: (WebKit:
[webkit-changes] [WebKit/WebKit] 0668d8: Ask system malloc to free up memory in non-visible...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0668d887feed861cb082fe8cea267f1055c5bb49 https://github.com/WebKit/WebKit/commit/0668d887feed861cb082fe8cea267f1055c5bb49 Author: Cameron McCormack Date: 2023-03-02 (Thu, 02 Mar 2023) Changed paths: M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm Log Message: --- Ask system malloc to free up memory in non-visible Web processes https://bugs.webkit.org/show_bug.cgi?id=253173 rdar://106009868 Reviewed by Geoffrey Garen. We currently do some memory reduction work in non-visible Web processes (those that only have background tabs) off a timer. We can ask the system malloc to free up memory off one of these timers too. malloc_zone_pressure_relief will block the thread it's called on, so we call it on a background thread, which is allowed. Local testing shows it can run for several ms, but it will only cause regular malloc contention, not block other threads entirely. This patch repurposes the "graphics cleanup timer" to be an "early memory cleanup timer", and we perform the system malloc cleanup off it. The more aggressive cleanup tasks that can clear caches etc. remain off the other memory cleanup timer, which runs later. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::pageDidEnterWindow): (WebKit::WebProcess::pageWillLeaveWindow): (WebKit::WebProcess::nonVisibleProcessEarlyMemoryCleanupTimerFired): (WebKit::WebProcess::nonVisibleProcessGraphicsCleanupTimerFired): Deleted. * Source/WebKit/WebProcess/WebProcess.h: * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::releaseSystemMallocMemory): Canonical link: https://commits.webkit.org/261087@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 69098e: Make memory pressure handler call deleteAllCode wi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 69098ebe6b1ecd3ba973413d35f6c7290715ebae https://github.com/WebKit/WebKit/commit/69098ebe6b1ecd3ba973413d35f6c7290715ebae Author: Cameron McCormack Date: 2023-03-02 (Thu, 02 Mar 2023) Changed paths: M Source/WebCore/page/MemoryRelease.cpp Log Message: --- Make memory pressure handler call deleteAllCode with PreventCollectionAndDeleteAllCode https://bugs.webkit.org/show_bug.cgi?id=253133 Reviewed by Mark Lam and Yusuke Suzuki. The memory pressure handler currently calls GCController::deleteAllCode(DeleteAllCodeIfNotCollecting), but it turns out we hit the case of a collection being in progress moderately often. We already do a bunch of blocky work here to get memory usage down, so let's change this to PreventCollectionAndDeleteAllCode to guarantee we can drop all JIT code. * Source/WebCore/page/MemoryRelease.cpp: (WebCore::releaseCriticalMemory): Canonical link: https://commits.webkit.org/261061@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7995dc: Produce 8 bit @font-face URL strings when possible
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7995dcceaf8679a715336b9ee9ee4de7793976ac https://github.com/WebKit/WebKit/commit/7995dcceaf8679a715336b9ee9ee4de7793976ac Author: Cameron McCormack Date: 2023-02-22 (Wed, 22 Feb 2023) Changed paths: M Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp Log Message: --- Produce 8 bit @font-face URL strings when possible https://bugs.webkit.org/show_bug.cgi?id=252781 Reviewed by Simon Fraser. We can end up wasting memory storing @font-face URLs (which can be large data: URLs) as 16 bit strings, if they appear in style sheet text stored as a 16 bit string, even when the URL itself is 8 bit only. This uses isAllASCII(), when really we could be checking for "is all Latin-1", but there's an existing fast path for ASCII-checking. * Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp: (WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceSrcURI): Canonical link: https://commits.webkit.org/260716@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8b3a06: StyleRuleWithNesting debug heap needs declaration
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8b3a06d59fa119d35b0a7713bf36049451136a78 https://github.com/WebKit/WebKit/commit/8b3a06d59fa119d35b0a7713bf36049451136a78 Author: Cameron McCormack Date: 2023-02-16 (Thu, 16 Feb 2023) Changed paths: M Source/WebCore/css/StyleRule.h Log Message: --- StyleRuleWithNesting debug heap needs declaration https://bugs.webkit.org/show_bug.cgi?id=252434 Reviewed by Simon Fraser. * Source/WebCore/css/StyleRule.h: Canonical link: https://commits.webkit.org/260405@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a05f1b: Shrink in-memory display list buffers when shrinkT...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a05f1b5d1351ea0824c32e1ec195b0c42132078a https://github.com/WebKit/WebKit/commit/a05f1b5d1351ea0824c32e1ec195b0c42132078a Author: Cameron McCormack Date: 2023-02-15 (Wed, 15 Feb 2023) Changed paths: M Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp Log Message: --- Shrink in-memory display list buffers when shrinkToFit() is called https://bugs.webkit.org/show_bug.cgi?id=252295 Reviewed by Simon Fraser. It's only the current writable buffer that's likely to have a lot of wasted space. * Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp: (WebCore::DisplayList::ItemBuffer::shrinkToFit): Canonical link: https://commits.webkit.org/260347@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 147e3e: Reduce custom property storage for sites with larg...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 147e3eca970c1bf4808e592c92d1a94ef2723b2f https://github.com/WebKit/WebKit/commit/147e3eca970c1bf4808e592c92d1a94ef2723b2f Author: Cameron McCormack Date: 2023-02-15 (Wed, 15 Feb 2023) Changed paths: M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/css/CSSComputedStyleDeclaration.cpp M Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.cpp M Source/WebCore/rendering/style/RenderStyle.cpp M Source/WebCore/rendering/style/RenderStyle.h A Source/WebCore/rendering/style/StyleCustomPropertyData.cpp M Source/WebCore/rendering/style/StyleCustomPropertyData.h M Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp M Source/WebCore/rendering/style/StyleMiscNonInheritedData.h Log Message: --- Reduce custom property storage for sites with large numbers of custom properties on the root https://bugs.webkit.org/show_bug.cgi?id=252142 Reviewed by Antti Koivisto and Darin Adler. Some sites have a large number of custom properties set on the root element, inheriting into the entire document. When different custom properties or values are set on descendant elements, we clone all of the inherited properties. This patch changes the storage in StyleCustomPropertyData so that the first time we copy() one that has some custom properties in it, we point the cloned object to the original StyleCustomPropertyData as the source of inherited custom properties, and leave m_values (now renamed to m_ownValues) empty. Any subsequent copy() of a StyleCustomPropertyData that already has a pointer to the inherited custom properties will copy that pointer, and clone m_ownValues like before. We don't generate an unlimited linked list of inherited custom properties to look up, to avoid custom property lookup time having worst case linear time in the depth of the tree. This saves around 800 KB on the youtube.com in Membuster. * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::item const): * Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.cpp: (WebCore::ComputedStylePropertyMapReadOnly::entries const): * Source/WebCore/rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setCustomPropertyValue): * Source/WebCore/rendering/style/RenderStyle.h: (WebCore::RenderStyle::inheritedCustomProperties const): (WebCore::RenderStyle::nonInheritedCustomProperties const): * Source/WebCore/rendering/style/StyleCustomPropertyData.cpp: Added. (WebCore::StyleCustomPropertyData::StyleCustomPropertyData): (WebCore::StyleCustomPropertyData::get const): (WebCore::StyleCustomPropertyData::set): (WebCore::StyleCustomPropertyData::operator== const): (WebCore::StyleCustomPropertyData::forEach const): (WebCore::StyleCustomPropertyData::findKeyAtIndex const): (WebCore::StyleCustomPropertyData::size const): * Source/WebCore/rendering/style/StyleCustomPropertyData.h: (WebCore::StyleCustomPropertyData::copy const): (WebCore::StyleCustomPropertyData::operator!= const): (WebCore::StyleCustomPropertyData::operator== const): Deleted. (WebCore::StyleCustomPropertyData::setCustomPropertyValue): Deleted. (WebCore::StyleCustomPropertyData::StyleCustomPropertyData): Deleted. Canonical link: https://commits.webkit.org/260319@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e6817c: Rearrange non-inherited style data to reduce memory
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e6817c1995730d7ab82bd267d3c20cb74c1b13c5 https://github.com/WebKit/WebKit/commit/e6817c1995730d7ab82bd267d3c20cb74c1b13c5 Author: Cameron McCormack Date: 2023-02-14 (Tue, 14 Feb 2023) Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/rendering/style/RenderStyle.cpp M Source/WebCore/rendering/style/RenderStyle.h A Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp A Source/WebCore/rendering/style/StyleMiscNonInheritedData.h A Source/WebCore/rendering/style/StyleNonInheritedData.cpp A Source/WebCore/rendering/style/StyleNonInheritedData.h M Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp M Source/WebCore/rendering/style/StyleRareNonInheritedData.h M Source/WebCore/rendering/style/StyleSurroundData.cpp M Source/WebCore/rendering/style/StyleSurroundData.h A Source/WebCore/rendering/style/StyleVisitedLinkColorData.cpp A Source/WebCore/rendering/style/StyleVisitedLinkColorData.h R Source/WebCore/rendering/style/StyleVisualData.cpp R Source/WebCore/rendering/style/StyleVisualData.h Log Message: --- Rearrange non-inherited style data to reduce memory https://bugs.webkit.org/show_bug.cgi?id=251972 Reviewed by Antti Koivisto. This patch rearranges the storage of non-inherited style data on a RenderStyle to reduce memory. To summarize the changes: 1. The RenderStyle::NonInheritedFlags::hasExplicitlySetBorderBottomLeftRadius etc. fields are moved to StyleSurroundData to live near border-radius 2. StyleVisualData is removed, saving one word on RenderStyle: - clip/hasClip and zoom are moved to StyleRareNonInheritedData, since they are rarely used - textDecorationLine is moved to RenderStyle::NonInheritedFlags, taking the space freed up by moving the border-radius flags 3. The DataRefs for non-inherited style data that currently live on RenderStyle (StyleBoxData, StyleSurroundData, StyleBackgroundData, and StyleNonInheritedData) are moved to a new StyleNonInheritedData object that now hangs off RenderStyle. The working assumption here is that most elements do not have changes to their non-inherited style data, so this will save three words on RenderStyle (at the cost of an extra word for the DataRef and one for the StyleNonInheritedData refcount, on elements that do have non-inherited properties applying to them). 4. A new StyleVisitedLinkColorData object is introduced to hold the non-inherited visited link StyleColors, since they are large. 5. A new StyleMiscNonInheritedData object is introduced to hold style data that is less common than Box/Surround/Background, but not that rare. These fields are moved from StyleRareNonInheritedData to StyleMiscNonInheritedData: - the DataRefs for StyleDeprecatedFlexibleBoxData, StyleFlexibleBoxData, StyleMultiColData, StyleFilterData, StyleTransformData, and the FillLayer for 'mask' - the non-inherited visited link StyleColors - transitions and animations - the {align,justify}-{content,items,self} properties - box-shadow - content, altText, and hasAttrContent - aspectRatioWidth, aspectRatioHeight, and aspectRatioType - objectPosition and obejctFit - appearance and effectiveAppearance - opacity - order - textOverflow - userDrag - resize - the isNotFinal flag On 64 bit, object sizes change as follows: RenderStyle: 88 -> 56 StyleSurroundData: 272 -> 272 StyleRareNonInheritedData: 672 -> 456 with new object sizes: StyleNonInheritedData: 48 StyleMiscNonInheritedData: 152 StyleVisitedLinkColorData: 120 The set of properties to move to StyleMiscNonInheritedData was determined using the PLT5 sites both in their recorded state and a contemporary load of those sites. This should save 3.7 MB on Membuster. * Source/WebCore/Headers.cmake: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::RenderStyle): (WebCore::RenderStyle::copyNonInheritedFrom): (WebCore::RenderStyle::copyContentFrom): (WebCore::RenderStyle::operator== const): (WebCore::RenderStyle::descendantAffectingNonInheritedPropertiesEqual const): (WebCore::RenderStyle::hashForTextAutosizing const): (WebCore::RenderStyle::equalForTextAutosizing const): (WebCore::RenderStyle::changeAffectsVisualOverflow const): (WebCore::miscDataChangeRequiresLayout): (WebCore::rareDataChangeRequiresLayout): (WebCore::RenderStyle::changeRequiresLayout const): (WebCore::RenderStyle::changeRequiresPositionedLayoutOnly const): (WebCore::miscDataChangeRequiresLayerRepaint): (WebCore::rareDataChangeRequiresLayerRepaint): (WebCore::RenderStyle::changeRequiresLayerRepai
[webkit-changes] [WebKit/WebKit] f31c6c: Avoid storing effective language on ElementRareDat...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f31c6cd343763c953418192bbcea0982c167f7f7 https://github.com/WebKit/WebKit/commit/f31c6cd343763c953418192bbcea0982c167f7f7 Author: Cameron McCormack Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: A LayoutTests/fast/css/lang-matching-document-invalidation-expected.txt A LayoutTests/fast/css/lang-matching-document-invalidation.html M Source/WebCore/dom/Document.cpp M Source/WebCore/dom/Document.h M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/Element.h M Source/WebCore/dom/ElementData.cpp M Source/WebCore/dom/ElementData.h M Source/WebCore/dom/EventTarget.h Log Message: --- Avoid storing effective language on ElementRareData when it matches the effective document element language https://bugs.webkit.org/show_bug.cgi?id=251657 Reviewed by Ryosuke Niwa. When an element's lang attribute is set, we set the effective language on the ElementRareData of all elements in the subtree. We have an existing optimization that avoids this if we're setting it on the document element. There are some pages, like Wikipedia, that set an explicit lang on some other element in the body of the page, but which matches the document element's lang. We can avoid the memory overhead of allocating ElementRareData to store the effective language in this case by using a flag on the element. On large Wikipedia pages this can save several MB. If the document element language changes later, we must update the effective lang state on subtrees that are using this flag. A WeakHashSet is added to Document to track elements that have an explicit lang attribute that matches the effective document element language. Three flags on EventTarget are introduced: - HasLangAttr and HasXMLLangAttr: records that the element has the corresponding lang attribute. This allows us to avoid searching for an attribute when updating the effective lang state. - EffectiveLangKnownToMatchDocument: records that the element has an effective lang that matches the effective document element language, whether it's due to an explicit lang attribute or inherited from an ancestor. This flag is used in place of ElementRareData::m_effectiveLang. The EffectiveLangKnownToMatchDocument flag is used in place of the "null effective language means we've inherited the effective document language" state so that disconnected subtrees can also make use of this optimization. Otherwise, for a case like this: let e = document.createElement("div"); e.lang = "en"; // matching document e.append(document.createElement("div")); the child element would not know whether to return nullptr or "en" from Element::effectiveLang() without looking up the tree to see if there is an ancestor with a langauge attribute. The EffectiveLangKnownToMatchDocument flag is not EffectiveLangMatchesDocument, since we don't set it if the document element language changes and an existing element starts matching it. Rather than track all elements with lang attributes to handle such cases, we leave the effective lang stored on the ElementRareData. * LayoutTests/fast/css/lang-matching-document-invalidation-expected.txt: Added. * LayoutTests/fast/css/lang-matching-document-invalidation.html: Added. * Source/WebCore/dom/Document.cpp: (WebCore::Document::setDocumentElementLanguage): (WebCore::Document::addElementWithLangAttrMatchingDocument): (WebCore::Document::removeElementWithLangAttrMatchingDocument): * Source/WebCore/dom/Document.h: * Source/WebCore/dom/Element.cpp: (WebCore::Element::~Element): (WebCore::Element::attributeChanged): (WebCore::Element::setEffectiveLangInSubtree): (WebCore::Element::didMoveToNewDocument): (WebCore::Element::setEffectiveLangFromParent): (WebCore::Element::setEffectiveLang): (WebCore::Element::insertedIntoAncestor): (WebCore::Element::hasEffectiveLangState const): (WebCore::Element::removedFromAncestor): (WebCore::Element::effectiveLang const): (WebCore::Element::langFromAttribute const): (WebCore::Element::langAttrMatchesDocument const): (WebCore::Element::setLangAttrMatchesDocument): (WebCore::Element::effectiveLangMatchesDocument const): (WebCore::Element::setEffectiveLangMatchesDocument): * Source/WebCore/dom/Element.h: * Source/WebCore/dom/EventTarget.h: Canonical link: https://commits.webkit.org/260047@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b1677b: Add more heap identifiers for style data
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b1677b518da08dd4da8abf7f9d321f5d4bc8f4e6 https://github.com/WebKit/WebKit/commit/b1677b518da08dd4da8abf7f9d321f5d4bc8f4e6 Author: Cameron McCormack Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M Source/WebCore/rendering/style/RenderStyle.cpp M Source/WebCore/rendering/style/RenderStyle.h M Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp M Source/WebCore/rendering/style/SVGRenderStyleDefs.h M Source/WebCore/rendering/style/StyleBackgroundData.cpp M Source/WebCore/rendering/style/StyleBackgroundData.h M Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.cpp M Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.h M Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp M Source/WebCore/rendering/style/StyleFlexibleBoxData.h M Source/WebCore/rendering/style/StyleGridData.cpp M Source/WebCore/rendering/style/StyleGridData.h M Source/WebCore/rendering/style/StyleGridItemData.cpp M Source/WebCore/rendering/style/StyleGridItemData.h M Source/WebCore/rendering/style/StyleMultiColData.cpp M Source/WebCore/rendering/style/StyleMultiColData.h M Source/WebCore/rendering/style/StyleVisualData.cpp M Source/WebCore/rendering/style/StyleVisualData.h M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp Log Message: --- Add more heap identifiers for style data https://bugs.webkit.org/show_bug.cgi?id=251833 Reviewed by Simon Fraser. * Source/WebCore/rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::copyPseudoElementsFrom): (WebCore::RenderStyle::hasUniquePseudoStyle const): (WebCore::RenderStyle::getCachedPseudoStyle const): (WebCore::RenderStyle::addCachedPseudoStyle): * Source/WebCore/rendering/style/RenderStyle.h: * Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp: * Source/WebCore/rendering/style/SVGRenderStyleDefs.h: * Source/WebCore/rendering/style/StyleBackgroundData.cpp: * Source/WebCore/rendering/style/StyleBackgroundData.h: * Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.cpp: * Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.h: * Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp: * Source/WebCore/rendering/style/StyleFlexibleBoxData.h: * Source/WebCore/rendering/style/StyleGridData.cpp: * Source/WebCore/rendering/style/StyleGridData.h: * Source/WebCore/rendering/style/StyleGridItemData.cpp: * Source/WebCore/rendering/style/StyleGridItemData.h: * Source/WebCore/rendering/style/StyleMultiColData.cpp: * Source/WebCore/rendering/style/StyleMultiColData.h: * Source/WebCore/rendering/style/StyleVisualData.cpp: * Source/WebCore/rendering/style/StyleVisualData.h: * Source/WebCore/rendering/updating/RenderTreeUpdater.cpp: (WebCore::pseudoStyleCacheIsInvalid): Canonical link: https://commits.webkit.org/260030@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8858f1: Avoid storing effective language on ElementRareDat...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8858f1de792a602c09ff087c13c342014f27fa62 https://github.com/WebKit/WebKit/commit/8858f1de792a602c09ff087c13c342014f27fa62 Author: Cameron McCormack Date: 2023-02-06 (Mon, 06 Feb 2023) Changed paths: A LayoutTests/fast/css/lang-matching-document-invalidation-expected.txt A LayoutTests/fast/css/lang-matching-document-invalidation.html M Source/WebCore/dom/Document.cpp M Source/WebCore/dom/Document.h M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/Element.h M Source/WebCore/dom/ElementData.cpp M Source/WebCore/dom/ElementData.h M Source/WebCore/dom/EventTarget.h Log Message: --- Avoid storing effective language on ElementRareData when it matches the effective document element language https://bugs.webkit.org/show_bug.cgi?id=251657 Reviewed by Ryosuke Niwa. When an element's lang attribute is set, we set the effective language on the ElementRareData of all elements in the subtree. We have an existing optimization that avoids this if we're setting it on the document element. There are some pages, like Wikipedia, that set an explicit lang on some other element in the body of the page, but which matches the document element's lang. We can avoid the memory overhead of allocating ElementRareData to store the effective language in this case by using a flag on the element. On large Wikipedia pages this can save several MB. If the document element language changes later, we must update the effective lang state on subtrees that are using this flag. A WeakHashSet is added to Document to track elements that have an explicit lang attribute that matches the effective document element language. Three flags on EventTarget are introduced: - HasLangAttr and HasXMLLangAttr: records that the element has the corresponding lang attribute. This allows us to avoid searching for an attribute when updating the effective lang state. - EffectiveLangKnownToMatchDocument: records that the element has an effective lang that matches the effective document element language, whether it's due to an explicit lang attribute or inherited from an ancestor. This flag is used in place of ElementRareData::m_effectiveLang. The EffectiveLangKnownToMatchDocument flag is used in place of the "null effective language means we've inherited the effective document language" state so that disconnected subtrees can also make use of this optimization. Otherwise, for a case like this: let e = document.createElement("div"); e.lang = "en"; // matching document e.append(document.createElement("div")); the child element would not know whether to return nullptr or "en" from Element::effectiveLang() without looking up the tree to see if there is an ancestor with a langauge attribute. The EffectiveLangKnownToMatchDocument flag is not EffectiveLangMatchesDocument, since we don't set it if the document element language changes and an existing element starts matching it. Rather than track all elements with lang attributes to handle such cases, we leave the effective lang stored on the ElementRareData. * LayoutTests/fast/css/lang-matching-document-invalidation-expected.txt: Added. * LayoutTests/fast/css/lang-matching-document-invalidation.html: Added. * Source/WebCore/dom/Document.cpp: (WebCore::Document::setDocumentElementLanguage): (WebCore::Document::addElementWithLangAttrMatchingDocument): (WebCore::Document::removeElementWithLangAttrMatchingDocument): * Source/WebCore/dom/Document.h: * Source/WebCore/dom/Element.cpp: (WebCore::Element::~Element): (WebCore::Element::attributeChanged): (WebCore::Element::setEffectiveLangInSubtree): (WebCore::Element::didMoveToNewDocument): (WebCore::Element::setEffectiveLangFromParent): (WebCore::Element::setEffectiveLang): (WebCore::Element::insertedIntoAncestor): (WebCore::Element::hasEffectiveLangState const): (WebCore::Element::removedFromAncestor): (WebCore::Element::effectiveLang const): (WebCore::Element::langFromAttribute const): (WebCore::Element::langAttrMatchesDocument const): (WebCore::Element::setLangAttrMatchesDocument): (WebCore::Element::effectiveLangMatchesDocument const): (WebCore::Element::setEffectiveLangMatchesDocument): * Source/WebCore/dom/Element.h: * Source/WebCore/dom/EventTarget.h: Canonical link: https://commits.webkit.org/259931@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] aea4f3: Shrink StyleRule by reducing padding and moving CS...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: aea4f3f29a7c8f7dbf76e52647c30b6cfc4cc464 https://github.com/WebKit/WebKit/commit/aea4f3f29a7c8f7dbf76e52647c30b6cfc4cc464 Author: Cameron McCormack Date: 2023-02-05 (Sun, 05 Feb 2023) Changed paths: M Source/WebCore/css/StyleRule.cpp M Source/WebCore/css/StyleRule.h Log Message: --- Shrink StyleRule by reducing padding and moving CSS Nesting fields to a rare data object https://bugs.webkit.org/show_bug.cgi?id=251744 rdar://105046580 Reviewed by Simon Fraser. This reduces StyleRule from 64 to 40 bytes. * Source/WebCore/css/StyleRule.cpp: (WebCore::StyleRuleRareData::createIfNeeded): (WebCore::StyleRule::StyleRule): (WebCore::StyleRule::rareData const): (WebCore::StyleRule::setNestedRules): (WebCore::StyleRule::setResolvedSelectorList const): (WebCore::emptyRuleVector): (WebCore::StyleRule::nestedRules const): * Source/WebCore/css/StyleRule.h: (WebCore::StyleRuleRareData::createIfNeeded): Canonical link: https://commits.webkit.org/259875@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 459951: Fix DUMP_NODE_STATISTICS
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4599514bba5957e7ea46aef8646a102dcdd6208e https://github.com/WebKit/WebKit/commit/4599514bba5957e7ea46aef8646a102dcdd6208e Author: Cameron McCormack Date: 2023-02-02 (Thu, 02 Feb 2023) Changed paths: M Source/WebCore/dom/ContainerNode.cpp M Source/WebCore/dom/ElementRareData.h M Source/WebCore/dom/Node.cpp M Source/WebCore/dom/NodeRareData.h Log Message: --- Fix DUMP_NODE_STATISTICS https://bugs.webkit.org/show_bug.cgi?id=251646 Reviewed by Ryosuke Niwa. - Add a missing UseType - Reorder UseTypes to match field order - Fix rareDataSingleUseTypeCounts key type to be big enough - Disable assertion in ContainerNode::removeAllChildrenWithScriptAssertion, which is not valid when all nodes created get a weak pointer * Source/WebCore/dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): * Source/WebCore/dom/ElementRareData.h: (WebCore::ElementRareData::useTypes const): * Source/WebCore/dom/Node.cpp: (WebCore::stringForRareDataUseType): (WebCore::Node::dumpStatistics): (WebCore::Node::Node): * Source/WebCore/dom/NodeRareData.h: (WebCore::NodeRareData::useTypes const): Canonical link: https://commits.webkit.org/259796@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a0e6d8: Move SVG conditional processing attributes to SVGE...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a0e6d8e81896cbb5cb78fdc8eccd67c598b8c459 https://github.com/WebKit/WebKit/commit/a0e6d8e81896cbb5cb78fdc8eccd67c598b8c459 Author: Cameron McCormack Date: 2023-02-02 (Thu, 02 Feb 2023) Changed paths: M Source/WebCore/svg/SVGElement.cpp M Source/WebCore/svg/SVGElement.h M Source/WebCore/svg/SVGElementRareData.h M Source/WebCore/svg/SVGTests.cpp M Source/WebCore/svg/SVGTests.h M Source/WebCore/svg/properties/SVGPropertyAccessorImpl.h M Source/WebCore/svg/properties/SVGPropertyOwnerRegistry.h Log Message: --- Move SVG conditional processing attributes to SVGElementRareData https://bugs.webkit.org/show_bug.cgi?id=251413 rdar://problem/104849618 Reviewed by Sam Weinig and Said Abou-Hallawa. The SVG conditional processing attributes (requiredFeatures, requiredExtensions, and systemLanguage) are rarely used. Currently nearly every SVG element creates SVGStringList objects for these three attributes in WebCore::SVGTests, at a cost of 48 bytes each SVGStringList plus the three pointers. We can move these to SVGElementRareData to save 72 bytes per SVG element in this common case, which for SVG documents with a large number of graphical elements can add up. The existing SVG property registration mechanism expects members corresponding to the attribute to exist on the owner element object. We adds a new SVGConditionalProcessingAttributeAccessor for these three attributes, which looks them up on the element's SVGElementRareData. * Source/WebCore/svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::SVGAnimationElement): * Source/WebCore/svg/SVGCursorElement.cpp: (WebCore::SVGCursorElement::SVGCursorElement): * Source/WebCore/svg/SVGElement.cpp: (WebCore::SVGElement::conditionalProcessingAttributes): (WebCore::SVGElement::conditionalProcessingAttributesIfExists const): * Source/WebCore/svg/SVGElement.h: * Source/WebCore/svg/SVGElementRareData.h: (WebCore::SVGElementRareData::conditionalProcessingAttributesIfExists const): (WebCore::SVGElementRareData::conditionalProcessingAttributes): * Source/WebCore/svg/SVGGraphicsElement.cpp: (WebCore::SVGGraphicsElement::SVGGraphicsElement): * Source/WebCore/svg/SVGMaskElement.cpp: (WebCore::SVGMaskElement::SVGMaskElement): * Source/WebCore/svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): * Source/WebCore/svg/SVGTests.cpp: (WebCore::SVGConditionalProcessingAttributes::SVGConditionalProcessingAttributes): (WebCore::SVGTests::SVGTests): (WebCore::SVGTests::isValid const): (WebCore::SVGTests::parseAttribute): (WebCore::SVGTests::conditionalProcessingAttributes): (WebCore::SVGTests::conditionalProcessingAttributesIfExists const): * Source/WebCore/svg/SVGTests.h: (WebCore::SVGConditionalProcessingAttributes::requiredFeatures): (WebCore::SVGConditionalProcessingAttributes::requiredExtensions): (WebCore::SVGConditionalProcessingAttributes::systemLanguage): (WebCore::SVGTests::requiredFeatures): (WebCore::SVGTests::requiredExtensions): (WebCore::SVGTests::systemLanguage): * Source/WebCore/svg/properties/SVGPropertyAccessorImpl.h: (WebCore::SVGConditionalProcessingAttributeAccessor::singleton): * Source/WebCore/svg/properties/SVGPropertyOwnerRegistry.h: (WebCore::SVGPropertyOwnerRegistry::registerConditionalProcessingAttributeProperty): Canonical link: https://commits.webkit.org/259772@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] da7026: Fix the MALLOC_HEAP_BREAKDOWN build
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: da702614aa846139682587a8f9f2a14ccd59ab8e https://github.com/WebKit/WebKit/commit/da702614aa846139682587a8f9f2a14ccd59ab8e Author: Cameron McCormack Date: 2023-02-02 (Thu, 02 Feb 2023) Changed paths: M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj M Source/JavaScriptCore/Sources.txt M Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp M Source/JavaScriptCore/heap/IsoMemoryAllocatorBase.cpp M Source/JavaScriptCore/heap/IsoMemoryAllocatorBase.h A Source/JavaScriptCore/jit/ExecutableMemoryHandle.cpp M Source/JavaScriptCore/jit/ExecutableMemoryHandle.h M Source/bmalloc/bmalloc/IsoHeapInlines.h M Source/bmalloc/bmalloc/IsoMallocFallback.cpp Log Message: --- Fix the MALLOC_HEAP_BREAKDOWN build https://bugs.webkit.org/show_bug.cgi?id=251561 Reviewed by Yusuke Suzuki. This fixes the MALLOC_HEAP_BREAKDOWN build. JSC's Structure object allocation is not compatible with IsoMemoryAllocator falling back to regular malloc, so we remove its support for MALLOC_HEAP_BREAKDOWN for now. * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/Sources.txt: * Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp: (JSC::IsoAlignedMemoryAllocator::tryAllocateMemory): (JSC::IsoAlignedMemoryAllocator::freeMemory): * Source/JavaScriptCore/heap/IsoMemoryAllocatorBase.cpp: (JSC::IsoMemoryAllocatorBase::IsoMemoryAllocatorBase): (JSC::IsoMemoryAllocatorBase::tryAllocateAlignedMemory): (JSC::IsoMemoryAllocatorBase::freeAlignedMemory): * Source/JavaScriptCore/heap/IsoMemoryAllocatorBase.h: * Source/JavaScriptCore/jit/ExecutableMemoryHandle.cpp: Copied from Source/JavaScriptCore/heap/IsoMemoryAllocatorBase.h. * Source/JavaScriptCore/jit/ExecutableMemoryHandle.h: * Source/bmalloc/bmalloc/BPlatform.h: * Source/bmalloc/bmalloc/IsoHeapInlines.h: * Source/bmalloc/bmalloc/IsoMallocFallback.cpp: (bmalloc::IsoMallocFallback::tryMalloc): (bmalloc::IsoMallocFallback::tryFree): Canonical link: https://commits.webkit.org/259771@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] cb846e: iOS-only revert of bug 249561 for causing memory r...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cb846ec740996265e347825b287e8a0c36e13d18 https://github.com/WebKit/WebKit/commit/cb846ec740996265e347825b287e8a0c36e13d18 Author: Cameron McCormack Date: 2023-02-02 (Thu, 02 Feb 2023) Changed paths: M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp Log Message: --- iOS-only revert of bug 249561 for causing memory regression https://bugs.webkit.org/show_bug.cgi?id=251559 rdar://104619725 Reviewed by Brent Fulgham. Unclear why, but for now let's leave the change on macOS and revert elsewhere. * Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::FontCache::platformReleaseNoncriticalMemory): Canonical link: https://commits.webkit.org/259769@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 416fea: Allow ImageBufferShareableBitmapBackend to create ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 416fea3fa24b480b17027d25701a92c96812f688 https://github.com/WebKit/WebKit/commit/416fea3fa24b480b17027d25701a92c96812f688 Author: Cameron McCormack Date: 2023-01-12 (Thu, 12 Jan 2023) Changed paths: M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp Log Message: --- Allow ImageBufferShareableBitmapBackend to create a ShareableBitmap using PixelFormat::BGRX https://bugs.webkit.org/show_bug.cgi?id=250542 rdar://104142373 Reviewed by Simon Fraser. After bug 250100, we can create tile ImageBuffers with PixelFormat::BGRX. We can get in here with UI side compositing enabled and accelerated drawing disabled. * Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp: (WebKit::ImageBufferShareableBitmapBackend::create): Canonical link: https://commits.webkit.org/258862@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 98cdf6: Pass --remote-layer-tree --use-gpu-process to run-...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 98cdf6d7c6187f1f348803e8936724a95d1a0b9f https://github.com/WebKit/WebKit/commit/98cdf6d7c6187f1f348803e8936724a95d1a0b9f Author: Cameron McCormack Date: 2023-01-11 (Wed, 11 Jan 2023) Changed paths: M Tools/CISupport/build-webkit-org/steps.py Log Message: --- Pass --remote-layer-tree --use-gpu-process to run-api-tests on GPUP bots https://bugs.webkit.org/show_bug.cgi?id=250357 rdar://103939125 Reviewed by Aakash Jain. * Tools/CISupport/build-webkit-org/steps.py: (RunAPITests.start): Canonical link: https://commits.webkit.org/258800@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bb0600: Add options to run-api-tests to enable GPU process...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bb0600277dfc92a32c5889b282bee303368e51d1 https://github.com/WebKit/WebKit/commit/bb0600277dfc92a32c5889b282bee303368e51d1 Author: Cameron McCormack Date: 2023-01-10 (Tue, 10 Jan 2023) Changed paths: M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Tools/Scripts/run-api-tests M Tools/Scripts/webkitpy/api_tests/runner.py M Tools/TestWebKitAPI/mac/mainMac.mm Log Message: --- Add options to run-api-tests to enable GPU process DOM rendering and UI side compositing https://bugs.webkit.org/show_bug.cgi?id=250358 rdar://104060036 Reviewed by Simon Fraser. We'll use these new options for the GPU process DOM rendering enabled test bot. * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::useGPUProcessForDOMRenderingEnabled const): * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::useGPUProcessForDOMRenderingEnabled const): (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::shouldAvoidSynchronouslyWaitingToPreventDeadlock const): * Source/WebKit/UIProcess/WebPageProxy.h: * Tools/Scripts/run-api-tests: * Tools/Scripts/webkitpy/api_tests/runner.py: (Runner.command_for_port): * Tools/TestWebKitAPI/mac/mainMac.mm: (main): Canonical link: https://commits.webkit.org/258740@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bd8e99: Use an alpha-less pixel format for 32 bit IOSurfac...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bd8e9982ce3ea314fbb6c5c132e391dd159b69ab https://github.com/WebKit/WebKit/commit/bd8e9982ce3ea314fbb6c5c132e391dd159b69ab Author: Cameron McCormack Date: 2023-01-09 (Mon, 09 Jan 2023) Changed paths: M Source/WebCore/platform/graphics/PixelBuffer.cpp M Source/WebCore/platform/graphics/PixelBufferConversion.cpp M Source/WebCore/platform/graphics/PixelFormat.cpp M Source/WebCore/platform/graphics/PixelFormat.h M Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp M Source/WebCore/platform/graphics/cocoa/IOSurface.h M Source/WebCore/platform/graphics/cocoa/IOSurface.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in Log Message: --- Use an alpha-less pixel format for 32 bit IOSurfaces when RemoteLayerBackingStore::Parameters::isOpaque is true https://bugs.webkit.org/show_bug.cgi?id=250100 rdar://103885395 Reviewed by Tim Horton. We use a std::optional to store the surface format since we sometimes use IOSurface with video surface types from WebRTC, which aren't represented by IOSurface::Format. For such surfaces we never need to care about the specific format. * Source/WebCore/platform/graphics/PixelBuffer.cpp: (WebCore::PixelBuffer::supportedPixelFormat): * Source/WebCore/platform/graphics/PixelBufferConversion.cpp: (WebCore::makeVImageCGImageFormat): (WebCore::convertImagePixels): * Source/WebCore/platform/graphics/PixelFormat.cpp: (WebCore::operator<<): * Source/WebCore/platform/graphics/PixelFormat.h: * Source/WebCore/platform/graphics/cocoa/IOSurface.h: * Source/WebCore/platform/graphics/cocoa/IOSurface.mm: (WebCore::formatFromSurface): (WebCore::IOSurface::IOSurface): (WebCore::IOSurface::bitmapConfiguration const): (WebCore::IOSurface::formatForPixelFormat): (WebCore::operator<<): (WebCore::IOSurface::format const): Deleted. * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::pixelFormat const): (WebKit::RemoteLayerBackingStore::bytesPerPixel const): * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: Canonical link: https://commits.webkit.org/258654@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 031263: Use an alpha-less pixel format for 32 bit IOSurfac...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 031263226f11431625f17f2d67acedfec43156da https://github.com/WebKit/WebKit/commit/031263226f11431625f17f2d67acedfec43156da Author: Cameron McCormack Date: 2023-01-05 (Thu, 05 Jan 2023) Changed paths: M Source/WebCore/platform/graphics/PixelBuffer.cpp M Source/WebCore/platform/graphics/PixelBufferConversion.cpp M Source/WebCore/platform/graphics/PixelFormat.cpp M Source/WebCore/platform/graphics/PixelFormat.h M Source/WebCore/platform/graphics/cocoa/IOSurface.h M Source/WebCore/platform/graphics/cocoa/IOSurface.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in Log Message: --- Use an alpha-less pixel format for 32 bit IOSurfaces when RemoteLayerBackingStore::Parameters::isOpaque is true https://bugs.webkit.org/show_bug.cgi?id=250100 rdar://103885395 Reviewed by Tim Horton. * Source/WebCore/platform/graphics/PixelBuffer.cpp: (WebCore::PixelBuffer::supportedPixelFormat): * Source/WebCore/platform/graphics/PixelBufferConversion.cpp: (WebCore::makeVImageCGImageFormat): (WebCore::convertImagePixels): * Source/WebCore/platform/graphics/PixelFormat.cpp: (WebCore::operator<<): * Source/WebCore/platform/graphics/PixelFormat.h: * Source/WebCore/platform/graphics/cocoa/IOSurface.h: * Source/WebCore/platform/graphics/cocoa/IOSurface.mm: (WebCore::formatFromSurface): (WebCore::IOSurface::IOSurface): (WebCore::IOSurface::bitmapConfiguration const): (WebCore::IOSurface::formatForPixelFormat): (WebCore::operator<<): (WebCore::IOSurface::format const): Deleted. * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::pixelFormat const): (WebKit::RemoteLayerBackingStore::bytesPerPixel const): * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: Canonical link: https://commits.webkit.org/258523@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] db0ade: Call FontCache::invalidate under memory pressure
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: db0ade3c62fb2c65e7b2b1a8060b886981ded622 https://github.com/WebKit/WebKit/commit/db0ade3c62fb2c65e7b2b1a8060b886981ded622 Author: Cameron McCormack Date: 2023-01-04 (Wed, 04 Jan 2023) Changed paths: M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp Log Message: --- Call FontCache::invalidate under memory pressure https://bugs.webkit.org/show_bug.cgi?id=249561 rdar://103498661 Reviewed by Myles C. Maxfield. The changes in bug 234061 caused us not to call FontCache::invalidate under memory pressure, which we should do, since it clears some data that the current platformReleaseNoncriticalMemory does not do. The two things that are done -- clearing m_systemFontDatabaseCoreText and m_fontFamilySpecificationCoreTextCache -- are also done by invalidate(), so we can replace them with an invalidate() call. * Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::FontCache::platformReleaseNoncriticalMemory): Canonical link: https://commits.webkit.org/258443@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 200c33: Add some GPUP test expectations and tweak fuzzines...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 200c33251bf1599f619ee122bc3da2052eeb0f9e https://github.com/WebKit/WebKit/commit/200c33251bf1599f619ee122bc3da2052eeb0f9e Author: Cameron McCormack Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M LayoutTests/TestExpectations M LayoutTests/css3/masking/mask-luminance-svg.html M LayoutTests/fast/gradients/alpha-premultiplied-representable-by-unpremultiplied.html M LayoutTests/fast/gradients/linear-two-hints.html M LayoutTests/imported/blink/css3/blending/mix-blend-mode-with-filters.html M LayoutTests/platform/mac-gpup/TestExpectations M LayoutTests/svg/clip-path/clip-opacity-translate.svg M LayoutTests/svg/gradients/spreadMethod.svg M LayoutTests/svg/gradients/spreadMethodDuplicateStop.svg M LayoutTests/svg/gradients/spreadMethodReversed.svg Log Message: --- Add some GPUP test expectations and tweak fuzziness for some tests https://bugs.webkit.org/show_bug.cgi?id=249692 Unreviewed test gardening. * LayoutTests/TestExpectations: * LayoutTests/css3/masking/mask-luminance-svg.html: * LayoutTests/fast/gradients/alpha-premultiplied-representable-by-unpremultiplied.html: * LayoutTests/fast/gradients/linear-two-hints.html: * LayoutTests/imported/blink/css3/blending/mix-blend-mode-with-filters.html: * LayoutTests/platform/mac-gpup/TestExpectations: * LayoutTests/svg/clip-path/clip-opacity-translate.svg: * LayoutTests/svg/gradients/spreadMethod.svg: * LayoutTests/svg/gradients/spreadMethodDuplicateStop.svg: * LayoutTests/svg/gradients/spreadMethodReversed.svg: Canonical link: https://commits.webkit.org/258178@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 07a986: Ensure CA adjusts video color space consistently w...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 07a9869a62aa3ddcaf190de43ee99e51de657040 https://github.com/WebKit/WebKit/commit/07a9869a62aa3ddcaf190de43ee99e51de657040 Author: Cameron McCormack Date: 2022-12-16 (Fri, 16 Dec 2022) Changed paths: M Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h M Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp Log Message: --- Ensure CA adjusts video color space consistently when drawing videos to a canvas https://bugs.webkit.org/show_bug.cgi?id=249446 rdar://88804270 Reviewed by Simon Fraser. * Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h: * Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp: (WebCore::PixelBufferConformerCV::imageFrom32BGRAPixelBuffer): Canonical link: https://commits.webkit.org/258030@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bd7c93: Fix [CEReactions] typo in HTMLMediaElement.idl
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bd7c9370d34ba426cdb0d25a80efbbc11db29e47 https://github.com/WebKit/WebKit/commit/bd7c9370d34ba426cdb0d25a80efbbc11db29e47 Author: Cameron McCormack Date: 2022-12-09 (Fri, 09 Dec 2022) Changed paths: M Source/WebCore/html/HTMLMediaElement.idl Log Message: --- Fix [CEReactions] typo in HTMLMediaElement.idl https://bugs.webkit.org/show_bug.cgi?id=249008 Reviewed by Ryosuke Niwa. * Source/WebCore/html/HTMLMediaElement.idl: Canonical link: https://commits.webkit.org/257612@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7d493d: Add support for and honor
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7d493da919b53d9c012a73806fc91305776276eb https://github.com/WebKit/WebKit/commit/7d493da919b53d9c012a73806fc91305776276eb Author: Cameron McCormack Date: 2022-12-07 (Wed, 07 Dec 2022) Changed paths: M LayoutTests/model-element/model-element-source-expected.txt M LayoutTests/model-element/model-element-source.html M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/HTMLModelElement.idl Log Message: --- Add support for and honor attributes https://bugs.webkit.org/show_bug.cgi?id=248855 rdar://problem/103056552 Reviewed by Antoine Quint. * LayoutTests/model-element/model-element-source-expected.txt: * LayoutTests/model-element/model-element-source.html: * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::isSupportedModelType): (WebCore::HTMLModelElement::selectModelSource const): (WebCore::HTMLModelElement::sourcesChanged): (WebCore::HTMLModelElement::parseAttribute): (WebCore::HTMLModelElement::isURLAttribute const): (WebCore::HTMLModelElement::attributeChanged): Deleted. * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/HTMLModelElement.idl: Canonical link: https://commits.webkit.org/257518@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] cf600d: Add width and height content attributes to
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cf600d68403f383e2755725ad982c2e82dc1bd27 https://github.com/WebKit/WebKit/commit/cf600d68403f383e2755725ad982c2e82dc1bd27 Author: Cameron McCormack Date: 2022-12-02 (Fri, 02 Dec 2022) Changed paths: A LayoutTests/model-element/model-element-width-height-expected.txt A LayoutTests/model-element/model-element-width-height-visual-expected.html A LayoutTests/model-element/model-element-width-height-visual.html A LayoutTests/model-element/model-element-width-height.html M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/HTMLModelElement.idl Log Message: --- Add width and height content attributes to https://bugs.webkit.org/show_bug.cgi?id=243974 rdar://99014926 Reviewed by Antoine Quint. For consistency with and , should have width and height content attributes that set presentational style for the width and height properties. * LayoutTests/model-element/model-element-width-height-expected.txt: Added. * LayoutTests/model-element/model-element-width-height-visual-expected.html: Added. * LayoutTests/model-element/model-element-width-height-visual.html: Added. * LayoutTests/model-element/model-element-width-height.html: Added. * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::HTMLModelElement::collectPresentationalHintsForAttribute): (WebCore::HTMLModelElement::hasPresentationalHintsForAttribute const): * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/HTMLModelElement.idl: Canonical link: https://commits.webkit.org/257294@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 808fe7: Avoid potential CAFenceHandle invalidation issue a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 808fe7d3ce9961043f7011493579ac2eec4a2a00 https://github.com/WebKit/WebKit/commit/808fe7d3ce9961043f7011493579ac2eec4a2a00 Author: Cameron McCormack Date: 2022-12-01 (Thu, 01 Dec 2022) Changed paths: M LayoutTests/platform/ios-wk2/TestExpectations M LayoutTests/platform/mac-wk2/TestExpectations M Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm Log Message: --- Avoid potential CAFenceHandle invalidation issue and re-enable model tests https://bugs.webkit.org/show_bug.cgi?id=237070 rdar://89325947 Reviewed by Antoine Quint. >From EWS runs it looks like these tests are no longer causing crashes. But the stack from those previous crashes leads me to believe that it could be skipping invalidating the CAFenceHandle when modelElementSizeDidChange's main thread task returns early might have been the cause. * LayoutTests/platform/ios-wk2/TestExpectations: * LayoutTests/platform/mac-wk2/TestExpectations: * Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm: (WebKit::ModelElementController::modelElementSizeDidChange): Canonical link: https://commits.webkit.org/257243@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 68c7e0: Bump test fuzziness for GPU process on macOS
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 68c7e095336e350fb25defd9c5e2cb040a0764e2 https://github.com/WebKit/WebKit/commit/68c7e095336e350fb25defd9c5e2cb040a0764e2 Author: Cameron McCormack Date: 2022-11-21 (Mon, 21 Nov 2022) Changed paths: M LayoutTests/fast/box-shadow/inset-spread-box-shadow-split-inline.html M LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut.html M LayoutTests/imported/blink/svg/text/obb-paintserver.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-default.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-none-image-document.html M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-none.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1a.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1b.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-marginBox-1a.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1a.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1b.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1a.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-preserve3d-007.html M LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/masked.html M LayoutTests/svg/clip-path/svg-in-html.html M LayoutTests/svg/compositing/outermost-svg-directly-composited-group-child-overflow-hidden.html Log Message: --- Bump test fuzziness for GPU process on macOS https://bugs.webkit.org/show_bug.cgi?id=247969 rdar://problem/102399611 Unreviewed test gardening. These are tests that are already fuzzy. * LayoutTests/compositing/geometry/css-clip-oversize.html: * LayoutTests/fast/box-shadow/inset-spread-box-shadow-split-inline.html: * LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut.html: * LayoutTests/imported/blink/svg/text/obb-paintserver.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-default.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-none-image-document.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-none.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1a.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1b.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-marginBox-1a.html
[webkit-changes] [WebKit/WebKit] cca77c: Make "disable font smoothing for testing" setting ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cca77c936d11e5420b67e06cc3bba364190a24ec https://github.com/WebKit/WebKit/commit/cca77c936d11e5420b67e06cc3bba364190a24ec Author: Cameron McCormack Date: 2022-11-19 (Sat, 19 Nov 2022) Changed paths: M Source/WebCore/platform/graphics/FontCascade.cpp M Source/WebCore/platform/graphics/FontCascade.h M Source/WebCore/platform/graphics/FontCascadeDescription.cpp M Source/WebCore/platform/graphics/FontCascadeDescription.h M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h M Source/WebCore/platform/text/TextFlags.cpp M Source/WebCore/platform/text/TextFlags.h M Source/WebCore/rendering/mathml/MathOperator.cpp M Source/WebCore/rendering/mathml/RenderMathMLToken.cpp M Source/WebCore/testing/Internals.cpp M Source/WebCore/testing/Internals.h M Source/WebCore/testing/Internals.idl M Source/WebKit/Shared/WebProcessCreationParameters.cpp M Source/WebKit/Shared/WebProcessCreationParameters.h M Source/WebKit/UIProcess/API/C/WKContext.cpp M Source/WebKit/UIProcess/API/C/WKContextPrivate.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessPool.h M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h M Source/WebKit/WebProcess/WebProcess.messages.in M Tools/WebKitTestRunner/TestController.cpp Log Message: --- Make "disable font smoothing for testing" setting work with GPU process https://bugs.webkit.org/show_bug.cgi?id=248063 rdar://102449449 Reviewed by Simon Fraser. Processes have a global variable in FontCascade.cpp to represent whether font smoothing should be forced off for testing purposes. WebKitTestRunner creates a WebProcessPool that initially has m_useFontSmoothingForTesting = false, and when the WebProcessPool creates a new Web process, it passes the current m_useFontSmoothingForTesting value as part of the WebProcessCreationParameters. And if a test turns smoothing back on explicitly, WebKitTestRunner will tell the WebProcessPool, which broadcasts the update to all of the current Web processes. We don't however pass this state to the GPU process when it is created by the WebProcessPool, or when WebKitTestRunner encounters a test that turns smoothing back on, which means that the GPU process never inhibits smoothing. This change: - renames the "use font smoothing for testing" concept to "disable font subpixel antialiasing", which more clearly and accurately conveys what it does, in the words of FontSmoothingMode - removes the Internals function that can re-allow font smoothing, since it's unused - calls the WKContext C API function just once, rather than before each test, since tests can no longer change the smoothing disabled state - removes the check for the global variable in FontCascade::drawGlyphs and modifies the FontSmoothingMode passed in to GraphicsContext::drawGlyphs instead (by having FontCascadeDescription::smoothingMode change it according to the global variable's state), so that it's captured as part of the DrawGlyphs display list item * Source/WebCore/platform/graphics/FontCascade.cpp: (WebCore::FontCascade::setDisableFontSubpixelAntialiasingForTesting): (WebCore::FontCascade::shouldDisableFontSubpixelAntialiasingForTesting): (WebCore::FontCascade::drawGlyphBuffer const): (WebCore::FontCascade::setShouldUseSmoothingForTesting): Deleted. (WebCore::FontCascade::shouldUseSmoothingForTesting): Deleted. * Source/WebCore/platform/graphics/FontCascade.h: * Source/WebCore/platform/graphics/FontCascadeDescription.cpp: (WebCore::FontCascadeDescription::usedFontSmoothing const): * Source/WebCore/platform/graphics/FontCascadeDescription.h: * Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp: (WebCore::FontCascade::drawGlyphs): * Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp: (WebCore::DisplayList::dumpItem): * Source/WebCore/platform/graphics/displaylists/DisplayListItems.h: (WebCore::DisplayList::DrawGlyphs::fontSmoothingMode const): * Source/WebCore/platform/text/TextFlags.cpp: (WebCore::operator<<): * Source/WebCore/platform/text/TextFlags.h: * Source/WebCore/rendering/mathml/MathOperator.cpp: (WebCore::MathOperator::paintGlyph): * Source/WebCore/rendering/mathml/RenderMathMLToken.cpp: (WebCore::RenderMathMLToken::paint): * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::setFontSmoothingEnabled): Deleted. * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: * Source/WebKit/Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode): * Source/WebKit/Shared/WebPr
[webkit-changes] [WebKit/WebKit] d5220e: Sort layout tests result page "image results" colu...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d5220e254917f82a86e5d6235224f82a03d25acb https://github.com/WebKit/WebKit/commit/d5220e254917f82a86e5d6235224f82a03d25acb Author: Cameron McCormack Date: 2022-11-15 (Tue, 15 Nov 2022) Changed paths: M LayoutTests/fast/harness/results.html Log Message: --- Sort layout tests result page "image results" column numerically by percentage https://bugs.webkit.org/show_bug.cgi?id=247956 rdar://problem/102384072 Reviewed by Simon Fraser. * LayoutTests/fast/harness/results.html: Canonical link: https://commits.webkit.org/256709@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ab56f3: Skip WebXR tests on macOS with UI side compositing...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ab56f36f001b90f5c0244d835c81a5b69352442a https://github.com/WebKit/WebKit/commit/ab56f36f001b90f5c0244d835c81a5b69352442a Author: Cameron McCormack Date: 2022-11-15 (Tue, 15 Nov 2022) Changed paths: M LayoutTests/platform/mac-gpup/TestExpectations Log Message: --- Skip WebXR tests on macOS with UI side compositing enabled https://bugs.webkit.org/show_bug.cgi?id=247953 Unreviewed test gardening. * LayoutTests/platform/mac-gpup/TestExpectations: Canonical link: https://commits.webkit.org/256708@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4488a9: Rebaseline some macOS tests with UI side compositi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4488a9d1dc6e0aaa0b04e246207c41b4f60e09d8 https://github.com/WebKit/WebKit/commit/4488a9d1dc6e0aaa0b04e246207c41b4f60e09d8 Author: Cameron McCormack Date: 2022-11-13 (Sun, 13 Nov 2022) Changed paths: M LayoutTests/platform/mac-gpup/TestExpectations A LayoutTests/platform/mac-gpup/compositing/backing/inline-block-no-backing-expected.txt A LayoutTests/platform/mac-gpup/compositing/backing/whitespace-nodes-no-backing-expected.txt A LayoutTests/platform/mac-gpup/compositing/fixed-image-loading-expected.txt A LayoutTests/platform/mac-gpup/compositing/tiling/huge-layer-img-expected.txt A LayoutTests/platform/mac-gpup/compositing/visibility/visibility-image-layers-dynamic-expected.txt A LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow-expected.txt A LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow-expected.txt A LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2-expected.txt A LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/latching/horizontal-overflow-in-vertical-overflow-expected.txt A LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch-expected.txt A LayoutTests/platform/mac-gpup/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe-expected.txt Log Message: --- Rebaseline some macOS tests with UI side compositing enabled https://bugs.webkit.org/show_bug.cgi?id=247876 Unreviewed test gardening. * LayoutTests/platform/mac-gpup/TestExpectations: Skip tests that don't apply in this configuration. * LayoutTests/platform/mac-gpup/compositing/backing/inline-block-no-backing-expected.txt: * LayoutTests/platform/mac-gpup/compositing/backing/whitespace-nodes-no-backing-expected.txt: * LayoutTests/platform/mac-gpup/compositing/fixed-image-loading-expected.txt: * LayoutTests/platform/mac-gpup/compositing/tiling/huge-layer-img-expected.txt: Layer tree dumps now include (drawsContent) and (usingTiledLayer). * LayoutTests/platform/mac-gpup/compositing/visibility/visibility-image-layers-dynamic-expected.txt: Same, except the layer bounds are also updated because the layer tree dump is in the content. * LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow-expected.txt: * LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow-expected.txt: * LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2-expected.txt: * LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/latching/horizontal-overflow-in-vertical-overflow-expected.txt: * LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch-expected.txt: * LayoutTests/platform/mac-gpup/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe-expected.txt: Scrolling tree does not exist in the Web process and so is no longer included in the layer dump output. Canonical link: https://commits.webkit.org/256634@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2179bd: Look for configuration-specific test expectation f...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2179bd862b65cfd9c27eeed3236a93bd6b509698 https://github.com/WebKit/WebKit/commit/2179bd862b65cfd9c27eeed3236a93bd6b509698 Author: Cameron McCormack Date: 2022-11-13 (Sun, 13 Nov 2022) Changed paths: R LayoutTests/gpu-process/TestExpectations A LayoutTests/platform/mac-gpup/TestExpectations M Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py Log Message: --- Look for configuration-specific test expectation files for --enable-gpu-process --remote-layer-tree https://bugs.webkit.org/show_bug.cgi?id=247868 rdar://problem/102297656 Reviewed by Simon Fraser. Currently we just look at LayoutTests/gpu-process/TestExpectations, but we don't look for any -expected files in that directory. This patch moves the directory to LayoutTests/platform/ and uses it as an additional platform directory when --enable-gpu-process and --remote-layer-tree are specified. * LayoutTests/gpu-process/TestExpectations: Removed. * LayoutTests/platform/mac-gpup/TestExpectations: Added. * Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): (_set_up_derived_options): Canonical link: https://commits.webkit.org/256630@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 285aa4: Let RemoteLayerTreeDrawingArea respond to SetDevic...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 285aa4f77035ee854f9da25f49ee57549f0f5dfd https://github.com/WebKit/WebKit/commit/285aa4f77035ee854f9da25f49ee57549f0f5dfd Author: Cameron McCormack Date: 2022-11-13 (Sun, 13 Nov 2022) Changed paths: M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm Log Message: --- Let RemoteLayerTreeDrawingArea respond to SetDeviceScaleFactor on macOS https://bugs.webkit.org/show_bug.cgi?id=247867 rdar://102277376 Reviewed by Simon Fraser. This is the cause of most of the hidpi test failures on macOS with UI side compositing enabled. * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::setDeviceScaleFactor): Canonical link: https://commits.webkit.org/256628@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3c5d90: Tweak canvas-createImageBitmap-video-resize.html s...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3c5d90c46ca5b1bb42993250fae451d81981c950 https://github.com/WebKit/WebKit/commit/3c5d90c46ca5b1bb42993250fae451d81981c950 Author: Cameron McCormack Date: 2022-11-07 (Mon, 07 Nov 2022) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize.html Log Message: --- Tweak canvas-createImageBitmap-video-resize.html so it passes on iOS https://bugs.webkit.org/show_bug.cgi?id=247558 rdar://100330154 Reviewed by Jer Noble. 1. Use requestVideoFrameCallback when available, so that we're not subject to the flakiness of video frame data being available when using oncanplaythrough. 2. Bump up the hard coded fuzziness for the image comparison. * LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize.html: Canonical link: https://commits.webkit.org/256422@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 64eee9: Rebuild SVGResources when relevant style property ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 64eee924e80890ac154ac53e1836fb7a4d4d9916 https://github.com/WebKit/WebKit/commit/64eee924e80890ac154ac53e1836fb7a4d4d9916 Author: Cameron McCormack Date: 2022-11-04 (Fri, 04 Nov 2022) Changed paths: M LayoutTests/TestExpectations M LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations M Source/WebCore/rendering/svg/SVGResourcesCache.cpp Log Message: --- Rebuild SVGResources when relevant style property changes even with StyleDifference::Equal https://bugs.webkit.org/show_bug.cgi?id=243808 rdar://97335496 Reviewed by Said Abou-Hallawa. Consulting the StyleDifference value in SVGResourceCache::clientStyleChanged is not an accurate way to determine whether any property values were changed. Specifically, if only the filter property is changed, RenderStyle::diff returns StyleDifference::Equal and includes filter in the list of "context-sensitive properties". If the context condition is met (which per RenderElement::adjustStyleDifference is hasLayer()), we'll upgrade the StyleDifference to some other value. But if not, which is the case for SVG elements currently, we'll end up returning early from SVGResourceCache::clientStyleChanged, and won't rebuild resources in response to a property change. This patch removes the early return on StyleDifference::Equal. (The other use of the StyleDifference in this function, to avoid some work when filter primitive properties are changed, is OK, since the properties they care about will return accurate StyleDifference values.) An alternative approach would be to introduce a new StyleDifference value "UpdateSVGResources" to use when !hasLayer() and the filter property changes. * Source/WebCore/rendering/svg/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::clientStyleChanged): Canonical link: https://commits.webkit.org/256335@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0d3215: Tweak more test expectations to prepare for accele...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0d3215a7d6d654992365c7c8ffaa90ce03b214f7 https://github.com/WebKit/WebKit/commit/0d3215a7d6d654992365c7c8ffaa90ce03b214f7 Author: Cameron McCormack Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-027.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-left-radius-004.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-left-radius-004.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/css-box-shadow-001.html M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-clip-015.html M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-clip-016.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1a.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1b.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1c.html M LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/preserve3d-and-flattening-z-order-008.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/skewX/svg-skewxy-001.html A LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/mac-wk2/TestExpectations A LayoutTests/platform/mac-wk2/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/svg/animations/polyline-set.svg M LayoutTests/svg/compositing/outermost-svg-directly-composited-group-child-overflow-hidden.html M LayoutTests/svg/filters/feImage-element-primitive-subregion.svg Log Message: --- Tweak more test expectations to prepare for accelerated drawing on macOS https://bugs.webkit.org/show_bug.cgi?id=247093 Unreviewed test gardening. * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-027.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-left-radius-004.xht: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-left-radius-004.xht: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/css-box-shadow-001.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-clip-015.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-clip-016.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1a.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1b.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1c.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/preserve3d-and-flattening-z-order-008.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/skewX/svg-skewxy-001.html: * LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Added. * LayoutTests/platform/mac-wk2/TestExpectations: * LayoutTests/platform/mac-wk2/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Added. * LayoutTests/svg/animations/polyline-set.svg: * LayoutTests/svg/compositing/outermost-svg-directly-composited-group-child-overflow-hidden.html: * LayoutTests/svg/filters/feImage-element-primitive-subregion.svg: Canonical link: https://commits.webkit.org/256053@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 21308f: Switch FontCache to use ThreadSpecific instead of ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 21308fa925b845ce1d059459879ff397e611bb65 https://github.com/WebKit/WebKit/commit/21308fa925b845ce1d059459879ff397e611bb65 Author: Cameron McCormack Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M Source/WebCore/css/CSSFontSelector.cpp M Source/WebCore/platform/ThreadGlobalData.cpp M Source/WebCore/platform/ThreadGlobalData.h M Source/WebCore/platform/graphics/FontCache.cpp M Source/WebCore/platform/graphics/FontCache.h M Source/WebCore/workers/WorkerOrWorkletThread.cpp Log Message: --- Switch FontCache to use ThreadSpecific instead of ThreadGlobalData https://bugs.webkit.org/show_bug.cgi?id=244919 Reviewed by Youenn Fablet. ThreadGlobalData doesn't handle the case where we try to access it while it's being shut down, and the font code tries to do that. ThreadSpecific should be faster, and safe for this case. * Source/WebCore/css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::~CSSFontSelector): * Source/WebCore/platform/ThreadGlobalData.cpp: (WebCore::ThreadGlobalData::initializeFontCache): Deleted. * Source/WebCore/platform/ThreadGlobalData.h: (WebCore::ThreadGlobalData::fontCache): Deleted. (WebCore::ThreadGlobalData::fontCacheIfExists): Deleted. (WebCore::ThreadGlobalData::fontCacheIfNotDestroyed): Deleted. * Source/WebCore/platform/graphics/FontCache.cpp: (WebCore::fontCacheForCurrentThread): (WebCore::FontCache::forCurrentThread): (WebCore::FontCache::forCurrentThreadIfExists): (WebCore::FontCache::destroy): (WebCore::FontCache::forCurrentThreadIfNotDestroyed): Deleted. * Source/WebCore/platform/graphics/FontCache.h: * Source/WebCore/workers/WorkerOrWorkletThread.cpp: (WebCore::WorkerOrWorkletThread::workerOrWorkletThread): Canonical link: https://commits.webkit.org/256048@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 216acd: Avoid geometry update assertions in some tests whe...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 216acdc0bca8c93ccd03e1fd0706bcbe5270652b https://github.com/WebKit/WebKit/commit/216acdc0bca8c93ccd03e1fd0706bcbe5270652b Author: Cameron McCormack Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M LayoutTests/platform/ios-simulator-wk2/TestExpectations A LayoutTests/platform/ios-simulator-wk2/accessibility/visible-character-range-height-changes-expected.txt A LayoutTests/platform/ios-simulator-wk2/accessibility/visible-character-range-width-changes-expected.txt M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm Log Message: --- Avoid geometry update assertions in some tests when UI side compositing is enabled on macOS https://bugs.webkit.org/show_bug.cgi?id=242884 rdar://97583976 Reviewed by Kimmo Kinnunen. Some tests hit this assertion when run on macOS with UI side compositing enabeld: ASSERTION FAILED: m_isWaitingForDidUpdateGeometry .../OpenSource/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm(99) : virtual void WebKit::RemoteLayerTreeDrawingAreaProxy::didUpdateGeometry() This is due to the set calling testRunner.setViewSize(...), which causes UpdateGeometry / DidUpdateGeometry messages to be sent synchronously. This means we re-entrantly call RemoteLayerTreeDrawingAreaProxy::didUpdateGeometry, which asserts m_isWaitingForDidUpdateGeometry, before the `m_isWaitingForDidUpdateGeometry = true` assignment just after the send(Messages::DrawingArea::UpdateGeometry(...)) call in RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry is run. Move the assignment before the send() call to avoid this. * LayoutTests/platform/ios-simulator-wk2/accessibility/visible-character-range-height-changes-expected.txt: Added. * LayoutTests/platform/ios-simulator-wk2/accessibility/visible-character-range-width-changes-expected.txt: Added. * LayoutTests/platform/ios-simulator-wk2/TestExpectations: * Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry): Canonical link: https://commits.webkit.org/256042@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4e594c: Don't default to a fixed layout WKContentView on m...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4e594c945afdb3f67afc36c4a2298238c5863567 https://github.com/WebKit/WebKit/commit/4e594c945afdb3f67afc36c4a2298238c5863567 Author: Cameron McCormack Date: 2022-10-25 (Tue, 25 Oct 2022) Changed paths: M Source/WebKit/UIProcess/API/mac/WKContentViewMac.mm Log Message: --- Don't default to a fixed layout WKContentView on macOS https://bugs.webkit.org/show_bug.cgi?id=247045 Reviewed by Simon Fraser. * Source/WebKit/UIProcess/API/mac/WKContentViewMac.mm: (-[WKContentView initWithFrame:page:]): Canonical link: https://commits.webkit.org/255999@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 355426: Simplify FEComponentTransfer coding
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 355426c15db9b7f3fec2a3a35a743cdb5b1fc0d3 https://github.com/WebKit/WebKit/commit/355426c15db9b7f3fec2a3a35a743cdb5b1fc0d3 Author: Cameron McCormack Date: 2022-10-24 (Mon, 24 Oct 2022) Changed paths: M Source/WebCore/platform/graphics/filters/FEComponentTransfer.h Log Message: --- Simplify FEComponentTransfer coding https://bugs.webkit.org/show_bug.cgi?id=246908 Reviewed by Said Abou-Hallawa. * Source/WebCore/platform/graphics/filters/FEComponentTransfer.h: (WebCore::FEComponentTransfer::encode const): (WebCore::FEComponentTransfer::decode): Canonical link: https://commits.webkit.org/255906@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 10f809: Add coders for std::array and WTF::EnumeratedArray
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 10f809a2fa905f2dfc618bc02de7684113b22084 https://github.com/WebKit/WebKit/commit/10f809a2fa905f2dfc618bc02de7684113b22084 Author: Cameron McCormack Date: 2022-10-23 (Sun, 23 Oct 2022) Changed paths: M Source/WTF/wtf/EnumeratedArray.h M Source/WTF/wtf/Forward.h M Source/WebKit/Platform/IPC/ArgumentCoders.h Log Message: --- Add coders for std::array and WTF::EnumeratedArray https://bugs.webkit.org/show_bug.cgi?id=246898 Reviewed by Myles C. Maxfield. * Source/WTF/wtf/EnumeratedArray.h: * Source/WTF/wtf/Forward.h: * Source/WebKit/Platform/IPC/ArgumentCoders.h: Canonical link: https://commits.webkit.org/255901@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4abefb: Update FEComponentTransfer filter effect when a ch...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4abefb791c7642bbf2f32d92d246010370c8183d https://github.com/WebKit/WebKit/commit/4abefb791c7642bbf2f32d92d246010370c8183d Author: Cameron McCormack Date: 2022-10-22 (Sat, 22 Oct 2022) Changed paths: M LayoutTests/svg/resource-invalidation/filter-resource-invalidation-expected.html M LayoutTests/svg/resource-invalidation/filter-resource-invalidation.html M Source/WTF/wtf/EnumeratedArray.h M Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp M Source/WebCore/platform/graphics/filters/FEComponentTransfer.h M Source/WebCore/svg/SVGComponentTransferFunctionElement.cpp M Source/WebCore/svg/SVGComponentTransferFunctionElement.h A Source/WebCore/svg/SVGComponentTransferFunctionElementInlines.h M Source/WebCore/svg/SVGFEComponentTransferElement.cpp M Source/WebCore/svg/SVGFEComponentTransferElement.h M Source/WebCore/svg/SVGFEFuncAElement.h M Source/WebCore/svg/SVGFEFuncBElement.h M Source/WebCore/svg/SVGFEFuncGElement.h M Source/WebCore/svg/SVGFEFuncRElement.h M Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp M Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h Log Message: --- Update FEComponentTransfer filter effect when a child transfer function attribute changes https://bugs.webkit.org/show_bug.cgi?id=246602 Reviewed by Said Abou-Hallawa. Nothing currently causes the FEComponentTransfer effect to get updated when an attribute on a child feFunc[RGBA] element changes. Because we there are multiple child elements, we can't call primitiveAttributeChanged on the parent SVGFEComponentTransferElement and go through the normal setFilterEffectAttribute path like the SVGFELightElement classes do. So instead we add a new function, primitiveAttributeOnChildChanged, which takes the element as well. * LayoutTests/svg/resource-invalidation/filter-resource-invalidation-expected.html: * LayoutTests/svg/resource-invalidation/filter-resource-invalidation.html: Add a sub-test for changing one of the feFuncX attributes. * Source/WTF/wtf/EnumeratedArray.h: (WTF::EnumeratedArray::index const): (WTF::EnumeratedArray::index): Deleted. This function needs to be const for `EnumeratedArray::operator[] const` to work. * Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp: (WebCore::FEComponentTransfer::create): (WebCore::FEComponentTransfer::FEComponentTransfer): (WebCore::FEComponentTransfer::setType): (WebCore::FEComponentTransfer::setSlope): (WebCore::FEComponentTransfer::setIntercept): (WebCore::FEComponentTransfer::setAmplitude): (WebCore::FEComponentTransfer::setExponent): (WebCore::FEComponentTransfer::setOffset): (WebCore::FEComponentTransfer::setTableValues): Setters for individual attributes of a transfer function. (WebCore::FEComponentTransfer::externalRepresentation const): * Source/WebCore/platform/graphics/filters/FEComponentTransfer.h: (WebCore::FEComponentTransfer::redFunction const): (WebCore::FEComponentTransfer::greenFunction const): (WebCore::FEComponentTransfer::blueFunction const): (WebCore::FEComponentTransfer::alphaFunction const): (WebCore::FEComponentTransfer::encode const): Store the four transfer functions in an EnumeratedArray to make access from the new setter functions above more convenient. * Source/WebCore/svg/SVGComponentTransferFunctionElementInlines.h: Added. * Source/WebCore/svg/SVGComponentTransferFunctionElement.cpp: (WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged): * Source/WebCore/svg/SVGComponentTransferFunctionElement.h: (WebCore::SVGComponentTransferFunctionElement::channel const): (isType): Add type specialization support for SVGComponentTransferFunctionElement, to avoid code that checks for each of the four feFuncX element types explicitly. * Source/WebCore/svg/SVGFEComponentTransferElement.cpp: (WebCore::SVGFEComponentTransferElement::createFilterEffect const): (WebCore::isRelevantTransferFunctionElement): Used to ensure we only update the effect if it's the last transfer function element of a given name that's being modified. (WebCore::SVGFEComponentTransferElement::setFilterEffectAttributeFromChild): Update the FEComponentTransfer effect when an attribute's changed. (WebCore::SVGFEComponentTransferElement::transferFunctionAttributeChanged): * Source/WebCore/svg/SVGFEComponentTransferElement.h: * Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeOnChildChanged): * Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h: (WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttributeFromChild): * Source/WebCore/svg/SVGFEFuncAElement.h: * Source/WebCore/svg/SVGFEFuncBElement.h: * Source/WebCore/svg/SVGFEFuncGElement.h: * Source/WebCore/svg/SVGFEFuncRElement.h: Canonical link: https://commits.we
[webkit-changes] [WebKit/WebKit] 46ddd2: Mark svg/gradients/spreadMethodClose2.svg as expec...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 46ddd231c79c847c09ce3d5dd55241d2ced771e1 https://github.com/WebKit/WebKit/commit/46ddd231c79c847c09ce3d5dd55241d2ced771e1 Author: Cameron McCormack Date: 2022-10-19 (Wed, 19 Oct 2022) Changed paths: M LayoutTests/platform/mac/TestExpectations Log Message: --- Mark svg/gradients/spreadMethodClose2.svg as expected fail on macOS https://bugs.webkit.org/show_bug.cgi?id=246772 Unreviewed test gardening. * LayoutTests/platform/mac/TestExpectations: Canonical link: https://commits.webkit.org/255766@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 757cc7: Update fuzzy annotations for tests running on macO...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 757cc7c481205eb16fe4697f35820de6d4ec699c https://github.com/WebKit/WebKit/commit/757cc7c481205eb16fe4697f35820de6d4ec699c Author: Cameron McCormack Date: 2022-10-19 (Wed, 19 Oct 2022) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-027.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-028.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-029.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-030.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-031.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-left-radius-004.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-right-radius-004.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-image-repeat-round-2.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-left-radius-004.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-right-radius-004.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/css-box-shadow-001.html M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-clip-015.html M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-clip-016.html M LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/justify-content-001.htm M LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/justify-content-005.htm M LayoutTests/imported/w3c/web-platform-tests/css/css-images/tiled-radial-gradients.html M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-c.html M LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-dashed-000.xht M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-001.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/css-skew-002.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/preserve3d-and-flattening-z-order-008.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/skew-test1.html M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transforms-rotate-degree-45.html M LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/masked.html M LayoutTests/scrollingcoordinator/mac/rtl-programmatic-overflow-scroll.html M LayoutTests/svg/animations/animated-string-href.svg M LayoutTests/svg/clip-path/clip-path-line-use-before-defined.svg M LayoutTests/svg/clip-path/clip-path-shape-rounded-inset-1.svg M LayoutTests/svg/clip-path/clip-path-shape-rounded-inset-2.svg M LayoutTests/svg/clip-path/svg-in-html.html M LayoutTests/svg/compositing/outermost-svg-with-border-overflow-visible.html M LayoutTests/svg/compositing/outermost-svg-with-border.html M LayoutTests/svg/custom/hidpi-masking-clipping.svg M LayoutTests/svg/custom/local-url-reference-stroke.html M LayoutTests/svg/custom/pattern-content-inheritance-cycle.svg M LayoutTests/svg/gradients/spreadMethodAlpha.svg M LayoutTests/svg/gradients/spreadMethodDiagonal.svg M LayoutTests/svg/gradients/spreadMethodDiagonal2.svg M LayoutTests/tiled-drawing/top-content-inset-fixed-attachment-local.html M LayoutTests/tiled-drawing/top-content-inset-fixed-attachment.html Log Message: --- Update fuzzy annotations for tests running on macOS with accelerated drawing enabled https://bugs.webkit.org/show_bug.cgi?id=246674 Unreviewed test gardening. * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-027.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-028.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-029.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-030.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-031.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-left-radius-004.xht: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-right-radius-004.xht: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-image-repeat-round-2.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-left-radius-004.xht: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-right-radius-004.xht: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/css-box-shadow-001.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain
[webkit-changes] [WebKit/WebKit] 57f87f: Factor out default GPU process DOM rendering enabl...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 57f87f5e4bc6468a6afd40d749f2b8a5b0981233 https://github.com/WebKit/WebKit/commit/57f87f5e4bc6468a6afd40d749f2b8a5b0981233 Author: Cameron McCormack Date: 2022-10-13 (Thu, 13 Oct 2022) Changed paths: M Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml M Source/WTF/wtf/PlatformEnable.h Log Message: --- Factor out default GPU process DOM rendering enabled state https://bugs.webkit.org/show_bug.cgi?id=246444 Reviewed by Tim Horton. * Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml: * Source/WTF/wtf/PlatformEnable.h: Canonical link: https://commits.webkit.org/255473@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b9d359: Increase padding between StreamConnectionBuffer::H...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b9d35939c4a289e7bfcb9016739ade102d262f1c https://github.com/WebKit/WebKit/commit/b9d35939c4a289e7bfcb9016739ade102d262f1c Author: Cameron McCormack Date: 2022-10-12 (Wed, 12 Oct 2022) Changed paths: M LayoutTests/ipc/stream-buffer-read-write.html M LayoutTests/ipc/stream-check-autoreleasepool.html M LayoutTests/ipc/stream-sync-crash-no-timeout.html M LayoutTests/ipc/stream-sync-reply-shared-memory.html M Source/WebKit/Platform/IPC/StreamConnectionBuffer.h Log Message: --- Increase padding between StreamConnectionBuffer::Header fields https://bugs.webkit.org/show_bug.cgi?id=246390 Reviewed by Kimmo Kinnunen. If these fields should be on separate CPU cache lines, the alignment of the second field needs to be at least 128 bytes on ARM64. It's 64 bytes on some other architectures (including x86_64), but we use 128 everywhere for simplicity. * LayoutTests/ipc/stream-buffer-read-write.html: * LayoutTests/ipc/stream-check-autoreleasepool.html: * LayoutTests/ipc/stream-sync-crash-no-timeout.html: * LayoutTests/ipc/stream-sync-reply-shared-memory.html: * Source/WebKit/Platform/IPC/StreamConnectionBuffer.h: Canonical link: https://commits.webkit.org/255469@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 09496e: Encode WebCore::Paths using a trailing "end of pat...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 09496e855222f4a787bed209454e539b1a732ba0 https://github.com/WebKit/WebKit/commit/09496e855222f4a787bed209454e539b1a732ba0 Author: Cameron McCormack Date: 2022-10-12 (Wed, 12 Oct 2022) Changed paths: M Source/WTF/wtf/EnumTraits.h M Source/WebCore/platform/graphics/GraphicsContextState.cpp M Source/WebCore/platform/graphics/Path.h Log Message: --- Encode WebCore::Paths using a trailing "end of path" marker instead of an element count prefix https://bugs.webkit.org/show_bug.cgi?id=246322 rdar://100873493 Reviewed by Wenson Hsieh. The WebCore::Path decoder doesn't need to know the number of path elements ahead of time. Changing to use an "end of path" marker saves some space in the encoding, since it'll take up one byte as opposed to the 16 bytes for the path element count. Add EncodedPathElementType to represent "a PathElement::Type or an end of path marker" and which can encode its value in a single byte. Do this rather than: * using std::optional or Markable, as both will write out a boolean "is empty/present" value, which is wasteful, or * adding an EndOfPath enum value to PathElement::Type, as then various call sites unrelated to encoding will need to worry about it. * Source/WTF/wtf/EnumTraits.h: * Source/WebCore/platform/graphics/GraphicsContextState.cpp: (WebCore::toIndex): * Source/WebCore/platform/graphics/Path.h: (WebCore::Path::EncodedPathElementType::encode): (WebCore::Path::EncodedPathElementType::decode): (WebCore::Path::encode const): (WebCore::Path::decode): Canonical link: https://commits.webkit.org/255452@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 520379: Fix comment in Assertions.h to point to the right ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 520379e30f3b2b6d4de9957ab2afc97185879bc4 https://github.com/WebKit/WebKit/commit/520379e30f3b2b6d4de9957ab2afc97185879bc4 Author: Cameron McCormack Date: 2022-10-10 (Mon, 10 Oct 2022) Changed paths: M Source/WTF/wtf/Assertions.h Log Message: --- Fix comment in Assertions.h to point to the right place https://bugs.webkit.org/show_bug.cgi?id=246324 Unreviewed comment fix. * Source/WTF/wtf/Assertions.h: Canonical link: https://commits.webkit.org/255378@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6cfe0a: Update MediaSessionInfo media elements with a srcO...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6cfe0a4e9efc3217d24a30f17e312b951695782b https://github.com/WebKit/WebKit/commit/6cfe0a4e9efc3217d24a30f17e312b951695782b Author: Cameron McCormack Date: 2022-09-28 (Wed, 28 Sep 2022) Changed paths: M Source/WebCore/html/HTMLMediaElement.h M Source/WebCore/html/MediaElementSession.cpp M Source/WebCore/platform/graphics/MediaUsageInfo.h Log Message: --- Update MediaSessionInfo media elements with a srcObject https://bugs.webkit.org/show_bug.cgi?id=245753 rdar://problem/100477469 Reviewed by Jer Noble. The optimization at the top of MediaElementSession::updateMediaUsageIfChanged does not take into account media elements that have no currentSrc but do have a srcObject. Don't exit early for such elements. Store an additional bit of information on MediaSessionInfo to represent whether the element has any source (currentSrc or srcObject). * Source/WebCore/html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::hasSource const): * Source/WebCore/html/MediaElementSession.cpp: (WebCore::MediaElementSession::updateMediaUsageIfChanged): * Source/WebCore/platform/graphics/MediaUsageInfo.h: (WebCore::MediaUsageInfo::operator== const): (WebCore::MediaUsageInfo::encode const): (WebCore::MediaUsageInfo::decode): Canonical link: https://commits.webkit.org/254948@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes