Title: [281842] trunk
Revision
281842
Author
mmaxfi...@apple.com
Date
2021-09-01 01:59:44 -0700 (Wed, 01 Sep 2021)

Log Message

CSSFontFaceSet.clear() should not clear CSS-connected members
https://bugs.webkit.org/show_bug.cgi?id=229643

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt:

Source/WebCore:

The spec https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-clear says:

> Remove all non-CSS-connected items

* css/CSSFontFaceSet.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::clear):

LayoutTests:

* TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (281841 => 281842)


--- trunk/LayoutTests/ChangeLog	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/LayoutTests/ChangeLog	2021-09-01 08:59:44 UTC (rev 281842)
@@ -1,3 +1,12 @@
+2021-09-01  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        CSSFontFaceSet.clear() should not clear CSS-connected members
+        https://bugs.webkit.org/show_bug.cgi?id=229643
+
+        Reviewed by Darin Adler.
+
+        * TestExpectations:
+
 2021-08-13  Sergio Villar Senin  <svil...@igalia.com>
 
         [css-flexbox] Add initial support for css-align-3 positional alignment properties

Modified: trunk/LayoutTests/TestExpectations (281841 => 281842)


--- trunk/LayoutTests/TestExpectations	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/LayoutTests/TestExpectations	2021-09-01 08:59:44 UTC (rev 281842)
@@ -5131,6 +5131,5 @@
 
 webkit.org/b/229726 imported/w3c/web-platform-tests/css/css-font-loading/fontface-override-descriptors.html [ ImageOnlyFailure ]
 webkit.org/b/229726 imported/w3c/web-platform-tests/css/css-font-loading/fontface-size-adjust-descriptor.html [ ImageOnlyFailure ]
-webkit.org/b/229643 imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-2.html [ ImageOnlyFailure ]
 webkit.org/b/229640 imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-2.html [ ImageOnlyFailure ]
 webkit.org/b/229727 imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-var.html [ Skip ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (281841 => 281842)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-01 08:59:44 UTC (rev 281842)
@@ -1,3 +1,12 @@
+2021-09-01  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        CSSFontFaceSet.clear() should not clear CSS-connected members
+        https://bugs.webkit.org/show_bug.cgi?id=229643
+
+        Reviewed by Darin Adler.
+
+        * web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt:
+
 2021-08-13  Sergio Villar Senin  <svil...@igalia.com>
 
         [css-flexbox] Add initial support for css-align-3 positional alignment properties

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt (281841 => 281842)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt	2021-09-01 08:59:44 UTC (rev 281842)
@@ -1,3 +1,3 @@
 
-FAIL fontfaceset-clear-css-connected assert_equals: expected 1 but got 0
+PASS fontfaceset-clear-css-connected
 

Modified: trunk/Source/WebCore/ChangeLog (281841 => 281842)


--- trunk/Source/WebCore/ChangeLog	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/Source/WebCore/ChangeLog	2021-09-01 08:59:44 UTC (rev 281842)
@@ -1,3 +1,18 @@
+2021-09-01  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        CSSFontFaceSet.clear() should not clear CSS-connected members
+        https://bugs.webkit.org/show_bug.cgi?id=229643
+
+        Reviewed by Darin Adler.
+
+        The spec https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-clear says:
+
+        > Remove all non-CSS-connected items
+
+        * css/CSSFontFaceSet.h:
+        * css/FontFaceSet.cpp:
+        (WebCore::FontFaceSet::clear):
+
 2021-08-13  Sergio Villar Senin  <svil...@igalia.com>
 
         [css-flexbox] Add initial support for css-align-3 positional alignment properties

Modified: trunk/Source/WebCore/css/CSSFontFaceSet.h (281841 => 281842)


--- trunk/Source/WebCore/css/CSSFontFaceSet.h	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/Source/WebCore/css/CSSFontFaceSet.h	2021-09-01 08:59:44 UTC (rev 281842)
@@ -77,6 +77,8 @@
 
     bool hasActiveFontFaces() { return status() == Status::Loading; }
 
+    size_t facesPartitionIndex() const { return m_facesPartitionIndex; }
+
     ExceptionOr<Vector<std::reference_wrapper<CSSFontFace>>> matchingFacesExcludingPreinstalledFonts(const String& font, const String& text);
 
     // CSSFontFace::Client needs to be able to be held in a RefPtr.

Modified: trunk/Source/WebCore/css/FontFaceSet.cpp (281841 => 281842)


--- trunk/Source/WebCore/css/FontFaceSet.cpp	2021-09-01 08:44:16 UTC (rev 281841)
+++ trunk/Source/WebCore/css/FontFaceSet.cpp	2021-09-01 08:59:44 UTC (rev 281842)
@@ -132,8 +132,11 @@
 
 void FontFaceSet::clear()
 {
-    while (m_backing->faceCount())
-        m_backing->remove(m_backing.get()[0]);
+    auto facesPartitionIndex = m_backing->facesPartitionIndex();
+    while (m_backing->faceCount() > facesPartitionIndex) {
+        m_backing->remove(m_backing.get()[m_backing->faceCount() - 1]);
+        ASSERT(m_backing->facesPartitionIndex() == facesPartitionIndex);
+    }
 }
 
 void FontFaceSet::load(const String& font, const String& text, LoadPromise&& promise)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to