WebKit Bugzilla
Attachment 373659 Details for
Bug 132248
: [GTK] Some media fragment tests are flaky
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-132248-20190708210438.patch (text/plain), 34.71 KB, created by
Charlie Turner
on 2019-07-08 13:04:39 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
Charlie Turner
Created:
2019-07-08 13:04:39 PDT
Size:
34.71 KB
patch
obsolete
>Subversion Revision: 247135 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 07cd6ac5cbeb6bd3bc7f3289a272d6dfed27db49..12654215994382ccec68a7ae23e2f64f04923d35 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,34 @@ >+2019-07-04 Charlie Turner <cturner@igalia.com> >+ >+ REGRESSION(r243197): [GStreamer] Web process hangs when scrolling twitter timeline which contains HLS videos >+ https://bugs.webkit.org/show_bug.cgi?id=197558 >+ >+ Reviewed by Eric Carlson. >+ >+ Not covered, I have a test locally that would probably trigger the >+ deadlock if the network requests took a realistic amount of time, >+ but from a local webserver the window of time to hit this deadlock >+ is too narrow. >+ >+ * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: >+ (webkit_web_src_init): Make the websrc start asynchronously, this >+ allows the main thread to be free to complete resource loader >+ setup. >+ (webKitWebSrcCreate): Calling start() from the create() vfunc is a >+ recipe for deadlock, since BaseSrc holds the streaming lock during >+ seeks, and then calls create(). In these cases, we do not want to >+ notify async-completion, since we've already completed from the >+ necessarily preceeding start() vfunc, and calling it again would >+ require the stream-lock and deadlock us. >+ (webKitWebSrcStart): Refactor to use webKitWebSrcMakeRequest, but >+ ensuring that we do perform an async-complete notification. >+ (webKitWebSrcMakeRequest): What Start() used to be, but now can be >+ toggled when to notify of async-completion. Start() no longer >+ blocks, since the return value of initiating a resource loader is >+ of no interest to the callers. >+ (webKitWebSrcCloseSession): Similarly to Start(), we do not need >+ to wait for the completion of cancelled net requests. >+ > 2019-07-03 Eric Carlson <eric.carlson@apple.com> > > [MSE] Add more debug and error logging >diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp >index 121884a10ad51151f97ac07c550c236e95e6ded9..12b21ae3bfd3c67691a5c5ba567f9b06c1a2f372 100644 >--- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp >+++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp >@@ -156,6 +156,7 @@ static void webKitWebSrcSetProperty(GObject*, guint propertyID, const GValue*, G > static void webKitWebSrcGetProperty(GObject*, guint propertyID, GValue*, GParamSpec*); > static GstStateChangeReturn webKitWebSrcChangeState(GstElement*, GstStateChange); > static GstFlowReturn webKitWebSrcCreate(GstPushSrc*, GstBuffer**); >+static gboolean webKitWebSrcMakeRequest(GstBaseSrc*, bool); > static gboolean webKitWebSrcStart(GstBaseSrc*); > static gboolean webKitWebSrcStop(GstBaseSrc*); > static gboolean webKitWebSrcGetSize(GstBaseSrc*, guint64* size); >@@ -260,6 +261,7 @@ static void webkit_web_src_init(WebKitWebSrc* src) > > webkitWebSrcReset(src); > gst_base_src_set_automatic_eos(GST_BASE_SRC_CAST(src), FALSE); >+ gst_base_src_set_async(GST_BASE_SRC_CAST(src), TRUE); > } > > static void webKitWebSrcDispose(GObject* object) >@@ -361,7 +363,12 @@ static GstFlowReturn webKitWebSrcCreate(GstPushSrc* pushSrc, GstBuffer** buffer) > uint64_t requestedPosition = priv->requestedPosition; > webKitWebSrcStop(baseSrc); > priv->requestedPosition = requestedPosition; >- webKitWebSrcStart(baseSrc); >+ // Do not notify async-completion, in seeking flows, we will >+ // be called from GstBaseSrc's perform_seek vfunc, which holds >+ // a streaming lock in our frame. Hence, we would deadlock >+ // trying to notify async completion, since that also requires >+ // the streaming lock. >+ webKitWebSrcMakeRequest(baseSrc, false); > } > > { >@@ -496,6 +503,14 @@ static gboolean webKitWebSrcProcessExtraHeaders(GQuark fieldId, const GValue* va > } > > static gboolean webKitWebSrcStart(GstBaseSrc* baseSrc) >+{ >+ // This method should only be called by BaseSrc, do not call it >+ // from ourselves unless you ensure the streaming lock is not >+ // held. If it is, you will deadlock the WebProcess. >+ return webKitWebSrcMakeRequest(baseSrc, true); >+} >+ >+static gboolean webKitWebSrcMakeRequest(GstBaseSrc* baseSrc, bool notifyAsyncCompletion) > { > WebKitWebSrc* src = WEBKIT_WEB_SRC(baseSrc); > WebKitWebSrcPrivate* priv = src->priv; >@@ -582,7 +597,7 @@ static gboolean webKitWebSrcStart(GstBaseSrc* baseSrc) > request.setHTTPHeaderField(HTTPHeaderName::IcyMetadata, "1"); > > GRefPtr<WebKitWebSrc> protector = WTF::ensureGRef(src); >- priv->notifier->notifyAndWait(MainThreadSourceNotification::Start, [protector, request = WTFMove(request)] { >+ priv->notifier->notify(MainThreadSourceNotification::Start, [protector, request = WTFMove(request), src, notifyAsyncCompletion] { > WebKitWebSrcPrivate* priv = protector->priv; > if (!priv->loader) > priv->loader = priv->player->createResourceLoader(); >@@ -594,13 +609,16 @@ static gboolean webKitWebSrcStart(GstBaseSrc* baseSrc) > if (priv->resource) { > priv->resource->setClient(std::make_unique<CachedResourceStreamingClient>(protector.get(), ResourceRequest(request))); > GST_DEBUG_OBJECT(protector.get(), "Started request"); >+ if (notifyAsyncCompletion) >+ gst_base_src_start_complete(GST_BASE_SRC(src), GST_FLOW_OK); > } else { > GST_ERROR_OBJECT(protector.get(), "Failed to setup streaming client"); >+ if (notifyAsyncCompletion) >+ gst_base_src_start_complete(GST_BASE_SRC(src), GST_FLOW_ERROR); > priv->loader = nullptr; > } > }); > >- GST_DEBUG_OBJECT(src, "Resource loader started"); > return TRUE; > } > >@@ -609,7 +627,7 @@ static void webKitWebSrcCloseSession(WebKitWebSrc* src) > WebKitWebSrcPrivate* priv = src->priv; > GRefPtr<WebKitWebSrc> protector = WTF::ensureGRef(src); > >- priv->notifier->notifyAndWait(MainThreadSourceNotification::Stop, [protector, keepAlive = priv->keepAlive] { >+ priv->notifier->notify(MainThreadSourceNotification::Stop, [protector, keepAlive = priv->keepAlive] { > WebKitWebSrcPrivate* priv = protector->priv; > > GST_DEBUG_OBJECT(protector.get(), "Stopping resource loader"); >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 0e006ba8d170a250289e62a9bb4499052ce6c873..7caf24147026513dd35985edd422005a4bad4d3e 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,19 @@ >+2019-07-04 Charlie Turner <cturner@igalia.com> >+ >+ REGRESSION(r243197): [GStreamer] Web process hangs when scrolling twitter timeline which contains HLS videos >+ https://bugs.webkit.org/show_bug.cgi?id=197558 >+ >+ Reviewed by Eric Carlson. >+ >+ On shutdown we can easily deadlock the web process if we don't >+ ensure all network operations are completed before comitting state >+ changes. In HLS, make sure the network operations are cancelled, >+ and also prevent hlsdemux's retry logic from scuppering our >+ efforts. >+ >+ * gstreamer/jhbuild.modules: Include the patch. >+ * gstreamer/patches/gst-plugins-bad-do-not-retry-downloads-during-shutdown.patch: Added. >+ > 2019-07-01 Philippe Normand <pnormand@igalia.com> > > Unreviewed, GTK a11y tests fix after r247071 >diff --git a/Tools/gstreamer/jhbuild.modules b/Tools/gstreamer/jhbuild.modules >index c39c58dc4e5fccdda3bcd0c82af5d5053dd42e3d..4a1b43cd628559d05a8627437375abb902868a99 100644 >--- a/Tools/gstreamer/jhbuild.modules >+++ b/Tools/gstreamer/jhbuild.modules >@@ -92,6 +92,7 @@ > <dep package="libsrtp"/> > </dependencies> > <branch hash="sha256:22139de35626ada6090bdfa3423b27b7fc15a0198331d25c95e6b12cb1072b05" module="gst-plugins-bad/gst-plugins-bad-${version}.tar.xz" repo="gstreamer" version="1.16.0"> >+ <patch file="gst-plugins-bad-do-not-retry-downloads-during-shutdown.patch" strip="1"/> <!-- In review: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/427 --> > </branch> > </meson> > >diff --git a/Tools/gstreamer/patches/gst-plugins-bad-do-not-retry-downloads-during-shutdown.patch b/Tools/gstreamer/patches/gst-plugins-bad-do-not-retry-downloads-during-shutdown.patch >new file mode 100644 >index 0000000000000000000000000000000000000000..b617f314a50754b18f26ffd3a3db19e65294d3fe >--- /dev/null >+++ b/Tools/gstreamer/patches/gst-plugins-bad-do-not-retry-downloads-during-shutdown.patch >@@ -0,0 +1,89 @@ >+From 4c21593e5fcd1337b433119b8c7800dc5565f514 Mon Sep 17 00:00:00 2001 >+From: Charlie Turner <cturner@igalia.com> >+Date: Tue, 2 Jul 2019 12:27:40 +0100 >+Subject: [PATCH] WIP: adaptivedemux: do not retry downloads during shutdown. >+ >+--- >+ ext/hls/gsthlsdemux.c | 15 +++++++++++++-- >+ ext/hls/gsthlsdemux.h | 4 ++++ >+ 2 files changed, 17 insertions(+), 2 deletions(-) >+ >+diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c >+index 4317d65c3..f9583ad1a 100644 >+--- a/ext/hls/gsthlsdemux.c >++++ b/ext/hls/gsthlsdemux.c >+@@ -73,6 +73,7 @@ static gboolean gst_hls_demux_update_playlist (GstHLSDemux * demux, >+ gboolean update, GError ** err); >+ static gchar *gst_hls_src_buf_to_utf8_playlist (GstBuffer * buf); >+ >++/* FIXME: the return value is never used? */ >+ static gboolean gst_hls_demux_change_playlist (GstHLSDemux * demux, >+ guint max_bitrate, gboolean * changed); >+ static GstBuffer *gst_hls_demux_decrypt_fragment (GstHLSDemux * demux, >+@@ -193,6 +194,8 @@ gst_hls_demux_init (GstHLSDemux * demux) >+ >+ demux->keys = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); >+ g_mutex_init (&demux->keys_lock); >++ >++ demux->cancelling_downloads = FALSE; >+ } >+ >+ static GstStateChangeReturn >+@@ -205,6 +208,11 @@ gst_hls_demux_change_state (GstElement * element, GstStateChange transition) >+ case GST_STATE_CHANGE_READY_TO_PAUSED: >+ gst_hls_demux_reset (GST_ADAPTIVE_DEMUX_CAST (demux)); >+ break; >++ case GST_STATE_CHANGE_PAUSED_TO_READY: >++ GST_DEBUG_OBJECT (demux, "PAUSED->READY cancelling downloads"); >++ demux->cancelling_downloads = TRUE; >++ gst_uri_downloader_cancel (GST_ADAPTIVE_DEMUX (demux)->downloader); >++ break; >+ default: >+ break; >+ } >+@@ -1158,6 +1166,8 @@ gst_hls_demux_reset (GstAdaptiveDemux * ademux) >+ { >+ GstHLSDemux *demux = GST_HLS_DEMUX_CAST (ademux); >+ >++ GST_DEBUG_OBJECT (demux, "resetting"); >++ >+ GST_M3U8_CLIENT_LOCK (hlsdemux->client); >+ if (demux->master) { >+ gst_hls_master_playlist_unref (demux->master); >+@@ -1379,7 +1389,8 @@ retry: >+ if (download == NULL) { >+ gchar *base_uri; >+ >+- if (!update || main_checked || demux->master->is_simple) { >++ if (!update || main_checked || demux->master->is_simple >++ || demux->cancelling_downloads) { >+ g_free (uri); >+ return FALSE; >+ } >+@@ -1612,7 +1623,7 @@ retry_failover_protection: >+ if (changed) >+ *changed = TRUE; >+ stream->discont = TRUE; >+- } else { >++ } else if (!demux->cancelling_downloads) { >+ GstHLSVariantStream *failover_variant = NULL; >+ GList *failover; >+ >+diff --git a/ext/hls/gsthlsdemux.h b/ext/hls/gsthlsdemux.h >+index 0cab19627..9c0decabf 100644 >+--- a/ext/hls/gsthlsdemux.h >++++ b/ext/hls/gsthlsdemux.h >+@@ -147,6 +147,10 @@ struct _GstHLSDemux >+ GstHLSMasterPlaylist *master; >+ >+ GstHLSVariantStream *current_variant; >++ >++ /* Set when the parent is state-changing down from PAUSED to avoid >++ making further network requests. */ >++ gboolean cancelling_downloads; >+ }; >+ >+ struct _GstHLSDemuxClass >+-- >+2.17.1 >+ >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index a88e8cc5a7d8a1c1e8a1acf98a634f7cf0298321..0a79048fbe91dd85bd8e38c3315951e09c46a21d 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,29 @@ >+2019-07-08 Charlie Turner <cturner@igalia.com> >+ >+ [GTK] Some media fragment tests are flaky >+ https://bugs.webkit.org/show_bug.cgi?id=132248 >+ >+ Reviewed by Eric Carlson. >+ >+ These tests look like they're flakey due to a small stop time. I'm >+ surmising that based on the bot's load, we step over the 0.5 mark >+ often. When I run this locally, despite running the fragment tests >+ 100 times, I saw no timeouts. >+ >+ I have seen crashes in the flakiness dashboard, but I would prefer >+ for these to have separate bugs so that we can squash them rather >+ than allowing them to linger. Having them expected to crash means >+ we have no crash logs to investigate. >+ >+ Updated the baselines in the LayoutTests/ directory to reflect the >+ new stop time delta. >+ >+ * media/media-fragments/media-fragments.js: >+ (pause): Increase stop delta, on simulator builds the stddev >+ crossed the 0.5s mark, and I suspect on GTK builds, our bots being >+ heavily loaded cause the majority of timeouts. >+ * platform/gtk/TestExpectations: Remove expectations. >+ > 2019-07-03 Justin Fan <justin_fan@apple.com> > > [WHLSL] Support float4x4 in test harness >diff --git a/LayoutTests/media/media-fragments/TC0004-expected.txt b/LayoutTests/media/media-fragments/TC0004-expected.txt >index 3a4977715dcd342c1b2d35bcf72705fbfa811112..2bf497e226fe47a4ee4295f4f3f345d475f962e3 100644 >--- a/LayoutTests/media/media-fragments/TC0004-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0004-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '0') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0005-expected.txt b/LayoutTests/media/media-fragments/TC0005-expected.txt >index 27aed6503dd7a659995089861e3a1e7d4e83ce28..2dceadd4768a56aee9acda5ac242b061fc7ef429 100644 >--- a/LayoutTests/media/media-fragments/TC0005-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0005-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0006-expected.txt b/LayoutTests/media/media-fragments/TC0006-expected.txt >index 02eccda725d0a7e10cc1694f88d6d2e2efcc0bb5..9bae39e5b178d0adbb7802d824bd28e580e392fb 100644 >--- a/LayoutTests/media/media-fragments/TC0006-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0006-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0011-expected.txt b/LayoutTests/media/media-fragments/TC0011-expected.txt >index 2cf805eb4665dec3f699905c9a4f64786e175f51..dd4aaa9d52cab058fc569f15fad6a846b10042d3 100644 >--- a/LayoutTests/media/media-fragments/TC0011-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0011-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0015-expected.txt b/LayoutTests/media/media-fragments/TC0015-expected.txt >index be07bdef3d08279c3c88bb8b70da88b931c6fa33..6aecc8d2aa421d2a4fa92bb6f16fc6c069d85c6b 100644 >--- a/LayoutTests/media/media-fragments/TC0015-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0015-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '0') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0017-expected.txt b/LayoutTests/media/media-fragments/TC0017-expected.txt >index 524b845f41104aecaf9f7f61055d65e57a885d66..73fb71ecd8a96db6cbe6240d4448f6c50c1c5a41 100644 >--- a/LayoutTests/media/media-fragments/TC0017-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0017-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '0') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0024-expected.txt b/LayoutTests/media/media-fragments/TC0024-expected.txt >index 57560494b16a42c26f8564cddf5f6e2556aafbaa..fcddef859af4b36d9bc19c74d648aad9a925889e 100644 >--- a/LayoutTests/media/media-fragments/TC0024-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0024-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0035-expected.txt b/LayoutTests/media/media-fragments/TC0035-expected.txt >index 4a6416bcac47631f4a86131c7ee32e16868d1d8b..13adc26473c83d5634d60f7ba2d8f57aa9c695a1 100644 >--- a/LayoutTests/media/media-fragments/TC0035-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0035-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0036-expected.txt b/LayoutTests/media/media-fragments/TC0036-expected.txt >index 27305ef9df660425520523b1f830a070a539bb01..6c9f5b53e5920935bd07d4ef7052e4b1ecf7af93 100644 >--- a/LayoutTests/media/media-fragments/TC0036-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0036-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0037-expected.txt b/LayoutTests/media/media-fragments/TC0037-expected.txt >index 8da14fb9aa1641c5818d59e95d51695b27dc2f1f..fd23363ba25646d5d4f989afbf737cb9b5dbab8d 100644 >--- a/LayoutTests/media/media-fragments/TC0037-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0037-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0038-expected.txt b/LayoutTests/media/media-fragments/TC0038-expected.txt >index 629163755c220d47a7e2e47178a636ab24760661..226a64a861ebb5ec62b20e3d5821cd427cb8079d 100644 >--- a/LayoutTests/media/media-fragments/TC0038-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0038-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0039-expected.txt b/LayoutTests/media/media-fragments/TC0039-expected.txt >index a7f561de4b6ca6afceefabb8c3c715d908446b42..65a4e7d65bac20bacb7d42db93b4116854b77f7f 100644 >--- a/LayoutTests/media/media-fragments/TC0039-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0039-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0051-expected.txt b/LayoutTests/media/media-fragments/TC0051-expected.txt >index 54dc51622bb477f6f586d3baaa093f01764a4074..7dbc0271a61db0b3eb36a462d0db3f788fb64fae 100644 >--- a/LayoutTests/media/media-fragments/TC0051-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0051-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0052-expected.txt b/LayoutTests/media/media-fragments/TC0052-expected.txt >index cf537ebac373f8619ce992d072c9a2abd28ad498..1d46ed3c61d7c8ebe29478ae8331984457b8658f 100644 >--- a/LayoutTests/media/media-fragments/TC0052-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0052-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0053-expected.txt b/LayoutTests/media/media-fragments/TC0053-expected.txt >index 0c02e74eccf3dd05ad5d185e357ee7dd24e8f5ad..f793378e5a904cfac6f2d1a949dff179f56c525f 100644 >--- a/LayoutTests/media/media-fragments/TC0053-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0053-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0054-expected.txt b/LayoutTests/media/media-fragments/TC0054-expected.txt >index 33d29028670ee4b578da03563801e89cac6d0274..8abd2146c90e39d86f5a5a7c0e2f2d4e862bbd81 100644 >--- a/LayoutTests/media/media-fragments/TC0054-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0054-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0055-expected.txt b/LayoutTests/media/media-fragments/TC0055-expected.txt >index 8367e8e6a7815757193d1d2a8c001259c121746a..f60d88442ecdb3ab82f682c797239dee3806a03d 100644 >--- a/LayoutTests/media/media-fragments/TC0055-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0055-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0059-expected.txt b/LayoutTests/media/media-fragments/TC0059-expected.txt >index 3611a815dc380769c7b4b1765716689bcbf9fec4..fed7a233fbe81bb6b602d4133947052f8e2a685c 100644 >--- a/LayoutTests/media/media-fragments/TC0059-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0059-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0072-expected.txt b/LayoutTests/media/media-fragments/TC0072-expected.txt >index 5850017f45b92e74223c7392811285f2e12aae6e..520b606f1d4c03e427d9f089c9a9a9ac6081c978 100644 >--- a/LayoutTests/media/media-fragments/TC0072-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0072-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0078-expected.txt b/LayoutTests/media/media-fragments/TC0078-expected.txt >index 0d061373a27f77a0dc120f5c9836e43311292736..5ed001529cfc33cf632e6e930aed4e535d728595 100644 >--- a/LayoutTests/media/media-fragments/TC0078-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0078-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0079-expected.txt b/LayoutTests/media/media-fragments/TC0079-expected.txt >index e34e2ab8a2a69b11150f17af48e73b084b750a93..ffc405d60d28e0b3a440ac3cc34db92869212ad6 100644 >--- a/LayoutTests/media/media-fragments/TC0079-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0079-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0080-expected.txt b/LayoutTests/media/media-fragments/TC0080-expected.txt >index 5fc08aa415638e1d1a147025ff6217a36002fb0a..aa05afeda78b90964455d388846d370d63dbd8e7 100644 >--- a/LayoutTests/media/media-fragments/TC0080-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0080-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '0') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0081-expected.txt b/LayoutTests/media/media-fragments/TC0081-expected.txt >index c3b69976bc2aa935ff928e51fedca81d1e39ff27..30350f8212e58041fadc07970e445efabc2b122c 100644 >--- a/LayoutTests/media/media-fragments/TC0081-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0081-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '0') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0085-expected.txt b/LayoutTests/media/media-fragments/TC0085-expected.txt >index 2d9fcebf7ff3b298ccb6e8122413b61802a2f1ae..e0838a5ae26c4423c82fb19cb64b30955867727a 100644 >--- a/LayoutTests/media/media-fragments/TC0085-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0085-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0086-expected.txt b/LayoutTests/media/media-fragments/TC0086-expected.txt >index c32458ab8b26e90cfea3b631f81db954c52a316c..8259fbca7fa96c6ad19db9239ec17f6348a1685e 100644 >--- a/LayoutTests/media/media-fragments/TC0086-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0086-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0087-expected.txt b/LayoutTests/media/media-fragments/TC0087-expected.txt >index a210c277e84c2a6f5f081e9f451e03231d88f4f9..3914d2f63d1d451ffc99cb936cc9d44b987ddd2a 100644 >--- a/LayoutTests/media/media-fragments/TC0087-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0087-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0088-expected.txt b/LayoutTests/media/media-fragments/TC0088-expected.txt >index 059afd1894c406110ccb0e743a11581bb0ea01bb..00f689c199ff185c3b50d11524d1aa1ad15bb8eb 100644 >--- a/LayoutTests/media/media-fragments/TC0088-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0088-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0089-expected.txt b/LayoutTests/media/media-fragments/TC0089-expected.txt >index 89d632ea21f6b68bc3b89d6928a70d719cb34127..05a63763a53307344326e8a8cfc7974aee63dee9 100644 >--- a/LayoutTests/media/media-fragments/TC0089-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0089-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0090-expected.txt b/LayoutTests/media/media-fragments/TC0090-expected.txt >index 3a6e139f67a57903a54d104de5aad0fdd03d031b..2f0f7059528d259a8684a2c3f25c8a9be0f19f84 100644 >--- a/LayoutTests/media/media-fragments/TC0090-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0090-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/TC0091-expected.txt b/LayoutTests/media/media-fragments/TC0091-expected.txt >index 3a77edcc1a969f0ef47ce78764a9e6f335ea71cc..9e71b8f36a71d11e47ef215da51f0d4e8d09d39d 100644 >--- a/LayoutTests/media/media-fragments/TC0091-expected.txt >+++ b/LayoutTests/media/media-fragments/TC0091-expected.txt >@@ -7,6 +7,6 @@ EVENT(canplaythrough) > EXPECTED (video.currentTime == '3') OK > RUN(video.play()) > EVENT(pause) >-EXPECTED (video.currentTime - fragmentEndTime <= '0.5') OK >+EXPECTED (video.currentTime - fragmentEndTime <= '0.75') OK > END OF TEST > >diff --git a/LayoutTests/media/media-fragments/media-fragments.js b/LayoutTests/media/media-fragments/media-fragments.js >index bc72d8db083b56c444966ba9a7caddd1346280c2..d7120a53363e4a4c0d79a2bdb0b9ee74996761e2 100644 >--- a/LayoutTests/media/media-fragments/media-fragments.js >+++ b/LayoutTests/media/media-fragments/media-fragments.js >@@ -77,7 +77,7 @@ > > function pause() > { >- const maximumStopDelta = 0.5; >+ const maximumStopDelta = 0.75; > var delta = Math.abs(video.currentTime - fragmentEndTime).toFixed(2); > reportExpected((delta <= maximumStopDelta), ("video.currentTime - fragmentEndTime"), "<=", maximumStopDelta, delta); > >diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations >index d748df12b5dad168d4447212e557fc933da6390d..9e294874295f26035e0cc56ed505cb931592f651 100644 >--- a/LayoutTests/platform/gtk/TestExpectations >+++ b/LayoutTests/platform/gtk/TestExpectations >@@ -1509,52 +1509,6 @@ webkit.org/b/132183 fast/dom/adopt-node-crash-2.html [ Failure Pass ] > webkit.org/b/132184 fast/multicol/span/span-as-immediate-columns-child-dynamic.html [ Failure Pass ] > webkit.org/b/132185 editing/pasteboard/gtk/middle-button-paste.html [ Failure Pass ] > >-# Some media fragment tests are flaky >-webkit.org/b/132248 media/media-fragments/TC0001.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0002.html [ Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0004.html [ Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0005.html [ Failure Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0006.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0009.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0011.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0014.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0015.html [ Failure Crash Pass ] >-webkit.org/b/134574 media/media-fragments/TC0024.html [ Failure Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0035.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0036.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0037.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0039.html [ Timeout Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0038.html [ Timeout Failure Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0044.html [ Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0051.html [ Timeout Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0052.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0053.html [ Timeout Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0054.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0055.html [ Failure Pass Timeout ] >-webkit.org/b/132248 media/media-fragments/TC0058.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0059.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0061.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0063.html [ Failure Pass Timeout ] >-webkit.org/b/143709 media/media-fragments/TC0064.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0065.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0066.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0067.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0070.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0072.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0078.html [ Failure Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0079.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0081.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0080.html [ Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0082.html [ Timeout Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0085.html [ Failure Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0086.html [ Failure Timeout Pass ] >-webkit.org/b/132248 media/media-fragments/TC0087.html [ Failure Timeout Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0088.html [ Failure Crash Pass ] >-webkit.org/b/132248 media/media-fragments/TC0089.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0090.html [ Failure Pass ] >-webkit.org/b/132248 media/media-fragments/TC0091.html [ Failure Pass ] >- >- > webkit.org/b/132249 http/tests/media/video-cookie.html [ Timeout Failure Pass ] > > webkit.org/b/132250 media/audio-mpeg4-supported.html [ Timeout Pass ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 132248
:
373640
|
373659
|
373660