Version in base suite: 2.26.1-3~deb10u1 Version in overlay suite: 2.26.2-1~deb10+1 Base version: webkit2gtk_2.26.2-1~deb10+1 Target version: webkit2gtk_2.26.3-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/w/webkit2gtk/webkit2gtk_2.26.2-1~deb10+1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/w/webkit2gtk/webkit2gtk_2.26.3-1~deb10u1.dsc Documentation/jsc-glib-4.0/html/index.html | 2 Documentation/jsc-glib-4.0/html/jsc-glib-4.0-JSCVersion.html | 2 Documentation/webkit2gtk-4.0/html/index.html | 2 Documentation/webkit2gtk-4.0/html/webkit2gtk-4.0-WebKitVersion.html | 2 Documentation/webkitdomgtk-4.0/html/index.html | 2 NEWS | 14 ++ Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp | 8 - Source/JavaScriptCore/dfg/DFGValidate.cpp | 13 ++ Source/WTF/wtf/URLHelpers.cpp | 2 Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.cpp | 1 Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.cpp | 2 Source/WebCore/dom/Document.cpp | 6 - Source/WebCore/page/DOMWindowExtension.cpp | 1 Source/WebCore/platform/glib/UserAgentGLib.cpp | 1 Source/WebCore/platform/graphics/ComplexTextController.cpp | 16 ++- Source/WebCore/platform/graphics/cairo/FontCairo.cpp | 2 Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.cpp | 2 Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp | 2 Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp | 18 +-- Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp | 3 Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | 25 ++-- Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h | 1 Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp | 6 - Source/WebCore/rendering/RenderFrameSet.cpp | 14 +- Source/WebCore/rendering/SimpleLineLayoutResolver.cpp | 2 Source/WebCore/svg/properties/SVGAnimatedPropertyPairAccessor.h | 6 + Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp | 1 Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp | 13 ++ Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h | 1 Source/cmake/OptionsGTK.cmake | 6 - debian/changelog | 51 +++++++++- debian/control | 13 +- debian/copyright | 4 debian/libwebkit2gtk-4.0-37.docs | 1 debian/libwebkit2gtk-4.0-37.symbols | 1 debian/patches/series | 1 debian/patches/use-python3.patch | 13 ++ debian/patches/user-agent-branding.patch | 2 debian/rules | 35 ++++-- 39 files changed, 217 insertions(+), 80 deletions(-) diff -Nru webkit2gtk-2.26.2/Documentation/jsc-glib-4.0/html/index.html webkit2gtk-2.26.3/Documentation/jsc-glib-4.0/html/index.html --- webkit2gtk-2.26.2/Documentation/jsc-glib-4.0/html/index.html 2019-11-06 08:59:41.000000000 +0000 +++ webkit2gtk-2.26.3/Documentation/jsc-glib-4.0/html/index.html 2020-01-22 11:02:00.000000000 +0000 @@ -14,7 +14,7 @@
-

for JavaScriptCore 2.26.2

+

for JavaScriptCore 2.26.3


diff -Nru webkit2gtk-2.26.2/Documentation/jsc-glib-4.0/html/jsc-glib-4.0-JSCVersion.html webkit2gtk-2.26.3/Documentation/jsc-glib-4.0/html/jsc-glib-4.0-JSCVersion.html --- webkit2gtk-2.26.2/Documentation/jsc-glib-4.0/html/jsc-glib-4.0-JSCVersion.html 2019-11-06 08:59:41.000000000 +0000 +++ webkit2gtk-2.26.3/Documentation/jsc-glib-4.0/html/jsc-glib-4.0-JSCVersion.html 2020-01-22 11:02:00.000000000 +0000 @@ -175,7 +175,7 @@

JSC_MICRO_VERSION

-
#define JSC_MICRO_VERSION (2)
+
#define JSC_MICRO_VERSION (3)
 
diff -Nru webkit2gtk-2.26.2/Documentation/webkit2gtk-4.0/html/index.html webkit2gtk-2.26.3/Documentation/webkit2gtk-4.0/html/index.html --- webkit2gtk-2.26.2/Documentation/webkit2gtk-4.0/html/index.html 2019-11-06 09:00:19.000000000 +0000 +++ webkit2gtk-2.26.3/Documentation/webkit2gtk-4.0/html/index.html 2020-01-22 11:02:38.000000000 +0000 @@ -14,7 +14,7 @@
-

for WebKitGTK 2.26.2

+

for WebKitGTK 2.26.3


diff -Nru webkit2gtk-2.26.2/Documentation/webkit2gtk-4.0/html/webkit2gtk-4.0-WebKitVersion.html webkit2gtk-2.26.3/Documentation/webkit2gtk-4.0/html/webkit2gtk-4.0-WebKitVersion.html --- webkit2gtk-2.26.2/Documentation/webkit2gtk-4.0/html/webkit2gtk-4.0-WebKitVersion.html 2019-11-06 09:00:19.000000000 +0000 +++ webkit2gtk-2.26.3/Documentation/webkit2gtk-4.0/html/webkit2gtk-4.0-WebKitVersion.html 2020-01-22 11:02:38.000000000 +0000 @@ -213,7 +213,7 @@

WEBKIT_MICRO_VERSION

-
#define WEBKIT_MICRO_VERSION (2)
+
#define WEBKIT_MICRO_VERSION (3)
 

Like webkit_get_micro_version(), but from the headers used at application compile time, rather than from the library linked diff -Nru webkit2gtk-2.26.2/Documentation/webkitdomgtk-4.0/html/index.html webkit2gtk-2.26.3/Documentation/webkitdomgtk-4.0/html/index.html --- webkit2gtk-2.26.2/Documentation/webkitdomgtk-4.0/html/index.html 2019-11-06 09:00:03.000000000 +0000 +++ webkit2gtk-2.26.3/Documentation/webkitdomgtk-4.0/html/index.html 2020-01-22 11:02:22.000000000 +0000 @@ -14,7 +14,7 @@

