REGRESSION(r244635): [GTK] Wrong background color used in non-dark mode
[WebKit-https.git] / Source / WebCore / css / FontFace.h
index 0b06ce9..3d9a0ec 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "CSSFontFace.h"
 #include "CSSPropertyNames.h"
-#include "JSDOMPromise.h"
+#include "DOMPromiseProxy.h"
 #include <wtf/Variant.h>
 #include <wtf/WeakPtr.h>
 
@@ -38,7 +38,7 @@ class ArrayBufferView;
 
 namespace WebCore {
 
-class FontFace final : public RefCounted<FontFace>, private CSSFontFace::Client {
+class FontFace final : public RefCounted<FontFace>, public CanMakeWeakPtr<FontFace>, private CSSFontFace::Client {
 public:
     struct Descriptors {
         String style;
@@ -47,6 +47,7 @@ public:
         String unicodeRange;
         String variant;
         String featureSettings;
+        String display;
     };
     
     using Source = Variant<String, RefPtr<JSC::ArrayBuffer>, RefPtr<JSC::ArrayBufferView>>;
@@ -61,6 +62,7 @@ public:
     ExceptionOr<void> setUnicodeRange(const String&);
     ExceptionOr<void> setVariant(const String&);
     ExceptionOr<void> setFeatureSettings(const String&);
+    ExceptionOr<void> setDisplay(const String&);
 
     String family() const;
     String style() const;
@@ -69,26 +71,23 @@ public:
     String unicodeRange() const;
     String variant() const;
     String featureSettings() const;
+    String display() const;
 
     enum class LoadStatus { Unloaded, Loading, Loaded, Error };
     LoadStatus status() const;
 
-    using Promise = DOMPromise<IDLInterface<FontFace>>;
-    std::optional<Promise>& promise() { return m_promise; }
-    void registerLoaded(Promise&&);
+    using LoadedPromise = DOMPromiseProxyWithResolveCallback<IDLInterface<FontFace>>;
+    LoadedPromise& loaded() { return m_loadedPromise; }
+    LoadedPromise& load();
 
     void adopt(CSSFontFace&);
 
-    void load();
-
     CSSFontFace& backing() { return m_backing; }
 
     static RefPtr<CSSValue> parseString(const String&, CSSPropertyID);
 
     void fontStateChanged(CSSFontFace&, CSSFontFace::Status oldState, CSSFontFace::Status newState) final;
 
-    WeakPtr<FontFace> createWeakPtr() const;
-
     void ref() final { RefCounted::ref(); }
     void deref() final { RefCounted::deref(); }
 
@@ -96,9 +95,11 @@ private:
     explicit FontFace(CSSFontSelector&);
     explicit FontFace(CSSFontFace&);
 
-    WeakPtrFactory<FontFace> m_weakPtrFactory;
+    // Callback for LoadedPromise.
+    FontFace& loadedPromiseResolve();
+
     Ref<CSSFontFace> m_backing;
-    std::optional<Promise> m_promise;
+    LoadedPromise m_loadedPromise;
 };
 
 }