Diff
Modified: branches/safari-613-branch/LayoutTests/ChangeLog (293132 => 293133)
--- branches/safari-613-branch/LayoutTests/ChangeLog 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/LayoutTests/ChangeLog 2022-04-21 00:45:59 UTC (rev 293133)
@@ -1,73 +1,5 @@
2022-04-19 Alan Coon <[email protected]>
- Cherry-pick r292274. rdar://problem/80544133
-
- [Cocoa] Automatically relayout the page when new fonts are installed
- https://bugs.webkit.org/show_bug.cgi?id=238483
- <rdar://problem/80544133>
-
- Reviewed by Chris Dumez.
-
- Source/WebCore:
-
- This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
- kCTFontManagerRegisteredFontsChangedNotification.
-
- FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
- therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
- callback and calls that instead. This callback is set at initialization time.
-
- Test: fast/text/install-font-style-recalc.html
-
- * page/Page.cpp:
- (WebCore::m_contentSecurityPolicyModeForExtension):
- (WebCore::Page::firstTimeInitialization):
- * page/Page.h:
- * platform/graphics/FontCache.cpp:
- (WebCore::Function<void):
- (WebCore::FontCache::registerFontCacheInvalidationCallback):
- (WebCore::FontCache::invalidateAllFontCaches):
- * platform/graphics/FontCache.h:
-
- Tools:
-
- Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
- This avoids the problem where spurious layouts during the time when the page has been created but
- before the test has begun record irrelevant statistics.
-
- * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
- (WTR::InjectedBundle::beginTesting):
- (WTR::InjectedBundle::clearResourceLoadStatistics):
- * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- (WTR::TestRunner::dumpResourceLoadStatistics):
-
- LayoutTests:
-
- * TestExpectations:
- * fast/text/install-font-style-recalc-expected.txt: Added.
- * fast/text/install-font-style-recalc.html: Added.
- * platform/ios-wk2/TestExpectations:
- * platform/mac-wk2/TestExpectations:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2022-04-02 Myles C. Maxfield <[email protected]>
-
- [Cocoa] Automatically relayout the page when new fonts are installed
- https://bugs.webkit.org/show_bug.cgi?id=238483
- <rdar://problem/80544133>
-
- Reviewed by Chris Dumez.
-
- * TestExpectations:
- * fast/text/install-font-style-recalc-expected.txt: Added.
- * fast/text/install-font-style-recalc.html: Added.
- * platform/ios-wk2/TestExpectations:
- * platform/mac-wk2/TestExpectations:
-
-2022-04-19 Alan Coon <[email protected]>
-
Cherry-pick r292079. rdar://problem/88512506
Don't mutate children during RenderGrid::computeIntrinsicLogicalWidths unless we're about to re-layout.
Modified: branches/safari-613-branch/LayoutTests/TestExpectations (293132 => 293133)
--- branches/safari-613-branch/LayoutTests/TestExpectations 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/LayoutTests/TestExpectations 2022-04-21 00:45:59 UTC (rev 293133)
@@ -5206,6 +5206,3 @@
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html [ Skip ]
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html [ Skip ]
userscripts/user-script-plugin-document.html [ Skip ]
-
-# Only some ports automatically relayout if a font is installed while the page is open
-fast/text/install-font-style-recalc.html [ Failure ]
Deleted: branches/safari-613-branch/LayoutTests/fast/text/install-font-style-recalc-expected.txt (293132 => 293133)
--- branches/safari-613-branch/LayoutTests/fast/text/install-font-style-recalc-expected.txt 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/LayoutTests/fast/text/install-font-style-recalc-expected.txt 2022-04-21 00:45:59 UTC (rev 293133)
@@ -1,11 +0,0 @@
-This test makes sure that installing a font causes a style recalc. The test only runs in DumpRenderTree/WebKitTestRunner. It passes if the text above is rendered as black boxes (aka in Ahem).
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS target.offsetWidth became 200
-PASS The font was used.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-rrrr
Deleted: branches/safari-613-branch/LayoutTests/fast/text/install-font-style-recalc.html (293132 => 293133)
--- branches/safari-613-branch/LayoutTests/fast/text/install-font-style-recalc.html 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/LayoutTests/fast/text/install-font-style-recalc.html 2022-04-21 00:45:59 UTC (rev 293133)
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src=""
-</head>
-<body>
-<span id="target" style="font: 50px 'Helvetica2';">rrrr</span>
-<script>
-description("This test makes sure that installing a font causes a style recalc. The test only runs in DumpRenderTree/WebKitTestRunner. It passes if the text above is rendered as black boxes (aka in Ahem).");
-window.jsTestIsAsync = true;
-let target = document.getElementById("target");
-target.offsetWidth; // Force a font lookup
-if (window.testRunner)
- testRunner.installFakeHelvetica("Helvetica2-400");
-shouldBecomeEqual("target.offsetWidth", "200", function() {
- testPassed("The font was used.");
- finishJSTest();
-});
-</script>
-</body>
-</html>
Modified: branches/safari-613-branch/LayoutTests/platform/ios-wk2/TestExpectations (293132 => 293133)
--- branches/safari-613-branch/LayoutTests/platform/ios-wk2/TestExpectations 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/LayoutTests/platform/ios-wk2/TestExpectations 2022-04-21 00:45:59 UTC (rev 293133)
@@ -2211,5 +2211,3 @@
# See webkit.org/b/233498 for context on this pointerevents tests
imported/w3c/web-platform-tests/pointerevents [ Skip ]
pointerevents/mouse [ Failure ]
-
-fast/text/install-font-style-recalc.html [ Pass ]
Modified: branches/safari-613-branch/LayoutTests/platform/mac-wk2/TestExpectations (293132 => 293133)
--- branches/safari-613-branch/LayoutTests/platform/mac-wk2/TestExpectations 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/LayoutTests/platform/mac-wk2/TestExpectations 2022-04-21 00:45:59 UTC (rev 293133)
@@ -1675,5 +1675,3 @@
# rdar://86037417 WindowServer returned not alive with context:,unresponsive work processor(s)
[ Monterey+ ] http/tests/model/model-document.html [ Skip ]
-
-fast/text/install-font-style-recalc.html [ Pass ]
Modified: branches/safari-613-branch/Source/WebCore/ChangeLog (293132 => 293133)
--- branches/safari-613-branch/Source/WebCore/ChangeLog 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Source/WebCore/ChangeLog 2022-04-21 00:45:59 UTC (rev 293133)
@@ -235,87 +235,6 @@
2022-04-19 Alan Coon <[email protected]>
- Cherry-pick r292274. rdar://problem/80544133
-
- [Cocoa] Automatically relayout the page when new fonts are installed
- https://bugs.webkit.org/show_bug.cgi?id=238483
- <rdar://problem/80544133>
-
- Reviewed by Chris Dumez.
-
- Source/WebCore:
-
- This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
- kCTFontManagerRegisteredFontsChangedNotification.
-
- FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
- therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
- callback and calls that instead. This callback is set at initialization time.
-
- Test: fast/text/install-font-style-recalc.html
-
- * page/Page.cpp:
- (WebCore::m_contentSecurityPolicyModeForExtension):
- (WebCore::Page::firstTimeInitialization):
- * page/Page.h:
- * platform/graphics/FontCache.cpp:
- (WebCore::Function<void):
- (WebCore::FontCache::registerFontCacheInvalidationCallback):
- (WebCore::FontCache::invalidateAllFontCaches):
- * platform/graphics/FontCache.h:
-
- Tools:
-
- Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
- This avoids the problem where spurious layouts during the time when the page has been created but
- before the test has begun record irrelevant statistics.
-
- * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
- (WTR::InjectedBundle::beginTesting):
- (WTR::InjectedBundle::clearResourceLoadStatistics):
- * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- (WTR::TestRunner::dumpResourceLoadStatistics):
-
- LayoutTests:
-
- * TestExpectations:
- * fast/text/install-font-style-recalc-expected.txt: Added.
- * fast/text/install-font-style-recalc.html: Added.
- * platform/ios-wk2/TestExpectations:
- * platform/mac-wk2/TestExpectations:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2022-04-02 Myles C. Maxfield <[email protected]>
-
- [Cocoa] Automatically relayout the page when new fonts are installed
- https://bugs.webkit.org/show_bug.cgi?id=238483
- <rdar://problem/80544133>
-
- Reviewed by Chris Dumez.
-
- This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
- kCTFontManagerRegisteredFontsChangedNotification.
-
- FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
- therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
- callback and calls that instead. This callback is set at initialization time.
-
- Test: fast/text/install-font-style-recalc.html
-
- * page/Page.cpp:
- (WebCore::m_contentSecurityPolicyModeForExtension):
- (WebCore::Page::firstTimeInitialization):
- * page/Page.h:
- * platform/graphics/FontCache.cpp:
- (WebCore::Function<void):
- (WebCore::FontCache::registerFontCacheInvalidationCallback):
- (WebCore::FontCache::invalidateAllFontCaches):
- * platform/graphics/FontCache.h:
-
-2022-04-19 Alan Coon <[email protected]>
-
Cherry-pick r292079. rdar://problem/88512506
Don't mutate children during RenderGrid::computeIntrinsicLogicalWidths unless we're about to re-layout.
Modified: branches/safari-613-branch/Source/WebCore/page/Page.cpp (293132 => 293133)
--- branches/safari-613-branch/Source/WebCore/page/Page.cpp 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Source/WebCore/page/Page.cpp 2022-04-21 00:45:59 UTC (rev 293133)
@@ -349,10 +349,10 @@
m_userContentProvider->addPage(*this);
m_visitedLinkStore->addPage(*this);
- static bool firstTimeInitializationRan = false;
- if (!firstTimeInitializationRan) {
- firstTimeInitialization();
- firstTimeInitializationRan = true;
+ static bool addedListener;
+ if (!addedListener) {
+ platformStrategies()->loaderStrategy()->addOnlineStateChangeListener(&networkStateChanged);
+ addedListener = true;
}
ASSERT(!allPages().contains(this));
@@ -426,17 +426,6 @@
m_visitedLinkStore->removePage(*this);
}
-void Page::firstTimeInitialization()
-{
- platformStrategies()->loaderStrategy()->addOnlineStateChangeListener(&networkStateChanged);
-
- FontCache::registerFontCacheInvalidationCallback([] {
- forEachPage([](auto& page) {
- page.setNeedsRecalcStyleInAllFrames();
- });
- });
-}
-
void Page::clearPreviousItemFromAllPages(HistoryItem* item)
{
for (auto* page : allPages()) {
Modified: branches/safari-613-branch/Source/WebCore/page/Page.h (293132 => 293133)
--- branches/safari-613-branch/Source/WebCore/page/Page.h 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Source/WebCore/page/Page.h 2022-04-21 00:45:59 UTC (rev 293133)
@@ -939,8 +939,6 @@
};
void logNavigation(const Navigation&);
- static void firstTimeInitialization();
-
WEBCORE_EXPORT void initGroup();
void setIsInWindowInternal(bool);
Modified: branches/safari-613-branch/Source/WebCore/platform/graphics/FontCache.cpp (293132 => 293133)
--- branches/safari-613-branch/Source/WebCore/platform/graphics/FontCache.cpp 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Source/WebCore/platform/graphics/FontCache.cpp 2022-04-21 00:45:59 UTC (rev 293133)
@@ -489,17 +489,6 @@
purgeInactiveFontData();
}
-static Function<void()>& fontCacheInvalidationCallback()
-{
- static NeverDestroyed<Function<void()>> callback;
- return callback.get();
-}
-
-void FontCache::registerFontCacheInvalidationCallback(Function<void()>&& callback)
-{
- fontCacheInvalidationCallback() = WTFMove(callback);
-}
-
void FontCache::invalidateAllFontCaches()
{
ASSERT(isMainThread());
@@ -506,9 +495,6 @@
// FIXME: Invalidate FontCaches in workers too.
FontCache::forCurrentThread().invalidate();
-
- if (fontCacheInvalidationCallback())
- fontCacheInvalidationCallback()();
}
#if !PLATFORM(COCOA)
Modified: branches/safari-613-branch/Source/WebCore/platform/graphics/FontCache.h (293132 => 293133)
--- branches/safari-613-branch/Source/WebCore/platform/graphics/FontCache.h 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Source/WebCore/platform/graphics/FontCache.h 2022-04-21 00:45:59 UTC (rev 293133)
@@ -322,7 +322,6 @@
unsigned short generation() const { return m_generation; }
WEBCORE_EXPORT void invalidate();
- static void registerFontCacheInvalidationCallback(Function<void()>&&);
WEBCORE_EXPORT static void invalidateAllFontCaches();
WEBCORE_EXPORT size_t fontCount();
Modified: branches/safari-613-branch/Tools/ChangeLog (293132 => 293133)
--- branches/safari-613-branch/Tools/ChangeLog 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Tools/ChangeLog 2022-04-21 00:45:59 UTC (rev 293133)
@@ -1,78 +1,5 @@
2022-04-19 Alan Coon <[email protected]>
- Cherry-pick r292274. rdar://problem/80544133
-
- [Cocoa] Automatically relayout the page when new fonts are installed
- https://bugs.webkit.org/show_bug.cgi?id=238483
- <rdar://problem/80544133>
-
- Reviewed by Chris Dumez.
-
- Source/WebCore:
-
- This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
- kCTFontManagerRegisteredFontsChangedNotification.
-
- FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
- therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
- callback and calls that instead. This callback is set at initialization time.
-
- Test: fast/text/install-font-style-recalc.html
-
- * page/Page.cpp:
- (WebCore::m_contentSecurityPolicyModeForExtension):
- (WebCore::Page::firstTimeInitialization):
- * page/Page.h:
- * platform/graphics/FontCache.cpp:
- (WebCore::Function<void):
- (WebCore::FontCache::registerFontCacheInvalidationCallback):
- (WebCore::FontCache::invalidateAllFontCaches):
- * platform/graphics/FontCache.h:
-
- Tools:
-
- Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
- This avoids the problem where spurious layouts during the time when the page has been created but
- before the test has begun record irrelevant statistics.
-
- * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
- (WTR::InjectedBundle::beginTesting):
- (WTR::InjectedBundle::clearResourceLoadStatistics):
- * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- (WTR::TestRunner::dumpResourceLoadStatistics):
-
- LayoutTests:
-
- * TestExpectations:
- * fast/text/install-font-style-recalc-expected.txt: Added.
- * fast/text/install-font-style-recalc.html: Added.
- * platform/ios-wk2/TestExpectations:
- * platform/mac-wk2/TestExpectations:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2022-04-02 Myles C. Maxfield <[email protected]>
-
- [Cocoa] Automatically relayout the page when new fonts are installed
- https://bugs.webkit.org/show_bug.cgi?id=238483
- <rdar://problem/80544133>
-
- Reviewed by Chris Dumez.
-
- Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
- This avoids the problem where spurious layouts during the time when the page has been created but
- before the test has begun record irrelevant statistics.
-
- * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
- (WTR::InjectedBundle::beginTesting):
- (WTR::InjectedBundle::clearResourceLoadStatistics):
- * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- (WTR::TestRunner::dumpResourceLoadStatistics):
-
-2022-04-19 Alan Coon <[email protected]>
-
Cherry-pick r292680. rdar://problem/91323230
The Youtube plugin replacement should only work for actual Youtube URLs
Modified: branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp (293132 => 293133)
--- branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp 2022-04-21 00:45:59 UTC (rev 293133)
@@ -543,7 +543,7 @@
WKBundleClearAllDatabases(m_bundle.get());
WKBundlePageClearApplicationCache(page()->page());
WKBundleResetOriginAccessAllowLists(m_bundle.get());
- clearResourceLoadStatistics();
+ WKBundleClearResourceLoadStatistics(m_bundle.get());
// [WK2] REGRESSION(r128623): It made layout tests extremely slow
// https://bugs.webkit.org/show_bug.cgi?id=96862
@@ -576,11 +576,6 @@
m_state = Idle;
}
-void InjectedBundle::clearResourceLoadStatistics()
-{
- WKBundleClearResourceLoadStatistics(m_bundle.get());
-}
-
void InjectedBundle::dumpBackForwardListsForAllPages(StringBuilder& stringBuilder)
{
size_t size = m_pages.size();
Modified: branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h (293132 => 293133)
--- branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h 2022-04-21 00:45:59 UTC (rev 293133)
@@ -148,8 +148,6 @@
void increaseUserScriptInjectedCount() { ++m_userScriptInjectedCount; }
size_t userScriptInjectedCount() const { return m_userScriptInjectedCount; }
- void clearResourceLoadStatistics();
-
private:
InjectedBundle() = default;
~InjectedBundle();
Modified: branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (293132 => 293133)
--- branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp 2022-04-21 00:30:33 UTC (rev 293132)
+++ branches/safari-613-branch/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp 2022-04-21 00:45:59 UTC (rev 293133)
@@ -1333,7 +1333,6 @@
void TestRunner::dumpResourceLoadStatistics()
{
- InjectedBundle::singleton().clearResourceLoadStatistics();
postSynchronousPageMessage("dumpResourceLoadStatistics");
}