123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- From c054224e551547c3e3593b60ca1226fa4ac41c01 Mon Sep 17 00:00:00 2001
- From: "timothy@hatcher.name"
- <timothy@hatcher.name@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
- Date: Tue, 11 Jul 2017 18:07:24 +0000
- Subject: [PATCH] Fix broken build when ENABLE_VIDEO is disabled.
- https://bugs.webkit.org/show_bug.cgi?id=174368
- Reviewed by Alex Christensen.
- * dom/Document.cpp:
- * html/canvas/WebGLRenderingContextBase.cpp:
- (WebCore::WebGLRenderingContextBase::texSubImage2D):
- (WebCore::WebGLRenderingContextBase::texImage2D):
- * html/canvas/WebGLRenderingContextBase.h:
- * html/canvas/WebGLRenderingContextBase.idl:
- * testing/Internals.cpp:
- (WebCore::Internals::mediaResponseSources):
- (WebCore::Internals::mediaResponseContentRanges):
- * testing/Internals.h:
- * testing/Internals.idl:
- Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
- git-svn-id: http://svn.webkit.org/repository/webkit/trunk@219343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- ---
- .../html/canvas/WebGLRenderingContextBase.cpp | 16 +++++++++++----
- .../html/canvas/WebGLRenderingContextBase.h | 12 ++++++++++-
- .../html/canvas/WebGLRenderingContextBase.idl | 4 ++++
- Source/WebCore/testing/Internals.cpp | 24 ++++++++++++++++++++++
- Source/WebCore/testing/Internals.h | 2 ++
- Source/WebCore/testing/Internals.idl | 2 ++
- 6 files changed, 55 insertions(+), 5 deletions(-)
- diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp b/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
- index f8fd63f7d87..a76a44ff06b 100644
- --- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
- +++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
- @@ -3597,7 +3597,9 @@ ExceptionOr<void> WebGLRenderingContextBase::texSubImage2D(GC3Denum target, GC3D
- else
- texSubImage2DImpl(target, level, xoffset, yoffset, format, type, canvas->copiedImage(), GraphicsContext3D::HtmlDomCanvas, m_unpackFlipY, m_unpackPremultiplyAlpha);
- return { };
- - }, [&](const RefPtr<HTMLVideoElement>& video) -> ExceptionOr<void> {
- + }
- +#if ENABLE(VIDEO)
- + , [&](const RefPtr<HTMLVideoElement>& video) -> ExceptionOr<void> {
- ExceptionCode ec = 0;
- if (isContextLostOrPending() || !validateHTMLVideoElement("texSubImage2D", video.get(), ec))
- return ec ? Exception { ec } : ExceptionOr<void> { };
- @@ -3620,7 +3622,9 @@ ExceptionOr<void> WebGLRenderingContextBase::texSubImage2D(GC3Denum target, GC3D
- return { };
- texSubImage2DImpl(target, level, xoffset, yoffset, format, type, image.get(), GraphicsContext3D::HtmlDomVideo, m_unpackFlipY, m_unpackPremultiplyAlpha);
- return { };
- - });
- + }
- +#endif
- + );
-
- return WTF::visit(visitor, source.value());
- }
- @@ -4107,7 +4111,9 @@ ExceptionOr<void> WebGLRenderingContextBase::texImage2D(GC3Denum target, GC3Dint
- else
- texImage2DImpl(target, level, internalformat, format, type, canvas->copiedImage(), GraphicsContext3D::HtmlDomCanvas, m_unpackFlipY, m_unpackPremultiplyAlpha);
- return { };
- - }, [&](const RefPtr<HTMLVideoElement>& video) -> ExceptionOr<void> {
- + }
- +#if ENABLE(VIDEO)
- + , [&](const RefPtr<HTMLVideoElement>& video) -> ExceptionOr<void> {
- ExceptionCode ec = 0;
- if (isContextLostOrPending() || !validateHTMLVideoElement("texImage2D", video.get(), ec)
- || !validateTexFunc("texImage2D", TexImage, SourceHTMLVideoElement, target, level, internalformat, video->videoWidth(), video->videoHeight(), 0, format, type, 0, 0))
- @@ -4137,7 +4143,9 @@ ExceptionOr<void> WebGLRenderingContextBase::texImage2D(GC3Denum target, GC3Dint
- return { };
- texImage2DImpl(target, level, internalformat, format, type, image.get(), GraphicsContext3D::HtmlDomVideo, m_unpackFlipY, m_unpackPremultiplyAlpha);
- return { };
- - });
- + }
- +#endif
- + );
-
- return WTF::visit(visitor, source.value());
- }
- diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.h b/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
- index 31e5542e612..d4738e834a1 100644
- --- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
- +++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
- @@ -57,7 +57,6 @@ class EXTShaderTextureLOD;
- class EXTsRGB;
- class EXTFragDepth;
- class HTMLImageElement;
- -class HTMLVideoElement;
- class ImageData;
- class IntSize;
- class OESStandardDerivatives;
- @@ -85,6 +84,10 @@ class WebGLSharedObject;
- class WebGLShaderPrecisionFormat;
- class WebGLUniformLocation;
-
- +#if ENABLE(VIDEO)
- +class HTMLVideoElement;
- +#endif
- +
- inline void clip1D(GC3Dint start, GC3Dsizei range, GC3Dsizei sourceRange, GC3Dint* clippedStart, GC3Dsizei* clippedRange)
- {
- ASSERT(clippedStart && clippedRange);
- @@ -244,7 +247,12 @@ public:
-
- void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&&);
-
- +#if ENABLE(VIDEO)
- using TexImageSource = WTF::Variant<RefPtr<ImageData>, RefPtr<HTMLImageElement>, RefPtr<HTMLCanvasElement>, RefPtr<HTMLVideoElement>>;
- +#else
- + using TexImageSource = WTF::Variant<RefPtr<ImageData>, RefPtr<HTMLImageElement>, RefPtr<HTMLCanvasElement>>;
- +#endif
- +
- ExceptionOr<void> texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Denum format, GC3Denum type, std::optional<TexImageSource>);
-
- void texParameterf(GC3Denum target, GC3Denum pname, GC3Dfloat param);
- @@ -677,7 +685,9 @@ protected:
- SourceImageData,
- SourceHTMLImageElement,
- SourceHTMLCanvasElement,
- +#if ENABLE(VIDEO)
- SourceHTMLVideoElement,
- +#endif
- };
-
- // Helper function for tex{Sub}Image2D to check if the input format/type/level/target/width/height/border/xoffset/yoffset are valid.
- diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl b/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl
- index 63b64cdebd2..3111e798a89 100644
- --- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl
- +++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl
- @@ -42,7 +42,11 @@ typedef (Float32Array or sequence<GLfloat>) Float32List;
- typedef (Int32Array or sequence<GLint>) Int32List;
-
- // FIXME: Should allow ImageBitmap too.
- +#ifdef ENABLE_VIDEO
- typedef (ImageData or HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) TexImageSource;
- +#else
- +typedef (ImageData or HTMLImageElement or HTMLCanvasElement) TexImageSource;
- +#endif
-
- [
- Conditional=WEBGL,
- diff --git a/Source/WebCore/testing/Internals.cpp b/Source/WebCore/testing/Internals.cpp
- index 6d26d556e33..6d64845fd27 100644
- --- a/Source/WebCore/testing/Internals.cpp
- +++ b/Source/WebCore/testing/Internals.cpp
- @@ -2765,6 +2765,30 @@ String Internals::getImageSourceURL(Element& element)
-
- #if ENABLE(VIDEO)
-
- +Vector<String> Internals::mediaResponseSources(HTMLMediaElement& media)
- +{
- + auto* resourceLoader = media.lastMediaResourceLoaderForTesting();
- + if (!resourceLoader)
- + return { };
- + Vector<String> result;
- + auto responses = resourceLoader->responsesForTesting();
- + for (auto& response : responses)
- + result.append(responseSourceToString(response));
- + return result;
- +}
- +
- +Vector<String> Internals::mediaResponseContentRanges(HTMLMediaElement& media)
- +{
- + auto* resourceLoader = media.lastMediaResourceLoaderForTesting();
- + if (!resourceLoader)
- + return { };
- + Vector<String> result;
- + auto responses = resourceLoader->responsesForTesting();
- + for (auto& response : responses)
- + result.append(response.httpHeaderField(HTTPHeaderName::ContentRange));
- + return result;
- +}
- +
- void Internals::simulateAudioInterruption(HTMLMediaElement& element)
- {
- #if USE(GSTREAMER)
- diff --git a/Source/WebCore/testing/Internals.h b/Source/WebCore/testing/Internals.h
- index f5c08a87dfd..d35f651e452 100644
- --- a/Source/WebCore/testing/Internals.h
- +++ b/Source/WebCore/testing/Internals.h
- @@ -401,6 +401,8 @@ public:
- String getImageSourceURL(Element&);
-
- #if ENABLE(VIDEO)
- + Vector<String> mediaResponseSources(HTMLMediaElement&);
- + Vector<String> mediaResponseContentRanges(HTMLMediaElement&);
- void simulateAudioInterruption(HTMLMediaElement&);
- ExceptionOr<bool> mediaElementHasCharacteristic(HTMLMediaElement&, const String&);
- #endif
- diff --git a/Source/WebCore/testing/Internals.idl b/Source/WebCore/testing/Internals.idl
- index 155b70b4abf..3fe6885d362 100644
- --- a/Source/WebCore/testing/Internals.idl
- +++ b/Source/WebCore/testing/Internals.idl
- @@ -386,6 +386,8 @@ enum EventThrottlingBehavior {
-
- void enableAutoSizeMode(boolean enabled, long minimumWidth, long minimumHeight, long maximumWidth, long maximumHeight);
-
- + [Conditional=VIDEO] sequence<DOMString> mediaResponseSources(HTMLMediaElement media);
- + [Conditional=VIDEO] sequence<DOMString> mediaResponseContentRanges(HTMLMediaElement media);
- [Conditional=VIDEO] void simulateAudioInterruption(HTMLMediaElement element);
- [Conditional=VIDEO, MayThrowException] boolean mediaElementHasCharacteristic(HTMLMediaElement element, DOMString characteristic);
-
- --
- 2.13.3
|