Changeset 275516 in webkit
- Timestamp:
- Apr 6, 2021 7:37:27 AM (3 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r275515 r275516 1 2021-04-06 Philippe Normand <pnormand@igalia.com> 2 3 REGRESSION(r274358) [GStreamer] http/tests/images/mp4-partial-load.html is flaky crashing inside GStreamer 4 https://bugs.webkit.org/show_bug.cgi?id=223636 5 6 Reviewed by Carlos Alberto Lopez Perez. 7 8 * platform/glib/TestExpectations: Update tests expectations. 9 * platform/gtk/TestExpectations: Ditto. 10 1 11 2021-04-06 Zalan Bujtas <zalan@apple.com> 2 12 -
trunk/LayoutTests/platform/glib/TestExpectations
r275514 r275516 585 585 webkit.org/b/207723 http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html [ Pass Failure ] 586 586 587 webkit.org/b/217961 webkit.org/b/223636 http/tests/images/mp4-partial-load.html [ CrashTimeout Pass ]587 webkit.org/b/217961 http/tests/images/mp4-partial-load.html [ Timeout Pass ] 588 588 589 589 webkit.org/b/224109 http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html [ Failure Pass ] … … 2046 2046 2047 2047 webkit.org/b/155196 security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html [ ImageOnlyFailure Pass ] 2048 webkit.org/b/224107 fast/images/animated-image-mp4-crash.html [ Crash Timeout Pass ]2049 2048 webkit.org/b/224114 imported/w3c/web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any.worker.html [ Failure Pass ] 2050 2049 webkit.org/b/224115 imported/w3c/web-platform-tests/service-workers/service-worker/unregister-immediately-before-installed.https.html [ Failure Pass ] -
trunk/LayoutTests/platform/gtk/TestExpectations
r275499 r275516 1574 1574 webkit.org/b/224108 gamepad/gamepad-visibility-1.html [ Failure Pass ] 1575 1575 1576 webkit.org/b/224112 media/video-as-img-output-pts.html [ Crash Timeout Pass ]1577 1578 1576 webkit.org/b/224117 intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html [ Failure Pass ] 1579 1577 -
trunk/Source/WebCore/ChangeLog
r275515 r275516 1 2021-04-06 Philippe Normand <pnormand@igalia.com> 2 3 REGRESSION(r274358) [GStreamer] http/tests/images/mp4-partial-load.html is flaky crashing inside GStreamer 4 https://bugs.webkit.org/show_bug.cgi?id=223636 5 6 Reviewed by Carlos Alberto Lopez Perez. 7 8 Ensure the GStreamer messages are always processed synchronously, even when the handler is 9 called from another thread. Without blocking in the latter case, the select-streams event 10 might be sent to decodebin too late. It has to be sent as a synchronous reaction to the 11 stream-collection message. 12 13 * platform/graphics/gstreamer/ImageDecoderGStreamer.cpp: 14 (WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage): 15 (WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline): 16 * platform/graphics/gstreamer/ImageDecoderGStreamer.h: 17 1 18 2021-04-06 Zalan Bujtas <zalan@apple.com> 2 19 -
trunk/Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp
r274358 r275516 34 34 #include <wtf/MainThread.h> 35 35 #include <wtf/Optional.h> 36 #include <wtf/Scope.h> 36 37 #include <wtf/Threading.h> 37 38 … … 303 304 ASSERT(&m_runLoop == &RunLoop::current()); 304 305 306 auto scopeExit = makeScopeExit([protectedThis = makeWeakPtr(this)] { 307 if (!protectedThis) 308 return; 309 LockHolder lock(protectedThis->m_messageLock); 310 protectedThis->m_messageDispatched = true; 311 protectedThis->m_messageCondition.notifyOne(); 312 }); 313 305 314 GUniqueOutPtr<GError> error; 306 315 GUniqueOutPtr<gchar> debug; … … 322 331 GRefPtr<GstStreamCollection> collection; 323 332 gst_message_parse_stream_collection(message, &collection.outPtr()); 324 if (collection ) {333 if (collection && GST_MESSAGE_SRC(message) == GST_OBJECT_CAST(m_decodebin.get())) { 325 334 unsigned size = gst_stream_collection_get_size(collection.get()); 326 335 GList* streams = nullptr; … … 355 364 gst_bus_set_sync_handler(bus.get(), [](GstBus*, GstMessage* message, gpointer userData) { 356 365 auto& decoder = *static_cast<ImageDecoderGStreamer::InnerDecoder*>(userData); 366 367 { 368 LockHolder lock(decoder.m_messageLock); 369 decoder.m_messageDispatched = false; 370 decoder.m_messageCondition.notifyOne(); 371 } 357 372 if (&decoder.m_runLoop == &RunLoop::current()) 358 373 decoder.handleMessage(message); … … 364 379 weakThis->handleMessage(protectedMessage.get()); 365 380 }); 381 } 382 if (!decoder.m_messageDispatched) { 383 LockHolder lock(decoder.m_messageLock); 384 decoder.m_messageCondition.wait(decoder.m_messageLock); 366 385 } 367 386 gst_message_unref(message); -
trunk/Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.h
r274358 r275516 114 114 GRefPtr<GstElement> m_decodebin; 115 115 RunLoop& m_runLoop; 116 117 Condition m_messageCondition; 118 Lock m_messageLock; 119 bool m_messageDispatched { false }; 116 120 }; 117 121
Note: See TracChangeset
for help on using the changeset viewer.