Title: [282261] trunk
Revision
282261
Author
[email protected]
Date
2021-09-09 23:42:31 -0700 (Thu, 09 Sep 2021)

Log Message

FontFaceSet.load() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=230132

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This test is being upstreamed in https://github.com/web-platform-tests/wpt/pull/30491

* web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt: Added.
* web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html: Added.

Source/WebCore:

If content does something like
let fonts = document.fonts;
... modify style sheets ...
fonts.load(...)

The load() function needs to see the result of hte style sheet modification.

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html

* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::load):

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (282260 => 282261)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-10 06:41:27 UTC (rev 282260)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-10 06:42:31 UTC (rev 282261)
@@ -1,3 +1,15 @@
+2021-09-09  Myles C. Maxfield  <[email protected]>
+
+        FontFaceSet.load() needs to react to style changes
+        https://bugs.webkit.org/show_bug.cgi?id=230132
+
+        Reviewed by Antti Koivisto.
+
+        This test is being upstreamed in https://github.com/web-platform-tests/wpt/pull/30491
+
+        * web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt: Added.
+        * web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html: Added.
+
 2021-09-09  Simon Fraser  <[email protected]>
 
         right- and bottom-relative values in background-position-x/y don't work

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt (0 => 282261)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt	2021-09-10 06:42:31 UTC (rev 282261)
@@ -0,0 +1,3 @@
+
+PASS fontfaceset-load-css-connected
+
Property changes on: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt
___________________________________________________________________

Added: svn:eol-style

+native \ No newline at end of property

Added: svn:keywords

+Author Date Id Rev URL \ No newline at end of property

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html (0 => 282261)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html	2021-09-10 06:42:31 UTC (rev 282261)
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head id="head">
+<meta charset="utf-8">
+<link rel="author" title="Myles C. Maxfield" href=""
+<link rel="help" href=""
+<meta name="assert" content="Ensure that calling FontFaceSet.load() operates on the up-to-date @font-face blocks." />
+<script src=""
+<script src=""
+<style id="style">
+@font-face {
+    font-family: "WebFont";
+    src: url("resources/Rochester.otf") format("opentype");
+}
+</style>
+</head>
+<body>
+<script>
+promise_test(async function(t) {
+    let fonts = document.fonts;
+    document.getElementById("head").removeChild(document.getElementById("style"));
+    let result = await fonts.load("12px 'WebFont'");
+    assert_equals(result.length, 0);
+});
+</script>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (282260 => 282261)


--- trunk/Source/WebCore/ChangeLog	2021-09-10 06:41:27 UTC (rev 282260)
+++ trunk/Source/WebCore/ChangeLog	2021-09-10 06:42:31 UTC (rev 282261)
@@ -1,3 +1,22 @@
+2021-09-09  Myles C. Maxfield  <[email protected]>
+
+        FontFaceSet.load() needs to react to style changes
+        https://bugs.webkit.org/show_bug.cgi?id=230132
+
+        Reviewed by Antti Koivisto.
+
+        If content does something like
+        let fonts = document.fonts;
+        ... modify style sheets ...
+        fonts.load(...)
+
+        The load() function needs to see the result of hte style sheet modification.
+
+        Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html
+
+        * css/FontFaceSet.cpp:
+        (WebCore::FontFaceSet::load):
+
 2021-09-09  Frédéric Wang  <[email protected]>
 
         Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply

Modified: trunk/Source/WebCore/css/FontFaceSet.cpp (282260 => 282261)


--- trunk/Source/WebCore/css/FontFaceSet.cpp	2021-09-10 06:41:27 UTC (rev 282260)
+++ trunk/Source/WebCore/css/FontFaceSet.cpp	2021-09-10 06:42:31 UTC (rev 282261)
@@ -149,6 +149,7 @@
 
 void FontFaceSet::load(const String& font, const String& text, LoadPromise&& promise)
 {
+    m_backing->updateStyleIfNeeded();
     auto matchingFacesResult = m_backing->matchingFacesExcludingPreinstalledFonts(font, text);
     if (matchingFacesResult.hasException()) {
         promise.reject(matchingFacesResult.releaseException());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to