-

for WebKitDOMGTK+ 2.26.2

+

for WebKitDOMGTK+ 2.26.3


diff -Nru webkit2gtk-2.26.2/NEWS webkit2gtk-2.26.3/NEWS --- webkit2gtk-2.26.2/NEWS 2019-11-06 09:03:41.000000000 +0000 +++ webkit2gtk-2.26.3/NEWS 2020-01-22 10:49:15.000000000 +0000 @@ -1,4 +1,18 @@ ================ +WebKitGTK 2.26.3 +================ + +What's new in WebKitGTK 2.26.3? + + - Fix issues while trying to play a video on NextCloud. + - Make sure the GL video sink uses a valid WebKit shared GL context. + - Fix vertical alignment of text containing arabic diacritics. + - Fix build with icu 65.1. + - Fix page loading errors with websites using HSTS. + - Fix web process crash when displaying a KaTeX formula. + - Fix several crashes and rendering issues. + +================ WebKitGTK 2.26.2 ================ diff -Nru webkit2gtk-2.26.2/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp webkit2gtk-2.26.3/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp --- webkit2gtk-2.26.2/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp 2019-09-02 09:46:20.000000000 +0000 +++ webkit2gtk-2.26.3/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp 2020-01-22 10:21:42.000000000 +0000 @@ -1815,9 +1815,11 @@ availabilityCalculator.m_availability, identifier, phiDef->value()); for (PromotedHeapLocation location : hintsForPhi[variable->index()]) { - m_insertionSet.insert(0, - location.createHint(m_graph, block->at(0)->origin.withInvalidExit(), phiDef->value())); - m_localMapping.set(location, phiDef->value()); + if (m_heap.onlyLocalAllocation(location.base())) { + m_insertionSet.insert(0, + location.createHint(m_graph, block->at(0)->origin.withInvalidExit(), phiDef->value())); + m_localMapping.set(location, phiDef->value()); + } } } diff -Nru webkit2gtk-2.26.2/Source/JavaScriptCore/dfg/DFGValidate.cpp webkit2gtk-2.26.3/Source/JavaScriptCore/dfg/DFGValidate.cpp --- webkit2gtk-2.26.2/Source/JavaScriptCore/dfg/DFGValidate.cpp 2019-08-28 11:46:27.000000000 +0000 +++ webkit2gtk-2.26.3/Source/JavaScriptCore/dfg/DFGValidate.cpp 2020-01-22 10:21:41.000000000 +0000 @@ -31,6 +31,7 @@ #include "CodeBlockWithJITType.h" #include "DFGClobberize.h" #include "DFGClobbersExitState.h" +#include "DFGDominators.h" #include "DFGMayExit.h" #include "JSCInlines.h" #include @@ -775,6 +776,10 @@ VALIDATE((), !m_graph.m_argumentFormats.isEmpty()); // We always have at least one entrypoint. VALIDATE((), m_graph.m_rootToArguments.isEmpty()); // This is only used in CPS. + m_graph.initializeNodeOwners(); + + auto& dominators = m_graph.ensureSSADominators(); + for (unsigned entrypointIndex : m_graph.m_entrypointIndexToCatchBytecodeOffset.keys()) VALIDATE((), entrypointIndex > 0); // By convention, 0 is the entrypoint index for the op_enter entrypoint, which can not be in a catch. @@ -788,6 +793,8 @@ bool didSeeExitOK = false; bool isOSRExited = false; + HashSet nodesInThisBlock; + for (auto* node : *block) { didSeeExitOK |= node->origin.exitOK; switch (node->op()) { @@ -906,7 +913,13 @@ }); break; } + isOSRExited |= node->isPseudoTerminal(); + + m_graph.doToChildren(node, [&] (Edge child) { + VALIDATE((node), dominators.strictlyDominates(child->owner, block) || nodesInThisBlock.contains(child.node())); + }); + nodesInThisBlock.add(node); } } } diff -Nru webkit2gtk-2.26.2/Source/WTF/wtf/URLHelpers.cpp webkit2gtk-2.26.3/Source/WTF/wtf/URLHelpers.cpp --- webkit2gtk-2.26.2/Source/WTF/wtf/URLHelpers.cpp 2019-08-28 11:46:29.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WTF/wtf/URLHelpers.cpp 2020-01-22 09:58:48.000000000 +0000 @@ -301,7 +301,7 @@ Optional previousCodePoint; while (i < length) { UChar32 c; - U16_NEXT(buffer, i, length, c) + U16_NEXT(buffer, i, length, c); UErrorCode error = U_ZERO_ERROR; UScriptCode script = uscript_getScript(c, &error); if (error != U_ZERO_ERROR) { diff -Nru webkit2gtk-2.26.2/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.cpp webkit2gtk-2.26.3/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.cpp --- webkit2gtk-2.26.2/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.cpp 2019-08-28 11:46:30.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.cpp 2020-01-22 09:32:31.000000000 +0000 @@ -29,6 +29,7 @@ #if ENABLE(INDEXED_DATABASE) #include "IDBKeyRangeData.h" +#include namespace WebCore { diff -Nru webkit2gtk-2.26.2/Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.cpp webkit2gtk-2.26.3/Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.cpp --- webkit2gtk-2.26.2/Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.cpp 2019-08-28 11:46:30.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.cpp 2020-01-22 09:32:31.000000000 +0000 @@ -28,6 +28,8 @@ #if ENABLE(INDEXED_DATABASE) +#include + namespace WebCore { IDBIterateCursorData IDBIterateCursorData::isolatedCopy() const diff -Nru webkit2gtk-2.26.2/Source/WebCore/dom/Document.cpp webkit2gtk-2.26.3/Source/WebCore/dom/Document.cpp --- webkit2gtk-2.26.2/Source/WebCore/dom/Document.cpp 2019-09-02 09:41:47.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/dom/Document.cpp 2020-01-22 09:58:49.000000000 +0000 @@ -4944,12 +4944,12 @@ unsigned i = 0; UChar32 c; - U16_NEXT(characters, i, length, c) + U16_NEXT(characters, i, length, c); if (!isValidNameStart(c)) return false; while (i < length) { - U16_NEXT(characters, i, length, c) + U16_NEXT(characters, i, length, c); if (!isValidNamePart(c)) return false; } @@ -5009,7 +5009,7 @@ for (unsigned i = 0; i < length; ) { UChar32 c; - U16_NEXT(qualifiedName, i, length, c) + U16_NEXT(qualifiedName, i, length, c); if (c == ':') { if (sawColon) return Exception { InvalidCharacterError }; diff -Nru webkit2gtk-2.26.2/Source/WebCore/page/DOMWindowExtension.cpp webkit2gtk-2.26.3/Source/WebCore/page/DOMWindowExtension.cpp --- webkit2gtk-2.26.2/Source/WebCore/page/DOMWindowExtension.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/page/DOMWindowExtension.cpp 2020-01-22 09:32:31.000000000 +0000 @@ -28,6 +28,7 @@ #include "DOMWindow.h" #include "DOMWrapperWorld.h" +#include "Document.h" #include "Frame.h" #include "FrameLoader.h" #include "FrameLoaderClient.h" diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/glib/UserAgentGLib.cpp webkit2gtk-2.26.3/Source/WebCore/platform/glib/UserAgentGLib.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/glib/UserAgentGLib.cpp 2019-09-23 08:13:05.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/glib/UserAgentGLib.cpp 2020-01-22 09:32:31.000000000 +0000 @@ -27,6 +27,7 @@ #include "config.h" #include "UserAgent.h" +#include "HTTPParsers.h" #include "UserAgentQuirks.h" #include #include diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/ComplexTextController.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/ComplexTextController.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/ComplexTextController.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/ComplexTextController.cpp 2020-01-22 10:39:57.000000000 +0000 @@ -205,7 +205,8 @@ for (unsigned j = 0; j < complexTextRun.glyphCount(); ++j) { unsigned index = offsetIntoAdjustedGlyphs + j; float adjustedAdvance = m_adjustedBaseAdvances[index].width(); - if (x < adjustedAdvance) { + bool hit = m_run.ltr() ? x < adjustedAdvance : (x <= adjustedAdvance && adjustedAdvance); + if (hit) { unsigned hitGlyphStart = complexTextRun.indexAt(j); unsigned hitGlyphEnd; if (m_run.ltr()) @@ -215,7 +216,18 @@ // FIXME: Instead of dividing the glyph's advance equally between the characters, this // could use the glyph's "ligature carets". This is available in CoreText via CTFontGetLigatureCaretPositions(). - unsigned hitIndex = hitGlyphStart + (hitGlyphEnd - hitGlyphStart) * (m_run.ltr() ? x / adjustedAdvance : 1 - x / adjustedAdvance); + unsigned hitIndex; + if (m_run.ltr()) + hitIndex = hitGlyphStart + (hitGlyphEnd - hitGlyphStart) * (x / adjustedAdvance); + else { + if (hitGlyphStart == hitGlyphEnd) + hitIndex = hitGlyphStart; + else if (x) + hitIndex = hitGlyphEnd - (hitGlyphEnd - hitGlyphStart) * (x / adjustedAdvance); + else + hitIndex = hitGlyphEnd - 1; + } + unsigned stringLength = complexTextRun.stringLength(); CachedTextBreakIterator cursorPositionIterator(StringView(complexTextRun.characters(), stringLength), TextBreakIterator::Mode::Caret, nullAtom()); unsigned clusterStart; diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/cairo/FontCairo.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/cairo/FontCairo.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/cairo/FontCairo.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/cairo/FontCairo.cpp 2020-01-22 10:36:27.000000000 +0000 @@ -65,7 +65,7 @@ for (size_t i = 0; i < numGlyphs; ++i) { glyphs[i] = { glyphsData[i], xOffset, yOffset }; xOffset += advances[i].width(); - yOffset -= advances[i].height(); + yOffset += advances[i].height(); } } diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.cpp 2019-08-29 12:15:16.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.cpp 2020-01-22 10:36:45.000000000 +0000 @@ -248,7 +248,7 @@ for (size_t i = 0; i < numGlyphs; ++i) { glyphs[i] = { glyphsData[i], xOffset, yOffset }; xOffset += advances[i].width(); - yOffset -= advances[i].height(); + yOffset += advances[i].height(); } } diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2020-01-22 10:31:15.000000000 +0000 @@ -279,7 +279,7 @@ if (!ftFace) return nullptr; - HbUniquePtr face(hb_ft_face_create_cached(ftFace)); + HbUniquePtr face(hb_ft_face_create_referenced(ftFace)); if (!hb_ot_math_has_data(face.get())) return nullptr; diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2019-09-23 08:23:57.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2020-01-22 10:34:10.000000000 +0000 @@ -1148,17 +1148,15 @@ if (!mediaDuration || mediaDuration.isPositiveInfinite()) return timeRanges; - GstQuery* query = gst_query_new_buffering(GST_FORMAT_PERCENT); + GRefPtr query = adoptGRef(gst_query_new_buffering(GST_FORMAT_PERCENT)); - if (!gst_element_query(m_pipeline.get(), query)) { - gst_query_unref(query); + if (!gst_element_query(m_pipeline.get(), query.get())) return timeRanges; - } - guint numBufferingRanges = gst_query_get_n_buffering_ranges(query); + guint numBufferingRanges = gst_query_get_n_buffering_ranges(query.get()); for (guint index = 0; index < numBufferingRanges; index++) { gint64 rangeStart = 0, rangeStop = 0; - if (gst_query_parse_nth_buffering_range(query, index, &rangeStart, &rangeStop)) { + if (gst_query_parse_nth_buffering_range(query.get(), index, &rangeStart, &rangeStop)) { uint64_t startTime = gst_util_uint64_scale_int_round(toGstUnsigned64Time(mediaDuration), rangeStart, GST_FORMAT_PERCENT_MAX); uint64_t stopTime = gst_util_uint64_scale_int_round(toGstUnsigned64Time(mediaDuration), rangeStop, GST_FORMAT_PERCENT_MAX); timeRanges->add(MediaTime(startTime, GST_SECOND), MediaTime(stopTime, GST_SECOND)); @@ -1173,8 +1171,6 @@ timeRanges->add(MediaTime::zeroTime(), loaded); } - gst_query_unref(query); - return timeRanges; } @@ -1395,7 +1391,7 @@ } else if (gst_structure_has_name(structure, "adaptive-streaming-statistics")) { if (WEBKIT_IS_WEB_SRC(m_source.get()) && !webkitGstCheckVersion(1, 12, 0)) { if (const char* uri = gst_structure_get_string(structure, "uri")) - m_hasTaintedOrigin = webKitSrcWouldTaintOrigin(WEBKIT_WEB_SRC(m_source.get()), SecurityOrigin::create(URL(URL(), uri))); + m_hasTaintedOrigin = webKitSrcWouldTaintOrigin(WEBKIT_WEB_SRC_CAST(m_source.get()), SecurityOrigin::create(URL(URL(), uri))); } } else GST_DEBUG_OBJECT(pipeline(), "Unhandled element message: %" GST_PTR_FORMAT, structure); @@ -1856,7 +1852,7 @@ m_source = sourceElement; if (WEBKIT_IS_WEB_SRC(m_source.get())) { - webKitWebSrcSetMediaPlayer(WEBKIT_WEB_SRC(m_source.get()), m_player); + webKitWebSrcSetMediaPlayer(WEBKIT_WEB_SRC_CAST(m_source.get()), m_player); g_signal_connect(GST_ELEMENT_PARENT(m_source.get()), "element-added", G_CALLBACK(uriDecodeBinElementAddedCallback), this); #if ENABLE(MEDIA_STREAM) } else if (WEBKIT_IS_MEDIA_STREAM_SRC(sourceElement)) { @@ -2510,7 +2506,7 @@ bool MediaPlayerPrivateGStreamer::didPassCORSAccessCheck() const { if (WEBKIT_IS_WEB_SRC(m_source.get())) - return webKitSrcPassedCORSAccessCheck(WEBKIT_WEB_SRC(m_source.get())); + return webKitSrcPassedCORSAccessCheck(WEBKIT_WEB_SRC_CAST(m_source.get())); return false; } diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2019-09-23 08:23:57.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2020-01-22 10:07:07.000000000 +0000 @@ -447,6 +447,9 @@ } GLContext* webkitContext = sharedDisplay.sharingGLContext(); + if (!webkitContext) + return false; + // EGL and GLX are mutually exclusive, no need for ifdefs here. GstGLPlatform glPlatform = webkitContext->isEGLContext() ? GST_GL_PLATFORM_EGL : GST_GL_PLATFORM_GLX; diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2019-11-06 08:09:10.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2020-01-22 10:18:20.000000000 +0000 @@ -61,7 +61,7 @@ void setSourceElement(WebKitWebSrc* src) { m_src = GST_ELEMENT_CAST(src); } private: - void checkUpdateBlocksize(uint64_t bytesRead); + void checkUpdateBlocksize(unsigned bytesRead); // PlatformMediaResourceClient virtual methods. void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler&&) override; @@ -137,7 +137,7 @@ bool isSeekable; bool isSeeking; bool wasSeeking { false }; - uint64_t minimumBlocksize; + unsigned minimumBlocksize; Lock adapterLock; Condition adapterCondition; uint64_t queueSize { 0 }; @@ -412,20 +412,21 @@ unsigned retries = 0; size_t available = gst_adapter_available_fast(priv->adapter.get()); while (available < size && !isAdapterDrained) { - priv->adapterCondition.waitFor(priv->adapterLock, 200_ms, [&] { + priv->adapterCondition.waitFor(priv->adapterLock, 100_ms, [&] { return gst_adapter_available_fast(priv->adapter.get()) >= size; }); retries++; available = gst_adapter_available_fast(priv->adapter.get()); - if (available && available < size) + if (available && available < size) { + GST_TRACE_OBJECT(src, "did not get the %u blocksize bytes, let's push the %" G_GSIZE_FORMAT " bytes we got", size, available); size = available; - else if (retries > 3) + } else if (retries > 3) isAdapterDrained = true; } } if (isAdapterDrained) { - GST_DEBUG_OBJECT(src, "Adapter still empty after 800 milli-seconds of waiting, assuming EOS"); + GST_DEBUG_OBJECT(src, "Adapter still empty after 400 milli-seconds of waiting, assuming EOS"); return GST_FLOW_EOS; } @@ -464,7 +465,7 @@ && (priv->size > SMALL_MEDIA_RESOURCE_MAX_SIZE) && priv->readPosition && (priv->readPosition != priv->size) && (priv->queueSize < (priv->size * HIGH_QUEUE_FACTOR_THRESHOLD * LOW_QUEUE_FACTOR_THRESHOLD)) - && (GST_STATE(src) == GST_STATE_PLAYING) && priv->isDownloadSuspended) { + && GST_STATE(src) >= GST_STATE_PAUSED && priv->isDownloadSuspended) { GST_DEBUG_OBJECT(src, "[Buffering] Adapter running out of data, restarting download"); priv->isDownloadSuspended = false; webKitWebSrcMakeRequest(baseSrc, false); @@ -920,14 +921,14 @@ CachedResourceStreamingClient::~CachedResourceStreamingClient() = default; -void CachedResourceStreamingClient::checkUpdateBlocksize(uint64_t bytesRead) +void CachedResourceStreamingClient::checkUpdateBlocksize(unsigned bytesRead) { WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get()); GstBaseSrc* baseSrc = GST_BASE_SRC_CAST(src); WebKitWebSrcPrivate* priv = src->priv; - uint64_t blocksize = gst_base_src_get_blocksize(baseSrc); - GST_LOG_OBJECT(src, "Checking to update blocksize. Read: %" PRIu64 ", current blocksize: %" PRIu64, bytesRead, blocksize); + unsigned blocksize = gst_base_src_get_blocksize(baseSrc); + GST_LOG_OBJECT(src, "Checking to update blocksize. Read: %u, current blocksize: %u", bytesRead, blocksize); if (bytesRead >= blocksize * s_growBlocksizeLimit) { m_reduceBlocksizeCount = 0; @@ -935,7 +936,7 @@ if (m_increaseBlocksizeCount >= s_growBlocksizeCount) { blocksize *= s_growBlocksizeFactor; - GST_DEBUG_OBJECT(src, "Increased blocksize to %" PRIu64, blocksize); + GST_DEBUG_OBJECT(src, "Increased blocksize to %u", blocksize); gst_base_src_set_blocksize(baseSrc, blocksize); m_increaseBlocksizeCount = 0; } @@ -946,7 +947,7 @@ if (m_reduceBlocksizeCount >= s_reduceBlocksizeCount) { blocksize *= s_reduceBlocksizeFactor; blocksize = std::max(blocksize, priv->minimumBlocksize); - GST_DEBUG_OBJECT(src, "Decreased blocksize to %" PRIu64, blocksize); + GST_DEBUG_OBJECT(src, "Decreased blocksize to %u", blocksize); gst_base_src_set_blocksize(baseSrc, blocksize); m_reduceBlocksizeCount = 0; } diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h 2020-01-22 10:18:20.000000000 +0000 @@ -35,6 +35,7 @@ #define WEBKIT_WEB_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEBKIT_TYPE_WEB_SRC, WebKitWebSrcClass)) #define WEBKIT_IS_WEB_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEBKIT_TYPE_WEB_SRC)) #define WEBKIT_IS_WEB_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEBKIT_TYPE_WEB_SRC)) +#define WEBKIT_WEB_SRC_CAST(obj) ((WebKitWebSrc*)(obj)) #define WEBKIT_WEB_SRC_PLAYER_CONTEXT_TYPE_NAME "webkit.media-player" diff -Nru webkit2gtk-2.26.2/Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp webkit2gtk-2.26.3/Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp --- webkit2gtk-2.26.2/Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp 2020-01-22 10:36:27.000000000 +0000 @@ -164,17 +164,15 @@ } float offsetX = harfBuzzPositionToFloat(glyphPositions[i].x_offset); - float offsetY = -harfBuzzPositionToFloat(glyphPositions[i].y_offset); + float offsetY = harfBuzzPositionToFloat(glyphPositions[i].y_offset); float advanceX = harfBuzzPositionToFloat(glyphPositions[i].x_advance); float advanceY = harfBuzzPositionToFloat(glyphPositions[i].y_advance); - if (!i) - m_initialAdvance = { offsetX, -offsetY }; - m_glyphs[i] = glyph; m_baseAdvances[i] = { advanceX, advanceY }; m_glyphOrigins[i] = { offsetX, offsetY }; } + m_initialAdvance = toFloatSize(m_glyphOrigins[0]); } static const hb_tag_t s_vertTag = HB_TAG('v', 'e', 'r', 't'); diff -Nru webkit2gtk-2.26.2/Source/WebCore/rendering/RenderFrameSet.cpp webkit2gtk-2.26.3/Source/WebCore/rendering/RenderFrameSet.cpp --- webkit2gtk-2.26.2/Source/WebCore/rendering/RenderFrameSet.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/rendering/RenderFrameSet.cpp 2020-01-22 09:59:50.000000000 +0000 @@ -525,17 +525,15 @@ int width = m_cols.m_sizes[c]; // has to be resized and itself resize its contents - if (width != child->width() || height != child->height()) { - child->setWidth(width); - child->setHeight(height); + child->setWidth(width); + child->setHeight(height); #if PLATFORM(IOS_FAMILY) - // FIXME: Is this iOS-specific? - child->setNeedsLayout(MarkOnlyThis); + // FIXME: Is this iOS-specific? + child->setNeedsLayout(MarkOnlyThis); #else - child->setNeedsLayout(); + child->setNeedsLayout(); #endif - child->layout(); - } + child->layout(); xPos += width + borderThickness; diff -Nru webkit2gtk-2.26.2/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp webkit2gtk-2.26.3/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp --- webkit2gtk-2.26.2/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp 2019-08-28 11:46:31.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp 2020-01-22 10:22:50.000000000 +0000 @@ -299,6 +299,8 @@ { ASSERT(startOffset <= endOffset); auto range = rangeForRenderer(renderer); + if (range.begin() == range.end()) + return { end(), end() }; auto it = range.begin(); auto localEnd = (*it).start() + endOffset; // Advance to the first run with the start offset inside. Only the first node in a range can have a startOffset. diff -Nru webkit2gtk-2.26.2/Source/WebCore/svg/properties/SVGAnimatedPropertyPairAccessor.h webkit2gtk-2.26.3/Source/WebCore/svg/properties/SVGAnimatedPropertyPairAccessor.h --- webkit2gtk-2.26.2/Source/WebCore/svg/properties/SVGAnimatedPropertyPairAccessor.h 2019-08-28 11:46:32.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebCore/svg/properties/SVGAnimatedPropertyPairAccessor.h 2020-01-22 10:23:49.000000000 +0000 @@ -58,6 +58,12 @@ Ref& property2(OwnerType& owner) const { return m_accessor2.property(owner); } const Ref& property2(const OwnerType& owner) const { return m_accessor2.property(owner); } + void detach(const OwnerType& owner) const override + { + property1(owner)->detach(); + property2(owner)->detach(); + } + bool matches(const OwnerType& owner, const SVGAnimatedProperty& animatedProperty) const override { return m_accessor1.matches(owner, animatedProperty) || m_accessor2.matches(owner, animatedProperty); diff -Nru webkit2gtk-2.26.2/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp webkit2gtk-2.26.3/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp --- webkit2gtk-2.26.2/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2019-08-28 11:46:32.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2020-01-22 09:32:31.000000000 +0000 @@ -29,6 +29,7 @@ #include "BlobDataFileReferenceWithSandboxExtension.h" #include "CacheStorageEngineConnectionMessages.h" #include "DataReference.h" +#include "Logging.h" #include "NetworkCache.h" #include "NetworkMDNSRegisterMessages.h" #include "NetworkProcess.h" diff -Nru webkit2gtk-2.26.2/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp webkit2gtk-2.26.3/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp --- webkit2gtk-2.26.2/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2019-08-28 11:46:32.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2020-01-22 10:27:10.000000000 +0000 @@ -296,11 +296,22 @@ void NetworkDataTaskSoup::sendRequestCallback(SoupRequest* soupRequest, GAsyncResult* result, NetworkDataTaskSoup* task) { RefPtr protectedThis = adoptRef(task); + if (soupRequest != task->m_soupRequest.get()) { + // This can happen when the request is cancelled and a new one is started before + // the previous async operation completed. This is common when forcing a redirection + // due to HSTS. We can simply ignore this old request. +#if !ASSERT_DISABLED + GUniqueOutPtr error; + GRefPtr inputStream = adoptGRef(soup_request_send_finish(soupRequest, result, &error.outPtr())); + ASSERT(g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)); +#endif + return; + } + if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { task->clearRequest(); return; } - ASSERT(soupRequest == task->m_soupRequest.get()); if (task->state() == State::Suspended) { ASSERT(!task->m_pendingResult); diff -Nru webkit2gtk-2.26.2/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h webkit2gtk-2.26.3/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h --- webkit2gtk-2.26.2/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h 2019-11-06 08:09:11.000000000 +0000 +++ webkit2gtk-2.26.3/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h 2020-01-22 09:57:35.000000000 +0000 @@ -212,7 +212,6 @@ inline void LayerTreeHost::cancelPendingLayerFlush() { } inline void LayerTreeHost::setRootCompositingLayer(WebCore::GraphicsLayer*) { } inline void LayerTreeHost::setViewOverlayRootLayer(WebCore::GraphicsLayer*) { } -inline void LayerTreeHost::invalidate() { } inline void LayerTreeHost::scrollNonCompositedContents(const WebCore::IntRect&) { } inline void LayerTreeHost::forceRepaint() { } inline bool LayerTreeHost::forceRepaintAsync(CallbackID) { return false; } diff -Nru webkit2gtk-2.26.2/Source/cmake/OptionsGTK.cmake webkit2gtk-2.26.3/Source/cmake/OptionsGTK.cmake --- webkit2gtk-2.26.2/Source/cmake/OptionsGTK.cmake 2019-11-06 08:56:16.000000000 +0000 +++ webkit2gtk-2.26.3/Source/cmake/OptionsGTK.cmake 2020-01-22 10:49:30.000000000 +0000 @@ -1,11 +1,11 @@ include(GNUInstallDirs) include(VersioningUtils) -SET_PROJECT_VERSION(2 26 2) +SET_PROJECT_VERSION(2 26 3) set(WEBKITGTK_API_VERSION 4.0) -CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 76 3 39) -CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 32 7 14) +CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 76 4 39) +CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 32 8 14) # These are shared variables, but we special case their definition so that we can use the # CMAKE_INSTALL_* variables that are populated by the GNUInstallDirs macro. diff -Nru webkit2gtk-2.26.2/debian/changelog webkit2gtk-2.26.3/debian/changelog --- webkit2gtk-2.26.2/debian/changelog 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/changelog 2020-01-29 10:39:55.000000000 +0000 @@ -1,10 +1,20 @@ -webkit2gtk (2.26.2-1~deb10+1) buster-security; urgency=high +webkit2gtk (2.26.3-1~deb10u1) buster-security; urgency=medium * Rebuild for buster-security. + + This fixes CVE-2019-8835, CVE-2019-8844 and CVE-2019-8846. + See https://webkitgtk.org/security/WSA-2020-0001.html. * debian/patches/force-single-process.patch: + Force the single-process mode in Evolution and Geary * debian/control: + Remove Breaks for Evolution < 3.34.1. + + Remove build dependency on libwpebackend-fdo-1.0-dev. + + Switch build dependency from libenchant-2-dev to libenchant-dev. + + -- Alberto Garcia Wed, 29 Jan 2020 11:39:55 +0100 + +webkit2gtk (2.26.3-1) unstable; urgency=high + + * New upstream release. * The WebKitGTK security advisory WSA-2019-0006 lists the following security fixes in the latest versions of WebKitGTK: + CVE-2019-8765, CVE-2019-8821, CVE-2019-8822 (fixed in 2.24.4) @@ -13,8 +23,45 @@ + CVE-2019-8783, CVE-2019-8811, CVE-2019-8813, CVE-2019-8816, CVE-2019-8819, CVE-2019-8820, CVE-2019-8823 (fixed in 2.26.1) + CVE-2019-8812, CVE-2019-8814 (fixed in 2.26.2) + * Build without the bubblewrap sandbox if the required dependencies are + not available (Closes: #944731): + + debian/rules: + - Pass -DENABLE_BUBBLEWRAP_SANDBOX depending on whether libseccomp + is installed. + - Add runtime dependencies on bubblewrap and xdg-dbus-proxy + conditionally to the status of ENABLE_BUBBLEWRAP_SANDBOX. + + debian/control: + - Don't require bubblewrap, xdg-dbus-proxy or libseccomp-dev in + alpha, ia64, m68k, riscv64, sh4 or sparc64. + * Enable USE_WPE_RENDERER: + + debian/control: + - Add build dependency on libwpebackend-fdo-1.0-dev. + + debian/rules: + - Set USE_WPE_RENDERER depending on whether wpebackend-fdo is + available or not (this allows disabling it by simply removing the + build dependency). + * debian/rules: + + Use -g1 in all builds. The webkit2gtk debug packages are huge and + I'm not convinced that they have been very useful for reporting + bugs. Using -g1 is enough for a basic backtrace and it makes the + packages easier to handle. + + Install the NEWS file using debian/libwebkit2gtk-4.0-37.docs. + * debian/control: + + Switch build dependency from libenchant-dev to libenchant-2-dev + (Closes: #948106). + + Add build dependency on libx11-xcb-dev (Closes: #949430). + + Add Rules-Requires-Root: no. + * debian/patches/use-python3.patch: + + The unversioned python interpreter (i.e. Python 2) is not installed + by default anymore, so use Python 3 instead (Closes: #948839). + * debian/patches/user-agent-branding.patch: + + Refresh. + * debian/libwebkit2gtk-4.0-37.symbols: + + Add Build-Depends-Package field. + * debian/copyright: + + Update copyright years. - -- Alberto Garcia Tue, 12 Nov 2019 14:15:29 +0200 + -- Alberto Garcia Wed, 22 Jan 2020 13:44:09 +0100 webkit2gtk (2.26.2-1) unstable; urgency=medium diff -Nru webkit2gtk-2.26.2/debian/control webkit2gtk-2.26.3/debian/control --- webkit2gtk-2.26.2/debian/control 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/control 2020-01-29 10:39:55.000000000 +0000 @@ -7,9 +7,9 @@ Alberto Garcia X-Ubuntu-Use-Langpack: no Build-Depends: gawk, - bubblewrap (>= 0.3.1), - xdg-dbus-proxy, - libseccomp-dev, + bubblewrap (>= 0.3.1) [!alpha !ia64 !m68k !riscv64 !sh4 !sparc64], + xdg-dbus-proxy [!alpha !ia64 !m68k !riscv64 !sh4 !sparc64], + libseccomp-dev [!alpha !ia64 !m68k !riscv64 !sh4 !sparc64], cmake (>= 3.3), debhelper (>= 11.2~), libfile-copy-recursive-perl, @@ -41,10 +41,11 @@ libpng-dev, libtasn1-6-dev, libwebp-dev, + libx11-xcb-dev, libxt-dev, libgstreamer1.0-dev (>= 1.13.1), libgstreamer-plugins-base1.0-dev (>= 1.13.1), - libenchant-dev (>= 0.22), + libenchant-dev, gtk-doc-tools, libglib2.0-doc, libgtk-3-doc, @@ -60,6 +61,7 @@ libgles2-mesa-dev Build-Conflicts: gir-repository-dev Standards-Version: 4.4.1 +Rules-Requires-Root: no Vcs-Browser: https://salsa.debian.org/webkit-team/webkit Vcs-Git: https://salsa.debian.org/webkit-team/webkit.git Homepage: https://webkitgtk.org/ @@ -139,8 +141,7 @@ Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}), - bubblewrap (>= 0.3.1), - xdg-dbus-proxy, + ${bwrap:Depends}, ${shlibs:Depends}, ${misc:Depends} Recommends: gstreamer1.0-plugins-good, diff -Nru webkit2gtk-2.26.2/debian/copyright webkit2gtk-2.26.3/debian/copyright --- webkit2gtk-2.26.2/debian/copyright 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/copyright 2020-01-29 10:39:55.000000000 +0000 @@ -3,7 +3,7 @@ Source: https://webkitgtk.org/releases/ Files: * -Copyright: © 2002-2019 Apple Inc. and others +Copyright: © 2002-2020 Apple Inc. and others License: BSD-2-clause Comment: The default license of WebKit is BSD 2-clause, available in @@ -1035,7 +1035,7 @@ Files: debian/* Copyright: © 2007-2009 Mike Hommey © 2009 Gustavo Noronha Silva - © 2014-2019 Alberto Garcia + © 2014-2020 Alberto Garcia License: LGPL-2+ License: BSD-2-clause diff -Nru webkit2gtk-2.26.2/debian/libwebkit2gtk-4.0-37.docs webkit2gtk-2.26.3/debian/libwebkit2gtk-4.0-37.docs --- webkit2gtk-2.26.2/debian/libwebkit2gtk-4.0-37.docs 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.26.3/debian/libwebkit2gtk-4.0-37.docs 2020-01-29 10:39:55.000000000 +0000 @@ -0,0 +1 @@ +NEWS diff -Nru webkit2gtk-2.26.2/debian/libwebkit2gtk-4.0-37.symbols webkit2gtk-2.26.3/debian/libwebkit2gtk-4.0-37.symbols --- webkit2gtk-2.26.2/debian/libwebkit2gtk-4.0-37.symbols 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/libwebkit2gtk-4.0-37.symbols 2020-01-29 10:39:55.000000000 +0000 @@ -1,4 +1,5 @@ libwebkit2gtk-4.0.so.37 libwebkit2gtk-4.0-37 #MINVER# +* Build-Depends-Package: libwebkit2gtk-4.0-dev NetworkProcessMainUnix@Base 2.5.3 PluginProcessMainUnix@Base 2.5.3 WebProcessMainUnix@Base 2.5.3 diff -Nru webkit2gtk-2.26.2/debian/patches/series webkit2gtk-2.26.3/debian/patches/series --- webkit2gtk-2.26.2/debian/patches/series 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/patches/series 2020-01-29 10:39:55.000000000 +0000 @@ -7,4 +7,5 @@ user-agent-branding.patch prefer-pthread.patch dont-detect-sse2.patch +use-python3.patch force-single-process.patch diff -Nru webkit2gtk-2.26.2/debian/patches/use-python3.patch webkit2gtk-2.26.3/debian/patches/use-python3.patch --- webkit2gtk-2.26.2/debian/patches/use-python3.patch 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.26.3/debian/patches/use-python3.patch 2020-01-29 10:39:55.000000000 +0000 @@ -0,0 +1,13 @@ +From: Tomas Popela +Subject: Use python3 instead of the unversioned python interpreter +Bug-Debian: https://bugs.debian.org/948839 +Index: webkitgtk/Tools/gtkdoc/generate-gtkdoc +=================================================================== +--- webkitgtk.orig/Tools/gtkdoc/generate-gtkdoc ++++ webkitgtk/Tools/gtkdoc/generate-gtkdoc +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + # Copyright (C) 2011 Igalia S.L. + # + # This library is free software; you can redistribute it and/or diff -Nru webkit2gtk-2.26.2/debian/patches/user-agent-branding.patch webkit2gtk-2.26.3/debian/patches/user-agent-branding.patch --- webkit2gtk-2.26.2/debian/patches/user-agent-branding.patch 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/patches/user-agent-branding.patch 2020-01-29 10:39:55.000000000 +0000 @@ -14,7 +14,7 @@ index 8eabebe..c50e359 100644 --- a/Source/WebCore/platform/glib/UserAgentGLib.cpp +++ b/Source/WebCore/platform/glib/UserAgentGLib.cpp -@@ -88,6 +88,9 @@ static String buildUserAgentString(const UserAgentQuirks& quirks) +@@ -89,6 +89,9 @@ static String buildUserAgentString(const UserAgentQuirks& quirks) else { uaString.append(platformForUAString()); uaString.appendLiteral("; "); diff -Nru webkit2gtk-2.26.2/debian/rules webkit2gtk-2.26.3/debian/rules --- webkit2gtk-2.26.2/debian/rules 2019-11-12 12:15:29.000000000 +0000 +++ webkit2gtk-2.26.3/debian/rules 2020-01-29 10:39:55.000000000 +0000 @@ -9,6 +9,7 @@ LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed EXTRA_CMAKE_ARGUMENTS = +DH_GENCONTROL_ARGS = # Sacrifice speed in order to make it more likely resource limits # won't be hit. @@ -17,11 +18,8 @@ endif # The debug packages produced by webkit are huge and cause problems in -# most buildds, so use -g1 in all architectures except the ones that -# are known to work fine -ifeq (,$(filter $(DEB_HOST_ARCH),amd64 ppc64 ppc64el)) - CFLAGS := $(CFLAGS:-g=-g1) -endif +# most buildds. Use -g1 in all architectures to make them smaller. +CFLAGS := $(CFLAGS:-g=-g1) # Use the CLoop Javascript interpreter and disable the JIT. This is # slow but it is the most compatible solution for old (non-SSE2) CPUs. @@ -52,6 +50,21 @@ CPPFLAGS += -DNDEBUG -DG_DISABLE_CAST_CHECKS endif +# Disable the bubblewrap sandbox if libseccomp-dev is not available +ifeq ($(shell pkg-config --exists libseccomp && echo yes),yes) + EXTRA_CMAKE_ARGUMENTS += -DENABLE_BUBBLEWRAP_SANDBOX=ON + DH_GENCONTROL_ARGS += -Vbwrap:Depends="bubblewrap (>= 0.3.1), xdg-dbus-proxy" +else + EXTRA_CMAKE_ARGUMENTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF +endif + +# Disable the WPE renderer if libwpebackend-fdo-1.0-dev is not available +ifeq ($(shell pkg-config --exists wpebackend-fdo-1.0 && echo yes),yes) + EXTRA_CMAKE_ARGUMENTS += -DUSE_WPE_RENDERER=ON +else + EXTRA_CMAKE_ARGUMENTS += -DUSE_WPE_RENDERER=OFF +endif + # openjpeg2 is not in Ubuntu main yet https://launchpad.net/bugs/711061 ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes) EXTRA_CMAKE_ARGUMENTS += -DUSE_OPENJPEG=OFF @@ -59,13 +72,15 @@ endif # gstreamer1.0-libav is not in Ubuntu "main" -override_dh_gencontrol: ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes) - dh_gencontrol -- -Vgst:Suggests="gstreamer1.0-libav" + DH_GENCONTROL_ARGS += -Vgst:Suggests="gstreamer1.0-libav" else - dh_gencontrol -- -Vgst:Recommends="gstreamer1.0-libav" + DH_GENCONTROL_ARGS += -Vgst:Recommends="gstreamer1.0-libav" endif +override_dh_gencontrol: + dh_gencontrol -- $(DH_GENCONTROL_ARGS) + %: dh $@ --with gir --buildsystem=cmake+ninja @@ -79,7 +94,6 @@ -DCMAKE_CXX_FLAGS_RELEASE="" \ -DCMAKE_CXX_FLAGS_DEBUG="" \ -DENABLE_MINIBROWSER=ON \ - -DUSE_WPE_RENDERER=OFF \ $(EXTRA_CMAKE_ARGUMENTS) # Create a dummy doc directory in case the "nodoc" build option is set @@ -92,9 +106,6 @@ dh_makeshlibs -plibwebkit2gtk-4.0-37 -Xinjected-bundle dh_makeshlibs -plibjavascriptcoregtk-4.0-18 -override_dh_installdocs: - dh_installdocs -A NEWS - override_dh_missing: dh_missing --fail-missing