From 762e2cc7f1ff4e9e2834ecc7b7aaa4c933d06e5b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 1 Oct 2024 11:43:31 -0500 Subject: [PATCH] Cherry-pick db9c6a9f5548. https://bugs.webkit.org/show_bug.cgi?id=276633 Build broken with LLVM 19 https://bugs.webkit.org/show_bug.cgi?id=280642 Reviewed by NOBODY (OOPS!). We need to replace several forward declarations with #include statements to avoid "member access into incomplete type" errors. This has revealed that many SVG headers are missing from the framework headers and so are not available to derived sources. I don't attempt to fix this comprehensively; this is just the minimum required to fix the build. * Source/WebCore/CMakeLists.txt: * Source/WebCore/Headers.cmake: * Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h: --- Source/WebCore/CMakeLists.txt | 2 + Source/WebCore/Headers.cmake | 64 +++++++++++++++++++ .../Modules/webcodecs/WebCodecsVideoFrame.h | 12 ++-- 3 files changed, 72 insertions(+), 6 deletions(-) diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt index beca51b714ec..d3b6ff21c7ae 100644 --- a/Source/WebCore/CMakeLists.txt +++ b/Source/WebCore/CMakeLists.txt @@ -2855,6 +2855,8 @@ WEBKIT_COMPUTE_SOURCES(WebCore) target_precompile_headers(WebCore PRIVATE WebCorePrefix.h) list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS + ${WebCore_DERIVED_SOURCES_DIR}/SVGNames.h + Modules/WebGPU/InternalAPI/WebGPU.serialization.in Modules/indexeddb/IndexedDB.serialization.in diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake index cfe691a05770..e6ddf2d9cff2 100644 --- a/Source/WebCore/Headers.cmake +++ b/Source/WebCore/Headers.cmake @@ -846,6 +846,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS css/CSSFontPaletteValuesRule.h css/CSSGridIntegerRepeatValue.h css/CSSGroupingRule.h + css/CSSImageValue.h css/CSSImportRule.h css/CSSLineBoxContainValue.h css/CSSMediaRule.h @@ -873,6 +874,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS css/CSSVariableData.h css/CSSVariableReferenceValue.h css/Counter.h + css/DOMMatrix2DInit.h css/DeprecatedCSSOMCounter.h css/DeprecatedCSSOMPrimitiveValue.h css/DeprecatedCSSOMRGBColor.h @@ -925,6 +927,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS css/typedom/CSSKeywordValue.h css/typedom/CSSNumericValue.h + css/typedom/CSSStyleImageValue.h css/typedom/CSSStyleValue.h css/typedom/numeric/CSSNumericBaseType.h @@ -2539,17 +2542,41 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS style/StyleValidity.h style/Styleable.h + svg/SVGAngle.h + svg/SVGAngleValue.h svg/SVGElement.h + svg/SVGGraphicsElement.h + svg/SVGImageElement.h + svg/SVGImageLoader.h + svg/SVGLength.h svg/SVGLengthContext.h + svg/SVGLengthList.h svg/SVGLengthValue.h + svg/SVGLocatable.h + svg/SVGMarkerTypes.h + svg/SVGMatrix.h + svg/SVGNumber.h + svg/SVGNumberList.h svg/SVGParserUtilities.h svg/SVGParsingError.h svg/SVGPathByteStream.h svg/SVGPathConsumer.h + svg/SVGPathSeg.h + svg/SVGPathSegList.h svg/SVGPathUtilities.h + svg/SVGPoint.h + svg/SVGPointList.h + svg/SVGPreserveAspectRatio.h svg/SVGPreserveAspectRatioValue.h + svg/SVGRect.h svg/SVGStringList.h svg/SVGTests.h + svg/SVGTransform.h + svg/SVGTransformDistance.h + svg/SVGTransformList.h + svg/SVGTransformValue.h + svg/SVGTransformable.h + svg/SVGURIReference.h svg/SVGUnitTypes.h svg/graphics/SVGImageCache.h @@ -2557,11 +2584,48 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS svg/graphics/filters/SVGFilter.h svg/graphics/filters/SVGFilterExpression.h + svg/properties/SVGAnimatedDecoratedProperty.h + svg/properties/SVGAnimatedPrimitiveProperty.h + svg/properties/SVGAnimatedProperty.h + svg/properties/SVGAnimatedPropertyAccessor.h + svg/properties/SVGAnimatedPropertyAccessorImpl.h + svg/properties/SVGAnimatedPropertyAnimator.h + svg/properties/SVGAnimatedPropertyAnimatorImpl.h + svg/properties/SVGAnimatedPropertyImpl.h + svg/properties/SVGAnimatedPropertyList.h + svg/properties/SVGAnimatedPropertyPairAccessor.h + svg/properties/SVGAnimatedPropertyPairAccessorImpl.h + svg/properties/SVGAnimatedPropertyPairAnimator.h + svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h + svg/properties/SVGAnimatedString.h + svg/properties/SVGAnimatedValueProperty.h + svg/properties/SVGAnimationAdditiveFunction.h + svg/properties/SVGAnimationAdditiveListFunction.h + svg/properties/SVGAnimationAdditiveListFunctionImpl.h + svg/properties/SVGAnimationAdditiveValueFunction.h + svg/properties/SVGAnimationAdditiveValueFunctionImpl.h + svg/properties/SVGAnimationDiscreteFunction.h + svg/properties/SVGAnimationDiscreteFunctionImpl.h + svg/properties/SVGAnimationFunction.h + svg/properties/SVGAttributeAnimator.h + svg/properties/SVGDecoratedEnumeration.h + svg/properties/SVGDecoratedPrimitive.h + svg/properties/SVGDecoratedProperty.h svg/properties/SVGList.h + svg/properties/SVGMemberAccessor.h + svg/properties/SVGPointerMemberAccessor.h svg/properties/SVGPrimitiveList.h svg/properties/SVGProperty.h + svg/properties/SVGPropertyAccessor.h + svg/properties/SVGPropertyAccessorImpl.h + svg/properties/SVGPropertyList.h svg/properties/SVGPropertyOwner.h + svg/properties/SVGPropertyOwnerRegistry.h + svg/properties/SVGPropertyRegistry.h svg/properties/SVGPropertyTraits.h + svg/properties/SVGSharedPrimitiveProperty.h + svg/properties/SVGValueProperty.h + svg/properties/SVGValuePropertyList.h testing/MockGamepad.h testing/MockGamepadProvider.h diff --git a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h index 286a2a32a0a3..03b5908976f8 100644 --- a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h +++ b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h @@ -27,10 +27,16 @@ #if ENABLE(WEB_CODECS) +#include "CSSStyleImageValue.h" #include "ContextDestructionObserver.h" #include "DOMRectReadOnly.h" +#include "HTMLCanvasElement.h" +#include "HTMLImageElement.h" +#include "HTMLVideoElement.h" #include "JSDOMPromiseDeferredForward.h" +#include "OffscreenCanvas.h" #include "PlaneLayout.h" +#include "SVGImageElement.h" #include "VideoColorSpaceInit.h" #include "WebCodecsAlphaOption.h" #include "WebCodecsVideoFrameData.h" @@ -38,16 +44,10 @@ namespace WebCore { class BufferSource; -class CSSStyleImageValue; class DOMRectReadOnly; -class HTMLCanvasElement; -class HTMLImageElement; -class HTMLVideoElement; class ImageBitmap; class ImageBuffer; class NativeImage; -class OffscreenCanvas; -class SVGImageElement; class VideoColorSpace; template class ExceptionOr; -- 2.46.2