Title: [276238] trunk
Revision
276238
Author
[email protected]
Date
2021-04-19 01:16:42 -0700 (Mon, 19 Apr 2021)

Log Message

[WPE][GTK] Enable AVIF decoder as experimental feature and unskip tests
https://bugs.webkit.org/show_bug.cgi?id=224663

Reviewed by Xabier Rodriguez-Calvar.

.:

Make the USE_AVIF option public and enable it as experimental feature.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Refactor the AVIF build options out of the GTK port so they can be reused by other CMake ports.

* PlatformGTK.cmake:
* platform/ImageDecoders.cmake:
* platform/image-decoders/avif/AVIFImageDecoder.cpp:
* platform/image-decoders/avif/AVIFImageReader.cpp:
* platform/image-decoders/avif/AVIFUniquePtr.h:

LayoutTests:

* platform/gtk/TestExpectations: Unskip avif tests.

Modified Paths

Diff

Modified: trunk/ChangeLog (276237 => 276238)


--- trunk/ChangeLog	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/ChangeLog	2021-04-19 08:16:42 UTC (rev 276238)
@@ -1,3 +1,15 @@
+2021-04-19  Philippe Normand  <[email protected]>
+
+        [WPE][GTK] Enable AVIF decoder as experimental feature and unskip tests
+        https://bugs.webkit.org/show_bug.cgi?id=224663
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Make the USE_AVIF option public and enable it as experimental feature.
+
+        * Source/cmake/OptionsGTK.cmake:
+        * Source/cmake/OptionsWPE.cmake:
+
 2021-04-16  Philippe Normand  <[email protected]>
 
         [CMake] UBSan build fixes

Modified: trunk/LayoutTests/ChangeLog (276237 => 276238)


--- trunk/LayoutTests/ChangeLog	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/LayoutTests/ChangeLog	2021-04-19 08:16:42 UTC (rev 276238)
@@ -1,3 +1,12 @@
+2021-04-19  Philippe Normand  <[email protected]>
+
+        [WPE][GTK] Enable AVIF decoder as experimental feature and unskip tests
+        https://bugs.webkit.org/show_bug.cgi?id=224663
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * platform/gtk/TestExpectations: Unskip avif tests.
+
 2021-04-18  Manuel Rego Casasnovas  <[email protected]>
 
         [selectors] Update :focus-visible tests from WPT

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (276237 => 276238)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2021-04-19 08:16:42 UTC (rev 276238)
@@ -113,11 +113,6 @@
 
 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https.html [ Pass ]
 
-# Temporarily skip avif related tests until the gtk port enables avif as default.
-fast/images/avif-image-decoding.html [ Skip ]
-fast/images/avif-as-image.html [ Skip ]
-fast/images/animated-avif.html [ Skip ]
-
 #////////////////////////////////////////////////////////////////////////////////////////
 # End of PASSING tests. See below where to put expected failures.
 #////////////////////////////////////////////////////////////////////////////////////////

Modified: trunk/Source/WebCore/ChangeLog (276237 => 276238)


--- trunk/Source/WebCore/ChangeLog	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/WebCore/ChangeLog	2021-04-19 08:16:42 UTC (rev 276238)
@@ -1,3 +1,18 @@
+2021-04-19  Philippe Normand  <[email protected]>
+
+        [WPE][GTK] Enable AVIF decoder as experimental feature and unskip tests
+        https://bugs.webkit.org/show_bug.cgi?id=224663
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Refactor the AVIF build options out of the GTK port so they can be reused by other CMake ports.
+
+        * PlatformGTK.cmake:
+        * platform/ImageDecoders.cmake:
+        * platform/image-decoders/avif/AVIFImageDecoder.cpp:
+        * platform/image-decoders/avif/AVIFImageReader.cpp:
+        * platform/image-decoders/avif/AVIFUniquePtr.h:
+
 2021-04-18  Wenson Hsieh  <[email protected]>
 
         Selected image overlay text should never be visible

Modified: trunk/Source/WebCore/PlatformGTK.cmake (276237 => 276238)


--- trunk/Source/WebCore/PlatformGTK.cmake	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/WebCore/PlatformGTK.cmake	2021-04-19 08:16:42 UTC (rev 276238)
@@ -37,20 +37,6 @@
     "${WEBCORE_DIR}/platform/text/gtk"
 )
 
