From 8210a7b3e33cf4cda3bee2d61d68f8f45cd39e7f Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Mon, 21 Jul 2025 13:15:47 +0100 Subject: [PATCH] LibWeb: Resolve FontFaceSet::load promise with all loaded FontFaces The resulting array is required on https://www.canva.com/ --- Libraries/LibWeb/CSS/FontFaceSet.cpp | 5 ++-- .../css-font-loading/empty-family-load.txt | 6 ++++ .../fontfaceset-load-css-connected.txt | 6 ++++ .../css-font-loading/empty-family-load.html | 18 ++++++++++++ .../fontfaceset-load-css-connected.html | 27 ++++++++++++++++++ .../css-font-loading/resources/Rochester.otf | Bin 0 -> 27260 bytes 6 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/empty-family-load.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.txt create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/empty-family-load.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/resources/Rochester.otf diff --git a/Libraries/LibWeb/CSS/FontFaceSet.cpp b/Libraries/LibWeb/CSS/FontFaceSet.cpp index 7dd907e4e42..6b27c2fe2ff 100644 --- a/Libraries/LibWeb/CSS/FontFaceSet.cpp +++ b/Libraries/LibWeb/CSS/FontFaceSet.cpp @@ -264,9 +264,10 @@ JS::ThrowCompletionOr> FontFaceSet::load(String const& WebIDL::wait_for_all( realm, promises, - [&realm, promise](auto const&) { + [&realm, promise](auto const& fonts) { HTML::TemporaryExecutionContext execution_context { realm, HTML::TemporaryExecutionContext::CallbacksEnabled::Yes }; - WebIDL::resolve_promise(realm, promise); + auto fonts_array = JS::Array::create_from(realm, fonts); + WebIDL::resolve_promise(realm, promise, fonts_array); }, [&realm, promise](auto error) { HTML::TemporaryExecutionContext execution_context { realm, HTML::TemporaryExecutionContext::CallbacksEnabled::Yes }; diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/empty-family-load.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/empty-family-load.txt new file mode 100644 index 00000000000..eb2bfdb02ef --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/empty-family-load.txt @@ -0,0 +1,6 @@ +Harness status: OK + +Found 1 tests + +1 Pass +Pass empty-family-load \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.txt new file mode 100644 index 00000000000..1c7dec24671 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.txt @@ -0,0 +1,6 @@ +Harness status: OK + +Found 1 tests + +1 Pass +Pass fontfaceset-load-css-connected \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/empty-family-load.html b/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/empty-family-load.html new file mode 100644 index 00000000000..74494dd8272 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/empty-family-load.html @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.html b/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.html new file mode 100644 index 00000000000..e42bf95b31c --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/fontfaceset-load-css-connected.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/resources/Rochester.otf b/Tests/LibWeb/Text/input/wpt-import/css/css-font-loading/resources/Rochester.otf new file mode 100644 index 0000000000000000000000000000000000000000..79f63ced683e6342866d734b04f3c687f6dd942f GIT binary patch literal 27260 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