From b9c539cc50ca4987e10054c85484a474565442d5 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Thu, 13 Feb 2014 09:33:29 -0600 Subject: [PATCH] backport more upstream fixes --- 0010-SVG-stroke-dasharray-not-working.patch | 28 +++++ ...r-not-working-on-software-composited.patch | 87 ++++++++++++++ ...mpile-header-files-it-causes-weird-b.patch | 33 ++++++ 0013-Reskip-custom-shader-tests.patch | 26 ++++ ...ix-crash-when-converting-QObjectList.patch | 53 +++++++++ ...-Jelly-fishes-leave-trails-on-webgl-.patch | 111 ++++++++++++++++++ ...-of-whole-program-optimizations-to-M.patch | 35 ++++++ ...code5-Find-libxslt-and-libxml2-heade.patch | 70 +++++++++++ 0018-Fix-QtWebKit-build-on-ARM-softfp.patch | 42 +++++++ ...up-event-does-not-fire-on-Scroll-Bar.patch | 111 ++++++++++++++++++ ...-to-build-without-using-build-webkit.patch | 79 +++++++++++++ qtwebkit.spec | 25 +++- 12 files changed, 699 insertions(+), 1 deletion(-) create mode 100644 0010-SVG-stroke-dasharray-not-working.patch create mode 100644 0011-Texmap-CSS-filter-not-working-on-software-composited.patch create mode 100644 0012-Do-not-try-to-compile-header-files-it-causes-weird-b.patch create mode 100644 0013-Reskip-custom-shader-tests.patch create mode 100644 0014-Fix-crash-when-converting-QObjectList.patch create mode 100644 0015-WebGL-EFL-Qt-GTK-Jelly-fishes-leave-trails-on-webgl-.patch create mode 100644 0016-Extend-disabling-of-whole-program-optimizations-to-M.patch create mode 100644 0017-OS-X-Mavericks-Xcode5-Find-libxslt-and-libxml2-heade.patch create mode 100644 0018-Fix-QtWebKit-build-on-ARM-softfp.patch create mode 100644 0019-Mouseup-event-does-not-fire-on-Scroll-Bar.patch create mode 100644 0020-Make-it-possible-to-build-without-using-build-webkit.patch diff --git a/0010-SVG-stroke-dasharray-not-working.patch b/0010-SVG-stroke-dasharray-not-working.patch new file mode 100644 index 0000000..ad38074 --- /dev/null +++ b/0010-SVG-stroke-dasharray-not-working.patch @@ -0,0 +1,28 @@ +From da4a1e8a69083f19bb7c4553b04934267d35fdd1 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Thu, 17 Oct 2013 15:55:24 +0200 +Subject: [PATCH 10/20] SVG stroke-dasharray not working + +When creating the QPainterPathStroker we forget to also copy the dashPattern property. + +Task-number: QTBUG-34063 +Change-Id: Idb4d124447e2727c418c8ca5e1de694245f6ba22 +--- + Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp +index 3f8aa8d..25d99ea 100644 +--- a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp ++++ b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp +@@ -609,6 +609,7 @@ void GraphicsContext::strokePath(const Path& path) + QPainterPathStroker pathStroker; + pathStroker.setJoinStyle(pen.joinStyle()); + pathStroker.setDashOffset(pen.dashOffset()); ++ pathStroker.setDashPattern(pen.dashPattern()); + pathStroker.setMiterLimit(pen.miterLimit()); + pathStroker.setCapStyle(pen.capStyle()); + pathStroker.setWidth(pen.widthF()); +-- +1.8.5.3 + diff --git a/0011-Texmap-CSS-filter-not-working-on-software-composited.patch b/0011-Texmap-CSS-filter-not-working-on-software-composited.patch new file mode 100644 index 0000000..5f9d8ca --- /dev/null +++ b/0011-Texmap-CSS-filter-not-working-on-software-composited.patch @@ -0,0 +1,87 @@ +From dbc927aa59d0025f8aecec77d92a3d5166ecc644 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Thu, 17 Oct 2013 16:52:00 +0200 +Subject: [PATCH 11/20] [Texmap] CSS filter not working on software composited + layers https://bugs.webkit.org/show_bug.cgi?id=122159 + +Reviewed by Noam Rosenthal. + +Tell the rendering layer we do not support CSS filters when we do not. This +will make RenderLayer fall back to using its own software implementation. + +* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: +(WebCore::GraphicsLayerTextureMapper::setFilters): +* platform/graphics/texmap/TextureMapperImageBuffer.cpp: +(WebCore::BitmapTextureImageBuffer::applyFilters): + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156710 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + LayoutTests/platform/qt-4.8/TestExpectations | 3 --- + Source/WebCore/ChangeLog | 15 +++++++++++++++ + .../graphics/texmap/GraphicsLayerTextureMapper.cpp | 4 ++++ + .../platform/graphics/texmap/TextureMapperImageBuffer.cpp | 11 ----------- + 4 files changed, 19 insertions(+), 14 deletions(-) + +diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog +index e70115f..f0ebd4c 100644 +--- a/Source/WebCore/ChangeLog ++++ b/Source/WebCore/ChangeLog +@@ -1,3 +1,18 @@ ++2013-10-01 Allan Sandfeld Jensen ++ ++ [Texmap] CSS filter not working on software composited layers ++ https://bugs.webkit.org/show_bug.cgi?id=122159 ++ ++ Reviewed by Noam Rosenthal. ++ ++ Tell the rendering layer we do not support CSS filters when we do not. This ++ will make RenderLayer fall back to using its own software implementation. ++ ++ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: ++ (WebCore::GraphicsLayerTextureMapper::setFilters): ++ * platform/graphics/texmap/TextureMapperImageBuffer.cpp: ++ (WebCore::BitmapTextureImageBuffer::applyFilters): ++ + 2013-09-17 Michael BrĂ¼ning + + Correct range used for Emoji checks. +diff --git a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp +index 364ddd2..bc71371 100644 +--- a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp ++++ b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp +@@ -573,6 +573,10 @@ void GraphicsLayerTextureMapper::setDebugBorder(const Color& color, float width) + #if ENABLE(CSS_FILTERS) + bool GraphicsLayerTextureMapper::setFilters(const FilterOperations& filters) + { ++ TextureMapper* textureMapper = m_layer->textureMapper(); ++ // TextureMapperImageBuffer does not support CSS filters. ++ if (!textureMapper || textureMapper->accelerationMode() == TextureMapper::SoftwareMode) ++ return false; + notifyChange(TextureMapperLayer::FilterChange); + return GraphicsLayer::setFilters(filters); + } +diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp +index e01ed3d..112c795 100644 +--- a/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp ++++ b/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp +@@ -167,17 +167,6 @@ void TextureMapperImageBuffer::drawSolidColor(const FloatRect& rect, const Trans + #if ENABLE(CSS_FILTERS) + PassRefPtr BitmapTextureImageBuffer::applyFilters(TextureMapper*, const BitmapTexture& contentTexture, const FilterOperations& filters) + { +- RefPtr renderer = FilterEffectRenderer::create(); +- renderer->setSourceImageRect(FloatRect(FloatPoint::zero(), contentTexture.size())); +- +- // The document parameter is only needed for CSS shaders. +- if (renderer->build(0 /*document */, filters)) { +- renderer->allocateBackingStoreIfNeeded(); +- GraphicsContext* context = renderer->inputContext(); +- context->drawImageBuffer(static_cast(contentTexture).m_image.get(), ColorSpaceDeviceRGB, IntPoint::zero()); +- renderer->apply(); +- m_image->context()->drawImageBuffer(renderer->output(), ColorSpaceDeviceRGB, renderer->outputRect()); +- } + return this; + } + #endif +-- +1.8.5.3 + diff --git a/0012-Do-not-try-to-compile-header-files-it-causes-weird-b.patch b/0012-Do-not-try-to-compile-header-files-it-causes-weird-b.patch new file mode 100644 index 0000000..55ccf4d --- /dev/null +++ b/0012-Do-not-try-to-compile-header-files-it-causes-weird-b.patch @@ -0,0 +1,33 @@ +From 4e38510bbb77f339623545640178eb41af9f8641 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Mon, 21 Oct 2013 11:27:56 +0200 +Subject: [PATCH 12/20] Do not try to compile header files, it causes weird + build failures on some systems. + +--- + Source/WebCore/Target.pri | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri +index 98eea8c..4544892 100644 +--- a/Source/WebCore/Target.pri ++++ b/Source/WebCore/Target.pri +@@ -167,7 +167,6 @@ SOURCES += \ + bindings/js/JSMessageChannelCustom.cpp \ + bindings/js/JSMessageEventCustom.cpp \ + bindings/js/JSMessagePortCustom.cpp \ +- bindings/js/JSMessagePortCustom.h \ + bindings/js/JSMicroDataItemValueCustom.cpp \ + bindings/js/JSMutationCallbackCustom.cpp \ + bindings/js/JSMutationObserverCustom.cpp \ +@@ -1355,6 +1354,7 @@ HEADERS += \ + bindings/js/JSImageConstructor.h \ + bindings/js/JSLazyEventListener.h \ + bindings/js/JSLocationCustom.h \ ++ bindings/js/JSMessagePortCustom.h \ + bindings/js/JSNodeCustom.h \ + bindings/js/JSNodeFilterCondition.h \ + bindings/js/JSPluginElementFunctions.h \ +-- +1.8.5.3 + diff --git a/0013-Reskip-custom-shader-tests.patch b/0013-Reskip-custom-shader-tests.patch new file mode 100644 index 0000000..7acb1f4 --- /dev/null +++ b/0013-Reskip-custom-shader-tests.patch @@ -0,0 +1,26 @@ +From f28e5ecd4af0f47037dc98eee784ff79f0ee5bff Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Tue, 22 Oct 2013 13:25:35 +0200 +Subject: [PATCH 13/20] Reskip custom shader tests + +--- + LayoutTests/platform/qt-4.8/TestExpectations | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/LayoutTests/platform/qt-4.8/TestExpectations b/LayoutTests/platform/qt-4.8/TestExpectations +index 63aa329..bcdf82f 100644 +--- a/LayoutTests/platform/qt-4.8/TestExpectations ++++ b/LayoutTests/platform/qt-4.8/TestExpectations +@@ -625,6 +625,9 @@ webkit.org/b/6033 css3/filters/nested-filters.html [ ImageOnlyFailure ] + webkit.org/b/6033 css3/filters/regions-expanding.html [ ImageOnlyFailure ] + webkit.org/b/6033 css3/filters/simple-filter-rendering.html [ ImageOnlyFailure ] + ++# CSS shaders only work in qt-wk2 ++css3/filters/custom ++ + # UndoManager is not yet enabled. + webkit.org/b/87908 editing/undomanager [ Skip ] + +-- +1.8.5.3 + diff --git a/0014-Fix-crash-when-converting-QObjectList.patch b/0014-Fix-crash-when-converting-QObjectList.patch new file mode 100644 index 0000000..a4e27d3 --- /dev/null +++ b/0014-Fix-crash-when-converting-QObjectList.patch @@ -0,0 +1,53 @@ +From 970b44d61c9adc51c586069adc902e90bab09666 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Wed, 13 Nov 2013 11:34:35 +0100 +Subject: [PATCH 14/20] Fix crash when converting QObjectList + +We were passing on a PassRefPtr to multiple lower calls, since any +conversion from a PassRefPtr to a RefPtr will reset the PassRefPtr to +null, it should not be used for multiple calls. + +Task-number: QTBUG-34278 +Change-Id: I8d4bf28e25eb6e66baef38e0352c40a08f504538 +--- + Source/WebCore/bridge/qt/qt_runtime.cpp | 3 ++- + Source/WebCore/bridge/qt/qt_runtime_qt4.cpp | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/Source/WebCore/bridge/qt/qt_runtime.cpp b/Source/WebCore/bridge/qt/qt_runtime.cpp +index c058cf6..7a120f2 100644 +--- a/Source/WebCore/bridge/qt/qt_runtime.cpp ++++ b/Source/WebCore/bridge/qt/qt_runtime.cpp +@@ -805,10 +805,11 @@ JSValueRef convertQVariantToValue(JSContextRef context, PassRefPtr r + } else if (type == static_cast(qMetaTypeId())) { + QObjectList ol = variant.value(); + JSObjectRef array = JSObjectMakeArray(context, 0, 0, exception); ++ RefPtr rootRef(root); // We need a real reference, since PassRefPtr may only be passed on to one call. + ExecState* exec = toJS(context); + APIEntryShim entryShim(exec); + for (int i = 0; i < ol.count(); ++i) { +- JSValueRef jsObject = toRef(exec, QtInstance::getQtInstance(ol.at(i), root, QtInstance::QtOwnership)->createRuntimeObject(exec)); ++ JSValueRef jsObject = toRef(exec, QtInstance::getQtInstance(ol.at(i), rootRef, QtInstance::QtOwnership)->createRuntimeObject(exec)); + JSObjectSetPropertyAtIndex(context, array, i, jsObject, /*ignored exception*/0); + } + return array; +diff --git a/Source/WebCore/bridge/qt/qt_runtime_qt4.cpp b/Source/WebCore/bridge/qt/qt_runtime_qt4.cpp +index 7397f1b..44eadec 100644 +--- a/Source/WebCore/bridge/qt/qt_runtime_qt4.cpp ++++ b/Source/WebCore/bridge/qt/qt_runtime_qt4.cpp +@@ -809,10 +809,11 @@ JSValueRef convertQVariantToValue(JSContextRef context, PassRefPtr r + } else if (type == static_cast(qMetaTypeId())) { + QObjectList ol = variant.value(); + JSObjectRef array = JSObjectMakeArray(context, 0, 0, exception); ++ RefPtr rootRef(root); // We need a real reference, since PassRefPtr may only be passed on to one call. + ExecState* exec = toJS(context); + APIEntryShim entryShim(exec); + for (int i = 0; i < ol.count(); ++i) { +- JSValueRef jsObject = toRef(exec, QtInstance::getQtInstance(ol.at(i), root, QtInstance::QtOwnership)->createRuntimeObject(exec)); ++ JSValueRef jsObject = toRef(exec, QtInstance::getQtInstance(ol.at(i), rootRef, QtInstance::QtOwnership)->createRuntimeObject(exec)); + JSObjectSetPropertyAtIndex(context, array, i, jsObject, /*ignored exception*/0); + } + return array; +-- +1.8.5.3 + diff --git a/0015-WebGL-EFL-Qt-GTK-Jelly-fishes-leave-trails-on-webgl-.patch b/0015-WebGL-EFL-Qt-GTK-Jelly-fishes-leave-trails-on-webgl-.patch new file mode 100644 index 0000000..c52b68f --- /dev/null +++ b/0015-WebGL-EFL-Qt-GTK-Jelly-fishes-leave-trails-on-webgl-.patch @@ -0,0 +1,111 @@ +From a84c6dda2ab79017b9fbaa5cfd6ca554654913ac Mon Sep 17 00:00:00 2001 +From: Huang Dongsung +Date: Tue, 14 Jan 2014 14:20:13 +0100 +Subject: [PATCH 15/20] [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on + webgl canvas. https://bugs.webkit.org/show_bug.cgi?id=105326 + +Reviewed by Noam Rosenthal. + +Clear a drawing buffer after compositing if preserveDrawingBuffer is +false. +http://www.khronos.org/registry/webgl/specs/latest/#2.2 + +No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test. + +* platform/graphics/cairo/GraphicsContext3DPrivate.cpp: +(WebCore::GraphicsContext3DPrivate::paintToTextureMapper): +* platform/graphics/efl/GraphicsContext3DPrivate.cpp: +(GraphicsContext3DPrivate::copyToGraphicsSurface): +* platform/graphics/qt/GraphicsContext3DQt.cpp: +(WebCore::GraphicsContext3DPrivate::paintToTextureMapper): +(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface): + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138346 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebCore/ChangeLog | 21 +++++++++++++++++++++ + .../graphics/cairo/GraphicsContext3DPrivate.cpp | 2 ++ + .../graphics/efl/GraphicsContext3DPrivate.cpp | 2 ++ + .../platform/graphics/qt/GraphicsContext3DQt.cpp | 2 ++ + 4 files changed, 27 insertions(+) + +diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog +index f0ebd4c..3fb41fe 100644 +--- a/Source/WebCore/ChangeLog ++++ b/Source/WebCore/ChangeLog +@@ -1222,6 +1222,27 @@ + + 2012-12-20 Huang Dongsung + ++ [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on webgl canvas. ++ https://bugs.webkit.org/show_bug.cgi?id=105326 ++ ++ Reviewed by Noam Rosenthal. ++ ++ Clear a drawing buffer after compositing if preserveDrawingBuffer is ++ false. ++ http://www.khronos.org/registry/webgl/specs/latest/#2.2 ++ ++ No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test. ++ ++ * platform/graphics/cairo/GraphicsContext3DPrivate.cpp: ++ (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): ++ * platform/graphics/efl/GraphicsContext3DPrivate.cpp: ++ (GraphicsContext3DPrivate::copyToGraphicsSurface): ++ * platform/graphics/qt/GraphicsContext3DQt.cpp: ++ (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): ++ (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface): ++ ++2012-12-20 Huang Dongsung ++ + [TexMap] Remove ParentChange in TextureMapperLayer. + https://bugs.webkit.org/show_bug.cgi?id=105494 + +diff --git a/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp b/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp +index 294169e..dc96e2d 100644 +--- a/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp ++++ b/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp +@@ -85,6 +85,8 @@ void GraphicsContext3DPrivate::paintToTextureMapper(TextureMapper* textureMapper + + ASSERT(m_renderStyle == GraphicsContext3D::RenderOffscreen); + ++ m_context->markLayerComposited(); ++ + // FIXME: We do not support mask for the moment with TextureMapperImageBuffer. + if (textureMapper->accelerationMode() != TextureMapper::OpenGLMode) { + GraphicsContext* context = textureMapper->graphicsContext(); +diff --git a/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp b/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp +index c9fc4a0..7f6024b 100644 +--- a/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp ++++ b/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp +@@ -141,6 +141,8 @@ uint32_t GraphicsContext3DPrivate::copyToGraphicsSurface() + if (!m_platformContext || !makeContextCurrent()) + return 0; + ++ m_context->markLayerComposited(); ++ + if (m_pendingSurfaceResize) { + m_pendingSurfaceResize = false; + m_platformSurface->setGeometry(IntRect(0, 0, m_context->m_currentWidth, m_context->m_currentHeight)); +diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp +index e72701d..683b76c 100644 +--- a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp ++++ b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp +@@ -233,6 +233,7 @@ static inline quint32 swapBgrToRgb(quint32 pixel) + #if USE(ACCELERATED_COMPOSITING) + void GraphicsContext3DPrivate::paintToTextureMapper(TextureMapper* textureMapper, const FloatRect& targetRect, const TransformationMatrix& matrix, float opacity, BitmapTexture* mask) + { ++ m_context->markLayerComposited(); + blitMultisampleFramebufferAndRestoreContext(); + + if (textureMapper->accelerationMode() == TextureMapper::OpenGLMode) { +@@ -299,6 +300,7 @@ uint32_t GraphicsContext3DPrivate::copyToGraphicsSurface() + if (!m_graphicsSurface) + return 0; + ++ m_context->markLayerComposited(); + blitMultisampleFramebufferAndRestoreContext(); + makeCurrentIfNeeded(); + m_graphicsSurface->copyFromTexture(m_context->m_texture, IntRect(0, 0, m_context->m_currentWidth, m_context->m_currentHeight)); +-- +1.8.5.3 + diff --git a/0016-Extend-disabling-of-whole-program-optimizations-to-M.patch b/0016-Extend-disabling-of-whole-program-optimizations-to-M.patch new file mode 100644 index 0000000..361fe54 --- /dev/null +++ b/0016-Extend-disabling-of-whole-program-optimizations-to-M.patch @@ -0,0 +1,35 @@ +From 0e53e7835c965e4c0d3ee5be47c67bb037808ac8 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Thu, 2 Jan 2014 14:19:22 +0100 +Subject: [PATCH 16/20] Extend disabling of whole-program-optimizations to MSVC + 2012 and 2013 + +Building with whole-program-optimizations remains a problem with MSVC +2012 and 2013, so we must continue to disable it. + +Task-number: QTBUG-35835 +Change-Id: Ic3131495ce0ce323ad041e51332969cc01b741c5 +Reviewed-by: Simon Hausmann + +Conflicts: + Source/WebCore/WebCore.pri +--- + Source/WebCore/WebCore.pri | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/WebCore.pri b/Source/WebCore/WebCore.pri +index ac96de5..9f91080 100644 +--- a/Source/WebCore/WebCore.pri ++++ b/Source/WebCore/WebCore.pri +@@ -317,7 +317,7 @@ win32 { + } + + # Remove whole program optimizations due to miscompilations +-win32-msvc2005|win32-msvc2008|win32-msvc2010|wince*:{ ++win32-msvc2005|win32-msvc2008|win32-msvc2010|win32-msvc2012|win32-msvc2013|wince*:{ + QMAKE_CFLAGS_LTCG -= -GL + QMAKE_CXXFLAGS_LTCG -= -GL + +-- +1.8.5.3 + diff --git a/0017-OS-X-Mavericks-Xcode5-Find-libxslt-and-libxml2-heade.patch b/0017-OS-X-Mavericks-Xcode5-Find-libxslt-and-libxml2-heade.patch new file mode 100644 index 0000000..960511c --- /dev/null +++ b/0017-OS-X-Mavericks-Xcode5-Find-libxslt-and-libxml2-heade.patch @@ -0,0 +1,70 @@ +From 992932c174d581ad5bf67ee2b2d5fffcdae78198 Mon Sep 17 00:00:00 2001 +From: Eike Ziller +Date: Fri, 6 Dec 2013 12:40:56 +0100 +Subject: [PATCH 17/20] OS X Mavericks/Xcode5: Find libxslt and libxml2 headers + +The development headers are no longer installed in a system location, +but only in the sysroot. + +Change-Id: Ie9b85ff638c435e7e4d0a538f6e72d2cdbae88c8 +Reviewed-by: Simon Hausmann +Reviewed-by: Allan Sandfeld Jensen + +Conflicts: + Source/WebCore/WebCore.pri + Tools/qmake/config.tests/libxml2/libxml2.pro + Tools/qmake/config.tests/libxslt/libxslt.pro +--- + Source/WebCore/WebCore.pri | 2 +- + Tools/qmake/config.tests/libxml2/libxml2.pro | 9 +++++++-- + Tools/qmake/config.tests/libxslt/libxslt.pro | 9 +++++++-- + 3 files changed, 15 insertions(+), 5 deletions(-) + +diff --git a/Source/WebCore/WebCore.pri b/Source/WebCore/WebCore.pri +index 9f91080..d671e9c 100644 +--- a/Source/WebCore/WebCore.pri ++++ b/Source/WebCore/WebCore.pri +@@ -108,7 +108,7 @@ INCLUDEPATH += $$WEBCORE_GENERATED_SOURCES_DIR + contains(DEFINES, ENABLE_XSLT=1) { + contains(DEFINES, WTF_USE_LIBXML2=1) { + mac { +- INCLUDEPATH += /usr/include/libxml2 ++ QMAKE_CXXFLAGS += -iwithsysroot /usr/include/libxslt -iwithsysroot /usr/include/libxml2 + LIBS += -lxml2 -lxslt + } else { + PKGCONFIG += libxslt +diff --git a/Tools/qmake/config.tests/libxml2/libxml2.pro b/Tools/qmake/config.tests/libxml2/libxml2.pro +index d5add8f..7c9baea 100644 +--- a/Tools/qmake/config.tests/libxml2/libxml2.pro ++++ b/Tools/qmake/config.tests/libxml2/libxml2.pro +@@ -1,4 +1,9 @@ + CONFIG -= qt + SOURCES = libxml2.cpp +-CONFIG += link_pkgconfig +-PKGCONFIG += libxml-2.0 ++mac { ++ QMAKE_CXXFLAGS += -iwithsysroot /usr/include/libxml2 ++ LIBS += -lxml2 ++} else { ++ CONFIG += link_pkgconfig ++ PKGCONFIG += libxml-2.0 ++} +diff --git a/Tools/qmake/config.tests/libxslt/libxslt.pro b/Tools/qmake/config.tests/libxslt/libxslt.pro +index 6359de3..967fe16 100644 +--- a/Tools/qmake/config.tests/libxslt/libxslt.pro ++++ b/Tools/qmake/config.tests/libxslt/libxslt.pro +@@ -1,4 +1,9 @@ + CONFIG -= qt + SOURCES = libxslt.cpp +-CONFIG += link_pkgconfig +-PKGCONFIG += libxslt ++mac { ++ QMAKE_CXXFLAGS += -iwithsysroot /usr/include/libxslt -iwithsysroot /usr/include/libxml2 ++ LIBS += -lxslt ++} else { ++ CONFIG += link_pkgconfig ++ PKGCONFIG += libxslt ++} +-- +1.8.5.3 + diff --git a/0018-Fix-QtWebKit-build-on-ARM-softfp.patch b/0018-Fix-QtWebKit-build-on-ARM-softfp.patch new file mode 100644 index 0000000..6c5a273 --- /dev/null +++ b/0018-Fix-QtWebKit-build-on-ARM-softfp.patch @@ -0,0 +1,42 @@ +From 1dc5bf780f19bb9dc3a0ac1ae99a4182f4a6f289 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Tue, 17 Dec 2013 12:26:58 +0100 +Subject: [PATCH 18/20] Fix QtWebKit build on ARM softfp + +The low level interpreter depends on hardfp, so we need to disable it +when builing on ARM targets with softfp. + +Task-number: QTBUG-35681 +Change-Id: I8aaef546b92182a87cc7116ac452d8725de6a7db +Reviewed-by: Jocelyn Turcotte + +Conflicts: + Source/WTF/wtf/Platform.h +--- + Source/WTF/wtf/Platform.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h +index 5782ce4..af2b8a3 100644 +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -911,6 +911,16 @@ + #define ENABLE_DISASSEMBLER 1 + #endif + ++/* Disable the LLINT on versions of GCC prior to 4.3. Mainly due to buggy assembler on OSX 10.6, the only supported platform using that old a version. */ ++#if !defined(ENABLE_LLINT) && COMPILER(GCC) && !GCC_VERSION_AT_LEAST(4, 3, 0) ++#define ENABLE_LLINT 0 ++#endif ++ ++/* LLINT on ARM depends on an FPU */ ++#if !defined(ENABLE_LLINT) && CPU(ARM) && !CPU(ARM_HARDFP) ++#define ENABLE_LLINT 0 ++#endif ++ + /* On some of the platforms where we have a JIT, we want to also have the + low-level interpreter. */ + #if !defined(ENABLE_LLINT) \ +-- +1.8.5.3 + diff --git a/0019-Mouseup-event-does-not-fire-on-Scroll-Bar.patch b/0019-Mouseup-event-does-not-fire-on-Scroll-Bar.patch new file mode 100644 index 0000000..6ea347f --- /dev/null +++ b/0019-Mouseup-event-does-not-fire-on-Scroll-Bar.patch @@ -0,0 +1,111 @@ +From c8040172a48006475b7f34c5ebe04ee286c0a32e Mon Sep 17 00:00:00 2001 +From: Mike West +Date: Wed, 22 Jan 2014 14:12:39 +0100 +Subject: [PATCH 19/20] Mouseup event does not fire on Scroll Bar + https://bugs.webkit.org/show_bug.cgi?id=25811 + +Reviewed by Tony Chang. + +Source/WebCore: + +Currently, clicking on a scrollbar fires a mousedown event, but not a +mouseup event. This causes problems for code like jQuery UI's +draggable[1], as the drag starts, but is never cancelled. Other use +cases are noted in the slightly old Chromium bug[2]. + +If a mouseup event is received after a mousedown event on a scrollbar, +this patch dispatches a mouseup event on the same node the mousedown +event dispatched on. This matches Gecko's behavior. + +[1]: http://bugs.jqueryui.com/ticket/6925 +[2]: http://crbug.com/14204 + +Tests: fast/scrolling/scrollbar-mousedown-mouseup.html + fast/scrolling/scrollbar-mousedown-move-mouseup.html + +* page/EventHandler.cpp: +(WebCore::EventHandler::handleMouseReleaseEvent): + If a mouseup event follow a mousedown event on a scrollbar, + dispatch an event on the same node from which the mousedown event + was triggered. + +LayoutTests: + +* fast/scrolling/scrollbar-mousedown-mouseup-expected.txt: Added. +* fast/scrolling/scrollbar-mousedown-mouseup.html: Added. +* fast/scrolling/scrollbar-mousedown-move-mouseup-expected.txt: Added. +* fast/scrolling/scrollbar-mousedown-move-mouseup.html: Added. + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143560 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + LayoutTests/ChangeLog | 12 ++++ + .../scrollbar-mousedown-mouseup-expected.txt | 19 ++++++ + .../scrolling/scrollbar-mousedown-mouseup.html | 67 ++++++++++++++++++++ + .../scrollbar-mousedown-move-mouseup-expected.txt | 16 +++++ + .../scrollbar-mousedown-move-mouseup.html | 72 ++++++++++++++++++++++ + Source/WebCore/ChangeLog | 28 +++++++++ + Source/WebCore/page/EventHandler.cpp | 5 +- + 7 files changed, 218 insertions(+), 1 deletion(-) + create mode 100644 LayoutTests/fast/scrolling/scrollbar-mousedown-mouseup-expected.txt + create mode 100644 LayoutTests/fast/scrolling/scrollbar-mousedown-mouseup.html + create mode 100644 LayoutTests/fast/scrolling/scrollbar-mousedown-move-mouseup-expected.txt + create mode 100644 LayoutTests/fast/scrolling/scrollbar-mousedown-move-mouseup.html + +diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog +index 3fb41fe..8f1c3cc 100644 +--- a/Source/WebCore/ChangeLog ++++ b/Source/WebCore/ChangeLog +@@ -627,6 +627,34 @@ + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::containingColumnsBlock): + ++2013-02-20 Mike West ++ ++ Mouseup event does not fire on Scroll Bar ++ https://bugs.webkit.org/show_bug.cgi?id=25811 ++ ++ Reviewed by Tony Chang. ++ ++ Currently, clicking on a scrollbar fires a mousedown event, but not a ++ mouseup event. This causes problems for code like jQuery UI's ++ draggable[1], as the drag starts, but is never cancelled. Other use ++ cases are noted in the slightly old Chromium bug[2]. ++ ++ If a mouseup event is received after a mousedown event on a scrollbar, ++ this patch dispatches a mouseup event on the same node the mousedown ++ event dispatched on. This matches Gecko's behavior. ++ ++ [1]: http://bugs.jqueryui.com/ticket/6925 ++ [2]: http://crbug.com/14204 ++ ++ Tests: fast/scrolling/scrollbar-mousedown-mouseup.html ++ fast/scrolling/scrollbar-mousedown-move-mouseup.html ++ ++ * page/EventHandler.cpp: ++ (WebCore::EventHandler::handleMouseReleaseEvent): ++ If a mouseup event follow a mousedown event on a scrollbar, ++ dispatch an event on the same node from which the mousedown event ++ was triggered. ++ + 2013-02-19 Andras Becsi + + [Qt] Fix compilation if Qt was configured with -no-rtti +diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp +index 22d616e..68f2359 100644 +--- a/Source/WebCore/page/EventHandler.cpp ++++ b/Source/WebCore/page/EventHandler.cpp +@@ -1955,7 +1955,10 @@ bool EventHandler::handleMouseReleaseEvent(const PlatformMouseEvent& mouseEvent) + + if (m_lastScrollbarUnderMouse) { + invalidateClick(); +- return m_lastScrollbarUnderMouse->mouseUp(mouseEvent); ++ m_lastScrollbarUnderMouse->mouseUp(mouseEvent); ++ bool cancelable = true; ++ bool setUnder = false; ++ return !dispatchMouseEvent(eventNames().mouseupEvent, m_lastNodeUnderMouse.get(), cancelable, m_clickCount, mouseEvent, setUnder); + } + + HitTestRequest request(HitTestRequest::Release); +-- +1.8.5.3 + diff --git a/0020-Make-it-possible-to-build-without-using-build-webkit.patch b/0020-Make-it-possible-to-build-without-using-build-webkit.patch new file mode 100644 index 0000000..5075026 --- /dev/null +++ b/0020-Make-it-possible-to-build-without-using-build-webkit.patch @@ -0,0 +1,79 @@ +From 9ced0261192be0072b60de79b894bc59ccef77c9 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Wed, 22 Jan 2014 15:49:39 +0100 +Subject: [PATCH 20/20] Make it possible to build without using build-webkit + script + +This makes qmake 4 also evaluate features.prf, and caches the result +in .qmake.cache. +--- + .qmake.cache.in | 2 ++ + Makefile | 17 ----------------- + Source/WTF/WTF.pri | 2 ++ + WebKit.pro | 3 +++ + 4 files changed, 7 insertions(+), 17 deletions(-) + create mode 100644 .qmake.cache.in + delete mode 100644 Makefile + +diff --git a/.qmake.cache.in b/.qmake.cache.in +new file mode 100644 +index 0000000..d8ed6e8 +--- /dev/null ++++ b/.qmake.cache.in +@@ -0,0 +1,2 @@ ++DEFINES = $$DEFINES ++CONFIG = $$CONFIG +\ No newline at end of file +diff --git a/Makefile b/Makefile +deleted file mode 100644 +index 19d889a..0000000 +--- a/Makefile ++++ /dev/null +@@ -1,17 +0,0 @@ +-MODULES = Source Tools +- +-all: +- @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ +- if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done +- +-debug d development dev develop: +- @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ +- if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done +- +-release r deployment dep deploy: +- @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ +- if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done +- +-clean: +- @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ +- if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done +diff --git a/Source/WTF/WTF.pri b/Source/WTF/WTF.pri +index 9423b53..f1ce0a8 100644 +--- a/Source/WTF/WTF.pri ++++ b/Source/WTF/WTF.pri +@@ -22,6 +22,8 @@ haveQt(5) { + error("To build QtWebKit with Qt 5 you need to build Qt 5 with libICU support. Check for ICU support being mentioned in qtbase/config.summary.") + } + } ++} else { ++ load(.qmake.cache) + } + + linux-*:contains(DEFINES, WTF_USE_GSTREAMER=1) { +diff --git a/WebKit.pro b/WebKit.pro +index 75b9159..fcc7c8d 100644 +--- a/WebKit.pro ++++ b/WebKit.pro +@@ -11,6 +11,9 @@ equals(QT_MAJOR_VERSION, 4) { + error("The environment variable QMAKEPATH needs to point to $WEBKITSRC/Tools/qmake") + # Otherwise we won't pick up the feature prf files needed for the build + } ++ CONFIG += production_build ++ include(Tools/qmake/configure.pri) ++ QMAKE_SUBSTITUTES += .qmake.cache.in + } else:!webkit_configured { + CONFIG += webkit_configured + CONFIG += production_build +-- +1.8.5.3 + diff --git a/qtwebkit.spec b/qtwebkit.spec index 518a6e0..b509262 100644 --- a/qtwebkit.spec +++ b/qtwebkit.spec @@ -3,7 +3,7 @@ Name: qtwebkit Summary: Qt WebKit bindings Version: 2.3.3 -Release: 6%{?dist} +Release: 7%{?dist} License: LGPLv2 with exceptions or GPLv3 with exceptions URL: http://trac.webkit.org/wiki/QtWebKit @@ -55,6 +55,16 @@ patch106: 0006-JSC-ARM-traditional-failing-on-Octane-NavierStokes-t.patch Patch107: 0007-Correct-range-used-for-Emoji-checks.patch Patch108: 0008-Qt-RepaintRequested-signal-sometimes-not-emitted.patch Patch109: 0009-TexMap-Remove-ParentChange-in-TextureMapperLayer.patch +Patch110: 0010-SVG-stroke-dasharray-not-working.patch +Patch111: 0011-Texmap-CSS-filter-not-working-on-software-composited.patch +Patch112: 0012-Do-not-try-to-compile-header-files-it-causes-weird-b.patch +Patch114: 0014-Fix-crash-when-converting-QObjectList.patch +Patch115: 0015-WebGL-EFL-Qt-GTK-Jelly-fishes-leave-trails-on-webgl-.patch +Patch116: 0016-Extend-disabling-of-whole-program-optimizations-to-M.patch +Patch117: 0017-OS-X-Mavericks-Xcode5-Find-libxslt-and-libxml2-heade.patch +Patch118: 0018-Fix-QtWebKit-build-on-ARM-softfp.patch +Patch119: 0019-Mouseup-event-does-not-fire-on-Scroll-Bar.patch +Patch120: 0020-Make-it-possible-to-build-without-using-build-webkit.patch BuildRequires: bison BuildRequires: chrpath @@ -122,6 +132,16 @@ Provides: qt4-webkit-devel%{?_isa} = 2:%{version}-%{release} %patch107 -p1 -b .0007 %patch108 -p1 -b .0008 %patch109 -p1 -b .0009 +%patch110 -p1 -b .0010 +%patch111 -p1 -b .0011 +%patch112 -p1 -b .0012 +%patch114 -p1 -b .0014 +%patch115 -p1 -b .0015 +%patch116 -p1 -b .0016 +%patch117 -p1 -b .0017 +%patch118 -p1 -b .0018 +%patch119 -p1 -b .0019 +%patch120 -p1 -b .0020 @@ -203,6 +223,9 @@ popd %changelog +* Thu Feb 13 2014 Rex Dieter 2.3.3-7 +- backport more upstream fixes + * Thu Feb 13 2014 Rex Dieter 2.3.3-6 - ftbfs using bison3