-if (USE_AVIF)
-    list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES
-        "${WEBCORE_DIR}/platform/image-decoders/avif"
-    )
-    list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS
-        platform/image-decoders/avif/AVIFUniquePtr.h
-    )
-    list(APPEND WebCore_SOURCES
-        platform/image-decoders/avif/AVIFImageDecoder.cpp
-        platform/image-decoders/avif/AVIFImageReader.cpp
-    )
-    list(APPEND WebCore_LIBRARIES AVIF::AVIF)
-endif ()
-
 if (USE_WPE_RENDERER)
     list(APPEND WebCore_INCLUDE_DIRECTORIES
         "${WEBCORE_DIR}/platform/graphics/libwpe"

Modified: trunk/Source/WebCore/platform/ImageDecoders.cmake (276237 => 276238)


--- trunk/Source/WebCore/platform/ImageDecoders.cmake	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/WebCore/platform/ImageDecoders.cmake	2021-04-19 08:16:42 UTC (rev 276238)
@@ -1,5 +1,6 @@
 list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES
     "${WEBCORE_DIR}/platform/image-decoders"
+    "${WEBCORE_DIR}/platform/image-decoders/avif"
     "${WEBCORE_DIR}/platform/image-decoders/bmp"
     "${WEBCORE_DIR}/platform/image-decoders/gif"
     "${WEBCORE_DIR}/platform/image-decoders/ico"
@@ -13,6 +14,9 @@
     platform/image-decoders/ScalableImageDecoder.cpp
     platform/image-decoders/ScalableImageDecoderFrame.cpp
 
+    platform/image-decoders/avif/AVIFImageDecoder.cpp
+    platform/image-decoders/avif/AVIFImageReader.cpp
+
     platform/image-decoders/bmp/BMPImageDecoder.cpp
     platform/image-decoders/bmp/BMPImageReader.cpp
 
@@ -51,3 +55,10 @@
         platform/image-decoders/cairo/ImageBackingStoreCairo.cpp
     )
 endif ()
+
+if (USE_AVIF)
+    list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS
+        platform/image-decoders/avif/AVIFUniquePtr.h
+    )
+    list(APPEND WebCore_LIBRARIES AVIF::AVIF)
+endif ()

Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp (276237 => 276238)


--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp	2021-04-19 08:16:42 UTC (rev 276238)
@@ -24,6 +24,9 @@
  */
 
 #include "config.h"
+
+#if USE(AVIF)
+
 #include "AVIFImageDecoder.h"
 
 #include "AVIFImageReader.h"
@@ -127,3 +130,5 @@
 }
 
 }
+
+#endif // USE(AVIF)

Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp (276237 => 276238)


--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp	2021-04-19 08:16:42 UTC (rev 276238)
@@ -24,6 +24,9 @@
  */
 
 #include "config.h"
+
+#if USE(AVIF)
+
 #include "AVIFImageReader.h"
 
 #include "AVIFImageDecoder.h"
@@ -129,3 +132,5 @@
 }
 
 }
+
+#endif // USE(AVIF)

Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFUniquePtr.h (276237 => 276238)


--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFUniquePtr.h	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFUniquePtr.h	2021-04-19 08:16:42 UTC (rev 276238)
@@ -25,6 +25,8 @@
 
 #pragma once
 
+#if USE(AVIF)
+
 #include <avif/avif.h>
 #include <memory>
 
@@ -45,3 +47,5 @@
 };
 
 } // namespace WebCore
+
+#endif // USE(AVIF)

Modified: trunk/Source/cmake/OptionsGTK.cmake (276237 => 276238)


