[webkit-changes] [292377] trunk/Source/WebCore

2022-04-04 Thread zandobersek
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

2022-04-04 Thread zsun
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

2022-04-04 Thread antti
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

2022-04-04 Thread ysuzuki
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

2022-04-04 Thread ysuzuki
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

2022-04-04 Thread ysuzuki
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread cdumez
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

2022-04-04 Thread sbarati
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

2022-04-04 Thread mmaxfield
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

2022-04-04 Thread aperez
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

2022-04-04 Thread simon . fraser
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread said
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

2022-04-04 Thread simon . fraser
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

2022-04-04 Thread matteo_flores
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

2022-04-04 Thread gnavamarino
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

2022-04-04 Thread simon . fraser
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

2022-04-04 Thread matteo_flores
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread matteo_flores
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

2022-04-04 Thread wenson_hsieh
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread mattwoodrow
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

2022-04-04 Thread timothy_horton
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread bfulgham
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

2022-04-04 Thread alancoon
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

2022-04-04 Thread heycam
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

2022-04-04 Thread simon . fraser
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

2022-04-04 Thread zalan
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

2022-04-04 Thread wenson_hsieh
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

2022-04-04 Thread ggaren
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

2022-04-04 Thread tyler_w
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 @@
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +