[webkit-changes] [292377] trunk/Source/WebCore
Title: [292377] trunk/Source/WebCore Revision 292377 Author zandober...@gmail.com Date 2022-04-04 23:54:36 -0700 (Mon, 04 Apr 2022) Log Message [GTK][WPE] Use UnixFileDescriptor in DMABufObject, DMABufReleaseFlag https://bugs.webkit.org/show_bug.cgi?id=238733 Reviewed by Adrian Perez de Castro. Replace integer values for file descriptors in the DMABufObject and DMABufReleaseFlag structs with UnixFileDescriptors. This enables simply defaulting the destructors and the move constructors and assignment operatos for the two types since the fd wrapper takes care of these operations. Additionally, when constructing the UnixFileDescriptor objects from file descriptors coming from different sources, we can more easily adapt to the need for either adoption or duplication of the passed-in file descriptor right there in the constructor invocation. * platform/graphics/gbm/DMABufObject.h: (WebCore::DMABufObject::~DMABufObject): Deleted. (WebCore::DMABufObject::operator=): Deleted. * platform/graphics/gbm/DMABufReleaseFlag.h: (WebCore::DMABufReleaseFlag::DMABufReleaseFlag): (WebCore::DMABufReleaseFlag::dup const): (WebCore::DMABufReleaseFlag::released const): (WebCore::DMABufReleaseFlag::release): (WebCore::DMABufReleaseFlag::~DMABufReleaseFlag): Deleted. (WebCore::DMABufReleaseFlag::operator=): Deleted. * platform/graphics/gbm/GBMBufferSwapchain.cpp: (WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor): * platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: (WebCore::GraphicsContextGLANGLE::makeContextCurrent): * platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: (WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gbm/DMABufObject.h trunk/Source/WebCore/platform/graphics/gbm/DMABufReleaseFlag.h trunk/Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp trunk/Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (292376 => 292377) --- trunk/Source/WebCore/ChangeLog 2022-04-05 05:38:59 UTC (rev 292376) +++ trunk/Source/WebCore/ChangeLog 2022-04-05 06:54:36 UTC (rev 292377) @@ -1,3 +1,40 @@ +2022-04-04 Zan Dobersek + +[GTK][WPE] Use UnixFileDescriptor in DMABufObject, DMABufReleaseFlag +https://bugs.webkit.org/show_bug.cgi?id=238733 + +Reviewed by Adrian Perez de Castro. + +Replace integer values for file descriptors in the DMABufObject and +DMABufReleaseFlag structs with UnixFileDescriptors. This enables +simply defaulting the destructors and the move constructors and +assignment operatos for the two types since the fd wrapper takes care +of these operations. + +Additionally, when constructing the UnixFileDescriptor objects from +file descriptors coming from different sources, we can more easily +adapt to the need for either adoption or duplication of the passed-in +file descriptor right there in the constructor invocation. + +* platform/graphics/gbm/DMABufObject.h: +(WebCore::DMABufObject::~DMABufObject): Deleted. +(WebCore::DMABufObject::operator=): Deleted. +* platform/graphics/gbm/DMABufReleaseFlag.h: +(WebCore::DMABufReleaseFlag::DMABufReleaseFlag): +(WebCore::DMABufReleaseFlag::dup const): +(WebCore::DMABufReleaseFlag::released const): +(WebCore::DMABufReleaseFlag::release): +(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag): Deleted. +(WebCore::DMABufReleaseFlag::operator=): Deleted. +* platform/graphics/gbm/GBMBufferSwapchain.cpp: +(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const): +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: +(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor): +* platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: +(WebCore::GraphicsContextGLANGLE::makeContextCurrent): +* platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: +(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData): + 2022-04-04 Ziran Sun [Forms] change the default appearance of button, checkbox etc. to 'auto' Modified: trunk/Source/WebCore/platform/graphics/gbm/DMABufObject.h (292376 => 292377) --- trunk/Source/WebCore/platform/graphics/gbm/DMABufObject.h 2022-04-05 05:38:59 UTC (rev 292376) +++ trunk/Source/WebCore/platform/graphics/gbm/DMABufObject.h 2022-04-05 06:54:36 UTC (rev 292377) @@ -32,6 +32,7 @@ #include #include #incl
[webkit-changes] [292376] trunk
Title: [292376] trunk Revision 292376 Author z...@igalia.com Date 2022-04-04 22:38:59 -0700 (Mon, 04 Apr 2022) Log Message [Forms] change the default appearance of button, checkbox etc. to 'auto' https://bugs.webkit.org/show_bug.cgi?id=236012 Reviewed by Tim Nguyen. LayoutTests/imported/w3c: * web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Source/WebCore: Change the default appearance of a few element to 'auto'. This shouldn't change rendering behavior, but changes LayoutTests: * platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Removed. * platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Removed. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/html.css trunk/Source/WebCore/rendering/RenderTheme.cpp trunk/Source/WebCore/rendering/RenderThemeIOS.mm Removed Paths trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/ Diff Modified: trunk/LayoutTests/ChangeLog (292375 => 292376) --- trunk/LayoutTests/ChangeLog 2022-04-05 05:36:45 UTC (rev 292375) +++ trunk/LayoutTests/ChangeLog 2022-04-05 05:38:59 UTC (rev 292376) @@ -1,3 +1,13 @@ +2022-04-04 Ziran Sun + +[Forms] change the default appearance of button, checkbox etc. to 'auto' +https://bugs.webkit.org/show_bug.cgi?id=236012 + +Reviewed by Tim Nguyen. + +* platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Removed. +* platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Removed. + 2022-04-04 Matteo Flores REGRESSION(r291770-r291762): [ iOS ] css3/background/background-repeat-round-auto1.html is a flaky image failure Modified: trunk/LayoutTests/imported/w3c/ChangeLog (292375 => 292376) --- trunk/LayoutTests/imported/w3c/ChangeLog 2022-04-05 05:36:45 UTC (rev 292375) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2022-04-05 05:38:59 UTC (rev 292376) @@ -1,3 +1,12 @@ +2022-04-04 Ziran Sun + +[Forms] change the default appearance of button, checkbox etc. to 'auto' +https://bugs.webkit.org/show_bug.cgi?id=236012 + +Reviewed by Tim Nguyen. + +* web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: + 2022-04-04 J Pascoe [ iOS 15 ] imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html is flaky timing out Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt (292375 => 292376) --- trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt 2022-04-05 05:36:45 UTC (rev 292375) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt 2022-04-05 05:38:59 UTC (rev 292376) @@ -1,33 +1,33 @@ -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "searchfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "textfield" -FAIL assert_equals: -webkit-appearance expected "auto" but got "slider-horizontal" -FAIL assert_equals: -webkit-appearance expected "auto" but got "color-well" -FAIL assert_equals: -webkit-appearance expected "auto" but got "checkbox" -FAIL assert_equals: -webkit-appearance expected "auto" but got "radio" -FAIL assert_equals: -webkit-appearance expected "auto" but got "push-button" -FAIL assert_equals: -webkit-appearance expected "auto" but got "push-button" -FAIL assert_equals: -webkit-appearance expected "auto" but got "
[webkit-changes] [292375] trunk/Source/WebCore
Title: [292375] trunk/Source/WebCore Revision 292375 Author an...@apple.com Date 2022-04-04 22:36:45 -0700 (Mon, 04 Apr 2022) Log Message [CSS Container Queries] Simplify grammar https://bugs.webkit.org/show_bug.cgi?id=238732 Reviewed by Sam Weinig. Because size() function syntax is no longer supported, separate SizeQuery and SizeCondition productions are no longer needed. Some slightly unnecessary templatization is retained to help with future work. * css/ContainerQuery.cpp: * css/ContainerQuery.h: * css/ContainerQueryParser.cpp: (WebCore::ContainerQueryParser::consumeContainerQuery): (WebCore::ContainerQueryParser::consumeCondition): (WebCore::ContainerQueryParser::consumeSizeFeature): (WebCore::ContainerQueryParser::consumePlainSizeFeature): (WebCore::ContainerQueryParser::consumeSizeQuery): Deleted. * css/ContainerQueryParser.h: * style/ContainerQueryEvaluator.cpp: (WebCore::Style::ContainerQueryEvaluator::evaluateQuery const): * style/ContainerQueryEvaluator.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/ContainerQuery.cpp trunk/Source/WebCore/css/ContainerQuery.h trunk/Source/WebCore/css/ContainerQueryParser.cpp trunk/Source/WebCore/css/ContainerQueryParser.h trunk/Source/WebCore/style/ContainerQueryEvaluator.cpp trunk/Source/WebCore/style/ContainerQueryEvaluator.h Diff Modified: trunk/Source/WebCore/ChangeLog (292374 => 292375) --- trunk/Source/WebCore/ChangeLog 2022-04-05 05:20:51 UTC (rev 292374) +++ trunk/Source/WebCore/ChangeLog 2022-04-05 05:36:45 UTC (rev 292375) @@ -1,3 +1,28 @@ +2022-04-04 Antti Koivisto + +[CSS Container Queries] Simplify grammar +https://bugs.webkit.org/show_bug.cgi?id=238732 + +Reviewed by Sam Weinig. + +Because size() function syntax is no longer supported, separate SizeQuery and SizeCondition productions +are no longer needed. + +Some slightly unnecessary templatization is retained to help with future work. + +* css/ContainerQuery.cpp: +* css/ContainerQuery.h: +* css/ContainerQueryParser.cpp: +(WebCore::ContainerQueryParser::consumeContainerQuery): +(WebCore::ContainerQueryParser::consumeCondition): +(WebCore::ContainerQueryParser::consumeSizeFeature): +(WebCore::ContainerQueryParser::consumePlainSizeFeature): +(WebCore::ContainerQueryParser::consumeSizeQuery): Deleted. +* css/ContainerQueryParser.h: +* style/ContainerQueryEvaluator.cpp: +(WebCore::Style::ContainerQueryEvaluator::evaluateQuery const): +* style/ContainerQueryEvaluator.h: + 2022-04-04 Chris Dumez Avoid repeated calls to WebCore::eventNames() Modified: trunk/Source/WebCore/css/ContainerQuery.cpp (292374 => 292375) --- trunk/Source/WebCore/css/ContainerQuery.cpp 2022-04-05 05:20:51 UTC (rev 292374) +++ trunk/Source/WebCore/css/ContainerQuery.cpp 2022-04-05 05:36:45 UTC (rev 292375) @@ -87,7 +87,6 @@ return { }; } -void serialize(StringBuilder&, const SizeQuery&); void serialize(StringBuilder&, const SizeFeature&); template void serialize(StringBuilder&, const ConditionType&); @@ -105,13 +104,6 @@ }); } -void serialize(StringBuilder& builder, const SizeQuery& sizeQuery) -{ -WTF::switchOn(sizeQuery, [&](auto& node) { -serialize(builder, node); -}); -} - void serialize(StringBuilder& builder, const SizeFeature& sizeFeature) { auto serializeRangeComparisonOperator = [&](ComparisonOperator op) { Modified: trunk/Source/WebCore/css/ContainerQuery.h (292374 => 292375) --- trunk/Source/WebCore/css/ContainerQuery.h 2022-04-05 05:20:51 UTC (rev 292374) +++ trunk/Source/WebCore/css/ContainerQuery.h 2022-04-05 05:36:45 UTC (rev 292375) @@ -44,8 +44,7 @@ String text; }; -using SizeQuery = std::variant; -using ContainerQuery = std::variant; +using ContainerQuery = std::variant; enum class LogicalOperator : uint8_t { And, Or, Not }; enum class ComparisonOperator : uint8_t { LessThan, LessThanOrEqual, Equal, GreaterThan, GreaterThanOrEqual }; @@ -56,11 +55,6 @@ Vector queries; }; -struct SizeCondition { -LogicalOperator logicalOperator { LogicalOperator::And }; -Vector queries; -}; - struct Comparison { ComparisonOperator op { ComparisonOperator::Equal }; RefPtr value; Modified: trunk/Source/WebCore/css/ContainerQueryParser.cpp (292374 => 292375) --- trunk/Source/WebCore/css/ContainerQueryParser.cpp 2022-04-05 05:20:51 UTC (rev 292374) +++ trunk/Source/WebCore/css/ContainerQueryParser.cpp 2022-04-05 05:36:45 UTC (rev 292375) @@ -74,9 +74,9 @@ blockRange.consumeWhitespace(); // Try to parse as a size query first. -auto blockForSizeQuery = blockRange; -if (auto sizeQuery = consumeSizeQuery(blockForSizeQuery)) -return { *sizeQuery }; +auto blockForSizeFeature = blockRange; +if (auto sizeFeature = consumeSizeFeature(blockForSizeFeature)) +return { *sizeFeat
[webkit-changes] [292374] trunk/Source/bmalloc
Title: [292374] trunk/Source/bmalloc Revision 292374 Author ysuz...@apple.com Date 2022-04-04 22:20:51 -0700 (Mon, 04 Apr 2022) Log Message [libpas] Do not need to call pthread_set_qos_class_self_np repeatedly https://bugs.webkit.org/show_bug.cgi?id=238785 Reviewed by Mark Lam. Let's remember previously set QOS class and avoid resetting it if the value is not changed. * bmalloc/bmalloc.cpp: (bmalloc::api::setScavengerThreadQOSClass): * libpas/src/libpas/pas_scavenger.c: (pas_scavenger_set_requested_qos_class): (scavenger_thread_main): * libpas/src/libpas/pas_scavenger.h: Modified Paths trunk/Source/bmalloc/ChangeLog trunk/Source/bmalloc/bmalloc/bmalloc.cpp trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.c trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.h Diff Modified: trunk/Source/bmalloc/ChangeLog (292373 => 292374) --- trunk/Source/bmalloc/ChangeLog 2022-04-05 04:18:13 UTC (rev 292373) +++ trunk/Source/bmalloc/ChangeLog 2022-04-05 05:20:51 UTC (rev 292374) @@ -1,3 +1,19 @@ +2022-04-04 Yusuke Suzuki + +[libpas] Do not need to call pthread_set_qos_class_self_np repeatedly +https://bugs.webkit.org/show_bug.cgi?id=238785 + +Reviewed by Mark Lam. + +Let's remember previously set QOS class and avoid resetting it if the value is not changed. + +* bmalloc/bmalloc.cpp: +(bmalloc::api::setScavengerThreadQOSClass): +* libpas/src/libpas/pas_scavenger.c: +(pas_scavenger_set_requested_qos_class): +(scavenger_thread_main): +* libpas/src/libpas/pas_scavenger.h: + 2022-03-29 Brandon Stewart Rename Libpas README to README.md Modified: trunk/Source/bmalloc/bmalloc/bmalloc.cpp (292373 => 292374) --- trunk/Source/bmalloc/bmalloc/bmalloc.cpp 2022-04-05 04:18:13 UTC (rev 292373) +++ trunk/Source/bmalloc/bmalloc/bmalloc.cpp 2022-04-05 05:20:51 UTC (rev 292374) @@ -160,7 +160,7 @@ void setScavengerThreadQOSClass(qos_class_t overrideClass) { #if BENABLE(LIBPAS) -pas_scavenger_requested_qos_class = overrideClass; +pas_scavenger_set_requested_qos_class(overrideClass); #endif #if !BUSE(LIBPAS) if (!DebugHeap::tryGet()) { Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.c (292373 => 292374) --- trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.c 2022-04-05 04:18:13 UTC (rev 292373) +++ trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.c 2022-04-05 05:20:51 UTC (rev 292374) @@ -70,7 +70,12 @@ #endif #if PAS_OS(DARWIN) -qos_class_t pas_scavenger_requested_qos_class = QOS_CLASS_USER_INITIATED; +static _Atomic qos_class_t pas_scavenger_requested_qos_class = QOS_CLASS_USER_INITIATED; + +void pas_scavenger_set_requested_qos_class(qos_class_t qos_class) +{ +pas_scavenger_requested_qos_class = qos_class; +} #endif pas_scavenger_activity_callback pas_scavenger_did_start_callback = NULL; @@ -151,6 +156,9 @@ { pas_scavenger_data* data; pas_scavenger_activity_callback did_start_callback; +#if PAS_OS(DARWIN) +qos_class_t configured_qos_class; +#endif PAS_UNUSED_PARAM(arg); @@ -173,6 +181,11 @@ data = "" +#if PAS_OS(DARWIN) +configured_qos_class = pas_scavenger_requested_qos_class; +pthread_set_qos_class_self_np(configured_qos_class, 0); +#endif + for (;;) { pas_page_sharing_pool_scavenge_result scavenge_result; bool should_shut_down; @@ -184,9 +197,16 @@ uint64_t delta; uint64_t max_epoch; bool did_overflow; +#if PAS_OS(DARWIN) +qos_class_t current_qos_class; +#endif #if PAS_OS(DARWIN) -pthread_set_qos_class_self_np(pas_scavenger_requested_qos_class, 0); +current_qos_class = pas_scavenger_requested_qos_class; +if (configured_qos_class != current_qos_class) { +configured_qos_class = current_qos_class; +pthread_set_qos_class_self_np(configured_qos_class, 0); +} #endif should_go_again = false; Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.h (292373 => 292374) --- trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.h 2022-04-05 04:18:13 UTC (rev 292373) +++ trunk/Source/bmalloc/libpas/src/libpas/pas_scavenger.h 2022-04-05 05:20:51 UTC (rev 292374) @@ -74,7 +74,7 @@ #if PAS_OS(DARWIN) /* It's legal to set this anytime. */ -PAS_API extern qos_class_t pas_scavenger_requested_qos_class; +PAS_API void pas_scavenger_set_requested_qos_class(qos_class_t); #endif typedef void (*pas_scavenger_activity_callback)(void); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292373] trunk/Source/JavaScriptCore
Title: [292373] trunk/Source/_javascript_Core Revision 292373 Author ysuz...@apple.com Date 2022-04-04 21:18:13 -0700 (Mon, 04 Apr 2022) Log Message [JSC] Reduce sizeof(BaselineCallLinkInfo) to make bug 238535 good https://bugs.webkit.org/show_bug.cgi?id=238777 Reviewed by Mark Lam. https://bugs.webkit.org/show_bug.cgi?id=238535 adds one pointer to CallLinkInfo. To make BaselineCallLinkInfo small, this patch removes std::unique_ptr in BaselineCallLinkInfo since it can be computed in repatching code. * bytecode/CallLinkInfo.cpp: (JSC::BaselineCallLinkInfo::initialize): (JSC::OptimizingCallLinkInfo::setFrameShuffleData): (JSC::CallLinkInfo::setFrameShuffleData): Deleted. * bytecode/CallLinkInfo.h: (JSC::CallLinkInfo::frameShuffleData): Deleted. * bytecode/CodeBlock.cpp: (JSC::CodeBlock::finishCreation): * bytecode/Repatch.cpp: (JSC::linkPolymorphicCall): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp trunk/Source/_javascript_Core/bytecode/CallLinkInfo.h trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp trunk/Source/_javascript_Core/bytecode/Repatch.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (292372 => 292373) --- trunk/Source/_javascript_Core/ChangeLog 2022-04-05 04:10:35 UTC (rev 292372) +++ trunk/Source/_javascript_Core/ChangeLog 2022-04-05 04:18:13 UTC (rev 292373) @@ -1,5 +1,27 @@ 2022-04-04 Yusuke Suzuki +[JSC] Reduce sizeof(BaselineCallLinkInfo) to make bug 238535 good +https://bugs.webkit.org/show_bug.cgi?id=238777 + +Reviewed by Mark Lam. + +https://bugs.webkit.org/show_bug.cgi?id=238535 adds one pointer to CallLinkInfo. +To make BaselineCallLinkInfo small, this patch removes std::unique_ptr +in BaselineCallLinkInfo since it can be computed in repatching code. + +* bytecode/CallLinkInfo.cpp: +(JSC::BaselineCallLinkInfo::initialize): +(JSC::OptimizingCallLinkInfo::setFrameShuffleData): +(JSC::CallLinkInfo::setFrameShuffleData): Deleted. +* bytecode/CallLinkInfo.h: +(JSC::CallLinkInfo::frameShuffleData): Deleted. +* bytecode/CodeBlock.cpp: +(JSC::CodeBlock::finishCreation): +* bytecode/Repatch.cpp: +(JSC::linkPolymorphicCall): + +2022-04-04 Yusuke Suzuki + [JSC] Store CodeBlock in caller side https://bugs.webkit.org/show_bug.cgi?id=238535 Modified: trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp (292372 => 292373) --- trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp 2022-04-05 04:10:35 UTC (rev 292372) +++ trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp 2022-04-05 04:18:13 UTC (rev 292373) @@ -315,9 +315,8 @@ } } -void BaselineCallLinkInfo::initialize(VM& vm, CallType callType, BytecodeIndex bytecodeIndex, CallFrameShuffleData* frameShuffleData) +void BaselineCallLinkInfo::initialize(VM& vm, CallType callType, BytecodeIndex bytecodeIndex) { -UNUSED_PARAM(frameShuffleData); m_type = static_cast(Type::Baseline); ASSERT(Type::Baseline == type()); m_useDataIC = static_cast(UseDataIC::Yes); @@ -324,12 +323,6 @@ ASSERT(UseDataIC::Yes == useDataIC()); m_codeOrigin = CodeOrigin(bytecodeIndex); m_callType = callType; -#if ENABLE(JIT) -if (frameShuffleData) { -// FIXME: It'd be nice if this were a refcounted data structure. -m_frameShuffleData = makeUnique(*frameShuffleData); -} -#endif if (LIKELY(Options::useLLIntICs())) setSlowPathCallDestination(vm.getCTILinkCall().code()); else @@ -341,7 +334,7 @@ #if ENABLE(JIT) -void CallLinkInfo::setFrameShuffleData(const CallFrameShuffleData& shuffleData) +void OptimizingCallLinkInfo::setFrameShuffleData(const CallFrameShuffleData& shuffleData) { m_frameShuffleData = makeUnique(shuffleData); m_frameShuffleData->shrinkToFit(); Modified: trunk/Source/_javascript_Core/bytecode/CallLinkInfo.h (292372 => 292373) --- trunk/Source/_javascript_Core/bytecode/CallLinkInfo.h 2022-04-05 04:10:35 UTC (rev 292372) +++ trunk/Source/_javascript_Core/bytecode/CallLinkInfo.h 2022-04-05 04:18:13 UTC (rev 292373) @@ -369,15 +369,6 @@ void visitWeak(VM&); -#if ENABLE(JIT) -void setFrameShuffleData(const CallFrameShuffleData&); - -const CallFrameShuffleData* frameShuffleData() -{ -return m_frameShuffleData.get(); -} -#endif - Type type() const { return static_cast(m_type); } protected: @@ -424,7 +415,6 @@ WriteBarrier m_lastSeenCalleeOrExecutable; #if ENABLE(JIT) RefPtr m_stub; -std::unique_ptr m_frameShuffleData; #endif CodeOrigin m_codeOrigin; bool m_hasSeenShouldRepatch : 1; @@ -450,7 +440,7 @@ { } -void initialize(VM&, CallType, BytecodeIndex, CallFrameShuffleData*); +void initialize(VM&, CallType, BytecodeIndex); void setCodeLocations(CodeLocationLabel doneLocation) { @@ -516,10 +506,18 @@ MacroAssemb
[webkit-changes] [292372] trunk/Source/JavaScriptCore
Title: [292372] trunk/Source/_javascript_Core Revision 292372 Author ysuz...@apple.com Date 2022-04-04 21:10:35 -0700 (Mon, 04 Apr 2022) Log Message [JSC] Store CodeBlock in caller side https://bugs.webkit.org/show_bug.cgi?id=238535 Reviewed by Saam Barati. This patch changes the calling convention of JS functions. Now, we need to store CodeBlock to the stack in the caller side instead. This helps LLInt, unlinked Baseline, and DFG since we no longer need to load CodeBlock from callee via costly dependent loads: unlinked ones cannot embed CodeBlock raw pointer into the machine code itself. So we needed to load it from callee. But now, caller puts the right CodeBlock pointer into the stack so we do not need that code. And in most cases, caller already knows CodeBlock since it is tied to actually used machine code pointer. OSR entry also materializes CodeBlock in the stack in the OSR entry side instead of doing it in the callee side. This contributes to 0.3% progression in Speedometer2. * assembler/CPU.h: (JSC::prologueStackPointerDelta): * bytecode/CallLinkInfo.cpp: (JSC::CallLinkInfo::setMonomorphicCallee): (JSC::CallLinkInfo::clearCallee): (JSC::CallLinkInfo::revertCallToStub): (JSC::CallLinkInfo::emitFastPathImpl): (JSC::CallLinkInfo::setStub): (JSC::OptimizingCallLinkInfo::emitDirectFastPath): (JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath): (JSC::OptimizingCallLinkInfo::initializeDirectCall): (JSC::OptimizingCallLinkInfo::setDirectCallTarget): * bytecode/CallLinkInfo.h: (JSC::CallLinkInfo::offsetOfCodeBlock): * bytecode/Repatch.cpp: (JSC::linkMonomorphicCall): (JSC::linkDirectCall): (JSC::linkPolymorphicCall): * bytecode/RepatchInlines.h: (JSC::virtualForWithFunction): * dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::compileEntry): * dfg/DFGOSREntry.cpp: (JSC::DFG::prepareOSREntry): (JSC::DFG::prepareCatchOSREntry): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCurrentBlock): * dfg/DFGThunks.cpp: (JSC::DFG::osrEntryThunkGenerator): * ftl/FTLAbstractHeapRepository.h: * ftl/FTLLink.cpp: (JSC::FTL::link): * ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower): * interpreter/CallFrame.h: * jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::calleeFrameCodeBlockBeforeCall): (JSC::AssemblyHelpers::calleeFrameCodeBlockBeforeTailCall): (JSC::AssemblyHelpers::prologueStackPointerDelta): Deleted. * jit/CCallHelpers.h: (JSC::CCallHelpers::prepareForTailCallSlow): * jit/JIT.cpp: (JSC::JIT::compileAndLinkWithoutFinalizing): (JSC::JIT::emitPutCodeBlockToFrameInPrologue): Deleted. * jit/JIT.h: * jit/JITOperations.cpp: (JSC::JSC_DEFINE_JIT_OPERATION): * jit/JITOperations.h: * jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundFunctionCallGenerator): (JSC::remoteFunctionCallGenerator): * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * llint/WebAssembly.asm: * runtime/FunctionExecutable.h: * runtime/JSCast.h: * runtime/VM.cpp: (JSC::VM::getRemoteFunction): * wasm/WasmOperations.cpp: (JSC::Wasm::doOSREntry): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/assembler/CPU.h trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp trunk/Source/_javascript_Core/bytecode/CallLinkInfo.h trunk/Source/_javascript_Core/bytecode/Repatch.cpp trunk/Source/_javascript_Core/bytecode/RepatchInlines.h trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp trunk/Source/_javascript_Core/dfg/DFGOSREntry.cpp trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp trunk/Source/_javascript_Core/dfg/DFGThunks.cpp trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.h trunk/Source/_javascript_Core/ftl/FTLLink.cpp trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp trunk/Source/_javascript_Core/interpreter/CallFrame.h trunk/Source/_javascript_Core/jit/AssemblyHelpers.h trunk/Source/_javascript_Core/jit/CCallHelpers.h trunk/Source/_javascript_Core/jit/JIT.cpp trunk/Source/_javascript_Core/jit/JIT.h trunk/Source/_javascript_Core/jit/JITOperations.cpp trunk/Source/_javascript_Core/jit/JITOperations.h trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm trunk/Source/_javascript_Core/llint/WebAssembly.asm trunk/Source/_javascript_Core/runtime/FunctionExecutable.h trunk/Source/_javascript_Core/runtime/JSCast.h trunk/Source/_javascript_Core/runtime/VM.cpp trunk/Source/_javascript_Core/wasm/WasmOperations.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (292371 => 292372) --- trunk/Source/_javascript_Core/ChangeLog 2022-04-05 03:59:22 UTC (rev 292371) +++ trunk/Source/_javascript_Core/ChangeLog 2022-04-05 04:10:35 UTC (rev 292372) @@ -1,3 +1,82 @@ +2022-04-04 Yusuke Suzuki + +[JSC] Store CodeBlock in caller side +https://bugs.webkit.org/show_bug.cgi?id=238535 + +Reviewed by
[webkit-changes] [292371] trunk/Source/WebKit
Title: [292371] trunk/Source/WebKit Revision 292371 Author timothy_hor...@apple.com Date 2022-04-04 20:59:22 -0700 (Mon, 04 Apr 2022) Log Message Stop generating WebKit system feature flags plists https://bugs.webkit.org/show_bug.cgi?id=238784 Reviewed by Wenson Hsieh. * FeatureFlags/WebKit-appletvos.plist: Removed. * FeatureFlags/WebKit-ios.plist: Removed. * FeatureFlags/WebKit-macos.plist: Removed. * FeatureFlags/WebKit-watchos.plist: Removed. * Scripts/combine-feature-flags-plist.py: Removed. * Scripts/generate-feature-flags-plist.sh: Removed. * WebKit.xcodeproj/project.pbxproj: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj Removed Paths trunk/Source/WebKit/FeatureFlags/ trunk/Source/WebKit/Scripts/combine-feature-flags-plist.py trunk/Source/WebKit/Scripts/generate-feature-flags-plist.sh Diff Modified: trunk/Source/WebKit/ChangeLog (292370 => 292371) --- trunk/Source/WebKit/ChangeLog 2022-04-05 03:46:42 UTC (rev 292370) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 03:59:22 UTC (rev 292371) @@ -1,3 +1,18 @@ +2022-04-04 Tim Horton + +Stop generating WebKit system feature flags plists +https://bugs.webkit.org/show_bug.cgi?id=238784 + +Reviewed by Wenson Hsieh. + +* FeatureFlags/WebKit-appletvos.plist: Removed. +* FeatureFlags/WebKit-ios.plist: Removed. +* FeatureFlags/WebKit-macos.plist: Removed. +* FeatureFlags/WebKit-watchos.plist: Removed. +* Scripts/combine-feature-flags-plist.py: Removed. +* Scripts/generate-feature-flags-plist.sh: Removed. +* WebKit.xcodeproj/project.pbxproj: + 2022-04-04 Saam Barati Turn off LLInt ICs in captive portal mode Deleted: trunk/Source/WebKit/Scripts/combine-feature-flags-plist.py (292370 => 292371) --- trunk/Source/WebKit/Scripts/combine-feature-flags-plist.py 2022-04-05 03:46:42 UTC (rev 292370) +++ trunk/Source/WebKit/Scripts/combine-feature-flags-plist.py 2022-04-05 03:59:22 UTC (rev 292371) @@ -1,61 +0,0 @@ -# -# Copyright (c) 2021 Apple Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -#notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -#notice, this list of conditions and the following disclaimer in the -#documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS -# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -# THE POSSIBILITY OF SUCH DAMAGE. - -import plistlib -import sys - - -def main(argv): -if len(argv) != 4: -print('Usage: ', argv[0], ' ') -return 1 - -feature_flags_plist_path = argv[1] -internal_feature_flags_plist_path = argv[2] -output_plist_path = argv[3] - -try: -with open(feature_flags_plist_path, 'rb') as feature_flags_file, open(internal_feature_flags_plist_path, 'rb') as internal_feature_flags_file: -feature_flags = plistlib.load(feature_flags_file) -internal_feature_flags = plistlib.load(internal_feature_flags_file) -for key in internal_feature_flags: -if key not in feature_flags: -print('Error!', key, 'does not exist in' + feature_flags_plist_path) -return 1 - -if 'Attributes' in feature_flags[key] and 'Attributes' in internal_feature_flags[key]: -feature_flags[key]['Attributes'].update(internal_feature_flags[key]['Attributes']) -else: -feature_flags[key].update(internal_feature_flags[key]) - -with open(output_plist_path, 'wb') as output_plist_file: -plistlib.dump(feature_flags, output_plist_file) -except IOError: -print('File read/write error! Please make sure file names', feature_flags_plist_path, 'and', internal_feature_flags_plist_path, 'are correct.') - -return 0 - - -if __name__ == '__main__': -sys.exit(main(sys.argv)) Deleted: trunk/Source/WebKit/Scripts/generate-feature-flags-plist.sh (292370 => 292371) --- trunk/Source/WebKit/
[webkit-changes] [292370] trunk/Source/WebCore
Title: [292370] trunk/Source/WebCore Revision 292370 Author cdu...@apple.com Date 2022-04-04 20:46:42 -0700 (Mon, 04 Apr 2022) Log Message Avoid repeated calls to WebCore::eventNames() https://bugs.webkit.org/show_bug.cgi?id=238773 Reviewed by Geoffrey Garen. Avoid repeated calls to WebCore::eventNames() by caching it where appropriate. WebCore::eventNames() calls pthread_get_specific. * dom/Element.cpp: (WebCore::isCompatibilityMouseEvent): * dom/EventContext.cpp: (WebCore::EventContext::handleLocalEvents const): * dom/EventTarget.cpp: (WebCore::legacyType): (WebCore::EventTarget::removeAllEventListeners): * dom/MouseEvent.cpp: (WebCore::MouseEvent::toElement const): (WebCore::MouseEvent::fromElement const): * dom/Node.cpp: (WebCore::Node::moveNodeToNewDocument): (WebCore::tryAddEventListener): (WebCore::tryRemoveEventListener): (WebCore::Node::defaultEventHandler): (WebCore::Node::willRespondToMouseMoveEvents): (WebCore::Node::willRespondToTouchEvents): (WebCore::Node::willRespondToMouseClickEvents): * dom/PointerEvent.h: (WebCore::PointerEvent::typeIsEnterOrLeave): * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler): * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::willDispatchEvent): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::menuListDefaultEventHandler): (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): * html/HTMLSummaryElement.cpp: (WebCore::HTMLSummaryElement::defaultEventHandler): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::forwardEvent): * html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::forwardEvent): * html/shadow/SliderThumbElement.cpp: (WebCore::SliderThumbElement::handleTouchEvent): * page/DOMWindow.cpp: (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::deviceOrientationController const): Deleted. (WebCore::DOMWindow::deviceMotionController const): Deleted. (WebCore::DOMWindow::isAllowedToUseDeviceMotionOrOrientation const): Deleted. (WebCore::DOMWindow::isAllowedToUseDeviceMotion const): Deleted. (WebCore::DOMWindow::isAllowedToUseDeviceOrientation const): Deleted. (WebCore::DOMWindow::hasPermissionToReceiveDeviceMotionOrOrientationEvents const): Deleted. (WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary): Deleted. (WebCore::DOMWindow::stopListeningForDeviceOrientationIfNecessary): Deleted. (WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary): Deleted. (WebCore::DOMWindow::stopListeningForDeviceMotionIfNecessary): Deleted. (WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener): Deleted. (WebCore::DOMWindow::incrementScrollEventListenersCount): Deleted. (WebCore::DOMWindow::decrementScrollEventListenersCount): Deleted. (WebCore::DOMWindow::resetAllGeolocationPermission): Deleted. (WebCore::DOMWindow::removeEventListener): Deleted. (WebCore::DOMWindow::languagesChanged): Deleted. (WebCore::DOMWindow::dispatchLoadEvent): Deleted. (WebCore::DOMWindow::dispatchEvent): Deleted. (WebCore::DOMWindow::removeAllEventListeners): Deleted. (WebCore::DOMWindow::captureEvents): Deleted. (WebCore::DOMWindow::releaseEvents): Deleted. (WebCore::DOMWindow::finishedLoading): Deleted. (WebCore::DOMWindow::setLocation): Deleted. (WebCore::DOMWindow::printErrorMessage const): Deleted. (WebCore::DOMWindow::crossDomainAccessErrorMessage): Deleted. (WebCore::DOMWindow::isInsecureScriptAccess): Deleted. (WebCore::DOMWindow::createWindow): Deleted. (WebCore::DOMWindow::open): Deleted. (WebCore::DOMWindow::showModalDialog): Deleted. (WebCore::DOMWindow::enableSuddenTermination): Deleted. (WebCore::DOMWindow::disableSuddenTermination): Deleted. (WebCore::DOMWindow::frame const): Deleted. (WebCore::DOMWindow::eventListenersDidChange): Deleted. * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): (WebCore::EventHandler::isKeyboardOptionTab): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/dom/Element.cpp trunk/Source/WebCore/dom/EventContext.cpp trunk/Source/WebCore/dom/EventTarget.cpp trunk/Source/WebCore/dom/MouseEvent.cpp trunk/Source/WebCore/dom/Node.cpp trunk/Source/WebCore/dom/PointerEvent.h trunk/Source/WebCore/html/HTMLAnchorElement.cpp trunk/Source/WebCore/html/HTMLButtonElement.cpp trunk/Source/WebCore/html/HTMLInputElement.cpp trunk/Source/WebCore/html/HTMLSelectElement.cpp trunk/Source/WebCore/html/HTMLSummaryElement.cpp trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp trunk/Source/WebCore/html/TextFieldInputType.cpp trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp trunk/Source/WebCore/page/DOMWindow.cpp trunk/Source/WebCore/page/EventHandler.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (292369 => 292370) --- trunk/Source/WebCore/ChangeLog 2022-04-05 03:32:00 UTC (rev 292369) +++ trunk/Source/WebCore/ChangeLog 2022-04-05 03:46:42 UTC (rev 292370)
[webkit-changes] [292369] trunk
Title: [292369] trunk Revision 292369 Author sbar...@apple.com Date 2022-04-04 20:32:00 -0700 (Mon, 04 Apr 2022) Log Message Turn off LLInt ICs in captive portal mode https://bugs.webkit.org/show_bug.cgi?id=238778 Reviewed by Yusuke Suzuki. Source/_javascript_Core: * bytecode/CallLinkInfo.cpp: (JSC::BaselineCallLinkInfo::initialize): * bytecode/Repatch.cpp: (JSC::unlinkCall): * llint/LLIntCommon.h: * llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::performLLIntGetByID): * runtime/OptionsList.h: Source/WebKit: * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializer): Tools: * Scripts/run-jsc-stress-tests: Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp trunk/Source/_javascript_Core/bytecode/Repatch.cpp trunk/Source/_javascript_Core/llint/LLIntCommon.h trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp trunk/Source/_javascript_Core/runtime/OptionsList.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h trunk/Tools/ChangeLog trunk/Tools/Scripts/run-jsc-stress-tests Diff Modified: trunk/Source/_javascript_Core/ChangeLog (292368 => 292369) --- trunk/Source/_javascript_Core/ChangeLog 2022-04-05 03:29:17 UTC (rev 292368) +++ trunk/Source/_javascript_Core/ChangeLog 2022-04-05 03:32:00 UTC (rev 292369) @@ -1,3 +1,21 @@ +2022-04-04 Saam Barati + +Turn off LLInt ICs in captive portal mode +https://bugs.webkit.org/show_bug.cgi?id=238778 + + +Reviewed by Yusuke Suzuki. + +* bytecode/CallLinkInfo.cpp: +(JSC::BaselineCallLinkInfo::initialize): +* bytecode/Repatch.cpp: +(JSC::unlinkCall): +* llint/LLIntCommon.h: +* llint/LLIntSlowPaths.cpp: +(JSC::LLInt::LLINT_SLOW_PATH_DECL): +(JSC::LLInt::performLLIntGetByID): +* runtime/OptionsList.h: + 2022-04-04 Geoffrey Garen Only check isPagedOut() under memory pressure Modified: trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp (292368 => 292369) --- trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp 2022-04-05 03:29:17 UTC (rev 292368) +++ trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp 2022-04-05 03:32:00 UTC (rev 292369) @@ -324,7 +324,10 @@ m_frameShuffleData = makeUnique(*frameShuffleData); } #endif -setSlowPathCallDestination(vm.getCTILinkCall().code()); +if (LIKELY(Options::useLLIntICs())) +setSlowPathCallDestination(vm.getCTILinkCall().code()); +else +setSlowPathCallDestination(vm.getCTIVirtualCall(callMode()).retagged().code()); // If JIT is disabled, we should not support dynamically generated call IC. if (!Options::useJIT()) disallowStubs(); Modified: trunk/Source/_javascript_Core/bytecode/Repatch.cpp (292368 => 292369) --- trunk/Source/_javascript_Core/bytecode/Repatch.cpp 2022-04-05 03:29:17 UTC (rev 292368) +++ trunk/Source/_javascript_Core/bytecode/Repatch.cpp 2022-04-05 03:32:00 UTC (rev 292369) @@ -163,7 +163,10 @@ { dataLogLnIf(Options::dumpDisassembly(), "Unlinking CallLinkInfo: ", RawPointer(&callLinkInfo)); -revertCall(vm, callLinkInfo, vm.getCTILinkCall().retagged()); +if (UNLIKELY(!Options::useLLIntICs() && callLinkInfo.type() == CallLinkInfo::Type::Baseline)) +revertCall(vm, callLinkInfo, vm.getCTIVirtualCall(callLinkInfo.callMode())); +else +revertCall(vm, callLinkInfo, vm.getCTILinkCall().retagged()); } MacroAssemblerCodePtr jsToWasmICCodePtr(VM& vm, CodeSpecializationKind kind, JSObject* callee) Modified: trunk/Source/_javascript_Core/llint/LLIntCommon.h (292368 => 292369) --- trunk/Source/_javascript_Core/llint/LLIntCommon.h 2022-04-05 03:29:17 UTC (rev 292368) +++ trunk/Source/_javascript_Core/llint/LLIntCommon.h 2022-04-05 03:32:00 UTC (rev 292369) @@ -38,6 +38,3 @@ #else #define LLINT_ALWAYS_ALLOCATE_SLOW 0 #endif - -// Disable inline caching of get_by_id and put_by_id. -#define LLINT_ALWAYS_ACCESS_SLOW 0 Modified: trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp (292368 => 292369) --- trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp 2022-04-05 03:29:17 UTC (rev 292368) +++ trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp 2022-04-05 03:32:00 UTC (rev 292369) @@ -647,7 +647,7 @@ baseValue.getPropertySlot(globalObject, ident, slot); JSValue result = slot.getPureResult(); -if (!LLINT_ALWAYS_ACCESS_SLOW && slot.isCacheable() && !slot.isUnset()) { +if (Options::useLLIntICs() && slot.isCacheable() && !slot.isUnset()) { ASSERT(!slot.isTaintedByOpaqueObject()); ASSERT(baseValue.isCell()); @@ -699,7 +699,7 @@ JSValue result = found ? slot.getValue(globalObject, ident) : jsUndefined(); LLINT_CHECK_EXCEPTION(); -if (!LLINT_ALWAYS_ACCESS_SLOW && slot.isCacheable() && !slot.isUnset()) { +if (Options::us
[webkit-changes] [292368] trunk/Source/WebGPU
Title: [292368] trunk/Source/WebGPU Revision 292368 Author mmaxfi...@apple.com Date 2022-04-04 20:29:17 -0700 (Mon, 04 Apr 2022) Log Message [WebGPU] Fix Apple's internal build https://bugs.webkit.org/show_bug.cgi?id=238786 Unreviewed build fix. Copy FRAMEWORK_SEARCH_PATHS and SYSTEM_FRAMEWORK_SEARCH_PATHS from WebCore.xcconfig. * Configurations/WebGPU.xcconfig: Modified Paths trunk/Source/WebGPU/ChangeLog trunk/Source/WebGPU/Configurations/WebGPU.xcconfig Diff Modified: trunk/Source/WebGPU/ChangeLog (292367 => 292368) --- trunk/Source/WebGPU/ChangeLog 2022-04-05 03:01:41 UTC (rev 292367) +++ trunk/Source/WebGPU/ChangeLog 2022-04-05 03:29:17 UTC (rev 292368) @@ -1,3 +1,15 @@ +2022-04-04 Myles C. Maxfield + +[WebGPU] Fix Apple's internal build +https://bugs.webkit.org/show_bug.cgi?id=238786 + + +Unreviewed build fix. + +Copy FRAMEWORK_SEARCH_PATHS and SYSTEM_FRAMEWORK_SEARCH_PATHS from WebCore.xcconfig. + +* Configurations/WebGPU.xcconfig: + 2022-04-01 Michael Saboff Stop copying StagedFrameworks to the secondary path by default Modified: trunk/Source/WebGPU/Configurations/WebGPU.xcconfig (292367 => 292368) --- trunk/Source/WebGPU/Configurations/WebGPU.xcconfig 2022-04-05 03:01:41 UTC (rev 292367) +++ trunk/Source/WebGPU/Configurations/WebGPU.xcconfig 2022-04-05 03:29:17 UTC (rev 292368) @@ -25,6 +25,17 @@ HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)/usr/local/include" $(inherited); +WK_PRIVATE_FRAMEWORKS_DIR = $(WK_PRIVATE_FRAMEWORKS_DIR_$(USE_INTERNAL_SDK)); +WK_PRIVATE_FRAMEWORKS_DIR_[sdk=macos*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/$(TARGET_MAC_OS_X_VERSION_MAJOR); +WK_PRIVATE_FRAMEWORKS_DIR_[sdk=iphone*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/$(WK_TARGET_IOS_VERSION_MAJOR); +WK_PRIVATE_FRAMEWORKS_DIR_[sdk=appletv*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/$(WK_TARGET_TVOS_VERSION_MAJOR); +WK_PRIVATE_FRAMEWORKS_DIR_[sdk=watch*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/$(WK_TARGET_WATCHOS_VERSION_MAJOR); + +FRAMEWORK_SEARCH_PATHS[sdk=embedded*] = $(WK_QUOTED_OVERRIDE_FRAMEWORKS_DIR) $(BUILT_PRODUCTS_DIR) $(WK_PRIVATE_FRAMEWORKS_DIR); +FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = $(WK_QUOTED_OVERRIDE_FRAMEWORKS_DIR); + +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks + INFOPLIST_FILE = Info.plist; INSTALL_PATH = $(INSTALL_PATH_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH)); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292367] trunk/Source/WebKit
Title: [292367] trunk/Source/WebKit Revision 292367 Author ape...@igalia.com Date 2022-04-04 20:01:41 -0700 (Mon, 04 Apr 2022) Log Message [WPE][GTK] Fix code examples in reference documentation https://bugs.webkit.org/show_bug.cgi?id=238770 Reviewed by Michael Catanzaro. Replace DocBook SGML tags containing code examples with Markdown fenced code blocks as consumed by gi-docgen. * UIProcess/API/glib/WebKitSettings.cpp: * UIProcess/API/glib/WebKitUserContentManager.cpp: * UIProcess/API/glib/WebKitWebContext.cpp: * UIProcess/API/glib/WebKitWebView.cpp: (webkit_web_view_class_init): * UIProcess/API/glib/WebKitWebsitePolicies.cpp: * UIProcess/API/gtk/WebKitWebInspector.cpp: * UIProcess/API/gtk/WebKitWebViewGtk.cpp: * WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitWebsitePolicies.cpp trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebInspector.cpp trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk.cpp trunk/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (292366 => 292367) --- trunk/Source/WebKit/ChangeLog 2022-04-05 02:42:46 UTC (rev 292366) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 03:01:41 UTC (rev 292367) @@ -1,3 +1,23 @@ +2022-04-04 Adrian Perez de Castro + +[WPE][GTK] Fix code examples in reference documentation +https://bugs.webkit.org/show_bug.cgi?id=238770 + +Reviewed by Michael Catanzaro. + +Replace DocBook SGML tags containing code examples with Markdown fenced code blocks +as consumed by gi-docgen. + +* UIProcess/API/glib/WebKitSettings.cpp: +* UIProcess/API/glib/WebKitUserContentManager.cpp: +* UIProcess/API/glib/WebKitWebContext.cpp: +* UIProcess/API/glib/WebKitWebView.cpp: +(webkit_web_view_class_init): +* UIProcess/API/glib/WebKitWebsitePolicies.cpp: +* UIProcess/API/gtk/WebKitWebInspector.cpp: +* UIProcess/API/gtk/WebKitWebViewGtk.cpp: +* WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: + 2022-04-04 Simon Fraser Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp (292366 => 292367) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp 2022-04-05 02:42:46 UTC (rev 292366) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp 2022-04-05 03:01:41 UTC (rev 292367) @@ -97,12 +97,11 @@ * other things on a #WebKitWebView. After creation, a #WebKitSettings object * contains default settings. * - * - * /* Disable _javascript_. */ + * ```c + * // Disable _javascript_ * WebKitSettings *settings = webkit_web_view_group_get_settings (my_view_group); * webkit_settings_set_enable_javascript (settings, FALSE); - * - * + * ``` */ WEBKIT_DEFINE_TYPE(WebKitSettings, webkit_settings, G_TYPE_OBJECT) Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp (292366 => 292367) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp 2022-04-05 02:42:46 UTC (rev 292366) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp 2022-04-05 03:01:41 UTC (rev 292367) @@ -268,13 +268,13 @@ * receive the signals, it is recommended to connect to the signal * *before* registering the handler name: * - * + * ```c * WebKitWebView *view = webkit_web_view_new (); * WebKitUserContentManager *manager = webkit_web_view_get_user_content_manager (); * g_signal_connect (manager, "script-message-received::foobar", * G_CALLBACK (handle_script_message), NULL); * webkit_user_content_manager_register_script_message_handler (manager, "foobar"); - * + * ``` * * Registering a script message handler will fail if the requested * name has been already registered before. Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp (292366 => 292367) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp 2022-04-05 02:42:46 UTC (rev 292366) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp 2022-04-05 03:01:41 UTC (rev 292367) @@ -1215,7 +1215,7 @@ * when the data of the request is available or * webkit_uri_scheme_request_finish_error() in case of error. * - * + * ```c * static void * about_uri_scheme_request_cb (WebKitURISchemeRequest *request, * gpointeruser_data) @@ -1222,23 +1222,18 @@ * { * GInputStream *stream; * gsize stream_length; - * const gchar *path; + * const gchar *path = webkit_uri_scheme_request_get_path (request); * - * path = webkit_uri_scheme
[webkit-changes] [292366] trunk/Source/WebKit
Title: [292366] trunk/Source/WebKit Revision 292366 Author simon.fra...@apple.com Date 2022-04-04 19:42:46 -0700 (Mon, 04 Apr 2022) Log Message Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build https://bugs.webkit.org/show_bug.cgi?id=238783 Unreviewed build fix. ConcreteImageBuffer<>::create() needs a default CreationContext argument. * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::ensureFrontBuffer): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm Diff Modified: trunk/Source/WebKit/ChangeLog (292365 => 292366) --- trunk/Source/WebKit/ChangeLog 2022-04-05 02:09:45 UTC (rev 292365) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 02:42:46 UTC (rev 292366) @@ -1,3 +1,15 @@ +2022-04-04 Simon Fraser + +Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build +https://bugs.webkit.org/show_bug.cgi?id=238783 + +Unreviewed build fix. + +ConcreteImageBuffer<>::create() needs a default CreationContext argument. + +* Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: +(WebKit::RemoteLayerBackingStore::ensureFrontBuffer): + 2022-04-04 Tim Horton Remove GPU process system feature flags Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm (292365 => 292366) --- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2022-04-05 02:09:45 UTC (rev 292365) +++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2022-04-05 02:42:46 UTC (rev 292366) @@ -367,7 +367,7 @@ #if ENABLE(CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER) if (m_includeDisplayList == IncludeDisplayList::Yes) -m_frontBuffer.displayListImageBuffer = ConcreteImageBuffer::create(m_size, m_scale, DestinationColorSpace::SRGB(), pixelFormat()); +m_frontBuffer.displayListImageBuffer = ConcreteImageBuffer::create(m_size, m_scale, DestinationColorSpace::SRGB(), pixelFormat(), { }); #endif } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292365] trunk/Source
Title: [292365] trunk/Source Revision 292365 Author timothy_hor...@apple.com Date 2022-04-04 19:09:45 -0700 (Mon, 04 Apr 2022) Log Message Remove GPU process system feature flags https://bugs.webkit.org/show_bug.cgi?id=238766 Reviewed by Simon Fraser. Source/WebKit: * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultCaptureAudioInGPUProcessEnabled): (WebKit::defaultUseGPUProcessForCanvasRenderingEnabled): Deleted. (WebKit::defaultUseGPUProcessForDOMRenderingEnabled): Deleted. (WebKit::defaultUseGPUProcessForMediaEnabled): Deleted. (WebKit::defaultUseGPUProcessForWebGLEnabled): Deleted. (WebKit::defaultCaptureVideoInGPUProcessEnabled): Deleted. (WebKit::defaultWebRTCCodecsInGPUProcess): Deleted. * Shared/WebPreferencesDefaultValues.h: Source/WTF: * Scripts/Preferences/WebPreferencesExperimental.yaml: * Scripts/Preferences/WebPreferencesInternal.yaml: Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h Diff Modified: trunk/Source/WTF/ChangeLog (292364 => 292365) --- trunk/Source/WTF/ChangeLog 2022-04-05 02:06:26 UTC (rev 292364) +++ trunk/Source/WTF/ChangeLog 2022-04-05 02:09:45 UTC (rev 292365) @@ -1,5 +1,15 @@ 2022-04-04 Tim Horton +Remove GPU process system feature flags +https://bugs.webkit.org/show_bug.cgi?id=238766 + +Reviewed by Simon Fraser. + +* Scripts/Preferences/WebPreferencesExperimental.yaml: +* Scripts/Preferences/WebPreferencesInternal.yaml: + +2022-04-04 Tim Horton + Remove VP8/9 and WebM-related system feature flags https://bugs.webkit.org/show_bug.cgi?id=238757 Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (292364 => 292365) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-05 02:06:26 UTC (rev 292364) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-05 02:09:45 UTC (rev 292365) @@ -1442,7 +1442,8 @@ exposed: [ WebKit ] defaultValue: WebKit: - default: defaultUseGPUProcessForDOMRenderingEnabled() + "ENABLE(GPU_PROCESS_BY_DEFAULT) && PLATFORM(IOS_FAMILY) && !HAVE(UIKIT_WEBKIT_INTERNALS)": true + default: false UseGPUProcessForDisplayCapture: type: bool @@ -1464,7 +1465,9 @@ exposed: [ WebKit ] defaultValue: WebKit: - default: defaultUseGPUProcessForWebGLEnabled() + "ENABLE(GPU_PROCESS_BY_DEFAULT) && PLATFORM(IOS_FAMILY) && !HAVE(UIKIT_WEBKIT_INTERNALS)": true + "PLATFORM(WIN)": true + default: false UseScreenCaptureKit: type: bool Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml (292364 => 292365) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml 2022-04-05 02:06:26 UTC (rev 292364) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml 2022-04-05 02:09:45 UTC (rev 292365) @@ -198,7 +198,8 @@ exposed: [ WebKit ] defaultValue: WebKit: - default: WebKit::defaultCaptureVideoInGPUProcessEnabled() + "ENABLE(GPU_PROCESS_BY_DEFAULT)": true + default: false CaptureVideoInUIProcessEnabled: type: bool @@ -976,7 +977,9 @@ exposed: [ WebKit ] defaultValue: WebKit: - default: defaultUseGPUProcessForCanvasRenderingEnabled() + "ENABLE(GPU_PROCESS_BY_DEFAULT)": true + "PLATFORM(WIN)": true + default: false UseGPUProcessForMediaEnabled: type: bool @@ -987,7 +990,8 @@ exposed: [ WebKit ] defaultValue: WebKit: - default: WebKit::defaultUseGPUProcessForMediaEnabled() + "ENABLE(GPU_PROCESS_BY_DEFAULT)": true + default: false UseGeneralDirectoryForStorage: type: bool @@ -1094,7 +1098,8 @@ WebKitLegacy: default: false WebKit: - default: WebKit::defaultWebRTCCodecsInGPUProcess() + "ENABLE(GPU_PROCESS_BY_DEFAULT)": true + default: false WebCore: default: false Modified: trunk/Source/WebKit/ChangeLog (292364 => 292365) --- trunk/Source/WebKit/ChangeLog 2022-04-05 02:06:26 UTC (rev 292364) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 02:09:45 UTC (rev 292365) @@ -1,3 +1,24 @@ +2022-04-04 Tim Horton + +Remove GPU process system feature flags +https://bugs.webkit.org/show_bug.cgi?id=238766 + +Reviewed by Simon Fraser. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist:
[webkit-changes] [292364] trunk/Source/WebCore
Title: [292364] trunk/Source/WebCore Revision 292364 Author s...@apple.com Date 2022-04-04 19:06:26 -0700 (Mon, 04 Apr 2022) Log Message [GPU Process] CSSFilter should be created only at the painting time https://bugs.webkit.org/show_bug.cgi?id=236574 rdar://89210004 Reviewed by Simon Fraser. Instead of building the whole filter chain to get the filter outsets at the layout time, we can use the SVGFilterPrimitiveStandardAttributes and the FilterOperation super classes to get their outsets without having to build the FilterEffects. CSSFilter::calculateOutsets() is a static method which will loop through the FilterOperations and will add up the outsets of the blur, the drop- shadow and the reference FilterOperation. SVGFilterBuilder::calculateFilterOutsets() will loop through the primitives of the filter element and will call the new virtual method outsets() which will call a static method in the corresponding FilterEffect. FEDropShadow, FEGaussianBlur and FEOffset will be provide static methods for calculating the effect outsets. These static methods will be called from CSSFilter::calculateOutsets() and from the SVGFExxxElements. To remove the duplication of the code from SVGFilterBuilder:: buildFilterEffects() and calculateFilterOutsets(), a new template class named SVGFilterGraph will be introduced. It represents the graph of the SVGFilter. The nodes of this graph will be of type FilterEffecct when it is used to build the SVGFilterExpression. The nodes will be of type SVGFilterPrimitiveStandardAttributes when it is used to calculate the filter outsets. * WebCore.xcodeproj/project.pbxproj: * platform/graphics/filters/FEDropShadow.cpp: (WebCore::FEDropShadow::calculateOutsets): (WebCore::FEDropShadow::outsets const): Deleted. * platform/graphics/filters/FEDropShadow.h: * platform/graphics/filters/FEGaussianBlur.cpp: (WebCore::FEGaussianBlur::calculateOutsets): (WebCore::FEGaussianBlur::outsets const): Deleted. * platform/graphics/filters/FEGaussianBlur.h: * platform/graphics/filters/FEOffset.cpp: (WebCore::FEOffset::calculateOutsets): (WebCore::FEOffset::outsets const): Deleted. * platform/graphics/filters/FEOffset.h: * platform/graphics/filters/Filter.h: * platform/graphics/filters/FilterFunction.h: (WebCore::FilterFunction::apply): (WebCore::FilterFunction::outsets const): Deleted. * rendering/CSSFilter.cpp: (WebCore::calculateBlurEffectOutsets): (WebCore::calculateDropShadowEffectOutsets): (WebCore::referenceFilterElement): (WebCore::calculateReferenceFilterOutsets): (WebCore::createReferenceFilter): (WebCore::CSSFilter::buildFilterFunctions): (WebCore::CSSFilter::calculateOutsets): (WebCore::createSVGFilter): Deleted. (WebCore::CSSFilter::outsets const): Deleted. * rendering/CSSFilter.h: * rendering/RenderLayer.cpp: (WebCore::RenderLayer::filtersForPainting const): (WebCore::RenderLayer::calculateClipRects const): * rendering/RenderLayerFilters.cpp: (WebCore::RenderLayerFilters::calculateOutsets): (WebCore::RenderLayerFilters::beginFilterEffect): (WebCore::RenderLayerFilters::setFilter): Deleted. (WebCore::RenderLayerFilters::buildFilter): Deleted. * rendering/RenderLayerFilters.h: * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::applyResource): * rendering/svg/SVGRenderTreeAsText.cpp: (WebCore::writeSVGResourceContainer): * svg/SVGFEDropShadowElement.cpp: (WebCore::SVGFEDropShadowElement::outsets const): * svg/SVGFEDropShadowElement.h: * svg/SVGFEGaussianBlurElement.cpp: (WebCore::SVGFEGaussianBlurElement::outsets const): * svg/SVGFEGaussianBlurElement.h: * svg/SVGFEOffsetElement.cpp: (WebCore::SVGFEOffsetElement::outsets const): * svg/SVGFEOffsetElement.h: * svg/SVGFilterPrimitiveStandardAttributes.h: (WebCore::SVGFilterPrimitiveStandardAttributes::outsets const): * svg/graphics/filters/SVGFilter.cpp: (WebCore::SVGFilter::create): (WebCore::SVGFilter::calculateResolvedSize): (WebCore::SVGFilter::resolvedSize const): (WebCore::SVGFilter::outsets const): Deleted. * svg/graphics/filters/SVGFilter.h: * svg/graphics/filters/SVGFilterBuilder.cpp: (WebCore::SVGFilterBuilder::SVGFilterBuilder): (WebCore::appendEffectToExpression): (WebCore::appendGraphToExpression): (WebCore::SVGFilterBuilder::buildFilterExpression): (WebCore::calculatePrimitiveOutsets): (WebCore::calculateGraphOutsets): (WebCore::SVGFilterBuilder::calculateFilterOutsets): (WebCore::SVGFilterBuilder::setupBuiltinEffects): Deleted. (WebCore::SVGFilterBuilder::buildFilterEffects): Deleted. (WebCore::SVGFilterBuilder::sourceGraphic const): Deleted. (WebCore::SVGFilterBuilder::sourceAlpha const): Deleted. (WebCore::SVGFilterBuilder::addNamedEffect): Deleted. (WebCore::SVGFilterBuilder::namedEffect const): Deleted. (WebCore::SVGFilterBuilder::namedEffects const): Deleted. (WebCore::SVGFilterBuilder::setEffectInputs): Deleted. (WebCore::SVGFilterBuilder::appendEffectToEffectRenderer): Deleted. (WebCore::SVGFilterBuilder::effectGeometry const): Deleted. (WebCore::SVGFilterBuilder::buildEffectExpressio
[webkit-changes] [292363] trunk/Source/WebKit
Title: [292363] trunk/Source/WebKit Revision 292363 Author simon.fra...@apple.com Date 2022-04-04 19:03:13 -0700 (Mon, 04 Apr 2022) Log Message Remove lots of WebCore:: in RemoteLayerBackingStore https://bugs.webkit.org/show_bug.cgi?id=238765 Reviewed by Wenson Hsieh. Add a `using namespace WebCore` to RemoteLayerBackingStore. WebCore::IOSurface still needs qualification. * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::ensureBackingStore): (WebKit::RemoteLayerBackingStore::encode const): (WebKit::RemoteLayerBackingStore::setNeedsDisplay): (WebKit::RemoteLayerBackingStore::pixelFormat const): (WebKit::RemoteLayerBackingStore::bytesPerPixel const): (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): (WebKit::RemoteLayerBackingStore::applySwappedBuffers): (WebKit::RemoteLayerBackingStore::prepareToDisplay): (WebKit::RemoteLayerBackingStore::dirtyRepaintCounterIfNecessary): (WebKit::RemoteLayerBackingStore::ensureFrontBuffer): (WebKit::RemoteLayerBackingStore::prepareBuffers): (WebKit::RemoteLayerBackingStore::paintContents): (WebKit::RemoteLayerBackingStore::drawInContext): (WebKit::RemoteLayerBackingStore::enumerateRectsBeingDrawn): (WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer): (WebKit::RemoteLayerBackingStore::takePendingFlushers): (WebKit::RemoteLayerBackingStore::setBufferVolatile): (WebKit::RemoteLayerBackingStore::setBufferNonVolatile): (WebKit::RemoteLayerBackingStore::setFrontBufferNonVolatile): (WebKit::RemoteLayerBackingStore::bufferForType const): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm Diff Modified: trunk/Source/WebKit/ChangeLog (292362 => 292363) --- trunk/Source/WebKit/ChangeLog 2022-04-05 01:48:00 UTC (rev 292362) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 02:03:13 UTC (rev 292363) @@ -1,5 +1,36 @@ 2022-04-04 Simon Fraser +Remove lots of WebCore:: in RemoteLayerBackingStore +https://bugs.webkit.org/show_bug.cgi?id=238765 + +Reviewed by Wenson Hsieh. + +Add a `using namespace WebCore` to RemoteLayerBackingStore. WebCore::IOSurface still needs qualification. + +* Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: +(WebKit::RemoteLayerBackingStore::ensureBackingStore): +(WebKit::RemoteLayerBackingStore::encode const): +(WebKit::RemoteLayerBackingStore::setNeedsDisplay): +(WebKit::RemoteLayerBackingStore::pixelFormat const): +(WebKit::RemoteLayerBackingStore::bytesPerPixel const): +(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): +(WebKit::RemoteLayerBackingStore::applySwappedBuffers): +(WebKit::RemoteLayerBackingStore::prepareToDisplay): +(WebKit::RemoteLayerBackingStore::dirtyRepaintCounterIfNecessary): +(WebKit::RemoteLayerBackingStore::ensureFrontBuffer): +(WebKit::RemoteLayerBackingStore::prepareBuffers): +(WebKit::RemoteLayerBackingStore::paintContents): +(WebKit::RemoteLayerBackingStore::drawInContext): +(WebKit::RemoteLayerBackingStore::enumerateRectsBeingDrawn): +(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer): +(WebKit::RemoteLayerBackingStore::takePendingFlushers): +(WebKit::RemoteLayerBackingStore::setBufferVolatile): +(WebKit::RemoteLayerBackingStore::setBufferNonVolatile): +(WebKit::RemoteLayerBackingStore::setFrontBufferNonVolatile): +(WebKit::RemoteLayerBackingStore::bufferForType const): + +2022-04-04 Simon Fraser + Remove lots of WebCore:: in RemoteRenderingBackend https://bugs.webkit.org/show_bug.cgi?id=238763 Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm (292362 => 292363) --- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2022-04-05 01:48:00 UTC (rev 292362) +++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2022-04-05 02:03:13 UTC (rev 292363) @@ -55,6 +55,8 @@ namespace WebKit { +using namespace WebCore; + RemoteLayerBackingStore::RemoteLayerBackingStore(PlatformCALayerRemote* layer) : m_layer(layer) , m_lastDisplayTime(-MonotonicTime::infinity()) @@ -85,7 +87,7 @@ return nullptr; } -void RemoteLayerBackingStore::ensureBackingStore(Type type, WebCore::FloatSize size, float scale, bool deepColor, bool isOpaque, IncludeDisplayList includeDisplayList) +void RemoteLayerBackingStore::ensureBackingStore(Type type, FloatSize size, float scale, bool deepColor, bool isOpaque, IncludeDisplayList includeDisplayList) { if (m_type == type && m_size == size && m_scale == scale && m_deepColor == deepColor && m_isOpaque == isOpaque && m_includeDisplayList == includeDisplayList) return; @@ -116,7 +118,7 @@ void RemoteLayerBackingStore::encode(IPC::Encoder& encoder) const { -auto handleFromBuffer = [](WebCore::ImageBuffer& buffer) -> std::optional { +auto han
[webkit-changes] [292362] trunk/LayoutTests
Title: [292362] trunk/LayoutTests Revision 292362 Author matteo_flo...@apple.com Date 2022-04-04 18:48:00 -0700 (Mon, 04 Apr 2022) Log Message REGRESSION(r291770-r291762): [ iOS ] css3/background/background-repeat-round-auto1.html is a flaky image failure https://bugs.webkit.org/show_bug.cgi?id=238781 Unreviewed test gardening. * platform/ios/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/ios/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (292361 => 292362) --- trunk/LayoutTests/ChangeLog 2022-04-05 01:46:53 UTC (rev 292361) +++ trunk/LayoutTests/ChangeLog 2022-04-05 01:48:00 UTC (rev 292362) @@ -1,5 +1,14 @@ 2022-04-04 Matteo Flores +REGRESSION(r291770-r291762): [ iOS ] css3/background/background-repeat-round-auto1.html is a flaky image failure +https://bugs.webkit.org/show_bug.cgi?id=238781 + +Unreviewed test gardening. + +* platform/ios/TestExpectations: + +2022-04-04 Matteo Flores + REGRESSION(r290676?): [ iOS ] media/video-played-ranges-1.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=238771 Modified: trunk/LayoutTests/platform/ios/TestExpectations (292361 => 292362) --- trunk/LayoutTests/platform/ios/TestExpectations 2022-04-05 01:46:53 UTC (rev 292361) +++ trunk/LayoutTests/platform/ios/TestExpectations 2022-04-05 01:48:00 UTC (rev 292362) @@ -3553,6 +3553,8 @@ webkit.org/b/238771 media/video-played-ranges-1.html [ Pass Failure ] +webkit.org/b/238781 css3/background/background-repeat-round-auto1.html [ Pass ImageOnlyFailure ] + webkit.org/b/237159 imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-049.html [ Pass Crash ] webkit.org/b/237108 http/tests/websocket/tests/hybi/extensions.html [ Pass ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292361] trunk/Source
Title: [292361] trunk/Source Revision 292361 Author gnavamar...@apple.com Date 2022-04-04 18:46:53 -0700 (Mon, 04 Apr 2022) Log Message Use Ref and RefPtr pattern when handling document close calls https://bugs.webkit.org/show_bug.cgi?id=238747 Reviewed by Sam Weinig. Ensure document object remains for the scope of the call. Source/WebCore: * inspector/DOMPatchSupport.cpp: (WebCore::DOMPatchSupport::patchDocument): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::stopLoading): * loader/FrameLoader.cpp: (WebCore::FrameLoader::init): (WebCore::FrameLoader::clear): * loader/cache/CachedSVGDocument.cpp: (WebCore::CachedSVGDocument::finishLoading): * loader/cache/CachedSVGFont.cpp: (WebCore::CachedSVGFont::ensureCustomFontData): * xml/XMLHttpRequest.cpp: Source/WebKitLegacy/win: * DOMHTMLClasses.cpp: (DOMHTMLDocument::close): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/inspector/DOMPatchSupport.cpp trunk/Source/WebCore/loader/DocumentLoader.cpp trunk/Source/WebCore/loader/FrameLoader.cpp trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp trunk/Source/WebCore/xml/XMLHttpRequest.cpp trunk/Source/WebKitLegacy/win/ChangeLog trunk/Source/WebKitLegacy/win/DOMHTMLClasses.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (292360 => 292361) --- trunk/Source/WebCore/ChangeLog 2022-04-05 01:41:10 UTC (rev 292360) +++ trunk/Source/WebCore/ChangeLog 2022-04-05 01:46:53 UTC (rev 292361) @@ -1,3 +1,25 @@ +2022-04-04 Gabriel Nava Marino + +Use Ref and RefPtr pattern when handling document close calls +https://bugs.webkit.org/show_bug.cgi?id=238747 + +Reviewed by Sam Weinig. + +Ensure document object remains for the scope of the call. + +* inspector/DOMPatchSupport.cpp: +(WebCore::DOMPatchSupport::patchDocument): +* loader/DocumentLoader.cpp: +(WebCore::DocumentLoader::stopLoading): +* loader/FrameLoader.cpp: +(WebCore::FrameLoader::init): +(WebCore::FrameLoader::clear): +* loader/cache/CachedSVGDocument.cpp: +(WebCore::CachedSVGDocument::finishLoading): +* loader/cache/CachedSVGFont.cpp: +(WebCore::CachedSVGFont::ensureCustomFontData): +* xml/XMLHttpRequest.cpp: + 2022-04-04 Matt Woodrow intersectsWithAncestor should take fragmented boxes into account. Modified: trunk/Source/WebCore/inspector/DOMPatchSupport.cpp (292360 => 292361) --- trunk/Source/WebCore/inspector/DOMPatchSupport.cpp 2022-04-05 01:41:10 UTC (rev 292360) +++ trunk/Source/WebCore/inspector/DOMPatchSupport.cpp 2022-04-05 01:46:53 UTC (rev 292361) @@ -102,9 +102,10 @@ std::unique_ptr newInfo = createDigest(*newDocument->documentElement(), &m_unusedNodesMap); if (innerPatchNode(*oldInfo, *newInfo).hasException()) { +Ref document { m_document }; // Fall back to rewrite. -m_document.write(nullptr, markup); -m_document.close(); +document->write(nullptr, markup); +document->close(); } } Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (292360 => 292361) --- trunk/Source/WebCore/loader/DocumentLoader.cpp 2022-04-05 01:41:10 UTC (rev 292360) +++ trunk/Source/WebCore/loader/DocumentLoader.cpp 2022-04-05 01:46:53 UTC (rev 292361) @@ -397,7 +397,7 @@ // We always need to explicitly cancel the Document's parser when stopping the load. // Otherwise cancelling the parser while starting the next page load might result // in unexpected side effects such as erroneous event dispatch. ( http://webkit.org/b/117112 ) -if (Document* document = this->document()) +if (RefPtr document = this->document()) document->cancelParsing(); stopLoadingSubresources(); Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (292360 => 292361) --- trunk/Source/WebCore/loader/FrameLoader.cpp 2022-04-05 01:41:10 UTC (rev 292360) +++ trunk/Source/WebCore/loader/FrameLoader.cpp 2022-04-05 01:46:53 UTC (rev 292361) @@ -345,7 +345,8 @@ m_provisionalDocumentLoader->startLoadingMainResource(); Ref protect(m_frame); -m_frame.document()->cancelParsing(); +Ref document { *m_frame.document() }; +document->cancelParsing(); m_stateMachine.advanceTo(FrameLoaderStateMachine::DisplayingInitialEmptyDocument); m_networkingContext = m_client->createNetworkingContext(); @@ -626,12 +627,13 @@ m_needsClear = false; if (neededClear && m_frame.document()->backForwardCacheState() != Document::InBackForwardCache) { -m_frame.document()->cancelParsing(); -m_frame.document()->stopActiveDOMObjects(); -bool hadLivingRenderTree = m_frame.document()->hasLivingRenderTree(); -m_frame.document()->willBeRemovedFromFrame(); +Ref document { *m_frame.document() }; +document->cancelParsing(); +document->stopActiveDOMObjects(); +bool hadLivingRenderTree =
[webkit-changes] [292360] trunk/Source/WebKit
Title: [292360] trunk/Source/WebKit Revision 292360 Author simon.fra...@apple.com Date 2022-04-04 18:41:10 -0700 (Mon, 04 Apr 2022) Log Message Remove lots of WebCore:: in RemoteRenderingBackend https://bugs.webkit.org/show_bug.cgi?id=238763 Reviewed by Wenson Hsieh. RemoteRenderingBackend already has a `using namespace WebCore` so remove the explicit namespacing. Also clean up some includes in the header. * GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer): (WebKit::RemoteRenderingBackend::getPixelBufferForImageBufferWithNewMemory): (WebKit::RemoteRenderingBackend::putPixelBufferForImageBuffer): (WebKit::RemoteRenderingBackend::getDataURLForImageBuffer): (WebKit::RemoteRenderingBackend::getDataURLForImageBufferWithQualifiedIdentifier): (WebKit::RemoteRenderingBackend::getDataForImageBuffer): (WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer): (WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier): (WebKit::RemoteRenderingBackend::cacheFont): (WebKit::handleFromBuffer): (WebKit::RemoteRenderingBackend::markSurfacesVolatile): * GPUProcess/graphics/RemoteRenderingBackend.h: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h Diff Modified: trunk/Source/WebKit/ChangeLog (292359 => 292360) --- trunk/Source/WebKit/ChangeLog 2022-04-05 01:33:11 UTC (rev 292359) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 01:41:10 UTC (rev 292360) @@ -1,3 +1,28 @@ +2022-04-04 Simon Fraser + +Remove lots of WebCore:: in RemoteRenderingBackend +https://bugs.webkit.org/show_bug.cgi?id=238763 + +Reviewed by Wenson Hsieh. + +RemoteRenderingBackend already has a `using namespace WebCore` so remove the explicit namespacing. + +Also clean up some includes in the header. + +* GPUProcess/graphics/RemoteRenderingBackend.cpp: +(WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer): +(WebKit::RemoteRenderingBackend::getPixelBufferForImageBufferWithNewMemory): +(WebKit::RemoteRenderingBackend::putPixelBufferForImageBuffer): +(WebKit::RemoteRenderingBackend::getDataURLForImageBuffer): +(WebKit::RemoteRenderingBackend::getDataURLForImageBufferWithQualifiedIdentifier): +(WebKit::RemoteRenderingBackend::getDataForImageBuffer): +(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer): +(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier): +(WebKit::RemoteRenderingBackend::cacheFont): +(WebKit::handleFromBuffer): +(WebKit::RemoteRenderingBackend::markSurfacesVolatile): +* GPUProcess/graphics/RemoteRenderingBackend.h: + 2022-04-04 Tim Horton Remove VP8/9 and WebM-related system feature flags Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (292359 => 292360) --- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-04-05 01:33:11 UTC (rev 292359) +++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-04-05 01:41:10 UTC (rev 292360) @@ -202,7 +202,7 @@ updateRenderingResourceRequest(); } -void RemoteRenderingBackend::getPixelBufferForImageBuffer(RenderingResourceIdentifier imageBuffer, WebCore::PixelBufferFormat&& destinationFormat, WebCore::IntRect&& srcRect, CompletionHandler&& completionHandler) +void RemoteRenderingBackend::getPixelBufferForImageBuffer(RenderingResourceIdentifier imageBuffer, PixelBufferFormat&& destinationFormat, IntRect&& srcRect, CompletionHandler&& completionHandler) { MESSAGE_CHECK(m_getPixelBufferSharedMemory, "No shared memory for getPixelBufferForImageBuffer"); QualifiedRenderingResourceIdentifier qualifiedImageBuffer { imageBuffer, m_gpuConnectionToWebProcess->webProcessIdentifier() }; @@ -217,7 +217,7 @@ completionHandler(); } -void RemoteRenderingBackend::getPixelBufferForImageBufferWithNewMemory(RenderingResourceIdentifier imageBuffer, SharedMemory::IPCHandle&& handle, WebCore::PixelBufferFormat&& destinationFormat, WebCore::IntRect&& srcRect, CompletionHandler&& completionHandler) +void RemoteRenderingBackend::getPixelBufferForImageBufferWithNewMemory(RenderingResourceIdentifier imageBuffer, SharedMemory::IPCHandle&& handle, PixelBufferFormat&& destinationFormat, IntRect&& srcRect, CompletionHandler&& completionHandler) { m_getPixelBufferSharedMemory = nullptr; auto sharedMemory = WebKit::SharedMemory::map(handle.handle, WebKit::SharedMemory::Protection::ReadWrite); @@ -232,7 +232,7 @@ m_getPixelBufferSharedMemory = nullptr; } -void RemoteRenderingBackend::putPixelBufferForImageBuffer(WebCore::RenderingResourceIdentifier imageBuffer, WebCore::PixelBuffer&& pixelBuffer, WebCore::IntRect&& srcRect, WebCore::IntPoint&& destPoint, WebCore:
[webkit-changes] [292359] trunk/LayoutTests
Title: [292359] trunk/LayoutTests Revision 292359 Author matteo_flo...@apple.com Date 2022-04-04 18:33:11 -0700 (Mon, 04 Apr 2022) Log Message REGRESSION(r290676?): [ iOS ] media/video-played-ranges-1.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=238771 Unreviewed test gardening. * platform/ios/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/ios/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (292358 => 292359) --- trunk/LayoutTests/ChangeLog 2022-04-05 00:34:32 UTC (rev 292358) +++ trunk/LayoutTests/ChangeLog 2022-04-05 01:33:11 UTC (rev 292359) @@ -1,5 +1,14 @@ 2022-04-04 Matteo Flores +REGRESSION(r290676?): [ iOS ] media/video-played-ranges-1.html is a flaky text failure +https://bugs.webkit.org/show_bug.cgi?id=238771 + +Unreviewed test gardening. + +* platform/ios/TestExpectations: + +2022-04-04 Matteo Flores + [ iOS ] http/wpt/mediarecorder/mute-tracks.html is a flaky crash https://bugs.webkit.org/show_bug.cgi?id=238774 Modified: trunk/LayoutTests/platform/ios/TestExpectations (292358 => 292359) --- trunk/LayoutTests/platform/ios/TestExpectations 2022-04-05 00:34:32 UTC (rev 292358) +++ trunk/LayoutTests/platform/ios/TestExpectations 2022-04-05 01:33:11 UTC (rev 292359) @@ -3551,6 +3551,8 @@ webkit.org/b/238284 editing/spelling/spellcheck-async-remove-frame.html [ Pass Crash ] +webkit.org/b/238771 media/video-played-ranges-1.html [ Pass Failure ] + webkit.org/b/237159 imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-049.html [ Pass Crash ] webkit.org/b/237108 http/tests/websocket/tests/hybi/extensions.html [ Pass ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292358] trunk/Source
Title: [292358] trunk/Source Revision 292358 Author timothy_hor...@apple.com Date 2022-04-04 17:34:32 -0700 (Mon, 04 Apr 2022) Log Message Remove VP8/9 and WebM-related system feature flags https://bugs.webkit.org/show_bug.cgi?id=238757 Reviewed by Eric Carlson. Source/WebKit: * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultWebMFormatReaderEnabled): Deleted. (WebKit::defaultVP8DecoderEnabled): Deleted. (WebKit::defaultVP9DecoderEnabled): Deleted. (WebKit::defaultWebMParserEnabled): Deleted. * Shared/WebPreferencesDefaultValues.h: Source/WebKitLegacy/mac: * WebView/WebPreferencesDefaultValues.h: Source/WTF: * Scripts/Preferences/WebPreferences.yaml: * Scripts/Preferences/WebPreferencesExperimental.yaml: Demote these to standard preferences, and stop using system feature flags to control their defaults. Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h trunk/Source/WebKitLegacy/mac/ChangeLog trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.h trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm Diff Modified: trunk/Source/WTF/ChangeLog (292357 => 292358) --- trunk/Source/WTF/ChangeLog 2022-04-04 23:42:13 UTC (rev 292357) +++ trunk/Source/WTF/ChangeLog 2022-04-05 00:34:32 UTC (rev 292358) @@ -1,5 +1,16 @@ 2022-04-04 Tim Horton +Remove VP8/9 and WebM-related system feature flags +https://bugs.webkit.org/show_bug.cgi?id=238757 + +Reviewed by Eric Carlson. + +* Scripts/Preferences/WebPreferences.yaml: +* Scripts/Preferences/WebPreferencesExperimental.yaml: +Demote these to standard preferences, and stop using system feature flags to control their defaults. + +2022-04-04 Tim Horton + Remove the 'sw_vp9_decoder_on_battery' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238761 Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml (292357 => 292358) --- trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml 2022-04-04 23:42:13 UTC (rev 292357) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml 2022-04-05 00:34:32 UTC (rev 292358) @@ -2459,6 +2459,27 @@ WebCore: default: false +VP8DecoderEnabled: + type: bool + webcoreBinding: none + condition: ENABLE(VP9) + defaultValue: +WebKitLegacy: + default: true +WebKit: + default: true + +VP9DecoderEnabled: + type: bool + condition: ENABLE(VP9) + defaultValue: +WebCore: + default: false +WebKitLegacy: + default: true +WebKit: + default: true + VideoQualityIncludesDisplayCompositingEnabled: type: bool condition: ENABLE(VIDEO) @@ -2556,6 +2577,25 @@ WebCore: default: false +WebMFormatReaderEnabled: + type: bool + webcoreBinding: RuntimeEnabledFeatures + condition: ENABLE(WEBM_FORMAT_READER) + defaultValue: +WebKit: + default: true + +# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely. +WebMParserEnabled: + type: bool + webcoreBinding: RuntimeEnabledFeatures + condition: ENABLE(MEDIA_SOURCE) + defaultValue: +WebKitLegacy: + default: true +WebKit: + default: true + WebSecurityEnabled: type: bool inspectorOverride: true Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (292357 => 292358) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-04 23:42:13 UTC (rev 292357) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-05 00:34:32 UTC (rev 292358) @@ -1490,31 +1490,6 @@ WebKit: default: true -VP8DecoderEnabled: - type: bool - humanReadableName: "VP8 decoder" - humanReadableDescription: "Enable VP8 decoder" - webcoreBinding: none - condition: ENABLE(VP9) - defaultValue: -WebKitLegacy: - default: WebKit::defaultVP8DecoderEnabled() -WebKit: - default: WebKit::defaultVP8DecoderEnabled() - -VP9DecoderEnabled: - type: bool - humanReadableName: "VP9 decoder" - humanReadableDescription: "Enable VP9 decoder" - condition: ENABLE(VP9) - defaultValue: -WebCore: - default: false -WebKitLegacy: - default: WebKit::defaultVP9DecoderEnabled() -WebKit: - default: WebKit::defaultVP9DecoderEnabled() - VP9SWDecoderEnabledOnBattery: type: bool humanReadableName: "VP9 SW
[webkit-changes] [292357] trunk/LayoutTests
Title: [292357] trunk/LayoutTests Revision 292357 Author matteo_flo...@apple.com Date 2022-04-04 16:42:13 -0700 (Mon, 04 Apr 2022) Log Message [ iOS ] http/wpt/mediarecorder/mute-tracks.html is a flaky crash https://bugs.webkit.org/show_bug.cgi?id=238774 Unreviewed test gardening. * platform/ios/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/ios/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (292356 => 292357) --- trunk/LayoutTests/ChangeLog 2022-04-04 23:21:35 UTC (rev 292356) +++ trunk/LayoutTests/ChangeLog 2022-04-04 23:42:13 UTC (rev 292357) @@ -1,3 +1,12 @@ +2022-04-04 Matteo Flores + +[ iOS ] http/wpt/mediarecorder/mute-tracks.html is a flaky crash +https://bugs.webkit.org/show_bug.cgi?id=238774 + +Unreviewed test gardening. + +* platform/ios/TestExpectations: + 2022-04-04 Matt Woodrow intersectsWithAncestor should take fragmented boxes into account. Modified: trunk/LayoutTests/platform/ios/TestExpectations (292356 => 292357) --- trunk/LayoutTests/platform/ios/TestExpectations 2022-04-04 23:21:35 UTC (rev 292356) +++ trunk/LayoutTests/platform/ios/TestExpectations 2022-04-04 23:42:13 UTC (rev 292357) @@ -3247,7 +3247,8 @@ http/tests/workers/service/service-worker-download-async-delegates.https.html [ Pass Crash ] # rdar://80396393 ([ iOS15 ] http/wpt/mediarecorder/mute-tracks.html is a flaky failure) -http/wpt/mediarecorder/mute-tracks.html [ Pass Failure ] +# webkit.org/b/238774 [ iOS ] http/wpt/mediarecorder/mute-tracks.html is a flaky crash +http/wpt/mediarecorder/mute-tracks.html [ Pass Failure Crash ] # rdar://80396502 ([ iOS15 ] http/wpt/mediarecorder/pause-recording.html is a flaky crash) http/wpt/mediarecorder/pause-recording.html [ Pass Crash ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292356] trunk/Source/WebKit
Title: [292356] trunk/Source/WebKit Revision 292356 Author wenson_hs...@apple.com Date 2022-04-04 16:21:35 -0700 (Mon, 04 Apr 2022) Log Message [macOS] [WK2] Add plumbing to extract video frames in element fullscreen https://bugs.webkit.org/show_bug.cgi?id=238715 rdar://91216152 Reviewed by Tim Horton. Implement (begin|cancel)ElementFullscreenVideoExtraction on macOS, leaving empty stubs for non-internal builds. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::beginElementFullscreenVideoExtraction): (WebKit::WebViewImpl::cancelElementFullscreenVideoExtraction): * UIProcess/mac/PageClientImplMac.h: * UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::beginElementFullscreenVideoExtraction): (WebKit::PageClientImpl::cancelElementFullscreenVideoExtraction): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm Diff Modified: trunk/Source/WebKit/ChangeLog (292355 => 292356) --- trunk/Source/WebKit/ChangeLog 2022-04-04 23:06:33 UTC (rev 292355) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 23:21:35 UTC (rev 292356) @@ -1,3 +1,22 @@ +2022-04-04 Wenson Hsieh + +[macOS] [WK2] Add plumbing to extract video frames in element fullscreen +https://bugs.webkit.org/show_bug.cgi?id=238715 +rdar://91216152 + +Reviewed by Tim Horton. + +Implement (begin|cancel)ElementFullscreenVideoExtraction on macOS, leaving empty stubs for non-internal builds. + +* UIProcess/Cocoa/WebViewImpl.h: +* UIProcess/Cocoa/WebViewImpl.mm: +(WebKit::WebViewImpl::beginElementFullscreenVideoExtraction): +(WebKit::WebViewImpl::cancelElementFullscreenVideoExtraction): +* UIProcess/mac/PageClientImplMac.h: +* UIProcess/mac/PageClientImplMac.mm: +(WebKit::PageClientImpl::beginElementFullscreenVideoExtraction): +(WebKit::PageClientImpl::cancelElementFullscreenVideoExtraction): + 2022-04-04 Tim Horton Remove the 'general_directory_for_storage' system feature flag Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h (292355 => 292356) --- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h 2022-04-04 23:06:33 UTC (rev 292355) +++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h 2022-04-04 23:21:35 UTC (rev 292356) @@ -679,6 +679,9 @@ void didFinishPresentation(WKRevealItemPresenter *); #endif +void beginElementFullscreenVideoExtraction(const ShareableBitmap::Handle&, WebCore::FloatRect); +void cancelElementFullscreenVideoExtraction(); + private: #if HAVE(TOUCH_BAR) void setUpTextTouchBar(NSTouchBar *); Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (292355 => 292356) --- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2022-04-04 23:06:33 UTC (rev 292355) +++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2022-04-04 23:21:35 UTC (rev 292356) @@ -5967,6 +5967,18 @@ #endif } +#if USE(APPLE_INTERNAL_SDK) +#import +#else +void WebViewImpl::beginElementFullscreenVideoExtraction(const ShareableBitmap::Handle&, WebCore::FloatRect) +{ +} + +void WebViewImpl::cancelElementFullscreenVideoExtraction() +{ +} +#endif + } // namespace WebKit #endif // PLATFORM(MAC) Modified: trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h (292355 => 292356) --- trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h 2022-04-04 23:06:33 UTC (rev 292355) +++ trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h 2022-04-04 23:21:35 UTC (rev 292356) @@ -256,6 +256,10 @@ bool effectiveAppearanceIsDark() const override; bool effectiveUserInterfaceLevelIsElevated() const override; +bool isFullscreenVideoExtractionEnabled() const final { return true; } +void beginElementFullscreenVideoExtraction(const ShareableBitmap::Handle&, WebCore::FloatRect) final; +void cancelElementFullscreenVideoExtraction() final; + #if ENABLE(DRAG_SUPPORT) void didPerformDragOperation(bool handled) final; #endif Modified: trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm (292355 => 292356) --- trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2022-04-04 23:06:33 UTC (rev 292355) +++ trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2022-04-04 23:21:35 UTC (rev 292356) @@ -1039,6 +1039,16 @@ #endif +void PageClientImpl::beginElementFullscreenVideoExtraction(const ShareableBitmap::Handle& bitmapHandle, FloatRect bounds) +{ +m_impl->beginElementFullscreenVideoExtraction(bitmapHandle, bounds); +} + +void PageClientImpl::cancelElementFullscreenVideoExtraction() +{ +m_impl->cancelElementFullscreenVideoExtraction(); +} + } // namespace WebKit #endif // PLATFORM(MAC) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mai
[webkit-changes] [292355] trunk/Source/WebKit
Title: [292355] trunk/Source/WebKit Revision 292355 Author timothy_hor...@apple.com Date 2022-04-04 16:06:33 -0700 (Mon, 04 Apr 2022) Log Message Remove the 'general_directory_for_storage' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238762 Reviewed by Sihui Liu. * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm Diff Modified: trunk/Source/WebKit/ChangeLog (292354 => 292355) --- trunk/Source/WebKit/ChangeLog 2022-04-04 22:28:03 UTC (rev 292354) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 23:06:33 UTC (rev 292355) @@ -1,5 +1,19 @@ 2022-04-04 Tim Horton +Remove the 'general_directory_for_storage' system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238762 + +Reviewed by Sihui Liu. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist: +* FeatureFlags/WebKit-macos.plist: +* FeatureFlags/WebKit-watchos.plist: +* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: +(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths): + +2022-04-04 Tim Horton + Remove the 'sw_vp9_decoder_on_battery' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238761 Modified: trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist (292354 => 292355) --- trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:28:03 UTC (rev 292354) +++ trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 23:06:33 UTC (rev 292355) @@ -62,10 +62,5 @@ Enabled - general_directory_for_storage - - Enabled - - Modified: trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist (292354 => 292355) --- trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:28:03 UTC (rev 292354) +++ trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 23:06:33 UTC (rev 292355) @@ -62,10 +62,5 @@ Enabled - general_directory_for_storage - - Enabled - - Modified: trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist (292354 => 292355) --- trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:28:03 UTC (rev 292354) +++ trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 23:06:33 UTC (rev 292355) @@ -67,10 +67,5 @@ Enabled - general_directory_for_storage - - Enabled - - Modified: trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist (292354 => 292355) --- trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04 22:28:03 UTC (rev 292354) +++ trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04 23:06:33 UTC (rev 292355) @@ -62,10 +62,5 @@ Enabled - general_directory_for_storage - - Enabled - - Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (292354 => 292355) --- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2022-04-04 22:28:03 UTC (rev 292354) +++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2022-04-04 23:06:33 UTC (rev 292355) @@ -626,8 +626,7 @@ bool WebsiteDataStore::defaultShouldUseCustomStoragePaths() { -bool useGeneralDirectoryForStorageFeatureFlag = isFeatureFlagEnabled("general_directory_for_storage"_s, true); -return !internalFeatureEnabled(WebPreferencesKey::useGeneralDirectoryForStorageKey(), useGeneralDirectoryForStorageFeatureFlag); +return !internalFeatureEnabled(WebPreferencesKey::useGeneralDirectoryForStorageKey(), true); } } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292354] trunk/Source
Title: [292354] trunk/Source Revision 292354 Author timothy_hor...@apple.com Date 2022-04-04 15:28:03 -0700 (Mon, 04 Apr 2022) Log Message Remove the 'sw_vp9_decoder_on_battery' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238761 Reviewed by Eric Carlson. Source/WebKit: * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultVP9SWDecoderEnabledOnBattery): Deleted. Source/WTF: * Scripts/Preferences/WebPreferencesExperimental.yaml: Switch this to a standard experimental feature. Also, remove the WebKitLegacy case, as it is not used there. Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h Diff Modified: trunk/Source/WTF/ChangeLog (292353 => 292354) --- trunk/Source/WTF/ChangeLog 2022-04-04 22:24:52 UTC (rev 292353) +++ trunk/Source/WTF/ChangeLog 2022-04-04 22:28:03 UTC (rev 292354) @@ -1,5 +1,16 @@ 2022-04-04 Tim Horton +Remove the 'sw_vp9_decoder_on_battery' system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238761 + +Reviewed by Eric Carlson. + +* Scripts/Preferences/WebPreferencesExperimental.yaml: +Switch this to a standard experimental feature. +Also, remove the WebKitLegacy case, as it is not used there. + +2022-04-04 Tim Horton + Remove the 'async frame and overflow scrolling' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238758 Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (292353 => 292354) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-04 22:24:52 UTC (rev 292353) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-04 22:28:03 UTC (rev 292354) @@ -1515,7 +1515,6 @@ WebKit: default: WebKit::defaultVP9DecoderEnabled() -# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely. VP9SWDecoderEnabledOnBattery: type: bool humanReadableName: "VP9 SW decoder on battery" @@ -1523,10 +1522,8 @@ webcoreBinding: none condition: ENABLE(VP9) defaultValue: -WebKitLegacy: +WebKit: default: false -WebKit: - default: WebKit::defaultVP9SWDecoderEnabledOnBattery() VisualViewportAPIEnabled: type: bool Modified: trunk/Source/WebKit/ChangeLog (292353 => 292354) --- trunk/Source/WebKit/ChangeLog 2022-04-04 22:24:52 UTC (rev 292353) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 22:28:03 UTC (rev 292354) @@ -1,5 +1,19 @@ 2022-04-04 Tim Horton +Remove the 'sw_vp9_decoder_on_battery' system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238761 + +Reviewed by Eric Carlson. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist: +* FeatureFlags/WebKit-macos.plist: +* FeatureFlags/WebKit-watchos.plist: +* Shared/WebPreferencesDefaultValues.cpp: +(WebKit::defaultVP9SWDecoderEnabledOnBattery): Deleted. + +2022-04-04 Tim Horton + Remove the 'async frame and overflow scrolling' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238758 Modified: trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist (292353 => 292354) --- trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:24:52 UTC (rev 292353) +++ trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:28:03 UTC (rev 292354) @@ -42,11 +42,6 @@ - sw_vp9_decoder_on_battery - - Enabled - - vp9_decoder Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist (292353 => 292354) --- trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:24:52 UTC (rev 292353) +++ trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:28:03 UTC (rev 292354) @@ -42,11 +42,6 @@ - sw_vp9_decoder_on_battery - - Enabled - - vp9_decoder Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist (292353 => 292354) --- trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:24:52 UTC (rev 292353) +++ trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:28:03 UTC (rev 292354) @@ -42,11 +42,6 @@ - sw_vp9_decoder_on_battery - - Enabled - - vp9_decoder Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist (292353 => 292354) --- trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04
[webkit-changes] [292353] trunk/Source
Title: [292353] trunk/Source Revision 292353 Author timothy_hor...@apple.com Date 2022-04-04 15:24:52 -0700 (Mon, 04 Apr 2022) Log Message Remove the 'async frame and overflow scrolling' system feature flag https://bugs.webkit.org/show_bug.cgi?id=238758 Reviewed by Simon Fraser. Source/WebKit: * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultAsyncFrameAndOverflowScrollingEnabled): Deleted. (WebKit::defaultAsyncFrameScrollingEnabled): Deleted. (WebKit::defaultAsyncOverflowScrollingEnabled): Deleted. * Shared/WebPreferencesDefaultValues.h: Source/WTF: * Scripts/Preferences/WebPreferencesInternal.yaml: Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h Diff Modified: trunk/Source/WTF/ChangeLog (292352 => 292353) --- trunk/Source/WTF/ChangeLog 2022-04-04 22:22:34 UTC (rev 292352) +++ trunk/Source/WTF/ChangeLog 2022-04-04 22:24:52 UTC (rev 292353) @@ -1,5 +1,14 @@ 2022-04-04 Tim Horton +Remove the 'async frame and overflow scrolling' system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238758 + +Reviewed by Simon Fraser. + +* Scripts/Preferences/WebPreferencesInternal.yaml: + +2022-04-04 Tim Horton + Remove the incremental_pdf system feature flag https://bugs.webkit.org/show_bug.cgi?id=238754 Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml (292352 => 292353) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml 2022-04-04 22:22:34 UTC (rev 292352) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml 2022-04-04 22:24:52 UTC (rev 292353) @@ -101,8 +101,8 @@ default: false WebKit: "USE(NICOSIA)": true - "PLATFORM(IOS_FAMILY)": true - default: WebKit::defaultAsyncFrameScrollingEnabled() + "PLATFORM(COCOA)": true + default: false WebCore: default: false @@ -117,8 +117,8 @@ default: false WebKit: "USE(NICOSIA)": true - "PLATFORM(IOS_FAMILY)": true - default: WebKit::defaultAsyncFrameScrollingEnabled() + "PLATFORM(COCOA)": true + default: false WebCore: default: false Modified: trunk/Source/WebKit/ChangeLog (292352 => 292353) --- trunk/Source/WebKit/ChangeLog 2022-04-04 22:22:34 UTC (rev 292352) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 22:24:52 UTC (rev 292353) @@ -1,5 +1,22 @@ 2022-04-04 Tim Horton +Remove the 'async frame and overflow scrolling' system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238758 + +Reviewed by Simon Fraser. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist: +* FeatureFlags/WebKit-macos.plist: +* FeatureFlags/WebKit-watchos.plist: +* Shared/WebPreferencesDefaultValues.cpp: +(WebKit::defaultAsyncFrameAndOverflowScrollingEnabled): Deleted. +(WebKit::defaultAsyncFrameScrollingEnabled): Deleted. +(WebKit::defaultAsyncOverflowScrollingEnabled): Deleted. +* Shared/WebPreferencesDefaultValues.h: + +2022-04-04 Tim Horton + Remove the incremental_pdf system feature flag https://bugs.webkit.org/show_bug.cgi?id=238754 Modified: trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist (292352 => 292353) --- trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:22:34 UTC (rev 292352) +++ trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:24:52 UTC (rev 292353) @@ -2,11 +2,6 @@ - async_frame_and_overflow_scrolling - - Enabled - - gpu_process_canvas_rendering Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist (292352 => 292353) --- trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:22:34 UTC (rev 292352) +++ trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:24:52 UTC (rev 292353) @@ -2,11 +2,6 @@ - async_frame_and_overflow_scrolling - - Enabled - - gpu_process_canvas_rendering Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist (292352 => 292353) --- trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:22:34 UTC (rev 292352) +++ trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:24:52 UTC (rev 292353) @@ -2,11 +2,6 @@ - async_frame_and_overflow_scrolling - - Enabled - - gpu_process_canvas_rendering Enabled Modified: trunk/Source/WebKit/FeatureFla
[webkit-changes] [292352] trunk/Source
Title: [292352] trunk/Source Revision 292352 Author timothy_hor...@apple.com Date 2022-04-04 15:22:34 -0700 (Mon, 04 Apr 2022) Log Message Remove the incremental_pdf system feature flag https://bugs.webkit.org/show_bug.cgi?id=238754 Reviewed by Wenson Hsieh. Source/WebKit: * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * Shared/WebPreferencesDefaultValues.cpp: * Shared/WebPreferencesDefaultValues.h: (WebKit::defaultIncrementalPDFEnabled): Deleted. Remove the incremental_pdf system feature flag in favor of a traditional WebKit preference. Source/WebKitLegacy/mac: * WebView/WebPreferencesDefaultValues.mm: * WebView/WebPreferencesDefaultValues.h: (WebKit::defaultIncrementalPDFEnabled): Deleted. Source/WTF: * Scripts/Preferences/WebPreferences.yaml: * Scripts/Preferences/WebPreferencesExperimental.yaml: Demote incremental PDF rendering from a developer-exposed experimental feature to a standard web preference now that it's been on and shipping for a while. Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h trunk/Source/WebKitLegacy/mac/ChangeLog trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.h trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm Diff Modified: trunk/Source/WTF/ChangeLog (292351 => 292352) --- trunk/Source/WTF/ChangeLog 2022-04-04 22:08:44 UTC (rev 292351) +++ trunk/Source/WTF/ChangeLog 2022-04-04 22:22:34 UTC (rev 292352) @@ -1,5 +1,17 @@ 2022-04-04 Tim Horton +Remove the incremental_pdf system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238754 + +Reviewed by Wenson Hsieh. + +* Scripts/Preferences/WebPreferences.yaml: +* Scripts/Preferences/WebPreferencesExperimental.yaml: +Demote incremental PDF rendering from a developer-exposed experimental feature +to a standard web preference now that it's been on and shipping for a while. + +2022-04-04 Tim Horton + Remove the 'RB_full_manage_WK_jetsam' system feature flag and simplify adjacent logic https://bugs.webkit.org/show_bug.cgi?id=238760 Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml (292351 => 292352) --- trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml 2022-04-04 22:08:44 UTC (rev 292351) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml 2022-04-04 22:22:34 UTC (rev 292352) @@ -929,6 +929,18 @@ WebCore: default: false +IncrementalPDFLoadingEnabled: + type: bool + condition: HAVE(INCREMENTAL_PDF_APIS) + webcoreBinding: RuntimeEnabledFeatures + defaultValue: +WebKitLegacy: + "PLATFORM(MAC)": true + default: false +WebKit: + "PLATFORM(MAC)": true + default: false + IncrementalRenderingSuppressionTimeout: type: double webKitLegacyPreferenceKey: WebKitIncrementalRenderingSuppressionTimeoutInSeconds Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (292351 => 292352) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-04 22:08:44 UTC (rev 292351) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-04-04 22:22:34 UTC (rev 292352) @@ -672,18 +672,6 @@ WebCore: default: false -IncrementalPDFLoadingEnabled: - type: bool - humanReadableName: "Incremental PDF Loading" - humanReadableDescription: "Enable Incremental PDF Loading on supported platforms" - condition: HAVE(INCREMENTAL_PDF_APIS) - webcoreBinding: RuntimeEnabledFeatures - defaultValue: -WebKitLegacy: - default: WebKit::defaultIncrementalPDFEnabled() -WebKit: - default: WebKit::defaultIncrementalPDFEnabled() - InertAttributeEnabled: type: bool humanReadableName: "inert attribute" Modified: trunk/Source/WebKit/ChangeLog (292351 => 292352) --- trunk/Source/WebKit/ChangeLog 2022-04-04 22:08:44 UTC (rev 292351) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 22:22:34 UTC (rev 292352) @@ -1,5 +1,21 @@ 2022-04-04 Tim Horton +Remove the incremental_pdf system feature flag +https://bugs.webkit.org/show_bug.cgi?id=238754 + +Reviewed by Wenson Hsieh. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist: +* FeatureFlags/WebKit-macos.plist: +* FeatureFlags/WebKit-watchos.plist: +* Shared/WebPreferencesDefaultValues.cpp: +* Shared/WebPreferencesDefaultValues.h: +(WebKi
[webkit-changes] [292351] trunk/Source
Title: [292351] trunk/Source Revision 292351 Author timothy_hor...@apple.com Date 2022-04-04 15:08:44 -0700 (Mon, 04 Apr 2022) Log Message Remove the 'RB_full_manage_WK_jetsam' system feature flag and simplify adjacent logic https://bugs.webkit.org/show_bug.cgi?id=238760 Reviewed by Chris Dumez. Source/WebKit: * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: * UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: (WebKit::shouldLeakBoost): Source/WTF: * wtf/PlatformHave.h: Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/PlatformHave.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm Diff Modified: trunk/Source/WTF/ChangeLog (292350 => 292351) --- trunk/Source/WTF/ChangeLog 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WTF/ChangeLog 2022-04-04 22:08:44 UTC (rev 292351) @@ -1,3 +1,12 @@ +2022-04-04 Tim Horton + +Remove the 'RB_full_manage_WK_jetsam' system feature flag and simplify adjacent logic +https://bugs.webkit.org/show_bug.cgi?id=238760 + +Reviewed by Chris Dumez. + +* wtf/PlatformHave.h: + 2022-04-04 Chris Dumez Drop mostly unused String(const LChar*) constructor Modified: trunk/Source/WTF/wtf/PlatformHave.h (292350 => 292351) --- trunk/Source/WTF/wtf/PlatformHave.h 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WTF/wtf/PlatformHave.h 2022-04-04 22:08:44 UTC (rev 292351) @@ -730,10 +730,6 @@ #define HAVE_CTFONTDESCRIPTOR_CREATE_WITH_TEXT_STYLE_AND_ATTRIBUTES 1 #endif -#if PLATFORM(IOS_FAMILY) -#define HAVE_RUNNINGBOARD_WEBKIT_PRIORITY_SUPPORT 1 -#endif - #if PLATFORM(IOS) || PLATFORM(MACCATALYST) #define HAVE_UI_EVENT_ATTRIBUTION 1 #endif Modified: trunk/Source/WebKit/ChangeLog (292350 => 292351) --- trunk/Source/WebKit/ChangeLog 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 22:08:44 UTC (rev 292351) @@ -1,5 +1,19 @@ 2022-04-04 Tim Horton +Remove the 'RB_full_manage_WK_jetsam' system feature flag and simplify adjacent logic +https://bugs.webkit.org/show_bug.cgi?id=238760 + +Reviewed by Chris Dumez. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist: +* FeatureFlags/WebKit-macos.plist: +* FeatureFlags/WebKit-watchos.plist: +* UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: +(WebKit::shouldLeakBoost): + +2022-04-04 Tim Horton + Remove some unused system feature flags https://bugs.webkit.org/show_bug.cgi?id=238755 Modified: trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist (292350 => 292351) --- trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:08:44 UTC (rev 292351) @@ -77,11 +77,6 @@ Enabled - RB_full_manage_WK_jetsam - - Enabled - - general_directory_for_storage Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist (292350 => 292351) --- trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:08:44 UTC (rev 292351) @@ -77,11 +77,6 @@ Enabled - RB_full_manage_WK_jetsam - - Enabled - - general_directory_for_storage Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist (292350 => 292351) --- trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:08:44 UTC (rev 292351) @@ -82,11 +82,6 @@ Enabled - RB_full_manage_WK_jetsam - - Enabled - - general_directory_for_storage Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist (292350 => 292351) --- trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04 22:08:44 UTC (rev 292351) @@ -77,11 +77,6 @@ Enabled - RB_full_manage_WK_jetsam - - Enabled - - general_directory_for_storage Enabled Modified: trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm (292350 => 292351) --- trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm 2022-04-04 22:04:24 UTC (rev 292350) +++ trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm 2022-04-04 22:08:44 UTC (rev 292351) @@ -84,15 +84,10 @@ { #if PLATFORM(IOS_FAMILY) UNUSED_PARAM(launchOptions); -#if HAVE(RUNNINGBOARD_WEBKIT_PRIORITY_SUPPORT) -// On iOS, we don't need to leak a bo
[webkit-changes] [292350] trunk
Title: [292350] trunk Revision 292350 Author mattwood...@apple.com Date 2022-04-04 15:04:24 -0700 (Mon, 04 Apr 2022) Log Message intersectsWithAncestor should take fragmented boxes into account. https://bugs.webkit.org/show_bug.cgi?id=238648 Reviewed by Dean Jackson. Source/WebCore: Test: compositing/backing/backing-store-columns-inside-position-fixed.html * rendering/RenderLayerBacking.cpp: (WebCore::intersectsWithAncestor): Use boundingBox() for intersectsWithAncestor, so that we can explicitly request the box that contains all fragment boxes. LayoutTests: * compositing/backing/backing-store-columns-inside-position-fixed-expected.txt: Added. * compositing/backing/backing-store-columns-inside-position-fixed.html: Added. Adds new test that scrolls content split into columns until the first column is offscreen, to confirm that we still have a backing store. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/rendering/RenderLayerBacking.cpp Added Paths trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed-expected.txt trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed.html Diff Modified: trunk/LayoutTests/ChangeLog (292349 => 292350) --- trunk/LayoutTests/ChangeLog 2022-04-04 22:01:16 UTC (rev 292349) +++ trunk/LayoutTests/ChangeLog 2022-04-04 22:04:24 UTC (rev 292350) @@ -1,3 +1,16 @@ +2022-04-04 Matt Woodrow + +intersectsWithAncestor should take fragmented boxes into account. +https://bugs.webkit.org/show_bug.cgi?id=238648 + +Reviewed by Dean Jackson. + +* compositing/backing/backing-store-columns-inside-position-fixed-expected.txt: Added. +* compositing/backing/backing-store-columns-inside-position-fixed.html: Added. + +Adds new test that scrolls content split into columns until the first column is offscreen, to confirm +that we still have a backing store. + 2022-04-04 Alan Bujtas [CSS-contain] Update select element based test failures. Added: trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed-expected.txt (0 => 292350) --- trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed-expected.txt (rev 0) +++ trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed-expected.txt 2022-04-04 22:04:24 UTC (rev 292350) @@ -0,0 +1,21 @@ +(GraphicsLayer + (anchor 0.00 0.00) + (bounds 800.00 600.00) + (backingStoreAttached 1) + (children 1 +(GraphicsLayer + (bounds 800.00 600.00) + (contentsOpaque 1) + (backingStoreAttached 1) + (children 1 +(GraphicsLayer + (position 8.00 0.00) + (bounds 600.00 600.00) + (drawsContent 1) + (backingStoreAttached 1) +) + ) +) + ) +) + Added: trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed.html (0 => 292350) --- trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed.html (rev 0) +++ trunk/LayoutTests/compositing/backing/backing-store-columns-inside-position-fixed.html 2022-04-04 22:04:24 UTC (rev 292350) @@ -0,0 +1,71 @@ + + + + +#out { +position: absolute; +} + +.fixed { +position: fixed; +top: 0px; +bottom:0px; +overflow-x: scroll; +} +.scrolled { +column-width: 200px; +column-fill: auto; +height: 200px; +width: 600px; +} +.filler { +width: 200px; +height: 200px; +background-color:blue; +} + + +if (window.testRunner) { +testRunner.dumpAsText(); +testRunner.waitUntilDone(); +} + +window._onload_ = function() { +if (!window.testRunner) +return; + +requestAnimationFrame(() => { + +let scroller = document.getElementById('fixed'); +scroller.scrollTo(400, 0); + +let uiScript = `(function() { +uiController.doAfterNextStablePresentationUpdate(function() { +uiController.uiScriptComplete(); +}); +})()` + +testRunner.runUIScript(uiScript, () => { +let afterLayers = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_BACKING_STORE_ATTACHED); +let out = document.getElementById('out'); +out.textContent = `${afterLayers}` +testRunner.notifyDone(); +}); +}); +}; + + + + + + + + + + + + + + + + Modified: trunk/Source/WebCore/ChangeLog (292349 => 292350) --- trunk/Source/WebCore/ChangeLog 2022-04-04 22:01:16 UTC (rev 292349) +++ trunk/Source/WebCore/ChangeLog 2022-04-04 22:04:24 UTC (rev 292350) @@ -1,3 +1,18 @@ +2022-04-04 Matt Woodrow + +intersectsWithAncestor should take fragmented boxes into account. +https://bugs.webkit.org/show_bug.cgi?id=238648 + +Reviewed by Dean Jackson. + +Test: compositing/backing/backi
[webkit-changes] [292349] trunk/Source/WebKit
Title: [292349] trunk/Source/WebKit Revision 292349 Author timothy_hor...@apple.com Date 2022-04-04 15:01:16 -0700 (Mon, 04 Apr 2022) Log Message Remove some unused system feature flags https://bugs.webkit.org/show_bug.cgi?id=238755 Reviewed by Wenson Hsieh. * FeatureFlags/WebKit-appletvos.plist: * FeatureFlags/WebKit-ios.plist: * FeatureFlags/WebKit-macos.plist: * FeatureFlags/WebKit-watchos.plist: Neither of these flags is read anywhere, so they don't need to be in the plist. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist Diff Modified: trunk/Source/WebKit/ChangeLog (292348 => 292349) --- trunk/Source/WebKit/ChangeLog 2022-04-04 21:56:40 UTC (rev 292348) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 22:01:16 UTC (rev 292349) @@ -1,3 +1,16 @@ +2022-04-04 Tim Horton + +Remove some unused system feature flags +https://bugs.webkit.org/show_bug.cgi?id=238755 + +Reviewed by Wenson Hsieh. + +* FeatureFlags/WebKit-appletvos.plist: +* FeatureFlags/WebKit-ios.plist: +* FeatureFlags/WebKit-macos.plist: +* FeatureFlags/WebKit-watchos.plist: +Neither of these flags is read anywhere, so they don't need to be in the plist. + 2022-04-04 Cameron McCormack Remove display list map entry before remote resource Modified: trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist (292348 => 292349) --- trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 21:56:40 UTC (rev 292348) +++ trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist 2022-04-04 22:01:16 UTC (rev 292349) @@ -47,11 +47,6 @@ - InAppBrowserPrivacy - - Enabled - - incremental_pdf Enabled @@ -72,11 +67,6 @@ Enabled - WebXR - - Enabled - - webm_format_reader Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist (292348 => 292349) --- trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 21:56:40 UTC (rev 292348) +++ trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist 2022-04-04 22:01:16 UTC (rev 292349) @@ -47,11 +47,6 @@ - InAppBrowserPrivacy - - Enabled - - incremental_pdf Enabled @@ -72,11 +67,6 @@ Enabled - WebXR - - Enabled - - webm_format_reader Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist (292348 => 292349) --- trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 21:56:40 UTC (rev 292348) +++ trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist 2022-04-04 22:01:16 UTC (rev 292349) @@ -47,11 +47,6 @@ - InAppBrowserPrivacy - - Enabled - - incremental_pdf Enabled @@ -72,11 +67,6 @@ Enabled - WebXR - - Enabled - - webm_format_reader Enabled Modified: trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist (292348 => 292349) --- trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04 21:56:40 UTC (rev 292348) +++ trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist 2022-04-04 22:01:16 UTC (rev 292349) @@ -47,11 +47,6 @@ - InAppBrowserPrivacy - - Enabled - - incremental_pdf Enabled @@ -72,11 +67,6 @@ Enabled - WebXR - - Enabled - - webm_format_reader Enabled ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292348] branches/safari-613-branch
Title: [292348] branches/safari-613-branch Revision 292348 Author alanc...@apple.com Date 2022-04-04 14:56:40 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r292242. rdar://91259284 Change one-shot maxTimerNestingLevel from 5 to 10 https://bugs.webkit.org/show_bug.cgi?id=237168 Reviewed by Sam Weinig, Saam Barati, and Cameron McCormack . Source/WebCore: Recently, we found from Chromium change[1] that changing this from 5 to 10 offers 10% Speedometer2 improvement because Speedometer2's setTimeout nesting level is typically 7-8. We discussed with folks including Chris, Maciej, Saam, and Cameron and for now, we increase this from 5 to 10 to align to Blink's change to keep these kind of web content fast. This is not aligned to the spec, and currently, we only apply it to one-shot timer. [1]: https://chromium-review.googlesource.com/c/chromium/src/+/3473463 page/DOMTimer.cpp: (WebCore::DOMTimer::intervalClampedToMinimum const): (WebCore::DOMTimer::alignedFireTime const): LayoutTests: fast/dom/timer-increase-min-interval.html: fast/dom/timer-throttling-hidden-page-expected.txt: fast/dom/timer-throttling-hidden-page.html: Modified Paths branches/safari-613-branch/LayoutTests/fast/dom/timer-increase-min-interval.html branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page-expected.txt branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page.html branches/safari-613-branch/Source/WebCore/page/DOMTimer.cpp Diff Modified: branches/safari-613-branch/LayoutTests/fast/dom/timer-increase-min-interval.html (292347 => 292348) --- branches/safari-613-branch/LayoutTests/fast/dom/timer-increase-min-interval.html 2022-04-04 21:56:37 UTC (rev 292347) +++ branches/safari-613-branch/LayoutTests/fast/dom/timer-increase-min-interval.html 2022-04-04 21:56:40 UTC (rev 292348) @@ -17,7 +17,8 @@ function slowTimeoutHandler() { // Note: the count threshold is tied somewhat to the // maxTimerNestingLevel in DOMTimer.cpp. -if (count < 10) +// Up to 10, we use 1ms, and after that, it becomes 500ms. So, it should be 12. +if (count < 12) log("PASS"); else log("FAIL -- timeout ran " + count + " times"); Modified: branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page-expected.txt (292347 => 292348) --- branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page-expected.txt 2022-04-04 21:56:37 UTC (rev 292347) +++ branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page-expected.txt 2022-04-04 21:56:40 UTC (rev 292348) @@ -8,6 +8,11 @@ PASS internals.isTimerThrottled(timerHandle) is false PASS internals.isTimerThrottled(timerHandle) is false PASS internals.isTimerThrottled(timerHandle) is false +PASS internals.isTimerThrottled(timerHandle) is false +PASS internals.isTimerThrottled(timerHandle) is false +PASS internals.isTimerThrottled(timerHandle) is false +PASS internals.isTimerThrottled(timerHandle) is false +PASS internals.isTimerThrottled(timerHandle) is false PASS internals.isTimerThrottled(timerHandle) is true PASS successfullyParsed is true Modified: branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page.html (292347 => 292348) --- branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page.html 2022-04-04 21:56:37 UTC (rev 292347) +++ branches/safari-613-branch/LayoutTests/fast/dom/timer-throttling-hidden-page.html 2022-04-04 21:56:40 UTC (rev 292348) @@ -7,7 +7,7 @@ let timerCount = 0; const timeoutInterval = 10; -const maxNestingLevel = 5; +const maxNestingLevel = 10; let timerHandle = 0; function testTimer() Modified: branches/safari-613-branch/Source/WebCore/page/DOMTimer.cpp (292347 => 292348) --- branches/safari-613-branch/Source/WebCore/page/DOMTimer.cpp 2022-04-04 21:56:37 UTC (rev 292347) +++ branches/safari-613-branch/Source/WebCore/page/DOMTimer.cpp 2022-04-04 21:56:40 UTC (rev 292348) @@ -48,10 +48,12 @@ namespace WebCore { -static const Seconds minIntervalForNonUserObservableChangeTimers { 1_s }; // Empirically determined to maximize battery life. -static const Seconds minIntervalForOneShotTimers { 0_ms }; -static const Seconds minIntervalForRepeatingTimers { 1_ms }; -static const int maxTimerNestingLevel = 5; +static constexpr Seconds minIntervalForNonUserObservableChangeTimers { 1_s }; // Empirically determined to maximize battery life. +static constexpr Seconds minIntervalForOneShotTimers { 0_ms }; +static constexpr Seconds minIntervalForRepeatingTimers { 1_ms }; +static constexpr int maxTimerNestingLevel = 10; +static constexpr int maxTimerNestingLevelForOneShotTimers = 10; +static constexpr int maxTimerNestingLevelForRepeatingTimers = 5; class DOMTimerFireState { public: @@ -385,7 +387,7 @@ Seconds interval = std::max(m_oneShot ? minIntervalForOneShotTimers : m
[webkit-changes] [292347] branches/safari-613-branch
Title: [292347] branches/safari-613-branch Revision 292347 Author alanc...@apple.com Date 2022-04-04 14:56:37 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291998. rdar://91259284 Remove the 1ms minimum for setTimeout https://bugs.webkit.org/show_bug.cgi?id=221124 Reviewed by Sam Weinig. LayoutTests/imported/w3c: web-platform-tests/html/webappapis/timers/zero-settimeout.any-expected.txt: web-platform-tests/html/webappapis/timers/zero-settimeout.any.html: web-platform-tests/html/webappapis/timers/zero-settimeout.any.js: (async_test): web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker-expected.txt: web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html: New test checking that 0ms and 1ms timeouts are called in the right order. web-platform-tests/FileAPI/file/File-constructor.any.worker-expected.txt: web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.worker-expected.txt: web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.worker-expected.txt: web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-redirect-to-cross-origin.sub.any.worker-expected.txt: web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-same-origin.sub.any.worker-expected.txt: web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-cross-origin.sub.any.worker-expected.txt: web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-redirect-to-cross-origin.sub.any.worker-expected.txt: web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-same-origin.sub.any.worker-expected.txt: Disable console output in some worker tests where the reduced timeout would cause intemittent failures due to the console message sometimes not making it to the test output in time. Source/WebCore: This patch removes the 1ms minimum for setTimeout. The HTML spec makes no mention of such a minimum, and Firefox and Chrome do not enforce this minimum. Removing this for setTimeout results in a 0.7-2.1% improvement on Speedometer, depending on platform and hardware. The WPT added here demonstrates how this change can affect pages: if a page schedules a 1ms and then a 0ms timeout in the same turn of the event loop, then with this patch they will now be fired in the reverse order. Since Firefox and Chrome do not impose a 1ms minimum, this reduces the risk of this being a compatbility problem. Scheduling a 0ms timeout will cause its callback to be called the next time around the event loop. Other, non-timer queued tasks, will be pre-empted. This behavior is permitted by the HTML spec, since the event loop processing model[1] states that the implementation can choose which task source to service, and timer callbacks are dispatched using their own task source. Due to the way the SharedTimer is called, we don't need to literally dispatch a task with a new TaskSource::Timer source. (If we decided later to make a different about whether to service timer callbacks before tasks from all other task sources, we might need to.) Not addressing the setTimeout 1ms minimum here, which should likely also be removed. While we're here, settle on "one shot" rather rather than "single shot" as the term for timers that fire once. [1] https://html.spec.whatwg.org/#event-loop-processing-model Tests: imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.html imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html page/DOMTimer.h: page/DOMTimer.cpp: (WebCore::DOMTimer::DOMTimer): (WebCore::DOMTimer::install): (WebCore::DOMTimer::fired): (WebCore::DOMTimer::updateTimerIntervalIfNecessary): (WebCore::DOMTimer::intervalClampedToMinimum const): LayoutTests: TestExpectations: Disable console output in some worker tests where the reduced timeout would cause intemittent failures due to the console message sometimes not making it to the test output in time. js/script-tests/weakref-finalizationregistry.js: (turnEventLoop): Use a timeout of 1ms instead of 0ms so that the deferred work task that calls the JS FinalizationRegistry callback gets a chance to run before we continue on to the assertion that it was run. Modified Paths branches/safari-613-branch/LayoutTests/TestExpectations branches/safari-613-branch/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor.any.worker-expected.txt branches/safari-613-branch/LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.worker-expected.txt branches/safari-613-branch/LayoutTests/im
[webkit-changes] [292346] branches/safari-613-branch/Source/WebCore/html/parser
Title: [292346] branches/safari-613-branch/Source/WebCore/html/parser Revision 292346 Author alanc...@apple.com Date 2022-04-04 14:56:32 -0700 (Mon, 04 Apr 2022) Log Message Add HTMLNameCache.h/cpp from r289991. Prior cherry-pick somehow missed it. Added Paths branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.cpp branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.h Diff Added: branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.cpp (0 => 292346) --- branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.cpp (rev 0) +++ branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.cpp 2022-04-04 21:56:32 UTC (rev 292346) @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "HTMLNameCache.h" + +namespace WebCore { + +HTMLNameCache::AtomStringCache& HTMLNameCache::atomStringCache(AtomStringType type) +{ +static MainThreadNeverDestroyed caches[2]; +return caches[static_cast(type)].get(); +} + +HTMLNameCache::QualifiedNameCache& HTMLNameCache::qualifiedNameCache() +{ +static MainThreadNeverDestroyed cache; +return cache.get(); +} + +} // namespace WebCore Added: branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.h (0 => 292346) --- branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.h (rev 0) +++ branches/safari-613-branch/Source/WebCore/html/parser/HTMLNameCache.h 2022-04-04 21:56:32 UTC (rev 292346) @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2021 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#include "QualifiedName.h" +#include +#include +#include + +namespace WebCore { + +class HTMLNameCache { +public: +ALWAYS_INLINE static AtomString makeTagName(Span string) +{ +return makeAtomString(string); +} + +ALWAYS_INLINE static QualifiedName makeAttributeQualifiedName(Span string) +{ +return makeQualifiedName(string); +} + +ALWAYS_INLINE static AtomString makeAttributeValue(Span string) +{ +return makeAtomString(string); +} + +ALWAYS_INLINE static void clear() +{ +// FIXME (webkit.org/b/230019): We should try to find more opportunities to clear this cache without hindering this performance optimization. +
[webkit-changes] [292344] branches/safari-613-branch/Source/WebCore
Title: [292344] branches/safari-613-branch/Source/WebCore Revision 292344 Author alanc...@apple.com Date 2022-04-04 14:56:25 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291981. rdar://91259284 Speed up Element::removedFromAncestor() https://bugs.webkit.org/show_bug.cgi?id=238404 Reviewed by Geoffrey Garen. Speed up Element::removedFromAncestor() by inlining some of the functions it is calling. This is a confirmed 1.5-2% progression on Speedometer on iMac 20,1. dom/Element.cpp: (WebCore::Element::removedFromAncestor): (WebCore::Element::clearBeforePseudoElementSlow): (WebCore::Element::clearAfterPseudoElementSlow): (WebCore::Element::setSavedLayerScrollPositionSlow): (WebCore::Element::clearBeforePseudoElement): Deleted. (WebCore::Element::clearAfterPseudoElement): Deleted. (WebCore::Element::setSavedLayerScrollPosition): Deleted. dom/Element.h: (WebCore::Element::setSavedLayerScrollPosition): (WebCore::Element::clearBeforePseudoElement): (WebCore::Element::clearAfterPseudoElement): page/PointerCaptureController.cpp: (WebCore::PointerCaptureController::elementWasRemovedSlow): (WebCore::PointerCaptureController::elementWasRemoved): Deleted. page/PointerCaptureController.h: (WebCore::PointerCaptureController::elementWasRemoved): page/PointerLockController.cpp: (WebCore::PointerLockController::elementWasRemovedInternal): (WebCore::PointerLockController::elementWasRemoved): Deleted. page/PointerLockController.h: (WebCore::PointerLockController::elementWasRemoved): Modified Paths branches/safari-613-branch/Source/WebCore/dom/Element.cpp branches/safari-613-branch/Source/WebCore/dom/Element.h branches/safari-613-branch/Source/WebCore/page/PointerCaptureController.cpp branches/safari-613-branch/Source/WebCore/page/PointerCaptureController.h branches/safari-613-branch/Source/WebCore/page/PointerLockController.cpp branches/safari-613-branch/Source/WebCore/page/PointerLockController.h Diff Modified: branches/safari-613-branch/Source/WebCore/dom/Element.cpp (292343 => 292344) --- branches/safari-613-branch/Source/WebCore/dom/Element.cpp 2022-04-04 21:56:22 UTC (rev 292343) +++ branches/safari-613-branch/Source/WebCore/dom/Element.cpp 2022-04-04 21:56:25 UTC (rev 292344) @@ -2407,11 +2407,10 @@ if (hasPendingResources()) document().accessSVGExtensions().removeElementFromPendingResources(*this); -RefPtr frame = document().frame(); Styleable::fromElement(*this).elementWasRemoved(); #if ENABLE(WHEEL_EVENT_LATCHING) -if (frame && frame->page()) { +if (RefPtr frame = document().frame(); frame && frame->page()) { if (auto* scrollLatchingController = frame->page()->scrollLatchingControllerIfExists()) scrollLatchingController->removeLatchingStateForTarget(*this); } @@ -3733,18 +3732,16 @@ pseudoElement->clearHostElement(); } -void Element::clearBeforePseudoElement() +void Element::clearBeforePseudoElementSlow() { -if (!hasRareData()) -return; +ASSERT(hasRareData()); disconnectPseudoElement(elementRareData()->beforePseudoElement()); elementRareData()->setBeforePseudoElement(nullptr); } -void Element::clearAfterPseudoElement() +void Element::clearAfterPseudoElementSlow() { -if (!hasRareData()) -return; +ASSERT(hasRareData()); disconnectPseudoElement(elementRareData()->afterPseudoElement()); elementRareData()->setAfterPseudoElement(nullptr); } @@ -4319,10 +4316,9 @@ return hasRareData() ? elementRareData()->savedLayerScrollPosition() : IntPoint(); } -void Element::setSavedLayerScrollPosition(const IntPoint& position) +void Element::setSavedLayerScrollPositionSlow(const IntPoint& position) { -if (position.isZero() && !hasRareData()) -return; +ASSERT(!position.isZero() || hasRareData()); ensureElementRareData().setSavedLayerScrollPosition(position); } Modified: branches/safari-613-branch/Source/WebCore/dom/Element.h (292343 => 292344) --- branches/safari-613-branch/Source/WebCore/dom/Element.h 2022-04-04 21:56:22 UTC (rev 292343) +++ branches/safari-613-branch/Source/WebCore/dom/Element.h 2022-04-04 21:56:25 UTC (rev 292344) @@ -736,6 +736,10 @@ void addAttributeInternal(const QualifiedName&, const AtomString& value, SynchronizationOfLazyAttribute); void removeAttributeInternal(unsigned index, SynchronizationOfLazyAttribute); +void setSavedLayerScrollPositionSlow(const IntPoint&); +void clearBeforePseudoElementSlow(); +void clearAfterPseudoElementSlow(); + LayoutRect absoluteEventBounds(bool& boundsIncludeAllDescendantElements, bool& includesFixedPositionElements); LayoutRect absoluteEventBoundsOfElementAndDescendants(bool& includesFixedPositionElements); @@ -783,6 +787,25 @@ bool m_hasDuplicateAttribute { false }; }; +inline void Element::setSavedLayerScrollPosition(const IntPoint& posit
[webkit-changes] [292342] branches/safari-613-branch/Source/WebCore
Title: [292342] branches/safari-613-branch/Source/WebCore Revision 292342 Author alanc...@apple.com Date 2022-04-04 14:56:20 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291933. rdar://91259284 Simplify / Optimize JSNodeOwner::isReachableFromOpaqueRoots() https://bugs.webkit.org/show_bug.cgi?id=238380 Reviewed by Geoffrey Garen. Drop checks specific to HTMLAudioElement and HTMLImageElement from JSNodeOwner::isReachableFromOpaqueRoots() so that other Node wrappers that are not audio or image elements do not have to pay the cost. In the HTMLAudioElement case, HTMLAudioElement already subclasses HTMLMediaElement which is an ActiveDOMObject and HTMLMediaElement::virtualHasPendingActivity() already takes care of keeping the JS wrapper alive is there is audio playing. For HTMLImageElement, I made it subclass ActiveDOMObject so that the JSHTMLImageElement wrapper is now calling HTMLImageElement::hasPendingActivity() instead of every JS Node wrapper via JSNodeOwner::isReachableFromOpaqueRoots(). bindings/js/JSNodeCustom.cpp: (WebCore::isReachableFromDOM): html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::HTMLImageElement): (WebCore::HTMLImageElement::create): (WebCore::HTMLImageElement::createForLegacyFactoryFunction): (WebCore::HTMLImageElement::activeDOMObjectName const): (WebCore::HTMLImageElement::virtualHasPendingActivity const): (WebCore::HTMLImageElement::hasPendingActivity const): Deleted. html/HTMLImageElement.h: html/HTMLImageElement.idl: html/ImageDocument.cpp: (WebCore::ImageDocumentElement::create): Modified Paths branches/safari-613-branch/Source/WebCore/bindings/js/JSNodeCustom.cpp branches/safari-613-branch/Source/WebCore/html/HTMLImageElement.cpp branches/safari-613-branch/Source/WebCore/html/HTMLImageElement.h branches/safari-613-branch/Source/WebCore/html/HTMLImageElement.idl branches/safari-613-branch/Source/WebCore/html/ImageDocument.cpp Diff Modified: branches/safari-613-branch/Source/WebCore/bindings/js/JSNodeCustom.cpp (292341 => 292342) --- branches/safari-613-branch/Source/WebCore/bindings/js/JSNodeCustom.cpp 2022-04-04 21:56:17 UTC (rev 292341) +++ branches/safari-613-branch/Source/WebCore/bindings/js/JSNodeCustom.cpp 2022-04-04 21:56:20 UTC (rev 292342) @@ -32,15 +32,8 @@ #include "Document.h" #include "DocumentFragment.h" #include "DocumentType.h" -#include "HTMLAudioElement.h" -#include "HTMLCanvasElement.h" #include "HTMLElement.h" -#include "HTMLFrameElementBase.h" -#include "HTMLImageElement.h" -#include "HTMLLinkElement.h" #include "HTMLNames.h" -#include "HTMLScriptElement.h" -#include "HTMLStyleElement.h" #include "JSAttr.h" #include "JSCDATASection.h" #include "JSComment.h" @@ -64,8 +57,6 @@ #include "SVGElement.h" #include "ShadowRoot.h" #include "GCReachableRef.h" -#include "StyleSheet.h" -#include "StyledElement.h" #include "Text.h" namespace WebCore { @@ -76,32 +67,6 @@ static inline bool isReachableFromDOM(Node* node, AbstractSlotVisitor& visitor, const char** reason) { if (!node->isConnected()) { -if (is(*node)) { -auto& element = downcast(*node); - -// If a wrapper is the last reference to an image element -// that is loading but not in the document, the wrapper is observable -// because it is the only thing keeping the image element alive, and if -// the element is destroyed, its load event will not fire. -// FIXME: The DOM should manage this issue without the help of _javascript_ wrappers. -if (is(element)) { -if (downcast(element).hasPendingActivity()) { -if (UNLIKELY(reason)) -*reason = "Image element with pending activity"; -return true; -} -} -#if ENABLE(VIDEO) -else if (is(element)) { -if (!downcast(element).paused()) { -if (UNLIKELY(reason)) -*reason = "Audio element which is not paused"; -return true; -} -} -#endif -} - // If a node is firing event listeners, its wrapper is observable because // its wrapper is responsible for marking those event listeners. if (node->isFiringEventListeners()) { Modified: branches/safari-613-branch/Source/WebCore/html/HTMLImageElement.cpp (292341 => 292342) --- branches/safari-613-branch/Source/WebCore/html/HTMLImageElement.cpp 2022-04-04 21:56:17 UTC (rev 292341) +++ branches/safari-613-branch/Source/WebCore/html/HTMLImageElement.cpp 2022-04-04 21:56:20 UTC (rev 292342) @@ -73,6 +73,7 @@ HTMLImageElement::HTMLImageElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form) : HTMLElement(tagName, document) +, ActiveDOMObject(document) , m_imageLoader(makeUnique(*this)) , m_form(null
[webkit-changes] [292341] branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h
Title: [292341] branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h Revision 292341 Author alanc...@apple.com Date 2022-04-04 14:56:17 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291866. rdar://91259284 Reduce EventListenerVector's minimum capacity from 16 to 2 https://bugs.webkit.org/show_bug.cgi?id=238374 Reviewed by Geoffrey Garen. Reduce EventListenerVector's minimum capacity from 16 to 2 to save memory and get a small speedup on Speedometer. Very few event listeners are registered for a given type in the common case so eagerly allocating enough memory for 16 is wasteful. This is a confirmed 0.4% progression on Speedometer according to A/B bots. dom/EventListenerMap.h: Modified Paths branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h Diff Modified: branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h (292340 => 292341) --- branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h 2022-04-04 21:56:15 UTC (rev 292340) +++ branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h 2022-04-04 21:56:17 UTC (rev 292341) @@ -43,7 +43,7 @@ class EventTarget; -using EventListenerVector = Vector, 1>; +using EventListenerVector = Vector, 1, CrashOnOverflow, 2>; class EventListenerMap { public: ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292345] branches/safari-613-branch
Title: [292345] branches/safari-613-branch Revision 292345 Author alanc...@apple.com Date 2022-04-04 14:56:30 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291889. rdar://91259284 Enable PGO when building for release and production https://bugs.webkit.org/show_bug.cgi?id=238119 rdar://90182309 Reviewed by Alexey Proskuryakov and Geoff Garen. Source/_javascript_Core: See WebCore/ChangeLog for more information. Configurations/Base.xcconfig: Configurations/_javascript_Core.xcconfig: _javascript_Core.xcodeproj/project.pbxproj: Source/WebCore: Attempt to re-land support for compiling against profiling data, after it was reverted due to the profiling data files being too large. We mitigate this by instead storing sparse profdata files as compressed files in WebKitAdditions through git lfs, such that they don't cause the repo to grow significantly each time we update profiling data. At build time, we then introduce new build phase scripts to the _javascript_Core, WebCore and WebKit builds to decompress their respective .profdata.compressed files into .profdata files in the build, using compression_tool. We compile against these profdata files when building for release and production configurations, via the -fprofile-instr-use flag. In the case where the *.profdata.compressed files are non-existent or haven't been downloaded yet, we instead fall back to using an empty profiling data file, but only on non-production builds; this allows us to continue passing in the -fprofile-instr-use flag, without running into build failures. Note that we intentionally require production builds to use the (real) profiling data, and explicitly fail the build with a specific error message in the case where the profiles are missing. Additionally, note that in order to check for and deal with the case where the *.profdata.compressed files are only undownloaded git-lfs stubs, we not only check whether or not the profdata.compressed file exists, but also whether or not the file size is at least an arbitrary cutoff of 4 KB (which should already be an order of magnitude larger than the git-lfs stub). While mostly arbitrary, I chose this cutoff due to the fact that it's very close to the size of the Empty.profdata placeholder file in Tools; in practice, we should expect the profiles for WebKit, WebCore and _javascript_Core to be much, much larger than this empty file. Configurations/Base.xcconfig: Configurations/WebCore.xcconfig: WebCore.xcodeproj/project.pbxproj: Source/WebKit: See WebCore/ChangeLog for more information. Configurations/Base.xcconfig: Configurations/BaseTarget.xcconfig: WebKit.xcodeproj/project.pbxproj: Tools: Add an empty profiling data file that can be used as a fallback only for release (non-production) builds, when the _javascript_Core, WebCore or WebKit profiling data hasn't been locally downloaded. Profiling/Empty.profdata: Added. Modified Paths branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig branches/safari-613-branch/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig branches/safari-613-branch/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj branches/safari-613-branch/Source/WebCore/Configurations/Base.xcconfig branches/safari-613-branch/Source/WebCore/Configurations/WebCore.xcconfig branches/safari-613-branch/Source/WebCore/WebCore.xcodeproj/project.pbxproj branches/safari-613-branch/Source/WebKit/Configurations/Base.xcconfig branches/safari-613-branch/Source/WebKit/Configurations/BaseTarget.xcconfig branches/safari-613-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj Added Paths branches/safari-613-branch/Tools/Profiling/ branches/safari-613-branch/Tools/Profiling/Empty.profdata Diff Modified: branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig (292344 => 292345) --- branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig 2022-04-04 21:56:25 UTC (rev 292344) +++ branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig 2022-04-04 21:56:30 UTC (rev 292345) @@ -98,7 +98,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; PREBINDING = NO; -WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wconditional-uninitialized -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -Wvla -Wliteral-conversion -Wthread-safety; +WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wconditional-uninitialized -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -W
[webkit-changes] [292340] branches/safari-613-branch/Source/WebCore/rendering
Title: [292340] branches/safari-613-branch/Source/WebCore/rendering Revision 292340 Author alanc...@apple.com Date 2022-04-04 14:56:15 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291793. rdar://91259284 Devirtualize RenderText::width https://bugs.webkit.org/show_bug.cgi?id=238285 Reviewed by Antti Koivisto. RenderCombineText handling is moved to RenderText (we already handle combine text in RenderText::widthFromCache). rendering/RenderCombineText.cpp: (WebCore::RenderCombineText::combineTextIfNeeded): These are all non-text-combine callsites. (WebCore::RenderCombineText::width const): Deleted. rendering/RenderCombineText.h: rendering/RenderText.cpp: (WebCore::combineTextWidth): RenderCombineText::combinedTextWidth returns the same value as RenderCombineText::width. (WebCore::RenderText::widthFromCache const): (WebCore::RenderText::width const): rendering/RenderText.h: Modified Paths branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.cpp branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.h branches/safari-613-branch/Source/WebCore/rendering/RenderText.cpp branches/safari-613-branch/Source/WebCore/rendering/RenderText.h Diff Modified: branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.cpp (292339 => 292340) --- branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.cpp 2022-04-04 21:56:12 UTC (rev 292339) +++ branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.cpp 2022-04-04 21:56:15 UTC (rev 292340) @@ -68,14 +68,6 @@ combineTextIfNeeded(); } -float RenderCombineText::width(unsigned from, unsigned length, const FontCascade& font, float xPosition, HashSet* fallbackFonts, GlyphOverflow* glyphOverflow) const -{ -if (m_isCombined) -return !length ? 0 : font.size(); - -return RenderText::width(from, length, font, xPosition, fallbackFonts, glyphOverflow); -} - std::optional RenderCombineText::computeTextOrigin(const FloatRect& boxRect) const { if (!m_isCombined) @@ -148,7 +140,7 @@ compressedFont.update(fontSelector); glyphOverflow.left = glyphOverflow.top = glyphOverflow.right = glyphOverflow.bottom = 0; -float runWidth = RenderText::width(0, text().length(), compressedFont, 0, nullptr, &glyphOverflow); +float runWidth = width(0, text().length(), compressedFont, 0, nullptr, &glyphOverflow); if (runWidth <= emWidth) { combinedTextWidth = runWidth; m_isCombined = true; @@ -178,7 +170,7 @@ compressedFont.update(fontSelector); glyphOverflow.left = glyphOverflow.top = glyphOverflow.right = glyphOverflow.bottom = 0; -float runWidth = RenderText::width(0, text().length(), compressedFont, 0, nullptr, &glyphOverflow); +float runWidth = width(0, text().length(), compressedFont, 0, nullptr, &glyphOverflow); if (runWidth <= emWidth) { combinedTextWidth = runWidth; m_isCombined = true; Modified: branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.h (292339 => 292340) --- branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.h 2022-04-04 21:56:12 UTC (rev 292339) +++ branches/safari-613-branch/Source/WebCore/rendering/RenderCombineText.h 2022-04-04 21:56:15 UTC (rev 292340) @@ -45,7 +45,6 @@ void node() const = delete; bool isCombineText() const override { return true; } -float width(unsigned from, unsigned length, const FontCascade&, float xPosition, HashSet* fallbackFonts = 0, GlyphOverflow* = 0) const override; const char* renderName() const override { return "RenderCombineText"; } void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; void setRenderedText(const String&) override; Modified: branches/safari-613-branch/Source/WebCore/rendering/RenderText.cpp (292339 => 292340) --- branches/safari-613-branch/Source/WebCore/rendering/RenderText.cpp 2022-04-04 21:56:12 UTC (rev 292339) +++ branches/safari-613-branch/Source/WebCore/rendering/RenderText.cpp 2022-04-04 21:56:15 UTC (rev 292340) @@ -703,19 +703,24 @@ return createVisiblePosition(0, Affinity::Downstream); } -ALWAYS_INLINE float RenderText::widthFromCache(const FontCascade& f, unsigned start, unsigned len, float xPos, HashSet* fallbackFonts, GlyphOverflow* glyphOverflow, const RenderStyle& style) const +static inline std::optional combineTextWidth(const RenderText& renderer, const FontCascade& fontCascade, const RenderStyle& style) { -if (style.hasTextCombine() && is(*this)) { -const RenderCombineText& combineText = downcast(*this); -if (combineText.isCombined()) -return combineText.combinedTextWidth(f); -} +if (!style.hasTextCombine() || !is(renderer)) +return { }; +auto& combineTextRenderer = downc
[webkit-changes] [292339] branches/safari-613-branch/Source/WebCore/style
Title: [292339] branches/safari-613-branch/Source/WebCore/style Revision 292339 Author alanc...@apple.com Date 2022-04-04 14:56:12 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291790. rdar://91259284 Allow styles with appearance in matched declaration cache https://bugs.webkit.org/show_bug.cgi?id=238247 Reviewed by Antoine Quint. Improve cache efficiency by allowing styles with appearance (typically form controls) to be cached. In Speedometer this improves the cache hit rate ~75% -> 94%. style/MatchedDeclarationsCache.cpp: (WebCore::Style::MatchedDeclarationsCache::isCacheable): Remove appearance check. (WebCore::Style::MatchedDeclarationsCache::add): Also cache the UA style for styles with appearance. (WebCore::Style::MatchedDeclarationsCache::remove): style/MatchedDeclarationsCache.h: style/StyleResolver.cpp: (WebCore::Style::Resolver::applyMatchedProperties): Also simplify the case where inherited properties affect resolution of other properties by kicking out the existing entry. This also makes the second attempt cacheable. style/StyleResolver.h: Modified Paths branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.cpp branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.h branches/safari-613-branch/Source/WebCore/style/StyleResolver.cpp branches/safari-613-branch/Source/WebCore/style/StyleResolver.h Diff Modified: branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.cpp (292338 => 292339) --- branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.cpp 2022-04-04 21:56:10 UTC (rev 292338) +++ branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.cpp 2022-04-04 21:56:12 UTC (rev 292339) @@ -54,8 +54,6 @@ // content:attr() value depends on the element it is being applied to. if (style.hasAttrContent() || (style.styleType() != PseudoId::None && parentStyle.hasAttrContent())) return false; -if (style.hasEffectiveAppearance()) -return false; if (style.zoom() != RenderStyle::initialZoom()) return false; if (style.writingMode() != RenderStyle::initialWritingMode() || style.direction() != RenderStyle::initialDirection()) @@ -107,7 +105,7 @@ return &entry; } -void MatchedDeclarationsCache::add(const RenderStyle& style, const RenderStyle& parentStyle, unsigned hash, const MatchResult& matchResult) +void MatchedDeclarationsCache::add(const RenderStyle& style, const RenderStyle& parentStyle, const RenderStyle* userAgentAppearanceStyle, unsigned hash, const MatchResult& matchResult) { constexpr unsigned additionsBetweenSweeps = 100; if (++m_additionsSinceLastSweep >= additionsBetweenSweeps && !m_sweepTimer.isActive()) { @@ -115,12 +113,23 @@ m_sweepTimer.startOneShot(sweepDelay); } +auto userAgentAppearanceStyleCopy = [&]() -> std::unique_ptr { +if (userAgentAppearanceStyle) +return RenderStyle::clonePtr(*userAgentAppearanceStyle); +return { }; +}; + ASSERT(hash); // Note that we don't cache the original RenderStyle instance. It may be further modified. // The RenderStyle in the cache is really just a holder for the substructures and never used as-is. -m_entries.add(hash, Entry { matchResult, RenderStyle::clonePtr(style), RenderStyle::clonePtr(parentStyle) }); +m_entries.add(hash, Entry { matchResult, RenderStyle::clonePtr(style), RenderStyle::clonePtr(parentStyle), userAgentAppearanceStyleCopy() }); } +void MatchedDeclarationsCache::remove(unsigned hash) +{ +m_entries.remove(hash); +} + void MatchedDeclarationsCache::invalidate() { m_entries.clear(); Modified: branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.h (292338 => 292339) --- branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.h 2022-04-04 21:56:10 UTC (rev 292338) +++ branches/safari-613-branch/Source/WebCore/style/MatchedDeclarationsCache.h 2022-04-04 21:56:12 UTC (rev 292339) @@ -46,12 +46,14 @@ MatchResult matchResult; std::unique_ptr renderStyle; std::unique_ptr parentRenderStyle; +std::unique_ptr userAgentAppearanceStyle; bool isUsableAfterHighPriorityProperties(const RenderStyle&) const; }; const Entry* find(unsigned hash, const MatchResult&); -void add(const RenderStyle&, const RenderStyle& parentStyle, unsigned hash, const MatchResult&); +void add(const RenderStyle&, const RenderStyle& parentStyle, const RenderStyle* userAgentAppearanceStyle, unsigned hash, const MatchResult&); +void remove(unsigned hash); // Every N additions to the matched declaration cache trigger a sweep where entries holding // the last reference to a style declaration are garbage collected. Modified: branches/safari-613-branch/Source/WebCore/style/StyleResolver.cpp (292338 => 292339) --- branches/
[webkit-changes] [292336] branches/safari-613-branch/Source/WebCore/dom
Title: [292336] branches/safari-613-branch/Source/WebCore/dom Revision 292336 Author alanc...@apple.com Date 2022-04-04 14:56:05 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291495. rdar://91259284 Avoid extra pointer dereference in EventListenerMap::m_entries https://bugs.webkit.org/show_bug.cgi?id=238075 Reviewed by Geoffrey Garen. This is a confirmed 0.5-0.8% progression on Speedometer according to A/B bots. dom/EventListenerMap.cpp: (WebCore::EventListenerMap::clear): (WebCore::EventListenerMap::add): (WebCore::EventListenerMap::remove): (WebCore::EventListenerMap::find): (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup): (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget): (WebCore::EventListenerIterator::nextListener): (WebCore::EventListenerMap::find const): Deleted. dom/EventListenerMap.h: (WebCore::EventListenerMap::find const): Modified Paths branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h Diff Modified: branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp (292335 => 292336) --- branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp 2022-04-04 21:56:03 UTC (rev 292335) +++ branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp 2022-04-04 21:56:05 UTC (rev 292336) @@ -88,7 +88,7 @@ assertNoActiveIterators(); for (auto& entry : m_entries) { -for (auto& listener : *entry.second) +for (auto& listener : entry.second) listener->markAsRemoved(); } @@ -144,9 +144,7 @@ return true; } -auto listeners = makeUnique(); -listeners->uncheckedAppend(RegisteredEventListener::create(WTFMove(listener), options)); -m_entries.append({ eventType, WTFMove(listeners) }); +m_entries.append({ eventType, EventListenerVector { RegisteredEventListener::create(WTFMove(listener), options) } }); return true; } @@ -169,8 +167,8 @@ for (unsigned i = 0; i < m_entries.size(); ++i) { if (m_entries[i].first == eventType) { -bool wasRemoved = removeListenerFromVector(*m_entries[i].second, listener, useCapture); -if (m_entries[i].second->isEmpty()) +bool wasRemoved = removeListenerFromVector(m_entries[i].second, listener, useCapture); +if (m_entries[i].second.isEmpty()) m_entries.remove(i); return wasRemoved; } @@ -179,11 +177,11 @@ return false; } -EventListenerVector* EventListenerMap::find(const AtomString& eventType) const +EventListenerVector* EventListenerMap::find(const AtomString& eventType) { for (auto& entry : m_entries) { if (entry.first == eventType) -return entry.second.get(); +return &entry.second; } return nullptr; @@ -209,8 +207,8 @@ for (unsigned i = 0; i < m_entries.size(); ++i) { if (m_entries[i].first == eventType) { -removeFirstListenerCreatedFromMarkup(*m_entries[i].second); -if (m_entries[i].second->isEmpty()) +removeFirstListenerCreatedFromMarkup(m_entries[i].second); +if (m_entries[i].second.isEmpty()) m_entries.remove(i); return; } @@ -230,7 +228,7 @@ void EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget(EventTarget* target) { for (auto& entry : m_entries) -copyListenersNotCreatedFromMarkupToTarget(entry.first, *entry.second, target); +copyListenersNotCreatedFromMarkupToTarget(entry.first, entry.second, target); } EventListenerIterator::EventListenerIterator(EventTarget* target) @@ -271,7 +269,7 @@ return nullptr; for (; m_entryIndex < m_map->m_entries.size(); ++m_entryIndex) { -EventListenerVector& listeners = *m_map->m_entries[m_entryIndex].second; +EventListenerVector& listeners = m_map->m_entries[m_entryIndex].second; if (m_index < listeners.size()) return &listeners[m_index++]->callback(); m_index = 0; Modified: branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h (292335 => 292336) --- branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h 2022-04-04 21:56:03 UTC (rev 292335) +++ branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h 2022-04-04 21:56:05 UTC (rev 292336) @@ -59,7 +59,8 @@ void replace(const AtomString& eventType, EventListener& oldListener, Ref&& newListener, const RegisteredEventListener::Options&); bool add(const AtomString& eventType, Ref&&, const RegisteredEventListener::Options&); bool remove(const AtomString& eventType, EventListener&, bool useCapture); -WEBCORE_EXPORT EventListenerVector* find(const AtomString& eventType) const; +WEBCORE_EXPORT EventListenerVector* find(const AtomString& eventType); +const EventListe
[webkit-changes] [292337] branches/safari-613-branch/Source/WebCore/html/parser/ AtomHTMLToken.h
Title: [292337] branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h Revision 292337 Author alanc...@apple.com Date 2022-04-04 14:56:07 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291508. rdar://91259284 Optimize AtomHTMLToken::initializeAttributes() https://bugs.webkit.org/show_bug.cgi?id=238074 Reviewed by Geoffrey Garen. Use a HashSet to find duplicate attributes instead of doing a linear search. This is a confirmed 1.2% progression on Speedometer on iMac20,1 via A/B bots. html/parser/AtomHTMLToken.h: (WebCore::AtomHTMLToken::initializeAttributes): Modified Paths branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h Diff Modified: branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h (292336 => 292337) --- branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h 2022-04-04 21:56:05 UTC (rev 292336) +++ branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h 2022-04-04 21:56:07 UTC (rev 292337) @@ -204,6 +204,8 @@ if (!size) return; +HashSet addedAttributes; +addedAttributes.reserveInitialCapacity(size); m_attributes.reserveInitialCapacity(size); for (auto& attribute : attributes) { if (attribute.name.isEmpty()) @@ -211,8 +213,7 @@ auto qualifiedName = HTMLNameCache::makeAttributeQualifiedName(attribute.name); -// FIXME: This is N^2 for the number of attributes. -if (!hasAttribute(m_attributes, qualifiedName.localName())) +if (addedAttributes.add(qualifiedName.localName()).isNewEntry) m_attributes.uncheckedAppend(Attribute(WTFMove(qualifiedName), HTMLNameCache::makeAttributeValue(attribute.value))); else m_hasDuplicateAttribute = HasDuplicateAttribute::Yes; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292338] branches/safari-613-branch/Source/WebCore/dom
Title: [292338] branches/safari-613-branch/Source/WebCore/dom Revision 292338 Author alanc...@apple.com Date 2022-04-04 14:56:10 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291538. rdar://91259284 Optimize EventTarget::visitJSEventListeners() https://bugs.webkit.org/show_bug.cgi?id=238116 Reviewed by Darin Adler. This was confirmed by A/B bots to be a 1-1.5% progression on Speedometer on iMac 20,1 (Intel). dom/EventListenerMap.cpp: (WebCore::EventListenerMap::clear): (WebCore::EventListenerMap::replace): (WebCore::EventListenerMap::add): (WebCore::EventListenerMap::remove): (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup): (WebCore::EventListenerMap::assertNoActiveIterators const): Deleted. (WebCore::EventListenerMap::EventListenerMap): Deleted. (WebCore::EventListenerIterator::EventListenerIterator): Deleted. (WebCore::EventListenerIterator::~EventListenerIterator): Deleted. (WebCore::EventListenerIterator::nextListener): Deleted. dom/EventListenerMap.h: (WebCore::EventListenerMap::visitJSEventListeners): (): Deleted. (WebCore::EventListenerMap::assertNoActiveIterators const): Deleted. dom/EventTarget.cpp: (WebCore::EventTarget::visitJSEventListeners): Deleted. dom/EventTarget.h: (WebCore::EventTarget::visitJSEventListeners): Modified Paths branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h branches/safari-613-branch/Source/WebCore/dom/EventTarget.cpp branches/safari-613-branch/Source/WebCore/dom/EventTarget.h Diff Modified: branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp (292337 => 292338) --- branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp 2022-04-04 21:56:07 UTC (rev 292337) +++ branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.cpp 2022-04-04 21:56:10 UTC (rev 292338) @@ -44,17 +44,8 @@ namespace WebCore { -#ifndef NDEBUG -void EventListenerMap::assertNoActiveIterators() const -{ -ASSERT(!m_activeIteratorCount); -} -#endif +EventListenerMap::EventListenerMap() = default; -EventListenerMap::EventListenerMap() -{ -} - bool EventListenerMap::containsCapturing(const AtomString& eventType) const { auto* listeners = find(eventType); @@ -84,8 +75,6 @@ void EventListenerMap::clear() { Locker locker { m_lock }; - -assertNoActiveIterators(); for (auto& entry : m_entries) { for (auto& listener : entry.second) @@ -119,8 +108,6 @@ void EventListenerMap::replace(const AtomString& eventType, EventListener& oldListener, Ref&& newListener, const RegisteredEventListener::Options& options) { Locker locker { m_lock }; - -assertNoActiveIterators(); auto* listeners = find(eventType); ASSERT(listeners); @@ -134,8 +121,6 @@ bool EventListenerMap::add(const AtomString& eventType, Ref&& listener, const RegisteredEventListener::Options& options) { Locker locker { m_lock }; - -assertNoActiveIterators(); if (auto* listeners = find(eventType)) { if (findListener(*listeners, listener, options.capture) != notFound) @@ -162,8 +147,6 @@ bool EventListenerMap::remove(const AtomString& eventType, EventListener& listener, bool useCapture) { Locker locker { m_lock }; - -assertNoActiveIterators(); for (unsigned i = 0; i < m_entries.size(); ++i) { if (m_entries[i].first == eventType) { @@ -202,8 +185,6 @@ void EventListenerMap::removeFirstEventListenerCreatedFromMarkup(const AtomString& eventType) { Locker locker { m_lock }; - -assertNoActiveIterators(); for (unsigned i = 0; i < m_entries.size(); ++i) { if (m_entries[i].first == eventType) { @@ -231,51 +212,4 @@ copyListenersNotCreatedFromMarkupToTarget(entry.first, entry.second, target); } -EventListenerIterator::EventListenerIterator(EventTarget* target) -{ -ASSERT(target); -EventTargetData* data = "" - -if (!data) -return; - -m_map = &data->eventListenerMap; - -#ifndef NDEBUG -m_map->m_activeIteratorCount++; -#endif -} - -EventListenerIterator::EventListenerIterator(EventListenerMap* map) -{ -m_map = map; - -#ifndef NDEBUG -m_map->m_activeIteratorCount++; -#endif -} - -#ifndef NDEBUG -EventListenerIterator::~EventListenerIterator() -{ -if (m_map) -m_map->m_activeIteratorCount--; -} -#endif - -EventListener* EventListenerIterator::nextListener() -{ -if (!m_map) -return nullptr; - -for (; m_entryIndex < m_map->m_entries.size(); ++m_entryIndex) { -EventListenerVector& listeners = m_map->m_entries[m_entryIndex].second; -if (m_index < listeners.size()) -return &listeners[m_index++]->callback(); -m_index = 0; -} - -return nullptr; -} - } // namespace WebCore Modified: branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h
[webkit-changes] [292332] branches/safari-613-branch/Source/WebCore/html
Title: [292332] branches/safari-613-branch/Source/WebCore/html Revision 292332 Author alanc...@apple.com Date 2022-04-04 14:55:49 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r290086. rdar://91259284 Always use ChildChange::Source::Parser when creating input element UA shadow tree contents https://bugs.webkit.org/show_bug.cgi?id=236740 Reviewed by Dean Jackson. When creating an input element's UA shadow tree, we currently use a ChildChange::Source value that depends on whether the input element itself was parser- or script-inserted. But since UA shadow trees are not exposed to content, and we don't have any dependency on the extra work that inserting using ChildChange::Source::API does, we can use ChildChange::Source::Parser unconditionally. Local testing shows this scores a 0.1% Speedometer 2 improvement. html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/BaseDateAndTimeInputType.h: html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/ColorInputType.h: html/FileInputType.cpp: (WebCore::FileInputType::appendFormData const): (WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/FileInputType.h: html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability): html/InputType.cpp: (WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/InputType.h: html/RangeInputType.cpp: (WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/RangeInputType.h: html/SearchInputType.cpp: (WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/SearchInputType.h: html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): html/TextFieldInputType.h: Modified Paths branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.cpp branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.h branches/safari-613-branch/Source/WebCore/html/ColorInputType.cpp branches/safari-613-branch/Source/WebCore/html/ColorInputType.h branches/safari-613-branch/Source/WebCore/html/FileInputType.cpp branches/safari-613-branch/Source/WebCore/html/FileInputType.h branches/safari-613-branch/Source/WebCore/html/HTMLInputElement.cpp branches/safari-613-branch/Source/WebCore/html/InputType.cpp branches/safari-613-branch/Source/WebCore/html/InputType.h branches/safari-613-branch/Source/WebCore/html/RangeInputType.cpp branches/safari-613-branch/Source/WebCore/html/RangeInputType.h branches/safari-613-branch/Source/WebCore/html/SearchInputType.cpp branches/safari-613-branch/Source/WebCore/html/SearchInputType.h branches/safari-613-branch/Source/WebCore/html/TextFieldInputType.cpp branches/safari-613-branch/Source/WebCore/html/TextFieldInputType.h Diff Modified: branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.cpp (292331 => 292332) --- branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.cpp 2022-04-04 21:55:33 UTC (rev 292331) +++ branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.cpp 2022-04-04 21:55:49 UTC (rev 292332) @@ -306,7 +306,7 @@ } } -void BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability(ContainerNode::ChildChange::Source source, bool) +void BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability(bool) { ASSERT(needsShadowSubtree()); ASSERT(element()); @@ -316,11 +316,11 @@ if (document.settings().dateTimeInputsEditableComponentsEnabled()) { m_dateTimeEditElement = DateTimeEditElement::create(document, *this); -element.userAgentShadowRoot()->appendChild(source, *m_dateTimeEditElement); +element.userAgentShadowRoot()->appendChild(ContainerNode::ChildChange::Source::Parser, *m_dateTimeEditElement); } else { auto valueContainer = HTMLDivElement::create(document); valueContainer->setPseudo(ShadowPseudoIds::webkitDateAndTimeValue()); -element.userAgentShadowRoot()->appendChild(source, valueContainer); +element.userAgentShadowRoot()->appendChild(ContainerNode::ChildChange::Source::Parser, valueContainer); } updateInnerTextValue(); } @@ -575,4 +575,5 @@ } } // namespace WebCore + #endif Modified: branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.h (292331 => 292332) --- branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.h 2022-04-04 21:55:33 UTC (rev 292331) +++ branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.h 2022-04-04 21:55:49 UTC (rev 292332) @@ -114,7 +114,7 @@ bool isMouseFocusable() cons
[webkit-changes] [292335] branches/safari-613-branch/Source/JavaScriptCore/Configurations/ Base.xcconfig
Title: [292335] branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig Revision 292335 Author alanc...@apple.com Date 2022-04-04 14:56:03 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r290993 and r291087. Modified Paths branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig Diff Modified: branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig (292334 => 292335) --- branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig 2022-04-04 21:56:00 UTC (rev 292334) +++ branches/safari-613-branch/Source/_javascript_Core/Configurations/Base.xcconfig 2022-04-04 21:56:03 UTC (rev 292335) @@ -185,14 +185,15 @@ WK_WEBKITADDITIONS_INSTALL_PATH = /usr/local/include/WebKitAdditions WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH = $(SDKROOT)/$(WK_WEBKITADDITIONS_INSTALL_PATH) -// Disable LTO for _javascript_Core, due to . Add back the following line and delete the one that says "LLVM_LTO = NO" when that issue is resolved. -// LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO)); -LLVM_LTO = NO; +LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO)); WK_LLVM_LTO_NO = NO; WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE); -WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR))); -WK_XCODE_SUPPORTS_LTO[arch=arm*] = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_11_4_$(XCODE_VERSION_MAJOR))); +WK_XCODE_SUPPORTS_LTO[sdk=macos*] = YES; +WK_XCODE_SUPPORTS_LTO[sdk=iphone*] = YES; +WK_XCODE_SUPPORTS_LTO[sdk=appletv*] = YES; +// FIXME: This can follow the above pattern once rdar://90049836 is resolved. +WK_XCODE_SUPPORTS_LTO[sdk=watch*] = NO; WK_XCODE_VERSION_BEFORE_10_2_0800 = YES; WK_XCODE_VERSION_BEFORE_10_2_0900 = YES; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292334] branches/safari-613-branch
Title: [292334] branches/safari-613-branch Revision 292334 Author alanc...@apple.com Date 2022-04-04 14:56:00 -0700 (Mon, 04 Apr 2022) Log Message Cherry pick r290574 r290639 r291028 r291961. Patches needed for Cameron's "Make input element UA shadow tree creation lazy" change. Modified Paths branches/safari-613-branch/LayoutTests/fast/shadow-dom/style-resolver-sharing-expected.txt branches/safari-613-branch/Source/WebCore/dom/Document.cpp branches/safari-613-branch/Source/WebCore/dom/Document.h branches/safari-613-branch/Source/WebCore/dom/Element.h branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.cpp branches/safari-613-branch/Source/WebCore/html/BaseDateAndTimeInputType.h branches/safari-613-branch/Source/WebCore/html/ColorInputType.cpp branches/safari-613-branch/Source/WebCore/html/ColorInputType.h branches/safari-613-branch/Source/WebCore/html/FileInputType.cpp branches/safari-613-branch/Source/WebCore/html/FileInputType.h branches/safari-613-branch/Source/WebCore/html/HTMLInputElement.cpp branches/safari-613-branch/Source/WebCore/html/HTMLInputElement.h branches/safari-613-branch/Source/WebCore/html/HTMLTextAreaElement.cpp branches/safari-613-branch/Source/WebCore/html/HTMLTextAreaElement.h branches/safari-613-branch/Source/WebCore/html/HTMLTextFormControlElement.cpp branches/safari-613-branch/Source/WebCore/html/HTMLTextFormControlElement.h branches/safari-613-branch/Source/WebCore/html/InputType.cpp branches/safari-613-branch/Source/WebCore/html/InputType.h branches/safari-613-branch/Source/WebCore/html/RangeInputType.cpp branches/safari-613-branch/Source/WebCore/html/RangeInputType.h branches/safari-613-branch/Source/WebCore/html/SearchInputType.cpp branches/safari-613-branch/Source/WebCore/html/SearchInputType.h branches/safari-613-branch/Source/WebCore/html/TextFieldInputType.cpp branches/safari-613-branch/Source/WebCore/html/TextFieldInputType.h branches/safari-613-branch/Source/WebCore/svg/SVGDocumentExtensions.cpp branches/safari-613-branch/Source/WebCore/svg/SVGDocumentExtensions.h branches/safari-613-branch/Source/WebCore/svg/SVGUseElement.cpp branches/safari-613-branch/Source/WebCore/svg/SVGUseElement.h branches/safari-613-branch/Source/WebCore/testing/Internals.cpp Added Paths branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-expected.html branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-move-document-crash-expected.txt branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-move-document-crash.html branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation.html branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation.js Diff Added: branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html (0 => 292334) --- branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html (rev 0) +++ branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html 2022-04-04 21:56:00 UTC (rev 292334) @@ -0,0 +1 @@ +PASS if no crash. Added: branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html (0 => 292334) --- branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html (rev 0) +++ branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html 2022-04-04 21:56:00 UTC (rev 292334) @@ -0,0 +1,10 @@ +PASS if no crash. + + +let audio0 = document.createElement('audio'); +x.append(audio0); +audio0.controls = true; +x.append(document.createElement('input')); +x.outerHTML += ''; +x.remove(); + Added: branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-expected.html (0 => 292334) --- branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-expected.html (rev 0) +++ branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-expected.html 2022-04-04 21:56:00 UTC (rev 292334) @@ -0,0 +1,6 @@ + + + +run({ useParser: true }); + Added: branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-move-document-crash-expected.txt (0 => 292334) --- branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-move-document-crash-expected.txt (rev 0) +++ branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-move-document-crash-expected.txt 2022-04-04 21:56:00 UTC (rev 292334) @@ -0,0 +1 @@ +PASS if no crash. Added: branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-creation-move-document-crash.html (0 => 292334) --- branches/safari-613-branch/LayoutTests/fast/forms/lazy-shadow-tree-cr
[webkit-changes] [292343] branches/safari-613-branch/Source/WebCore
Title: [292343] branches/safari-613-branch/Source/WebCore Revision 292343 Author alanc...@apple.com Date 2022-04-04 14:56:22 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r291964. rdar://91259284 Optimize toJS() for HTMLElements https://bugs.webkit.org/show_bug.cgi?id=238426 Reviewed by Yusuke Suzuki. Optimize toJS() for HTMLElements. Previously, the more generic Element's toJS() would be called, which would have to do more checks. This is a 0.6% progression on Speedometer 2.0 on MacBook Air 10,1 (AS). bindings/js/JSHTMLElementCustom.cpp: (WebCore::toJS): (WebCore::toJSNewlyCreated): html/HTMLElement.idl: Modified Paths branches/safari-613-branch/Source/WebCore/bindings/js/JSHTMLElementCustom.cpp branches/safari-613-branch/Source/WebCore/html/HTMLElement.idl Diff Modified: branches/safari-613-branch/Source/WebCore/bindings/js/JSHTMLElementCustom.cpp (292342 => 292343) --- branches/safari-613-branch/Source/WebCore/bindings/js/JSHTMLElementCustom.cpp 2022-04-04 21:56:20 UTC (rev 292342) +++ branches/safari-613-branch/Source/WebCore/bindings/js/JSHTMLElementCustom.cpp 2022-04-04 21:56:22 UTC (rev 292343) @@ -32,6 +32,7 @@ #include "HTMLFormElement.h" #include "JSCustomElementInterface.h" #include "JSDOMConstructorBase.h" +#include "JSHTMLElementWrapperFactory.h" #include "JSNodeCustom.h" #include "ScriptExecutionContext.h" #include <_javascript_Core/InternalFunction.h> @@ -130,4 +131,23 @@ return JSWithScope::create(vm, lexicalGlobalObject, scope, asObject(toJS(lexicalGlobalObject, globalObject(), element))); } +JSValue toJS(JSGlobalObject*, JSDOMGlobalObject* globalObject, HTMLElement& element) +{ +if (auto* wrapper = getCachedWrapper(globalObject->world(), element)) +return wrapper; +return createJSHTMLWrapper(globalObject, element); +} + +JSValue toJSNewlyCreated(JSGlobalObject*, JSDOMGlobalObject* globalObject, Ref&& element) +{ +if (element->isDefinedCustomElement()) { +JSValue result = getCachedWrapper(globalObject->world(), element); +if (result) +return result; +ASSERT(!globalObject->vm().exceptionForInspection()); +} +ASSERT(!getCachedWrapper(globalObject->world(), element)); +return createJSHTMLWrapper(globalObject, WTFMove(element)); +} + } // namespace WebCore Modified: branches/safari-613-branch/Source/WebCore/html/HTMLElement.idl (292342 => 292343) --- branches/safari-613-branch/Source/WebCore/html/HTMLElement.idl 2022-04-04 21:56:20 UTC (rev 292342) +++ branches/safari-613-branch/Source/WebCore/html/HTMLElement.idl 2022-04-04 21:56:22 UTC (rev 292343) @@ -20,6 +20,7 @@ [ CustomPushEventHandlerScope, +CustomToJSObject, ExportMacro=WEBCORE_EXPORT, Exposed=Window, GenerateForEachEventHandlerContentAttribute, ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292331] branches/safari-613-branch/Source/WebCore
Title: [292331] branches/safari-613-branch/Source/WebCore Revision 292331 Author alanc...@apple.com Date 2022-04-04 14:55:33 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r289991. rdar://91259284 Cache an entire attribute QualifiedName when parsing HTML, not just its local name AtomString https://bugs.webkit.org/show_bug.cgi?id=236570 Reviewed by Darin Adler. Bug 229907 added HTMLAtomStringCache, which uses a fast to compute hash that works well to cache HTML tag names, attribute names, and attribute values. When AtomHTMLToken initializes its list of Attributes, it uses HTMLAtomStringCache to look up or create an AtomString for the attribute's local name, and then creates a QualifiedName to wrap it. QualifiedName construction involves looking up QualifiedNameCache, which is a thread-specific cache of QualifiedNameImpl objects. If we make HTMLAtomStringCache responsible for caching an attribute's QualifiedName instead of just its local name AtomString, we can avoid the work of looking up the QualifiedNameCache. To reflect its broader responsibilities, HTMLAtomStringCache is renamed to HTMLNameCache. Doing this results in a 0.2-0.3% improvement on Speedometer 2, and a 0.3-0.4% improvement on PLT5 (with the lower end of those ranges being on Apple Silicon and the higher end on Intel). Sources.txt: WebCore.xcodeproj/project.pbxproj: dom/QualifiedName.h: (WebCore::QualifiedName::QualifiedName): html/parser/AtomHTMLToken.h: (WebCore::AtomHTMLToken::initializeAttributes): (WebCore::AtomHTMLToken::AtomHTMLToken): html/parser/HTMLAtomStringCache.h: Removed. (WebCore::HTMLAtomStringCache::makeTagOrAttributeName): Deleted. (WebCore::HTMLAtomStringCache::makeAttributeValue): Deleted. (WebCore::HTMLAtomStringCache::clear): Deleted. (WebCore::HTMLAtomStringCache::make): Deleted. (WebCore::HTMLAtomStringCache::cacheSlot): Deleted. html/parser/HTMLNameCache.cpp: Renamed from Source/WebCore/html/parser/HTMLAtomStringCache.cpp. (WebCore::HTMLNameCache::atomStringCache): (WebCore::HTMLNameCache::qualifiedNameCache): html/parser/HTMLNameCache.h: Added. (WebCore::HTMLNameCache::makeTagName): (WebCore::HTMLNameCache::makeAttributeQualifiedName): (WebCore::HTMLNameCache::makeAttributeValue): (WebCore::HTMLNameCache::clear): (WebCore::HTMLNameCache::makeAtomString): (WebCore::HTMLNameCache::makeQualifiedName): (WebCore::HTMLNameCache::slotIndex): (WebCore::HTMLNameCache::atomStringCacheSlot): (WebCore::HTMLNameCache::qualifiedNameCacheSlot): page/MemoryRelease.cpp: (WebCore::releaseNoncriticalMemory): page/cocoa/MemoryReleaseCocoa.mm: (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation): Modified Paths branches/safari-613-branch/Source/WebCore/Sources.txt branches/safari-613-branch/Source/WebCore/WebCore.xcodeproj/project.pbxproj branches/safari-613-branch/Source/WebCore/dom/QualifiedName.h branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h branches/safari-613-branch/Source/WebCore/html/parser/HTMLAtomStringCache.cpp branches/safari-613-branch/Source/WebCore/html/parser/HTMLAtomStringCache.h branches/safari-613-branch/Source/WebCore/page/MemoryRelease.cpp branches/safari-613-branch/Source/WebCore/page/cocoa/MemoryReleaseCocoa.mm Diff Modified: branches/safari-613-branch/Source/WebCore/Sources.txt (292330 => 292331) --- branches/safari-613-branch/Source/WebCore/Sources.txt 2022-04-04 21:55:30 UTC (rev 292330) +++ branches/safari-613-branch/Source/WebCore/Sources.txt 2022-04-04 21:55:33 UTC (rev 292331) @@ -1407,7 +1407,6 @@ html/canvas/WebGLVertexArrayObjectOES.cpp html/forms/FileIconLoader.cpp html/parser/CSSPreloadScanner.cpp -html/parser/HTMLAtomStringCache.cpp html/parser/HTMLConstructionSite.cpp html/parser/HTMLDocumentParser.cpp html/parser/HTMLElementStack.cpp @@ -1415,6 +1414,7 @@ html/parser/HTMLEntitySearch.cpp html/parser/HTMLFormattingElementList.cpp html/parser/HTMLMetaCharsetParser.cpp +html/parser/HTMLNameCache.cpp html/parser/HTMLParserIdioms.cpp html/parser/HTMLParserOptions.cpp html/parser/HTMLParserScheduler.cpp Modified: branches/safari-613-branch/Source/WebCore/WebCore.xcodeproj/project.pbxproj (292330 => 292331) --- branches/safari-613-branch/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-04-04 21:55:30 UTC (rev 292330) +++ branches/safari-613-branch/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-04-04 21:55:33 UTC (rev 292331) @@ -5521,7 +5521,7 @@ F49328832769041B003E20F8 /* ModalContainerTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = F49328822769041B003E20F8 /* ModalContainerTypes.h */; settings = {ATTRIBUTES = (Private, ); }; }; F49786881FF45FA500E060AB /* PasteboardItemInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = F49786871FF45FA500E060AB /* PasteboardItemInfo.h */; settings = {ATTRIBUTES = (Private, ); };
[webkit-changes] [292330] branches/safari-613-branch/Source/WebCore/rendering
Title: [292330] branches/safari-613-branch/Source/WebCore/rendering Revision 292330 Author alanc...@apple.com Date 2022-04-04 14:55:30 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r289692. rdar://91259284 Make WidgetHierarchyUpdatesSuspensionScope cheaper if it has nothing to do https://bugs.webkit.org/show_bug.cgi?id=236486 Reviewed by Simon Fraser. With content that does a lot of DOM manipulation, we can create and destroy a WidgetHierarchyUpdatesSuspensionScope on the stack many times. When this object has nothing to do, it calls an out of line function. This patch pulls out the check for whether it needs to call moveWidgets() into the inline destructor. This is a 1% saving on the jQuery-TodoMVC subtest of Speedometer 2, though the effect on the top line score is minimal. rendering/RenderWidget.cpp: (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets): rendering/RenderWidget.h: (WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope): (WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove): Modified Paths branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.cpp branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.h Diff Modified: branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.cpp (292329 => 292330) --- branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.cpp 2022-04-04 21:55:27 UTC (rev 292329) +++ branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.cpp 2022-04-04 21:55:30 UTC (rev 292330) @@ -49,6 +49,7 @@ } unsigned WidgetHierarchyUpdatesSuspensionScope::s_widgetHierarchyUpdateSuspendCount = 0; +bool WidgetHierarchyUpdatesSuspensionScope::s_haveScheduledWidgetToMove = false; WidgetHierarchyUpdatesSuspensionScope::WidgetToParentMap& WidgetHierarchyUpdatesSuspensionScope::widgetNewParentMap() { @@ -58,6 +59,7 @@ void WidgetHierarchyUpdatesSuspensionScope::moveWidgets() { +ASSERT(s_haveScheduledWidgetToMove); while (!widgetNewParentMap().isEmpty()) { auto map = std::exchange(widgetNewParentMap(), { }); for (auto& entry : map) { @@ -72,6 +74,7 @@ } } } +s_haveScheduledWidgetToMove = false; } static void moveWidgetToParentSoon(Widget& child, FrameView* parent) Modified: branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.h (292329 => 292330) --- branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.h 2022-04-04 21:55:27 UTC (rev 292329) +++ branches/safari-613-branch/Source/WebCore/rendering/RenderWidget.h 2022-04-04 21:55:30 UTC (rev 292330) @@ -37,13 +37,13 @@ ~WidgetHierarchyUpdatesSuspensionScope() { ASSERT(s_widgetHierarchyUpdateSuspendCount); -if (s_widgetHierarchyUpdateSuspendCount == 1) +if (s_widgetHierarchyUpdateSuspendCount == 1 && s_haveScheduledWidgetToMove) moveWidgets(); s_widgetHierarchyUpdateSuspendCount--; } static bool isSuspended() { return s_widgetHierarchyUpdateSuspendCount; } -static void scheduleWidgetToMove(Widget& widget, FrameView* frame) { widgetNewParentMap().set(&widget, frame); } +static void scheduleWidgetToMove(Widget&, FrameView*); private: using WidgetToParentMap = HashMap, FrameView*>; @@ -51,8 +51,15 @@ WEBCORE_EXPORT void moveWidgets(); WEBCORE_EXPORT static unsigned s_widgetHierarchyUpdateSuspendCount; +WEBCORE_EXPORT static bool s_haveScheduledWidgetToMove; }; - + +inline void WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove(Widget& widget, FrameView* frame) +{ +s_haveScheduledWidgetToMove = true; +widgetNewParentMap().set(&widget, frame); +} + class RenderWidget : public RenderReplaced, private OverlapTestRequestClient { WTF_MAKE_ISO_ALLOCATED(RenderWidget); public: ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292326] branches/safari-613-branch
Title: [292326] branches/safari-613-branch Revision 292326 Author alanc...@apple.com Date 2022-04-04 14:55:19 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r289020. rdar://91259284 Speed-up JSON.stringify() by avoiding "toJSON" property lookups https://bugs.webkit.org/show_bug.cgi?id=235996 Patch by Alexey Shvayka ashva...@apple.com> on 2022-02-02 Reviewed by Saam Barati. JSTests: microbenchmarks/json-stringify-many-objects-to-json.js: Make this test a little more realistic by moving "toJSON" onto prototype. microbenchmarks/vanilla-todomvc-json-stringify.js: Added. Source/_javascript_Core: Speedometer2/Vanilla* subtests are highly reliant on JSON.stringify() for "storage": it accounts for 10-15% of running time. EmberJS* subtests rely on JSON.stringify() as well, although they are significantly slower overall, and also encounter only a few different structures. This patch caches "toJSON" properties on Structure's rare data; it's the same technique we are using in toPrimitive() to avoid "toString" / "valueOf" lookups. The microbenchmark, which was carefully extracted from Speedometer2/Vanilla* subtests, progressed by 3.7%. While we could come up with a solution that doesn't involve creating StructureRareData for all structures we stringify, like keeping a list of StructureIDs w/o "toJSON" method, which will be correct as long as m_hasFastObjectProperties || m_isJSArray is true for all seen objects, that would probably miss some edge case, won't persist between JSON.stringify() calls, and won't speed-up structures with "toJSON" methods like Dates. runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp: (JSC::CachedSpecialPropertyAdaptiveStructureWatchpoint::fireInternal): runtime/JSONObject.cpp: (JSC::Stringifier::toJSON): runtime/StructureRareData.cpp: (JSC::StructureRareData::cacheSpecialPropertySlow): (JSC::CachedSpecialPropertyAdaptiveInferredPropertyValueWatchpoint::handleFire): runtime/StructureRareData.h: Modified Paths branches/safari-613-branch/JSTests/microbenchmarks/json-stringify-many-objects-to-json.js branches/safari-613-branch/Source/_javascript_Core/runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp branches/safari-613-branch/Source/_javascript_Core/runtime/JSONObject.cpp branches/safari-613-branch/Source/_javascript_Core/runtime/StructureRareData.cpp branches/safari-613-branch/Source/_javascript_Core/runtime/StructureRareData.h Added Paths branches/safari-613-branch/JSTests/microbenchmarks/vanilla-todomvc-json-stringify.js Diff Modified: branches/safari-613-branch/JSTests/microbenchmarks/json-stringify-many-objects-to-json.js (292325 => 292326) --- branches/safari-613-branch/JSTests/microbenchmarks/json-stringify-many-objects-to-json.js 2022-04-04 21:55:15 UTC (rev 292325) +++ branches/safari-613-branch/JSTests/microbenchmarks/json-stringify-many-objects-to-json.js 2022-04-04 21:55:19 UTC (rev 292326) @@ -1,6 +1,7 @@ -const toJSON = () => ''; +function C() {} +C.prototype.toJSON = () => ''; const value = {}; for (let i = 0; i < 100; ++i) -value[i] = {toJSON}; +value["k" + i] = new C; for (let i = 0; i < 1e5 / 4; ++i) JSON.stringify(value); Added: branches/safari-613-branch/JSTests/microbenchmarks/vanilla-todomvc-json-stringify.js (0 => 292326) --- branches/safari-613-branch/JSTests/microbenchmarks/vanilla-todomvc-json-stringify.js (rev 0) +++ branches/safari-613-branch/JSTests/microbenchmarks/vanilla-todomvc-json-stringify.js 2022-04-04 21:55:19 UTC (rev 292326) @@ -0,0 +1,13 @@ +(function() { +var todos = new Array(67); +for (var i = 0; i < 67; i++) +todos[i] = { title: "Something to do", completed: true, id: i }; +var state = { todos }; + +var json; +for (var j = 0; j < 2e4; j++) +json = JSON.stringify(state); + +if (json.length !== 3552) +throw new Error("Bad assertion!"); +})(); Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp (292325 => 292326) --- branches/safari-613-branch/Source/_javascript_Core/runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp 2022-04-04 21:55:15 UTC (rev 292325) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp 2022-04-04 21:55:19 UTC (rev 292326) @@ -64,6 +64,8 @@ key = CachedSpecialPropertyKey::ToString; else if (m_key.uid() == vm.propertyNames->valueOf.impl()) key = CachedSpecialPropertyKey::ValueOf; +else if (m_key.uid() == vm.propertyNames->toJSON.impl()) +key = CachedSpecialPropertyKey::ToJSON; else { ASSERT(m_key.uid() == vm.propertyNames->toPrimitiveSymbol.impl()); key = CachedSpecialPropertyKey::ToPrimitive; Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/JSONObject.cpp (2
[webkit-changes] [292328] branches/safari-613-branch/Source/JavaScriptCore
Title: [292328] branches/safari-613-branch/Source/_javascript_Core Revision 292328 Author alanc...@apple.com Date 2022-04-04 14:55:25 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r289359. rdar://91259284 [JSC] Convert JSString's non-atomic WTF::String to atomic string while concurrent compilers / heap threads run https://bugs.webkit.org/show_bug.cgi?id=236262 Reviewed by Saam Barati. Inspired from r289177. This patch introduces a new protocol which allows us to replace JSString's underlying non-atomic String to atomic String if we once call toIdentifier / toAtomString. We had a problem that, We have a JSString, which has a "test" WTF::String. We already have "test" atomic string in the table. Then, when we call JSString::toIdentifier, we know that there is an atomic "test" string, but we cannot replace the current JSString's WTF::String because it can be accessed concurrently from concurrent compilers and GC heap helpers. Thus, JSString keeps non atomic "test" WTF::String. But this means that we need to lookup atom string table every time we would like to get an atom string from this JSString. So, in this patch, we introduce a new protocol, which allows swapping existing WTF::String with an atom string. When we found that JSString has a WTF::String and we already have atom string in the table with the same content (when calling toIdentifier / toAtomString), we attempt to replace JSString's WTF::String with the atom string, but *keep the old string in JSC::Heap's vector called m_possiblyAccessedStringsFromConcurrentThreads. Then, we can keep these strings alive until next GC ends. This ensures that all concurrent compilers / heap helpers can keep accessing to the old strings. And then, in the GC finalize, we clear this vector since resumed concurrent compilers and GC heap helpers will not touch these old strings in the next GC cycle. Only case we have a problem is that we keep having StringImpl* of the old string after GC safepoint in the concurrent compiler, and the only use of that is DFG::Graph::m_copiedStrings. So, I changed the code not to keep old StringImpl* in DFG::Graph::m_copiedStrings. Also, note that we do this only when we convert non-atom string to atom string so all UniquedStringImpl* from JSString* (it is atom ones) does not matter since they are already atom one: they will not be replaced. This does not increase memory usage, rather, improve memory usage since this kept string was anyway held by the wrapper's JSString at least until the next GC run. And we clear m_possiblyAccessedStringsFromConcurrentThreads in the next GC run, so we can shrink memory. It improves Speedometer2 by 0.2%. -- | subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) | -- | Elm-TodoMVC |106.19 |105.69 |0.995260 | 0.050074 | | VueJS-TodoMVC |21.671667 |21.741667 |1.003230 | 0.715305 | | EmberJS-TodoMVC |113.146667 |110.871667 |0.979893 | 0.00 (significant) | | BackboneJS-TodoMVC |42.481667 |42.346667 |0.996822 | 0.358040 | | Preact-TodoMVC |15.796667 |16.016667 |1.013927 | 0.226011 | | AngularJS-TodoMVC |117.568333 |117.345000 |0.998100 | 0.543369 | | Vanilla-ES2015-TodoMVC |58.348333 |57.905000 |0.992402 | 0.000381 (significant) | | Inferno-TodoMVC |54.656667 |54.946667 |1.005306 | 0.254310 | | Flight-TodoMVC |61.106667 |61.141667 |1.000573 | 0.880780 | | Angular2-TypeScript-TodoMVC |37.03 |37.065000 |1.000945 | 0.918550 | | VanillaJS-TodoMVC |47.741667 |47.911667 |1.003561 | 0.497675 | | jQuery-TodoMVC |205.251667 |203.90 |0.993431 | 0.000420 (significant) | | EmberJS-Debug-TodoMVC |312.448333 |308.848333 |0.988478 | 0.20 (significant) | | React-TodoMVC |78.381667 |78.268333 |0.998554 | 0.654647 | | React-Redux-TodoMVC |131.246667 |131.626667 |1.002895 | 0.138912 | | Vanilla-ES2015-Babel-Webpack-TodoMVC |57.86 |57.53 |0.994354 | 0.156536 | -- a mean = 290.61106 b mean = 291.21768 pValue = 0.1419936818 (Bigger means are better.) 1.002 times better Results ARE NOT significant bytecompiler/BytecodeGenerator.cpp: (JSC::prepareJumpTableForStringSwitch): dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock): dfg/DFGGraph.h: dfg/DFGLazyJSValue.cpp: (JSC::DFG::CrossThreadStringTranslator::hash): (JSC::DFG::CrossThreadStringTranslator::equal): (JSC::DFG::CrossThreadStringTranslator::translate): (JSC::DFG::LazyJSValue:
[webkit-changes] [292329] branches/safari-613-branch/Source/WebCore/html/InputType.cpp
Title: [292329] branches/safari-613-branch/Source/WebCore/html/InputType.cpp Revision 292329 Author alanc...@apple.com Date 2022-04-04 14:55:27 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r289691. rdar://91259284 Look up InputTypeFactoryMap with an ASCII lowercase string instead of using a ASCIICaseInsensitiveHash https://bugs.webkit.org/show_bug.cgi?id=236532 Reviewed by Myles C. Maxfield. InputType::create looks up the InputTypeFactoryMap based on the AtomString value of the attribute. The HashMap uses an ASCIICaseInsensitiveHash, but the AtomStrings stored in the map are all ASCII lowercase to begin with. This means that we spend time doing an ASCII case insensitive hash computation on the query string. Most content already supplies an ASCII lowercase type value, so it's less work to ASCII lowercase the type value and then look up the HashMap using the regular hash for AtomStrings (i.e., pulling the hash out of AtomString). Doing this is a 0.5% improvement on a couple of Speedometer 2 subtests, and a 0.1% improvement to the overall score. html/InputType.cpp: (WebCore::InputType::create): Modified Paths branches/safari-613-branch/Source/WebCore/html/InputType.cpp Diff Modified: branches/safari-613-branch/Source/WebCore/html/InputType.cpp (292328 => 292329) --- branches/safari-613-branch/Source/WebCore/html/InputType.cpp 2022-04-04 21:55:25 UTC (rev 292328) +++ branches/safari-613-branch/Source/WebCore/html/InputType.cpp 2022-04-04 21:55:27 UTC (rev 292329) @@ -90,7 +90,7 @@ typedef bool (Settings::*InputTypeConditionalFunction)() const; typedef const AtomString& (*InputTypeNameFunction)(); typedef Ref (*InputTypeFactoryFunction)(HTMLInputElement&); -typedef HashMap, ASCIICaseInsensitiveHash> InputTypeFactoryMap; +typedef HashMap> InputTypeFactoryMap; template static Ref createInputType(HTMLInputElement& element) { @@ -150,7 +150,7 @@ { if (!typeName.isEmpty()) { static NeverDestroyed factoryMap = createInputTypeFactoryMap(); -auto&& [conditional, factory] = factoryMap.get().get(typeName); +auto&& [conditional, factory] = factoryMap.get().get(typeName.convertToASCIILowercase()); if (factory && (!conditional || std::invoke(conditional, element.document().settings( return factory(element); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292333] branches/safari-613-branch/Source/JavaScriptCore/runtime/ Options.cpp
Title: [292333] branches/safari-613-branch/Source/_javascript_Core/runtime/Options.cpp Revision 292333 Author alanc...@apple.com Date 2022-04-04 14:55:52 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r290405. rdar://91259284 [JSC] Adjust thread number for GC throughput https://bugs.webkit.org/show_bug.cgi?id=237122 Reviewed by Mark Lam. Adjust numberOfGCMarkers from 4 to 3 to make GC and main thread througput better on M1 macOS. 3 makes sense since there is also a main thread when they are running concurrently to the main thread. It offers 1.2% improvement in Speedometer2 in M1Max MBP and 0.4% improvement in M1 MBP. | subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) | | Elm-TodoMVC |107.445000 |102.856667 |0.957296 | 0.00 (significant) | | VueJS-TodoMVC |21.571667 |21.805000 |1.010817 | 0.403054 | | EmberJS-TodoMVC |113.32 |111.30 |0.982174 | 0.27 (significant) | | BackboneJS-TodoMVC |39.981667 |39.318333 |0.983409 | 0.002346 (significant) | | Preact-TodoMVC |15.516667 |15.648333 |1.008485 | 0.544754 | | AngularJS-TodoMVC |117.01 |115.346667 |0.985785 | 0.000495 (significant) | | Vanilla-ES2015-TodoMVC |57.79 |57.176667 |0.989387 | 0.000270 (significant) | | Inferno-TodoMVC |55.275000 |53.755000 |0.972501 | 0.00 (significant) | | Flight-TodoMVC |53.875000 |53.941667 |1.001237 | 0.739556 | | Angular2-TypeScript-TodoMVC |36.60 |36.471667 |0.996494 | 0.743761 | | VanillaJS-TodoMVC |48.058333 |47.671667 |0.991954 | 0.158193 | | jQuery-TodoMVC |203.43 |201.878333 |0.992356 | 0.009271 (significant) | | EmberJS-Debug-TodoMVC |325.058333 |319.848333 |0.983972 | 0.03 (significant) | | React-TodoMVC |80.53 |79.281667 |0.984458 | 0.11 (significant) | | React-Redux-TodoMVC |134.738333 |131.801667 |0.978205 | 0.00 (significant) | | Vanilla-ES2015-Babel-Webpack-TodoMVC |56.78 |56.168333 |0.989227 | 0.000514 (significant) | a mean = 293.86568 b mean = 297.52900 pValue = 0.0266899465 (Bigger means are better.) 1.012 times better Results ARE significant runtime/Options.cpp: (JSC::overrideDefaults): Modified Paths branches/safari-613-branch/Source/_javascript_Core/runtime/Options.cpp Diff Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/Options.cpp (292332 => 292333) --- branches/safari-613-branch/Source/_javascript_Core/runtime/Options.cpp 2022-04-04 21:55:49 UTC (rev 292332) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/Options.cpp 2022-04-04 21:55:52 UTC (rev 292333) @@ -353,7 +353,7 @@ } #if PLATFORM(MAC) && CPU(ARM64) -Options::numberOfGCMarkers() = 4; +Options::numberOfGCMarkers() = 3; Options::numberOfDFGCompilerThreads() = 3; Options::numberOfFTLCompilerThreads() = 3; #endif ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292327] branches/safari-613-branch/Source/JavaScriptCore/runtime
Title: [292327] branches/safari-613-branch/Source/_javascript_Core/runtime Revision 292327 Author alanc...@apple.com Date 2022-04-04 14:55:22 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r289177. rdar://91259284 Cache the most recent AtomString produced by JSString::toIdentifier https://bugs.webkit.org/show_bug.cgi?id=236124 Reviewed by Yusuke Suzuki. JSString::toIdentifier does not store the result of atomizing its string value, except when it is a rope. We can often end up atomizing the same JSString a number of times. This patch caches the last atomized string produced from JSString::toIdentifier in a given VM. From local testing, this is a 0.5% Speedometer2 improvement on an M1 MacBook Air, although surprisingly is neutral on a recent Intel MacBook Pro. runtime/JSString.h: (JSC::JSRopeString::toIdentifier const): (JSC::JSString::toIdentifier const): runtime/VM.h: Modified Paths branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.h branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h Diff Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.h (292326 => 292327) --- branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.h 2022-04-04 21:55:19 UTC (rev 292326) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.h 2022-04-04 21:55:22 UTC (rev 292327) @@ -602,6 +602,7 @@ JS_EXPORT_PRIVATE RefPtr resolveRopeToExistingAtomString(JSGlobalObject*) const; template NEVER_INLINE void resolveRopeSlowCase(CharacterType*) const; template void resolveRopeInternalNoSubstring(CharacterType*) const; +Identifier toIdentifier(JSGlobalObject*) const; void outOfMemory(JSGlobalObject* nullOrGlobalObjectForOOM) const; void resolveRopeInternal8(LChar*) const; void resolveRopeInternal16(UChar*) const; @@ -759,15 +760,31 @@ return JSString::create(vm, s.releaseImpl().releaseNonNull()); } -ALWAYS_INLINE Identifier JSString::toIdentifier(JSGlobalObject* globalObject) const +ALWAYS_INLINE Identifier JSRopeString::toIdentifier(JSGlobalObject* globalObject) const { VM& vm = getVM(globalObject); auto scope = DECLARE_THROW_SCOPE(vm); -AtomString atomString = toAtomString(globalObject); +auto atomString = static_cast(this)->resolveRopeToAtomString(globalObject); RETURN_IF_EXCEPTION(scope, { }); return Identifier::fromString(vm, atomString); } +ALWAYS_INLINE Identifier JSString::toIdentifier(JSGlobalObject* globalObject) const +{ +if constexpr (validateDFGDoesGC) +vm().verifyCanGC(); +if (isRope()) +return static_cast(this)->toIdentifier(globalObject); +VM& vm = getVM(globalObject); +if (valueInternal().impl()->isAtom()) +return Identifier::fromString(vm, Ref { *static_cast(valueInternal().impl()) }); +if (vm.lastAtomizedIdentifierStringImpl.ptr() != valueInternal().impl()) { +vm.lastAtomizedIdentifierStringImpl = *valueInternal().impl(); +vm.lastAtomizedIdentifierAtomStringImpl = AtomStringImpl::add(valueInternal().impl()).releaseNonNull(); +} +return Identifier::fromString(vm, Ref { vm.lastAtomizedIdentifierAtomStringImpl }); +} + ALWAYS_INLINE AtomString JSString::toAtomString(JSGlobalObject* globalObject) const { if constexpr (validateDFGDoesGC) Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h (292326 => 292327) --- branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h 2022-04-04 21:55:19 UTC (rev 292326) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h 2022-04-04 21:55:22 UTC (rev 292327) @@ -586,6 +586,8 @@ NumericStrings numericStrings; std::unique_ptr machineCodeBytesPerBytecodeWordForBaselineJIT; Strong lastCachedString; +Ref lastAtomizedIdentifierStringImpl { *StringImpl::empty() }; +Ref lastAtomizedIdentifierAtomStringImpl { *static_cast(StringImpl::empty()) }; JSONAtomStringCache jsonAtomStringCache; AtomStringTable* atomStringTable() const { return m_atomStringTable; } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292324] branches/safari-613-branch/Source/JavaScriptCore/yarr/YarrJIT.cpp
Title: [292324] branches/safari-613-branch/Source/_javascript_Core/yarr/YarrJIT.cpp Revision 292324 Author alanc...@apple.com Date 2022-04-04 14:54:52 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r288748. rdar://91259284 [JSC] YarrJIT optimization for character BM search https://bugs.webkit.org/show_bug.cgi?id=235738 Reviewed by Saam Barati. Add micro-optimization of BM search path. Since it is super hot path, this small improvement offsers 1% in jquery-todomvc-regexp microbenchmark. ToT Patched jquery-todomvc-regexp 484.1399+-1.0527 479.0932+-1.0999 definitely 1.0105x faster yarr/YarrJIT.cpp: Modified Paths branches/safari-613-branch/Source/_javascript_Core/yarr/YarrJIT.cpp Diff Modified: branches/safari-613-branch/Source/_javascript_Core/yarr/YarrJIT.cpp (292323 => 292324) --- branches/safari-613-branch/Source/_javascript_Core/yarr/YarrJIT.cpp 2022-04-04 21:54:49 UTC (rev 292323) +++ branches/safari-613-branch/Source/_javascript_Core/yarr/YarrJIT.cpp 2022-04-04 21:54:52 UTC (rev 292324) @@ -2344,7 +2344,6 @@ auto [map, charactersFastPath] = op.m_bmInfo->createCandidateBitmap(beginIndex, endIndex); unsigned mapCount = map.count(); // If candiate characters are <= 2, checking each is better than using vector. -MacroAssembler::JumpList outOfLengthFailure; MacroAssembler::JumpList matched; dataLogLnIf(YarrJITInternal::verbose, "BM Bitmap is ", map); // Patterns like /[]/ have zero candidates. Since it is rare, we do not do nothing for now. @@ -2359,8 +2358,7 @@ matched.append(m_jit.branch32(MacroAssembler::Equal, m_regs.regT0, MacroAssembler::TrustedImm32(charactersFastPath.at(0; if (charactersFastPath.size() > 1) matched.append(m_jit.branch32(MacroAssembler::Equal, m_regs.regT0, MacroAssembler::TrustedImm32(charactersFastPath.at(1; -outOfLengthFailure.append(jumpIfNoAvailableInput(endIndex - beginIndex)); -m_jit.jump().linkTo(loopHead, &m_jit); +jumpIfAvailableInput(endIndex - beginIndex).linkTo(loopHead, &m_jit); } else { const auto* pointer = getBoyerMooreBitmap(map); dataLogLnIf(Options::verboseRegExpCompilation(), "Found bitmap lookahead count:(", mapCount, "),range:[", beginIndex, ", ", endIndex, ")"); @@ -2396,14 +2394,13 @@ m_jit.urshift32(m_regs.regT0, m_regs.regT2); // We can ignore upper bits and only lower 5bits are effective. matched.append(m_jit.branchTest32(MacroAssembler::NonZero, m_regs.regT2, MacroAssembler::TrustedImm32(1))); #endif -outOfLengthFailure.append(jumpIfNoAvailableInput(endIndex - beginIndex)); -m_jit.jump().linkTo(loopHead, &m_jit); +jumpIfAvailableInput(endIndex - beginIndex).linkTo(loopHead, &m_jit); } +// Fallthrough if out-of-length failure happens. // If the pattern size is not fixed, then store the start index for use if we match. // This is used for adjusting match-start when we failed to find the start with BoyerMoore search. if (!m_pattern.m_body->m_hasFixedSize) { -outOfLengthFailure.link(&m_jit); if (alternative->m_minimumSize) { m_jit.sub32(m_regs.index, MacroAssembler::Imm32(alternative->m_minimumSize), m_regs.regT0); setMatchStart(m_regs.regT0); @@ -2411,7 +2408,7 @@ setMatchStart(m_regs.index); op.m_jumps.append(m_jit.jump()); } else -op.m_jumps.append(outOfLengthFailure); +op.m_jumps.append(m_jit.jump()); matched.link(&m_jit); // If the pattern size is not fixed, then store the start index for use if we match. ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292322] branches/safari-613-branch/Source/JavaScriptCore/runtime
Title: [292322] branches/safari-613-branch/Source/_javascript_Core/runtime Revision 292322 Author alanc...@apple.com Date 2022-04-04 14:54:46 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r288537. rdar://91259284 Remove VM::stringCache https://bugs.webkit.org/show_bug.cgi?id=235536 Reviewed by Sam Weinig. We consult VM::stringCache when creating a JSString, but since bug 142115 we never insert anything into it. Removing this results in almost-significant improvements in the VueJS, Vanilla-ES2015, and jQuery sub-tests of Speedometer 2 (of 0.5-2%, 0.03 <= p <= 0.05), and an almost significant 0.2% improvement in the overall score (p = 0.06). runtime/JSString.cpp: (JSC::jsStringWithCacheSlowCase): runtime/VM.cpp: (JSC::VM::VM): runtime/VM.h: Modified Paths branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.cpp branches/safari-613-branch/Source/_javascript_Core/runtime/VM.cpp branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h Diff Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.cpp (292321 => 292322) --- branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.cpp 2022-04-04 21:52:56 UTC (rev 292321) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/JSString.cpp 2022-04-04 21:54:46 UTC (rev 292322) @@ -436,9 +436,6 @@ JSString* jsStringWithCacheSlowCase(VM& vm, StringImpl& stringImpl) { -if (JSString* string = vm.stringCache.get(&stringImpl)) -return string; - JSString* string = jsString(vm, String(stringImpl)); vm.lastCachedString.set(vm, string); return string; Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/VM.cpp (292321 => 292322) --- branches/safari-613-branch/Source/_javascript_Core/runtime/VM.cpp 2022-04-04 21:52:56 UTC (rev 292321) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/VM.cpp 2022-04-04 21:54:46 UTC (rev 292322) @@ -218,7 +218,6 @@ , propertyNames(nullptr) , emptyList(new ArgList) , machineCodeBytesPerBytecodeWordForBaselineJIT(makeUnique()) -, stringCache(*this) , symbolImplToSymbolMap(*this) , structureCache(*this) , interpreter(nullptr) Modified: branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h (292321 => 292322) --- branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h 2022-04-04 21:52:56 UTC (rev 292321) +++ branches/safari-613-branch/Source/_javascript_Core/runtime/VM.h 2022-04-04 21:54:46 UTC (rev 292322) @@ -585,7 +585,6 @@ SmallStrings smallStrings; NumericStrings numericStrings; std::unique_ptr machineCodeBytesPerBytecodeWordForBaselineJIT; -WeakGCMap> stringCache; Strong lastCachedString; JSONAtomStringCache jsonAtomStringCache; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292323] branches/safari-613-branch
Title: [292323] branches/safari-613-branch Revision 292323 Author alanc...@apple.com Date 2022-04-04 14:54:49 -0700 (Mon, 04 Apr 2022) Log Message Cherry-pick r288669. rdar://91259284 Avoid setting and clearing :active state when dispatching synthetic click events when possible https://bugs.webkit.org/show_bug.cgi?id=235672 Reviewed by Simon Fraser. Source/WebCore: Simulated click events are dispatched with two options: whether to send associated events mouseover, mouseup, mousedown whether to repaint the target element with its pressed look We currently always set the element's :active state just after when we'd send the mousedown event, and clear it just after that. When we dispatch a simulated click event with neither of the above options set, there's no way to observe the temporary :active state on the element. We can skip it in that case. We need to continue clearing clearing the :active state regardless, because some callers have already set :active and are relying on simulateClick to clear it. This patch is a 0.3-0.4% improvement on Speedometer 2. dom/SimulatedClick.cpp: (WebCore::simulateClick): LayoutTests: platform/gtk/inspector/timeline/line-column-expected.txt: Modified Paths branches/safari-613-branch/LayoutTests/platform/gtk/inspector/timeline/line-column-expected.txt branches/safari-613-branch/Source/WebCore/dom/SimulatedClick.cpp Diff Modified: branches/safari-613-branch/LayoutTests/platform/gtk/inspector/timeline/line-column-expected.txt (292322 => 292323) --- branches/safari-613-branch/LayoutTests/platform/gtk/inspector/timeline/line-column-expected.txt 2022-04-04 21:54:46 UTC (rev 292322) +++ branches/safari-613-branch/LayoutTests/platform/gtk/inspector/timeline/line-column-expected.txt 2022-04-04 21:54:49 UTC (rev 292323) @@ -8,50 +8,7 @@ PASS: Capturing started. { "startTime": "", - "stackTrace": [ -{ - "functionName": "click", - "url": "[native code]", - "scriptId": "", - "lineNumber": 0, - "columnNumber": 0 -}, -{ - "functionName": "willCallFunctionTest", - "url": "timeline/line-column.html", - "scriptId": "", - "lineNumber": 26, - "columnNumber": 44 -}, -{ - "functionName": "global code", - "url": "", - "scriptId": "", - "lineNumber": 1, - "columnNumber": 21 -}, -{ - "functionName": "evaluateWithScopeExtension", - "url": "[native code]", - "scriptId": "", - "lineNumber": 0, - "columnNumber": 0 -}, -{ - "functionName": "", - "url": "", - "scriptId": "", - "lineNumber": 142, - "columnNumber": 97 -} - ], - "data": {}, "frameId": "", - "type": "ScheduleStyleRecalculation" -} -{ - "startTime": "", - "frameId": "", "data": { "type": "click", "defaultPrevented": false Modified: branches/safari-613-branch/Source/WebCore/dom/SimulatedClick.cpp (292322 => 292323) --- branches/safari-613-branch/Source/WebCore/dom/SimulatedClick.cpp 2022-04-04 21:54:46 UTC (rev 292322) +++ branches/safari-613-branch/Source/WebCore/dom/SimulatedClick.cpp 2022-04-04 21:54:49 UTC (rev 292323) @@ -95,7 +95,8 @@ if (mouseEventOptions != SendNoEvents) simulateMouseEvent(eventNames().mousedownEvent, element, underlyingEvent, creationOptions); -element.setActive(true, visualOptions == ShowPressedLook); +if (mouseEventOptions != SendNoEvents || visualOptions == ShowPressedLook) +element.setActive(true, true); if (mouseEventOptions != SendNoEvents) simulateMouseEvent(eventNames().mouseupEvent, element, underlyingEvent, creationOptions); element.setActive(false); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292321] trunk/Source/WebCore/features.json
Title: [292321] trunk/Source/WebCore/features.json Revision 292321 Author bfulg...@apple.com Date 2022-04-04 14:52:56 -0700 (Mon, 04 Apr 2022) Log Message Correct typo in features.json Modified Paths trunk/Source/WebCore/features.json Diff Modified: trunk/Source/WebCore/features.json (292320 => 292321) --- trunk/Source/WebCore/features.json 2022-04-04 21:38:24 UTC (rev 292320) +++ trunk/Source/WebCore/features.json 2022-04-04 21:52:56 UTC (rev 292321) @@ -1720,7 +1720,7 @@ { "name": "inert attribute", "status": { -"status": "In Development", +"status": "In Development" }, "url": "https://whatpr.org/html/4288/interaction.html#the-inert-attribute", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert", ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292320] branches/safari-613-branch/Source
Title: [292320] branches/safari-613-branch/Source Revision 292320 Author alanc...@apple.com Date 2022-04-04 14:38:24 -0700 (Mon, 04 Apr 2022) Log Message Versioning. WebKit-7613.2.6 Modified Paths branches/safari-613-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-613-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig branches/safari-613-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-613-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-613-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-613-branch/Source/WebGPU/Configurations/Version.xcconfig branches/safari-613-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-613-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-613-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-613-branch/Source/_javascript_Core/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -23,7 +23,7 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -23,7 +23,7 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -23,7 +23,7 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/WebCore/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/WebCore/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/WebCore/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -23,7 +23,7 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -23,7 +23,7 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/WebGPU/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/WebGPU/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/WebGPU/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -23,7 +23,7 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2022-04-04 21:38:05 UTC (rev 292319) +++ branches/safari-613-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2022-04-04 21:38:24 UTC (rev 292320) @@ -1,6 +1,6 @@ MAJOR_VERSION = 613; MINOR_VERSION = 2; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-613-branch/Source/WebKit/Configurations/Version.xcconfig (292319 => 292320) --- branches/safari-613-branch/Source/WebKit/Con
[webkit-changes] [292319] trunk/Source/WebKit
Title: [292319] trunk/Source/WebKit Revision 292319 Author hey...@apple.com Date 2022-04-04 14:38:05 -0700 (Mon, 04 Apr 2022) Log Message Remove display list map entry before remote resource https://bugs.webkit.org/show_bug.cgi?id=238764 Reviewed by Simon Fraser. * GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::clearImageBufferReference): * GPUProcess/graphics/RemoteDisplayListRecorder.h: * GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (292318 => 292319) --- trunk/Source/WebKit/ChangeLog 2022-04-04 21:30:31 UTC (rev 292318) +++ trunk/Source/WebKit/ChangeLog 2022-04-04 21:38:05 UTC (rev 292319) @@ -1,3 +1,16 @@ +2022-04-04 Cameron McCormack + +Remove display list map entry before remote resource +https://bugs.webkit.org/show_bug.cgi?id=238764 + +Reviewed by Simon Fraser. + +* GPUProcess/graphics/RemoteDisplayListRecorder.cpp: +(WebKit::RemoteDisplayListRecorder::clearImageBufferReference): +* GPUProcess/graphics/RemoteDisplayListRecorder.h: +* GPUProcess/graphics/RemoteRenderingBackend.cpp: +(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier): + 2022-04-04 Wenson Hsieh [macOS] Add helper methods to install and uninstall VKCImageAnalysisOverlayView Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp (292318 => 292319) --- trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp 2022-04-04 21:30:31 UTC (rev 292318) +++ trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp 2022-04-04 21:38:05 UTC (rev 292319) @@ -68,6 +68,11 @@ renderingBackend->streamConnection().stopReceivingMessages(Messages::RemoteDisplayListRecorder::messageReceiverName(), m_imageBufferIdentifier.object().toUInt64()); } +void RemoteDisplayListRecorder::clearImageBufferReference() +{ +m_imageBuffer.clear(); +} + void RemoteDisplayListRecorder::save() { handleItem(DisplayList::Save()); Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h (292318 => 292319) --- trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h 2022-04-04 21:30:31 UTC (rev 292318) +++ trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h 2022-04-04 21:38:05 UTC (rev 292319) @@ -56,6 +56,7 @@ } void stopListeningForIPC(); +void clearImageBufferReference(); void save(); void restore(); Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (292318 => 292319) --- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-04-04 21:30:31 UTC (rev 292318) +++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-04-04 21:38:05 UTC (rev 292319) @@ -383,12 +383,14 @@ void RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier(QualifiedRenderingResourceIdentifier renderingResourceIdentifier) { ASSERT(!RunLoop::isMain()); +{ +Locker locker { m_remoteDisplayListsLock }; +if (auto remoteDisplayList = m_remoteDisplayLists.take(renderingResourceIdentifier)) +remoteDisplayList->clearImageBufferReference(); +} auto success = m_remoteResourceCache.releaseRemoteResource(renderingResourceIdentifier); MESSAGE_CHECK(success, "Resource is being released before being cached."); updateRenderingResourceRequest(); - -Locker locker { m_remoteDisplayListsLock }; -m_remoteDisplayLists.remove(renderingResourceIdentifier); } static std::optional handleFromBuffer(WebCore::ImageBuffer& buffer) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292318] trunk/Tools
Title: [292318] trunk/Tools Revision 292318 Author simon.fra...@apple.com Date 2022-04-04 14:30:31 -0700 (Mon, 04 Apr 2022) Log Message Fix the TestWebKitAPI build with an iOS 15.4 internal SDK https://bugs.webkit.org/show_bug.cgi?id=238750 Reviewed by Alex Christensen. Add needed include. * TestWebKitAPI/ios/UIKitSPI.h: Modified Paths trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/ios/UIKitSPI.h Diff Modified: trunk/Tools/ChangeLog (292317 => 292318) --- trunk/Tools/ChangeLog 2022-04-04 21:21:17 UTC (rev 292317) +++ trunk/Tools/ChangeLog 2022-04-04 21:30:31 UTC (rev 292318) @@ -1,3 +1,14 @@ +2022-04-04 Simon Fraser + +Fix the TestWebKitAPI build with an iOS 15.4 internal SDK +https://bugs.webkit.org/show_bug.cgi?id=238750 + +Reviewed by Alex Christensen. + +Add needed include. + +* TestWebKitAPI/ios/UIKitSPI.h: + 2022-04-04 Wenson Hsieh [iOS] Add API tests for video extraction in element fullscreen Modified: trunk/Tools/TestWebKitAPI/ios/UIKitSPI.h (292317 => 292318) --- trunk/Tools/TestWebKitAPI/ios/UIKitSPI.h 2022-04-04 21:21:17 UTC (rev 292317) +++ trunk/Tools/TestWebKitAPI/ios/UIKitSPI.h 2022-04-04 21:30:31 UTC (rev 292318) @@ -31,6 +31,7 @@ #import #import +#import #import #import #import ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292317] trunk/LayoutTests
Title: [292317] trunk/LayoutTests Revision 292317 Author za...@apple.com Date 2022-04-04 14:21:17 -0700 (Mon, 04 Apr 2022) Log Message [CSS-contain] Update select element based test failures. Unreviewed. * TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (292316 => 292317) --- trunk/LayoutTests/ChangeLog 2022-04-04 21:16:05 UTC (rev 292316) +++ trunk/LayoutTests/ChangeLog 2022-04-04 21:21:17 UTC (rev 292317) @@ -1,3 +1,11 @@ +2022-04-04 Alan Bujtas + +[CSS-contain] Update select element based test failures. + +Unreviewed. + +* TestExpectations: + 2022-04-04 Tyler Wilcock AccessibilityNodeObject::elementRect should use children rects for display:contents AX objects Modified: trunk/LayoutTests/TestExpectations (292316 => 292317) --- trunk/LayoutTests/TestExpectations 2022-04-04 21:16:05 UTC (rev 292316) +++ trunk/LayoutTests/TestExpectations 2022-04-04 21:21:17 UTC (rev 292317) @@ -4720,7 +4720,8 @@ imported/w3c/web-platform-tests/css/css-contain/contain-size-block-003.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-block-003.html [ ImageOnlyFailure ] -# Select with empty content always has root linebox, so the heights are different. +# 1. The height driven by the imaginary box (strut) does not match the minimum height value set in the RenderTheme (e.g. see RenderThemeMac::adjustMenuListButtonStyle). +# 2. We ignore the background-color property value (supposed to be white on white to renderer "blank" content). imported/w3c/web-platform-tests/css/css-contain/contain-size-select-001.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/css/css-contain/contain-size-select-002.html [ ImageOnlyFailure ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292316] trunk/Source
Title: [292316] trunk/Source Revision 292316 Author wenson_hs...@apple.com Date 2022-04-04 14:16:05 -0700 (Mon, 04 Apr 2022) Log Message [macOS] Add helper methods to install and uninstall VKCImageAnalysisOverlayView https://bugs.webkit.org/show_bug.cgi?id=238714 Reviewed by Tim Horton. Source/WebCore/PAL: Add soft-linking support for VKCImageAnalysisOverlayView. See WebKit/ChangeLog for more details. * pal/cocoa/VisionKitCoreSoftLink.h: * pal/cocoa/VisionKitCoreSoftLink.mm: Source/WebKit: Add helper methods for adding and removing a temporary VKCImageAnalysisOverlayView as a subview of WKWebView. See below for more details. No change in behavior (yet). * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::imageAnalysisInteractionBounds const): (WebKit::WebViewImpl::imageAnalysisOverlayView const): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::processImageAnalyzerRequest): Pull logic for processing an image analyzer request and invoking the completion handler on the main thread (via `callOnMainRunLoop`) out into a separate helper method (to be used in a subsequent patch). (WebKit::WebViewImpl::requestTextRecognition): (-[WKImageAnalysisOverlayViewDelegate initWithWebViewImpl:]): Add an Objective-C object that acts as a delegate for the image analysis overlay view. This is done to correctly position the overlay, but also for a couple of additonal reasons below. (-[WKImageAnalysisOverlayViewDelegate dealloc]): (-[WKImageAnalysisOverlayViewDelegate observeValueForKeyPath:ofObject:change:context:]): Add logic to steal first responder status away from VKCImageAnalysisOverlayView's internal text selection view and restore it to the web view when there is no longer an active text selection in the overlay. This ensures that key events are only routed to the image analysis overlay view in the case where the overlay actually contains a text selection. (-[WKImageAnalysisOverlayViewDelegate firstResponderIsInsideImageOverlay]): (-[WKImageAnalysisOverlayViewDelegate imageAnalysisOverlay:shouldHandleKeyDownEvent:]): Never allow the image overlay view to override Escape key handling. (-[WKImageAnalysisOverlayViewDelegate contentsRectForImageAnalysisOverlayView:]): (WebKit::WebViewImpl::installImageAnalysisOverlayView): (WebKit::WebViewImpl::uninstallImageAnalysisOverlayView): (WebKit::WebViewImpl::imageAnalysisOverlayViewHasCursorAtPoint const): Allow the image analysis overlay view to set the mouse cursor when the mouse is over interactable content. * UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::setCursor): Modified Paths trunk/Source/WebCore/PAL/ChangeLog trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.h trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.mm trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm Diff Modified: trunk/Source/WebCore/PAL/ChangeLog (292315 => 292316) --- trunk/Source/WebCore/PAL/ChangeLog 2022-04-04 20:54:01 UTC (rev 292315) +++ trunk/Source/WebCore/PAL/ChangeLog 2022-04-04 21:16:05 UTC (rev 292316) @@ -1,3 +1,15 @@ +2022-04-04 Wenson Hsieh + +[macOS] Add helper methods to install and uninstall VKCImageAnalysisOverlayView +https://bugs.webkit.org/show_bug.cgi?id=238714 + +Reviewed by Tim Horton. + +Add soft-linking support for VKCImageAnalysisOverlayView. See WebKit/ChangeLog for more details. + +* pal/cocoa/VisionKitCoreSoftLink.h: +* pal/cocoa/VisionKitCoreSoftLink.mm: + 2022-04-03 Tim Horton _WKDataTask doesn't work in macCatalyst Modified: trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.h (292315 => 292316) --- trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.h 2022-04-04 20:54:01 UTC (rev 292315) +++ trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.h 2022-04-04 21:16:05 UTC (rev 292316) @@ -38,6 +38,7 @@ SOFT_LINK_CLASS_FOR_HEADER(PAL, VKCImageAnalysis) #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) SOFT_LINK_CLASS_FOR_HEADER(PAL, VKCImageAnalysisInteraction) +SOFT_LINK_CLASS_FOR_HEADER(PAL, VKCImageAnalysisOverlayView) #endif #if USE(APPLE_INTERNAL_SDK) Modified: trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.mm (292315 => 292316) --- trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.mm 2022-04-04 20:54:01 UTC (rev 292315) +++ trunk/Source/WebCore/PAL/pal/cocoa/VisionKitCoreSoftLink.mm 2022-04-04 21:16:05 UTC (rev 292316) @@ -38,6 +38,7 @@ SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL(PAL, VisionKitCore, VKCImageAnalysis, PAL_EXPORT, true) #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL(PAL, VisionKitCore, VKCImageAnalysisInteraction, PAL_EXPORT, true) +SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL(PAL, VisionKitCore, VKCImageAnalysisOverlayView, PAL_EXPORT, true) #endif #if USE(APPLE_INTERNAL_SDK)
[webkit-changes] [292315] trunk/Source/JavaScriptCore
Title: [292315] trunk/Source/_javascript_Core Revision 292315 Author gga...@apple.com Date 2022-04-04 13:54:01 -0700 (Mon, 04 Apr 2022) Log Message Only check isPagedOut() under memory pressure https://bugs.webkit.org/show_bug.cgi?id=238742 Reviewed by Cameron McCormack. Worth about 0.4% on Speedometer. In theory, if we're not under memory pressure, we're either (a) not paged out because we were not recently under memory pressure or (b) paged out but OK to page in again because memory is available. This could increase swap if a system frequently oscillated between yes-memory-pressure and no-memory-pressure; but in practice the systems we see under significant memory pressure tend to stay that way. * heap/FullGCActivityCallback.cpp: (JSC::FullGCActivityCallback::doCollection): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/heap/FullGCActivityCallback.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (292314 => 292315) --- trunk/Source/_javascript_Core/ChangeLog 2022-04-04 20:41:32 UTC (rev 292314) +++ trunk/Source/_javascript_Core/ChangeLog 2022-04-04 20:54:01 UTC (rev 292315) @@ -1,3 +1,23 @@ +2022-04-04 Geoffrey Garen + +Only check isPagedOut() under memory pressure +https://bugs.webkit.org/show_bug.cgi?id=238742 + +Reviewed by Cameron McCormack. + +Worth about 0.4% on Speedometer. + +In theory, if we're not under memory pressure, we're either (a) not +paged out because we were not recently under memory pressure or (b) +paged out but OK to page in again because memory is available. + +This could increase swap if a system frequently oscillated between +yes-memory-pressure and no-memory-pressure; but in practice the systems +we see under significant memory pressure tend to stay that way. + +* heap/FullGCActivityCallback.cpp: +(JSC::FullGCActivityCallback::doCollection): + 2022-04-02 Chris Dumez Add default constructor to ASCIILiteral Modified: trunk/Source/_javascript_Core/heap/FullGCActivityCallback.cpp (292314 => 292315) --- trunk/Source/_javascript_Core/heap/FullGCActivityCallback.cpp 2022-04-04 20:41:32 UTC (rev 292314) +++ trunk/Source/_javascript_Core/heap/FullGCActivityCallback.cpp 2022-04-04 20:54:01 UTC (rev 292315) @@ -25,6 +25,7 @@ #include "config.h" #include "FullGCActivityCallback.h" +#include #include "VM.h" @@ -42,7 +43,7 @@ #if !PLATFORM(IOS_FAMILY) || PLATFORM(MACCATALYST) MonotonicTime startTime = MonotonicTime::now(); -if (heap.isPagedOut()) { +if (MemoryPressureHandler::singleton().isUnderMemoryPressure() && heap.isPagedOut()) { cancel(); heap.increaseLastFullGCLength(MonotonicTime::now() - startTime); return; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292314] trunk
Title: [292314] trunk Revision 292314 Author tyle...@apple.com Date 2022-04-04 13:41:32 -0700 (Mon, 04 Apr 2022) Log Message AccessibilityNodeObject::elementRect should use children rects for display:contents AX objects https://bugs.webkit.org/show_bug.cgi?id=238680 Reviewed by Chris Fleizach and Andres Gonzalez. Source/WebCore: Because display:contents AccessibilityNodeObjects can have rendered content (unlike `hidden`, `aria-hidden="false"` node objects), we can compute AccessibilityNodeObject::elementRect by adding up the rectangles of the object's children. This provides a more accurate frame for these objects. Test: accessibility/node-only-object-element-rect.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::boundingBoxRect const): LayoutTests: * accessibility/node-only-object-element-rect-expected.txt: Added. * accessibility/node-only-object-element-rect.html: Added. * platform/glib/accessibility/node-only-object-element-rect-expected.txt: Added. * platform/ios/TestExpectations: Enable new test. * platform/ios/accessibility/node-only-object-element-rect-expected.txt: Added. * platform/win/accessibility/node-only-object-element-rect-expected.txt: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/ios/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp Added Paths trunk/LayoutTests/accessibility/node-only-object-element-rect-expected.txt trunk/LayoutTests/accessibility/node-only-object-element-rect.html trunk/LayoutTests/platform/glib/accessibility/node-only-object-element-rect-expected.txt trunk/LayoutTests/platform/ios/accessibility/node-only-object-element-rect-expected.txt trunk/LayoutTests/platform/win/accessibility/node-only-object-element-rect-expected.txt Diff Modified: trunk/LayoutTests/ChangeLog (292313 => 292314) --- trunk/LayoutTests/ChangeLog 2022-04-04 19:53:55 UTC (rev 292313) +++ trunk/LayoutTests/ChangeLog 2022-04-04 20:41:32 UTC (rev 292314) @@ -1,3 +1,17 @@ +2022-04-04 Tyler Wilcock + +AccessibilityNodeObject::elementRect should use children rects for display:contents AX objects +https://bugs.webkit.org/show_bug.cgi?id=238680 + +Reviewed by Chris Fleizach and Andres Gonzalez. + +* accessibility/node-only-object-element-rect-expected.txt: Added. +* accessibility/node-only-object-element-rect.html: Added. +* platform/glib/accessibility/node-only-object-element-rect-expected.txt: Added. +* platform/ios/TestExpectations: Enable new test. +* platform/ios/accessibility/node-only-object-element-rect-expected.txt: Added. +* platform/win/accessibility/node-only-object-element-rect-expected.txt: Added. + 2022-04-04 J Pascoe [ iOS 15 ] imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html is flaky timing out Added: trunk/LayoutTests/accessibility/node-only-object-element-rect-expected.txt (0 => 292314) --- trunk/LayoutTests/accessibility/node-only-object-element-rect-expected.txt (rev 0) +++ trunk/LayoutTests/accessibility/node-only-object-element-rect-expected.txt 2022-04-04 20:41:32 UTC (rev 292314) @@ -0,0 +1,12 @@ +This test ensures we calculate the frame correctly for objects that don't have a renderer (like display: contents elements). + +#toolbar: {width: 784, height: 22} +#group: {width: 46, height: 28} +#button: {width: 784, height: 10} + +PASS successfullyParsed is true + +TEST COMPLETE +Foo +Foo +Foo Added: trunk/LayoutTests/accessibility/node-only-object-element-rect.html (0 => 292314) --- trunk/LayoutTests/accessibility/node-only-object-element-rect.html (rev 0) +++ trunk/LayoutTests/accessibility/node-only-object-element-rect.html 2022-04-04 20:41:32 UTC (rev 292314) @@ -0,0 +1,45 @@ + + + + + + +++ ++ ++++ ++ ++++ ++ ++