--- trunk/Source/cmake/OptionsGTK.cmake	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/cmake/OptionsGTK.cmake	2021-04-19 08:16:42 UTC (rev 276238)
@@ -68,24 +68,24 @@
 WEBKIT_OPTION_DEFINE(ENABLE_GTKDOC "Whether or not to use generate gtkdoc." PUBLIC OFF)
 WEBKIT_OPTION_DEFINE(ENABLE_INTROSPECTION "Whether to enable GObject introspection." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(ENABLE_QUARTZ_TARGET "Whether to enable support for the Quartz windowing target." PUBLIC ON)
+WEBKIT_OPTION_DEFINE(ENABLE_WAYLAND_TARGET "Whether to enable support for the Wayland windowing target." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(ENABLE_X11_TARGET "Whether to enable support for the X11 windowing target." PUBLIC ON)
-WEBKIT_OPTION_DEFINE(ENABLE_WAYLAND_TARGET "Whether to enable support for the Wayland windowing target." PUBLIC ON)
+WEBKIT_OPTION_DEFINE(USE_AVIF "Whether to enable support for AVIF images." PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFINE(USE_GTK4 "Whether to enable usage of GTK4 instead of GTK3." PUBLIC OFF)
 WEBKIT_OPTION_DEFINE(USE_LCMS "Whether to enable support for image color management using libcms2." PUBLIC ON)
+WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_LIBNOTIFY "Whether to enable the default web notification implementation." PUBLIC ON)
-WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_OPENGL_OR_ES "Whether to use OpenGL or ES." PUBLIC ${USE_OPENGL_OR_ES_DEFAULT})
 WEBKIT_OPTION_DEFINE(USE_OPENJPEG "Whether to enable support for JPEG2000 images." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_SOUP2 "Whether to enable usage of Soup 2 instead of Soup 3." PUBLIC ON)
+WEBKIT_OPTION_DEFINE(USE_SYSTEMD "Whether to enable journald logging" PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_WPE_RENDERER "Whether to enable WPE rendering" PUBLIC ON)
-WEBKIT_OPTION_DEFINE(USE_SYSTEMD "Whether to enable journald logging" PUBLIC ON)
 
 # Private options specific to the GTK port. Changing these options is
 # completely unsupported. They are intended for use only by WebKit developers.
 WEBKIT_OPTION_DEFINE(USE_ANGLE_WEBGL "Whether to use ANGLE as WebGL backend." PRIVATE OFF)
-WEBKIT_OPTION_DEFINE(USE_AVIF "Whether to enable support for AVIF images." PRIVATE OFF)
 
 WEBKIT_OPTION_DEPEND(ENABLE_3D_TRANSFORMS USE_OPENGL_OR_ES)
 WEBKIT_OPTION_DEPEND(ENABLE_ASYNC_SCROLLING USE_OPENGL_OR_ES)

Modified: trunk/Source/cmake/OptionsWPE.cmake (276237 => 276238)


--- trunk/Source/cmake/OptionsWPE.cmake	2021-04-19 06:57:16 UTC (rev 276237)
+++ trunk/Source/cmake/OptionsWPE.cmake	2021-04-19 08:16:42 UTC (rev 276238)
@@ -71,12 +71,13 @@
 # there is a strong reason we should support changing the value of the option,
 # and the option is not relevant to any other WebKit ports.
 WEBKIT_OPTION_DEFINE(ENABLE_GTKDOC "Whether or not to use generate gtkdoc." PUBLIC OFF)
+WEBKIT_OPTION_DEFINE(ENABLE_WPE_QT_API "Whether to enable support for the Qt5/QML plugin" PUBLIC ${ENABLE_DEVELOPER_MODE})
+WEBKIT_OPTION_DEFINE(USE_AVIF "Whether to enable support for AVIF images." PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES})
+WEBKIT_OPTION_DEFINE(USE_LCMS "Whether to enable support for image color management using libcms2." PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_OPENJPEG "Whether to enable support for JPEG2000 images." PUBLIC ON)
+WEBKIT_OPTION_DEFINE(USE_SOUP2 "Whether to enable usage of Soup 2 instead of Soup 3." PUBLIC ON)
+WEBKIT_OPTION_DEFINE(USE_SYSTEMD "Whether to enable journald logging" PUBLIC ON)
 WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON)
-WEBKIT_OPTION_DEFINE(ENABLE_WPE_QT_API "Whether to enable support for the Qt5/QML plugin" PUBLIC ${ENABLE_DEVELOPER_MODE})
-WEBKIT_OPTION_DEFINE(USE_SYSTEMD "Whether to enable journald logging" PUBLIC ON)
-WEBKIT_OPTION_DEFINE(USE_SOUP2 "Whether to enable usage of Soup 2 instead of Soup 3." PUBLIC ON)
-WEBKIT_OPTION_DEFINE(USE_LCMS "Whether to enable support for image color management using libcms2." PUBLIC ON)
 
 # Private options specific to the WPE port.
 WEBKIT_OPTION_DEFINE(USE_GSTREAMER_HOLEPUNCH "Whether to enable GStreamer holepunch" PRIVATE OFF)
@@ -208,6 +209,13 @@
     SET_AND_EXPOSE_TO_BUILD(XR_USE_GRAPHICS_API_OPENGL TRUE)
 endif ()
 
+if (USE_AVIF)
+    find_package(AVIF 0.9.0)
+    if (NOT AVIF_FOUND)
+        message(FATAL_ERROR "libavif 0.9.0 is required for USE_AVIF.")
+    endif ()
+endif ()
+
 if (USE_SYSTEMD)
     find_package(Systemd)
     if (Systemd_FOUND)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to