| Summary: | [GTK] Never return an uninitialized ImageGStreamer object. | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Ms2ger (he/him; ⌚ UTC+1/+2) <Ms2ger> | ||||||||
| Component: | Media | Assignee: | Ms2ger (he/him; ⌚ UTC+1/+2) <Ms2ger> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | bugs-noreply, commit-queue, csaavedra, ews-watchlist, pnormand, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | WebKit Nightly Build | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Bug Depends on: | 188780 | ||||||||||
| Bug Blocks: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
Ms2ger (he/him; ⌚ UTC+1/+2)
2018-08-03 06:48:00 PDT
Looks like a similar issue to bug 188162. I suspect the gst video frame map fails in the ImageGStreamerCairo constructor. Created attachment 346478 [details]
Patch
Comment on attachment 346478 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=346478&action=review > Source/WebCore/ChangeLog:3 > + [GTK] Never return an uninitialized ImageGStreamer object. This should match the actual bug title in bugzilla. > Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h:44 > + if (!image->m_image) Nit: Perhaps add and use a new isValid() method? Comment on attachment 346478 [details] Patch Attachment 346478 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8753481 New failing tests: imported/blink/transitions/unprefixed-transform.html legacy-animation-engine/imported/blink/transitions/unprefixed-transform.html Created attachment 346523 [details]
Archive of layout-test-results from ews205 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews205 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Ms2ger, do you plan to update this patch? (In reply to Philippe Normand from comment #3) > Comment on attachment 346478 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=346478&action=review > > > Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h:44 > > + if (!image->m_image) > > Nit: Perhaps add and use a new isValid() method? I don't think that's helpful; the point of this patch is to make sure that no object whose isValid() would return false escapes out of createImage(). (It might be better to avoid even creating the object, but that was a bunch more work.) Comment on attachment 346478 [details] Patch Clearing flags on attachment: 346478 Committed r234979: <https://trac.webkit.org/changeset/234979> All reviewed patches have been landed. Closing bug. This change broke the build in the Ubuntu LTS bot, here's the relevant part of the build failure:
FAILED: /usr/lib/ccache/clang++ -DBUILDING_GTK__=1 -DBUILDING_WEBKIT -DBUILDING_WITH_CMAKE=1 -DBUILDING_WebCore -DENABLE_OPENTYPE_MATH=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DSTATICALLY_LINKED_WITH_PAL=1 -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -I. -I../../Source/WebCore -I../../Source/WebCore/Modules/airplay -I../../Source/WebCore/Modules/beacon -I../../Source/WebCore/Modules/applepay -I../../Source/WebCore/Modules/applepay/paymentrequest -I../../Source/WebCore/Modules/cache -I../../Source/WebCore/Modules/credentialmanagement -I../../Source/WebCore/Modules/encryptedmedia -I../../Source/WebCore/Modules/encryptedmedia/legacy -I../../Source/WebCore/Modules/entriesapi -I../../Source/WebCore/Modules/fetch -I../../Source/WebCore/Modules/geolocation -I../../Source/WebCore/Modules/indexeddb -I../../Source/WebCore/Modules/indexeddb/client -I../../Source/WebCore/Modules/indexeddb/server -I../../Source/WebCore/Modules/indexeddb/shared -I../../Source/WebCore/Modules/mediacapabilities -I../../Source/WebCore/Modules/mediacontrols -I../../Source/WebCore/Modules/mediasession -I../../Source/WebCore/Modules/mediasource -I../../Source/WebCore/Modules/mediastream -I../../Source/WebCore/Modules/navigatorcontentutils -I../../Source/WebCore/Modules/notifications -I../../Source/WebCore/Modules/paymentrequest -I../../Source/WebCore/Modules/plugins -I../../Source/WebCore/Modules/quota -I../../Source/WebCore/Modules/speech -I../../Source/WebCore/Modules/streams -I../../Source/WebCore/Modules/webaudio -I../../Source/WebCore/Modules/webauthn -I../../Source/WebCore/Modules/webdatabase -I../../Source/WebCore/Modules/webdriver -I../../Source/WebCore/Modules/websockets -I../../Source/WebCore/Modules/webvr -I../../Source/WebCore/accessibility -I../../Source/WebCore/animation -I../../Source/WebCore/bindings -I../../Source/WebCore/bindings/js -I../../Source/WebCore/bridge -I../../Source/WebCore/bridge/c -I../../Source/WebCore/bridge/jsc -I../../Source/WebCore/contentextensions -I../../Source/WebCore/crypto -I../../Source/WebCore/crypto/algorithms -I../../Source/WebCore/crypto/keys -I../../Source/WebCore/crypto/parameters -I../../Source/WebCore/css -I../../Source/WebCore/css/parser -I../../Source/WebCore/cssjit -I../../Source/WebCore/dom -I../../Source/WebCore/dom/default -I../../Source/WebCore/dom/messageports -I../../Source/WebCore/domjit -I../../Source/WebCore/editing -I../../Source/WebCore/fileapi -I../../Source/WebCore/history -I../../Source/WebCore/html -I../../Source/WebCore/html/canvas -I../../Source/WebCore/html/forms -I../../Source/WebCore/html/parser -I../../Source/WebCore/html/shadow -I../../Source/WebCore/html/track -I../../Source/WebCore/inspector -I../../Source/WebCore/inspector/agents -I../../Source/WebCore/inspector/agents/page -I../../Source/WebCore/inspector/agents/worker -I../../Source/WebCore/loader -I../../Source/WebCore/loader/appcache -I../../Source/WebCore/loader/archive -I../../Source/WebCore/loader/archive/mhtml -I../../Source/WebCore/loader/cache -I../../Source/WebCore/loader/icon -I../../Source/WebCore/mathml -I../../Source/WebCore/page -I../../Source/WebCore/page/animation -I../../Source/WebCore/page/csp -I../../Source/WebCore/page/scrolling -I../../Source/WebCore/platform -I../../Source/WebCore/platform/animation -I../../Source/WebCore/platform/audio -I../../Source/WebCore/platform/crypto -I../../Source/WebCore/platform/encryptedmedia -I../../Source/WebCore/platform/gamepad -I../../Source/WebCore/platform/graphics -I../../Source/WebCore/platform/graphics/cpu/arm -I../../Source/WebCore/platform/graphics/cpu/arm/filters -I../../Source/WebCore/platform/graphics/displaylists -I../../Source/WebCore/platform/graphics/filters -I../../Source/WebCore/platform/graphics/harfbuzz -I../../Source/WebCore/platform/graphics/harfbuzz/ng -I../../Source/WebCore/platform/graphics/iso -I../../Source/WebCore/platform/graphics/opentype -I../../Source/WebCore/platform/graphics/transforms -I../../Source/WebCore/platform/mediastream -I../../Source/WebCore/platform/mediastream/libwebrtc -I../../Source/WebCore/platform/mock -I../../Source/WebCore/platform/mock/mediasource -I../../Source/WebCore/platform/network -I../../Source/WebCore/platform/sql -I../../Source/WebCore/platform/text -I../../Source/WebCore/platform/text/icu -I../../Source/WebCore/platform/vr -I../../Source/WebCore/plugins -I../../Source/WebCore/rendering -I../../Source/WebCore/rendering/line -I../../Source/WebCore/rendering/mathml -I../../Source/WebCore/rendering/shapes -I../../Source/WebCore/rendering/style -I../../Source/WebCore/rendering/svg -I../../Source/WebCore/rendering/updating -I../../Source/WebCore/replay -I../../Source/WebCore/storage -I../../Source/WebCore/style -I../../Source/WebCore/svg -I../../Source/WebCore/svg/animation -I../../Source/WebCore/svg/graphics -I../../Source/WebCore/svg/graphics/filters -I../../Source/WebCore/svg/properties -I../../Source/WebCore/websockets -I../../Source/WebCore/workers -I../../Source/WebCore/workers/service -I../../Source/WebCore/workers/service/context -I../../Source/WebCore/workers/service/server -I../../Source/WebCore/xml -I../../Source/WebCore/xml/parser -IDerivedSources/WebCore -IDerivedSources/ForwardingHeaders/ANGLE -I../../Source/WebCore/platform/graphics/gpu -I../../Source/ThirdParty/xdgmime/src -I../../Source/WebCore/platform/graphics/cairo -I../../Source/WebCore/platform/graphics/freetype -I../../Source/WebCore/platform/graphics/gstreamer -I../../Source/WebCore/platform/graphics/gstreamer/mse -I../../Source/WebCore/platform/graphics/gstreamer/eme -I../../Source/WebCore/platform/audio/gstreamer -I../../Source/WebCore/platform/image-decoders -I../../Source/WebCore/platform/image-decoders/bmp -I../../Source/WebCore/platform/image-decoders/gif -I../../Source/WebCore/platform/image-decoders/ico -I../../Source/WebCore/platform/image-decoders/jpeg -I../../Source/WebCore/platform/image-decoders/png -I../../Source/WebCore/platform/image-decoders/webp -I../../Source/WebCore/platform/graphics/texmap -I../../Source/WebCore/page/scrolling/coordinatedgraphics -I../../Source/WebCore/platform/graphics/texmap/coordinated -I../../Source/WebCore/platform/graphics/nicosia -I../../Source/WebCore/platform/graphics/nicosia/cairo -I../../Source/WebCore/platform/graphics/nicosia/texmap -I../../Source/ThirdParty/ANGLE -I../../Source/ThirdParty/ANGLE/include/KHR -I../../Source/WebCore/accessibility/atk -I../../Source/WebCore/editing/atk -I../../Source/WebCore/page/gtk -I../../Source/WebCore/platform/geoclue -I../../Source/WebCore/platform/gtk -I../../Source/WebCore/platform/graphics/egl -I../../Source/WebCore/platform/graphics/glx -I../../Source/WebCore/platform/graphics/gtk -I../../Source/WebCore/platform/graphics/opengl -I../../Source/WebCore/platform/graphics/wayland -I../../Source/WebCore/platform/graphics/x11 -I../../Source/WebCore/platform/mediacapabilities -I../../Source/WebCore/platform/mediastream/gtk -I../../Source/WebCore/platform/mediastream/gstreamer -I../../Source/WebCore/platform/network/gtk -I../../Source/WebCore/platform/network/soup -I../../Source/WebCore/platform/text/gtk -I../../Source/WebCore/bindings/gobject -isystem /usr/include/libxml2 -isystem /usr/include/cairo -isystem /usr/include/freetype2/freetype -isystem /usr/include/freetype2 -isystem /usr/include/harfbuzz -isystem /usr/include/gstreamer-1.0 -isystem /usr/lib/x86_64-linux-gnu/gstreamer-1.0/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/atk-1.0 -isystem /usr/include/enchant -isystem /usr/include/gio-unix-2.0 -isystem /usr/include/libsecret-1 -isystem /usr/include/libsoup-2.4 -IDerivedSources/ForwardingHeaders -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wextra -Wall -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -O3 -DNDEBUG -fPIC -MMD -MT Source/WebCore/CMakeFiles/WebCore.dir/__/__/DerivedSources/WebCore/unified-sources/UnifiedSource367.cpp.o -MF Source/WebCore/CMakeFiles/WebCore.dir/__/__/DerivedSources/WebCore/unified-sources/UnifiedSource367.cpp.o.d -o Source/WebCore/CMakeFiles/WebCore.dir/__/__/DerivedSources/WebCore/unified-sources/UnifiedSource367.cpp.o -c DerivedSources/WebCore/unified-sources/UnifiedSource367.cpp
In file included from DerivedSources/WebCore/unified-sources/UnifiedSource367.cpp:1:
In file included from ../../Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:21:
../../Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h:47:20: error: no viable conversion from returned value of type 'WTF::Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> >' to function return type 'RefPtr<WebCore::ImageGStreamer>'
return image;
^~~~~
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:58:47: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> >' to 'WebCore::ImageGStreamer *' for 1st argument
inline __attribute__((__always_inline__)) RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); }
^
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:59:47: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> >' to 'const WTF::RefPtr<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> > &' for 1st argument
inline __attribute__((__always_inline__)) RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(PtrTraits::unwrap(m_ptr)); }
^
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:62:47: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> >' to 'WTF::RefPtr<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> > &&' for 1st argument
inline __attribute__((__always_inline__)) RefPtr(RefPtr&& o) : m_ptr(o.leakRef()) { }
^
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:64:38: note: candidate constructor [with X = WebCore::ImageGStreamer, Y = WTF::DumbPtrTraits<WebCore::ImageGStreamer>] not viable: no known conversion from 'WTF::Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> >' to 'Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> > &&' for 1st argument
template<typename X, typename Y> RefPtr(Ref<X, Y>&&);
^
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:67:5: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WebCore::ImageGStreamer, WTF::DumbPtrTraits<WebCore::ImageGStreamer> >' to 'WTF::HashTableDeletedValueType' for 1st argument
RefPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { }
^
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:60:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref'
template<typename X, typename Y> RefPtr(const RefPtr<X, Y>& o) : m_ptr(o.get()) { refIfNotNull(PtrTraits::unwrap(m_ptr)); }
^
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:63:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref'
template<typename X, typename Y> RefPtr(RefPtr<X, Y>&& o) : m_ptr(o.leakRef()) { }
^
DerivedSources/ForwardingHeaders/wtf/Ref.h:123:5: note: candidate function
operator T&() const { ((void)0); return *PtrTraits::unwrap(m_ptr); }
^
1 error generated.
https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20Ubuntu%20LTS%20%28Build%29/builds/14907/steps/compile-webkit/logs/stdio
Created attachment 347787 [details]
Patch
Comment on attachment 347787 [details] Patch Clearing flags on attachment: 347787 Committed r235171: <https://trac.webkit.org/changeset/235171> All reviewed patches have been landed. Closing bug. |