diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp index c73b6dd442f4f..a53fafe3e1d0b 100644 --- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp @@ -925,6 +925,17 @@ void StreamingClient::handleResponseReceived(const ResourceResponse& response) return; } + if (response.isRedirected()) { + if (!urlHasSupportedProtocol(response.url())) { + GST_ELEMENT_ERROR(src, RESOURCE, READ, ("Invalid URI '%s'", response.url().string().utf8().data()), (nullptr)); + gst_app_src_end_of_stream(priv->appsrc); + webKitWebSrcStop(src); + return; + } + g_free(priv->uri); + priv->uri = g_strdup(response.url().string().utf8().data()); + } + if (priv->requestedOffset) { // Seeking ... we expect a 206 == PARTIAL_CONTENT if (response.httpStatusCode() == 200) {