qtwebkit-2.3.4

This commit is contained in:
Rex Dieter 2014-10-16 11:55:14 -05:00
parent 8ceb9b9ec5
commit 01ad6ba8be
28 changed files with 63 additions and 1634 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
/qtwebkit-developers-qtwebkit-qtwebkit-2.1.1.tar.xz
/qtwebkit-2.3.3.tar.xz
/qtwebkit-2.3.4.tar.gz

View File

@ -1,81 +0,0 @@
From 14dca2f9fc4fd1a370cdf7d0d690472e1f56da8b Mon Sep 17 00:00:00 2001
From: ChangSeok Oh <shivamidow@gmail.com>
Date: Tue, 3 Sep 2013 13:51:29 +0200
Subject: [PATCH 2/9] [Texmap][GTK] The poster-circle doesn't appear.
https://bugs.webkit.org/show_bug.cgi?id=106672
Patch by ChangSeok Oh <shivamidow@gmail.com> on 2013-01-21
Reviewed by Noam Rosenthal.
Source/WebCore:
We need to call setNeedsDisplay to redraw GraphicsLayer after we set drawsContent
a new value for the layer. Otherwise we can't get a chance for first drawing the layer.
Test: compositing/visibility/visibility-composited-animation.html
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
LayoutTests:
A new pixel test is added. It tests if animated layer is drawn for the first scene.
* compositing/visibility/visibility-composited-animation-expected.png: Added.
* compositing/visibility/visibility-composited-animation-expected.txt: Added.
* compositing/visibility/visibility-composited-animation.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@140347 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
LayoutTests/ChangeLog | 13 +++++++
.../visibility-composited-animation-expected.txt | 2 +
.../visibility-composited-animation.html | 45 ++++++++++++++++++++++
Source/WebCore/ChangeLog | 15 ++++++++
.../graphics/texmap/TextureMapperLayer.cpp | 3 ++
5 files changed, 78 insertions(+)
create mode 100644 LayoutTests/compositing/visibility/visibility-composited-animation-expected.txt
create mode 100644 LayoutTests/compositing/visibility/visibility-composited-animation.html
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index a220029..16d902c 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -838,6 +838,21 @@
* dom/Element.h:
(Element):
+2013-01-21 ChangSeok Oh <shivamidow@gmail.com>
+
+ [Texmap][GTK] The poster-circle doesn't appear.
+ https://bugs.webkit.org/show_bug.cgi?id=106672
+
+ Reviewed by Noam Rosenthal.
+
+ We need to call setNeedsDisplay to redraw GraphicsLayer after we set drawsContent
+ a new value for the layer. Otherwise we can't get a chance for first drawing the layer.
+
+ Test: compositing/visibility/visibility-composited-animation.html
+
+ * platform/graphics/texmap/TextureMapperLayer.cpp:
+ (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
+
2013-01-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt][CSS Shaders] Make custom filter render in Wk1 mode
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
index d2a10aa..4024333 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
@@ -400,6 +400,9 @@ void TextureMapperLayer::flushCompositingStateSelf(GraphicsLayerTextureMapper* g
m_size = graphicsLayer->size();
+ if ((changeMask & DrawsContentChange) && graphicsLayer->drawsContent())
+ graphicsLayer->setNeedsDisplay();
+
if (changeMask & MaskLayerChange) {
if (TextureMapperLayer* layer = toTextureMapperLayer(graphicsLayer->maskLayer()))
layer->m_effectTarget = this;
--
1.8.3.1

View File

@ -1,80 +0,0 @@
From 974c1dfeb826cc6d6e96d316d63bf13c645b1ac8 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
Date: Mon, 9 Sep 2013 14:35:31 +0200
Subject: [PATCH 3/9] [Qt] Tiled-backing store not clipped to frame or visible
rect https://bugs.webkit.org/show_bug.cgi?id=120606
Reviewed by Jocelyn Turcotte.
Clip painting from the tiled-backing store to the frame rect.
* WebCoreSupport/QWebFrameAdapter.cpp:
(QWebFrameAdapter::renderFromTiledBackingStore):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WebKit/qt/Api/qwebframe.cpp | 17 ++++++++---------
Source/WebKit/qt/ChangeLog | 12 ++++++++++++
2 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/Source/WebKit/qt/Api/qwebframe.cpp b/Source/WebKit/qt/Api/qwebframe.cpp
index f37457e..6205a9c 100644
--- a/Source/WebKit/qt/Api/qwebframe.cpp
+++ b/Source/WebKit/qt/Api/qwebframe.cpp
@@ -200,25 +200,24 @@ void QWebFramePrivate::renderFromTiledBackingStore(GraphicsContext* context, con
if (vector.isEmpty())
return;
- QPainter* painter = context->platformContext();
-
WebCore::FrameView* view = frame->view();
-
+
int scrollX = view->scrollX();
int scrollY = view->scrollY();
- context->translate(-scrollX, -scrollY);
+ QRect frameRect = view->frameRect();
for (int i = 0; i < vector.size(); ++i) {
const QRect& clipRect = vector.at(i);
- painter->save();
-
- QRect rect = clipRect.translated(scrollX, scrollY);
- painter->setClipRect(rect, Qt::IntersectClip);
+ context->save();
+ QRect rect = clipRect.intersected(frameRect);
+ context->translate(-scrollX, -scrollY);
+ rect.translate(scrollX, scrollY);
+ context->clip(rect);
frame->tiledBackingStore()->paint(context, rect);
- painter->restore();
+ context->restore();
}
#if USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index ecb4acb..62f60c5 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,15 @@
+2013-09-03 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ [Qt] Tiled-backing store not clipped to frame or visible rect
+ https://bugs.webkit.org/show_bug.cgi?id=120606
+
+ Reviewed by Jocelyn Turcotte.
+
+ Clip painting from the tiled-backing store to the frame rect.
+
+ * WebCoreSupport/QWebFrameAdapter.cpp:
+ (QWebFrameAdapter::renderFromTiledBackingStore):
+
2013-06-05 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Handle Return key without key text
--
1.8.3.1

View File

@ -1,66 +0,0 @@
From b2a2856f9102515e9a9a048655f08d9c8152b179 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
Date: Mon, 9 Sep 2013 15:00:54 +0200
Subject: [PATCH 4/9] [Qt] Images scaled poorly on composited canvas
https://bugs.webkit.org/show_bug.cgi?id=120632
Reviewed by Jocelyn Turcotte.
Explicitly set a imageInterpolationQuality on the TextureMapper, because
InterpolationDefault may be interpreted differently by nested GraphicsContexts.
* WebCoreSupport/TextureMapperLayerClientQt.cpp:
(TextureMapperLayerClientQt::renderCompositedLayers):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WebKit/qt/Api/qwebframe.cpp | 9 ++++++++-
Source/WebKit/qt/ChangeLog | 13 +++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/Source/WebKit/qt/Api/qwebframe.cpp b/Source/WebKit/qt/Api/qwebframe.cpp
index 6205a9c..b54b9c0 100644
--- a/Source/WebKit/qt/Api/qwebframe.cpp
+++ b/Source/WebKit/qt/Api/qwebframe.cpp
@@ -234,7 +234,14 @@ void QWebFramePrivate::renderCompositedLayers(GraphicsContext* context, const In
return;
textureMapper->setGraphicsContext(context);
- textureMapper->setImageInterpolationQuality(context->imageInterpolationQuality());
+ // GraphicsContext::imageInterpolationQuality is always InterpolationDefault here,
+ // but 'default' may be interpreted differently due to a different backend QPainter,
+ // so we need to set an explicit imageInterpolationQuality.
+ if (context->platformContext()->renderHints() & QPainter::SmoothPixmapTransform)
+ textureMapper->setImageInterpolationQuality(WebCore::InterpolationMedium);
+ else
+ textureMapper->setImageInterpolationQuality(WebCore::InterpolationNone);
+
textureMapper->setTextDrawingMode(context->textDrawingMode());
QPainter* painter = context->platformContext();
const QTransform transform = painter->worldTransform();
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index 62f60c5..ec00b6e 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,5 +1,18 @@
2013-09-03 Allan Sandfeld Jensen <allan.jensen@digia.com>
+ [Qt] Images scaled poorly on composited canvas
+ https://bugs.webkit.org/show_bug.cgi?id=120632
+
+ Reviewed by Jocelyn Turcotte.
+
+ Explicitly set a imageInterpolationQuality on the TextureMapper, because
+ InterpolationDefault may be interpreted differently by nested GraphicsContexts.
+
+ * WebCoreSupport/TextureMapperLayerClientQt.cpp:
+ (TextureMapperLayerClientQt::renderCompositedLayers):
+
+2013-09-03 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
[Qt] Tiled-backing store not clipped to frame or visible rect
https://bugs.webkit.org/show_bug.cgi?id=120606
--
1.8.3.1

View File

@ -1,59 +0,0 @@
From 9fe66e8b769e6fe1c66b8d00b6c8e6403d9d6303 Mon Sep 17 00:00:00 2001
From: Konstantin Tokarev <ktokarev@smartlabs.tv>
Date: Tue, 10 Sep 2013 10:57:29 +0200
Subject: [PATCH 5/9] Port of r118587 to TextBreakIteratorQt.cpp.
---
.../WebCore/platform/text/qt/TextBreakIteratorQt.cpp | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp b/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp
index 0d9d48d..96436a7 100644
--- a/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp
+++ b/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp
@@ -25,6 +25,7 @@
#include <algorithm>
#include <qdebug.h>
#include <wtf/Atomics.h>
+#include <wtf/ThreadingPrimitives.h>
// #define DEBUG_TEXT_ITERATORS
#ifdef DEBUG_TEXT_ITERATORS
@@ -70,10 +71,24 @@ namespace WebCore {
static TextBreakIterator* nonSharedCharacterBreakIterator;
+ static inline bool compareAndSwapNonSharedCharacterBreakIterator(TextBreakIterator* expected, TextBreakIterator* newValue)
+ {
+#if ENABLE(COMPARE_AND_SWAP)
+ return weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), expected, newValue);
+#else
+ DEFINE_STATIC_LOCAL(Mutex, nonSharedCharacterBreakIteratorMutex, ());
+ MutexLocker locker(nonSharedCharacterBreakIteratorMutex);
+ if (nonSharedCharacterBreakIterator != expected)
+ return false;
+ nonSharedCharacterBreakIterator = newValue;
+ return true;
+#endif
+ }
+
NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator(const UChar* buffer, int length)
{
m_iterator = nonSharedCharacterBreakIterator;
- bool createdIterator = m_iterator && weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), m_iterator, 0);
+ bool createdIterator = m_iterator && compareAndSwapNonSharedCharacterBreakIterator(m_iterator, 0);
if (!createdIterator)
m_iterator = new TextBreakIterator();
if (!setUpIterator(*m_iterator, QTextBoundaryFinder::Grapheme, buffer, length)) {
@@ -84,7 +99,7 @@ namespace WebCore {
NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator()
{
- if (!weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), 0, m_iterator))
+ if (!compareAndSwapNonSharedCharacterBreakIterator(m_iterator, 0))
delete m_iterator;
}
--
1.8.3.1

View File

@ -1,60 +0,0 @@
From 0609a6521a7750cc9b7ba9882034b47c754ca538 Mon Sep 17 00:00:00 2001
From: Gabor Rapcsanyi <rgabor@webkit.org>
Date: Tue, 10 Sep 2013 16:16:16 +0200
Subject: [PATCH 6/9] JSC ARM traditional failing on Octane NavierStokes test
https://bugs.webkit.org/show_bug.cgi?id=115626
Reviewed by Zoltan Herczeg.
Change the ARM traditional assembler to use double precision on value
conversions.
* assembler/ARMAssembler.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149601 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/JavaScriptCore/ChangeLog | 12 ++++++++++++
Source/JavaScriptCore/assembler/ARMAssembler.h | 4 ++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 4841d37..669ed57 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -17,6 +17,18 @@
(UdOptableXmlParser.parse):
(printFn):
+2013-05-06 Gabor Rapcsanyi <rgabor@webkit.org>
+
+ JSC ARM traditional failing on Octane NavierStokes test
+ https://bugs.webkit.org/show_bug.cgi?id=115626
+
+ Reviewed by Zoltan Herczeg.
+
+ Change the ARM traditional assembler to use double precision on value
+ conversions.
+
+ * assembler/ARMAssembler.h:
+
2013-04-23 Allan Sandfeld Jensen <allan.jensen@digia.com>
REGRESSION(r148790) Made 7 tests fail on x86 32bit
diff --git a/Source/JavaScriptCore/assembler/ARMAssembler.h b/Source/JavaScriptCore/assembler/ARMAssembler.h
index ebab46d..c03fc47 100644
--- a/Source/JavaScriptCore/assembler/ARMAssembler.h
+++ b/Source/JavaScriptCore/assembler/ARMAssembler.h
@@ -163,8 +163,8 @@ namespace JSC {
VMOV_VFP32 = 0x0e000a10,
VMOV_ARM32 = 0x0e100a10,
VCVT_F64_S32 = 0x0eb80bc0,
- VCVT_S32_F64 = 0x0ebd0b40,
- VCVT_U32_F64 = 0x0ebc0b40,
+ VCVT_S32_F64 = 0x0ebd0bc0,
+ VCVT_U32_F64 = 0x0ebc0bc0,
VCVT_F32_F64 = 0x0eb70bc0,
VCVT_F64_F32 = 0x0eb70ac0,
VMRS_APSR = 0x0ef1fa10,
--
1.8.3.1

View File

@ -1,69 +0,0 @@
From 41c7cbdead4d77254bf59397875dcc5cbb1e0a9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@digia.com>
Date: Wed, 18 Sep 2013 10:42:53 +0200
Subject: [PATCH 7/9] Correct range used for Emoji checks.
https://bugs.webkit.org/show_bug.cgi?id=121486
Reviewed by Allan Sandfeld Jensen.
Found and reported by David Binderman via Qt bug tracker.
The check if a character was in the Emoji range always evaluated to
false due to the upper range limit being lower than the lower limit.
Changed the upper limit to the highest assigned character from the
"Transport and Map Symbols" (0x1F6C5) as that seems to have been the
intended upper range limit of this check.
* platform/graphics/Font.cpp:
(WebCore::Font::isCJKIdeographOrSymbol):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WebCore/ChangeLog | 19 +++++++++++++++++++
Source/WebCore/platform/graphics/Font.cpp | 2 +-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 16d902c..75c29ab 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2013-09-17 Michael Brüning <michael.bruning@digia.com>
+
+ Correct range used for Emoji checks.
+ https://bugs.webkit.org/show_bug.cgi?id=121486
+
+ Reviewed by Allan Sandfeld Jensen.
+
+ Found and reported by David Binderman via Qt bug tracker.
+
+ The check if a character was in the Emoji range always evaluated to
+ false due to the upper range limit being lower than the lower limit.
+
+ Changed the upper limit to the highest assigned character from the
+ "Transport and Map Symbols" (0x1F6C5) as that seems to have been the
+ intended upper range limit of this check.
+
+ * platform/graphics/Font.cpp:
+ (WebCore::Font::isCJKIdeographOrSymbol):
+
2013-08-19 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] QtWebKit (using the Arora browser) displays the border radii (radius) of a button very ugly
diff --git a/Source/WebCore/platform/graphics/Font.cpp b/Source/WebCore/platform/graphics/Font.cpp
index fd3e414..e0963f6 100644
--- a/Source/WebCore/platform/graphics/Font.cpp
+++ b/Source/WebCore/platform/graphics/Font.cpp
@@ -616,7 +616,7 @@ bool Font::isCJKIdeographOrSymbol(UChar32 c)
return true;
// Emoji.
- if (c >= 0x1F200 && c <= 0x1F6F)
+ if (c >= 0x1F200 && c <= 0x1F6C5)
return true;
return isCJKIdeograph(c);
--
1.8.3.1

View File

@ -1,42 +0,0 @@
From c2e59a0a266e61e6688311df9aadadbb0eaf997b Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
Date: Thu, 26 Sep 2013 13:40:03 +0200
Subject: [PATCH 8/9] [Qt] RepaintRequested signal sometimes not emitted
https://bugs.webkit.org/show_bug.cgi?id=121790
Reviewed by Simon Hausmann.
We should also emit repaintRequested after calling PageClient::update().
* WidgetSupport/PageClientQt.cpp:
(WebCore::PageClientQWidget::repaintViewport):
(WebCore::PageClientQGraphicsWidget::repaintViewport):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp
index 9979401..a33fb1c 100644
--- a/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp
@@ -162,6 +162,7 @@ void PageClientQWidget::syncLayers(Timer<PageClientQWidget>*)
if (TextureMapperLayerClient->rootLayer()->descendantsOrSelfHaveRunningAnimations() && !syncTimer.isActive())
syncTimer.startOneShot(1.0 / 60.0);
update(view->rect());
+ QMetaObject::invokeMethod(page, "repaintRequested", Qt::QueuedConnection, Q_ARG(QRect, view->rect()));
}
#endif
@@ -294,6 +295,7 @@ void PageClientQGraphicsWidget::syncLayers()
if (TextureMapperLayerClient->rootLayer()->descendantsOrSelfHaveRunningAnimations() && !syncTimer.isActive())
syncTimer.startOneShot(1.0 / 60.0);
update(view->boundingRect().toAlignedRect());
+ QMetaObject::invokeMethod(page, "repaintRequested", Qt::QueuedConnection, Q_ARG(QRect, view->boundingRect().toAlignedRect()));
}
void PageClientQGraphicsWidget::setRootGraphicsLayer(GraphicsLayer* layer)
--
1.8.3.1

View File

@ -1,276 +0,0 @@
From fa54af90c55c5264e2e2510a24311a77c9e569b0 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
Date: Thu, 26 Sep 2013 13:43:10 +0200
Subject: [PATCH 9/9] [TexMap] Remove ParentChange in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105494
Patch by Huang Dongsung <luxtella@company100.net> on 2012-12-20
Reviewed by Noam Rosenthal.
ParentChange is useless, because ChildrenChange is enough. In addition,
GraphicsLayer uses setParent() method internally. This patch copies
GraphicsLayer::setChildren() into TextureMapperLayer::setChildren().
No new tests. Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore):
(WebCore::GraphicsLayerTextureMapper::setChildren):
Match the similar style of replaceChild().
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
(WebCore::TextureMapperLayer::setChildren):
Copied from GraphicsLayer::setChildren().
(WebCore):
(WebCore::TextureMapperLayer::addChild):
Copied from GraphicsLayer::addChild().
(WebCore::TextureMapperLayer::removeFromParent):
Copied from GraphicsLayer::removeFromParent().
(WebCore::TextureMapperLayer::removeAllChildren):
Copied from GraphicsLayer::removeAllChildren().
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138291 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WebCore/ChangeLog | 33 +++++++++
.../graphics/texmap/GraphicsLayerTextureMapper.cpp | 25 ++-----
.../graphics/texmap/GraphicsLayerTextureMapper.h | 2 -
.../graphics/texmap/TextureMapperLayer.cpp | 79 +++++++++++++---------
.../platform/graphics/texmap/TextureMapperLayer.h | 6 +-
5 files changed, 91 insertions(+), 54 deletions(-)
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 75c29ab..e70115f 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1205,6 +1205,39 @@
(GenerateGetOwnPropertySlotBody): Use getStaticValueSlotEntryWithoutCaching to climb up the class
hierarchy.
+2012-12-20 Huang Dongsung <luxtella@company100.net>
+
+ [TexMap] Remove ParentChange in TextureMapperLayer.
+ https://bugs.webkit.org/show_bug.cgi?id=105494
+
+ Reviewed by Noam Rosenthal.
+
+ ParentChange is useless, because ChildrenChange is enough. In addition,
+ GraphicsLayer uses setParent() method internally. This patch copies
+ GraphicsLayer::setChildren() into TextureMapperLayer::setChildren().
+
+ No new tests. Covered by existing tests.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore):
+ (WebCore::GraphicsLayerTextureMapper::setChildren):
+ Match the similar style of replaceChild().
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ (GraphicsLayerTextureMapper):
+ * platform/graphics/texmap/TextureMapperLayer.cpp:
+ (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
+ (WebCore::TextureMapperLayer::setChildren):
+ Copied from GraphicsLayer::setChildren().
+ (WebCore):
+ (WebCore::TextureMapperLayer::addChild):
+ Copied from GraphicsLayer::addChild().
+ (WebCore::TextureMapperLayer::removeFromParent):
+ Copied from GraphicsLayer::removeFromParent().
+ (WebCore::TextureMapperLayer::removeAllChildren):
+ Copied from GraphicsLayer::removeAllChildren().
+ * platform/graphics/texmap/TextureMapperLayer.h:
+ (TextureMapperLayer):
+
2012-12-13 Filip Pizlo <fpizlo@apple.com>
Named lookups on HTML documents produce inconsistent results in JavaScriptCore bindings
diff --git a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp
index 5ba1090..364ddd2 100644
--- a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp
+++ b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp
@@ -123,18 +123,13 @@ void GraphicsLayerTextureMapper::setNeedsDisplayInRect(const FloatRect& rect)
/* \reimp (GraphicsLayer.h)
*/
-void GraphicsLayerTextureMapper::setParent(GraphicsLayer* layer)
-{
- notifyChange(TextureMapperLayer::ParentChange);
- GraphicsLayer::setParent(layer);
-}
-
-/* \reimp (GraphicsLayer.h)
-*/
bool GraphicsLayerTextureMapper::setChildren(const Vector<GraphicsLayer*>& children)
{
- notifyChange(TextureMapperLayer::ChildrenChange);
- return GraphicsLayer::setChildren(children);
+ if (GraphicsLayer::setChildren(children)) {
+ notifyChange(TextureMapperLayer::ChildrenChange);
+ return true;
+ }
+ return false;
}
/* \reimp (GraphicsLayer.h)
@@ -182,16 +177,6 @@ bool GraphicsLayerTextureMapper::replaceChild(GraphicsLayer* oldChild, GraphicsL
/* \reimp (GraphicsLayer.h)
*/
-void GraphicsLayerTextureMapper::removeFromParent()
-{
- if (!parent())
- return;
- notifyChange(TextureMapperLayer::ParentChange);
- GraphicsLayer::removeFromParent();
-}
-
-/* \reimp (GraphicsLayer.h)
-*/
void GraphicsLayerTextureMapper::setMaskLayer(GraphicsLayer* value)
{
if (value == maskLayer())
diff --git a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
index 00b0fe7..5a11503 100644
--- a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
+++ b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
@@ -42,14 +42,12 @@ public:
virtual void setNeedsDisplay();
virtual void setContentsNeedsDisplay();
virtual void setNeedsDisplayInRect(const FloatRect&);
- virtual void setParent(GraphicsLayer* layer);
virtual bool setChildren(const Vector<GraphicsLayer*>&);
virtual void addChild(GraphicsLayer*);
virtual void addChildAtIndex(GraphicsLayer*, int index);
virtual void addChildAbove(GraphicsLayer* layer, GraphicsLayer* sibling);
virtual void addChildBelow(GraphicsLayer* layer, GraphicsLayer* sibling);
virtual bool replaceChild(GraphicsLayer* oldChild, GraphicsLayer* newChild);
- virtual void removeFromParent();
virtual void setMaskLayer(GraphicsLayer* layer);
virtual void setPosition(const FloatPoint& p);
virtual void setAnchorPoint(const FloatPoint3D& p);
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
index 4024333..8463622 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
@@ -366,37 +366,8 @@ void TextureMapperLayer::flushCompositingStateSelf(GraphicsLayerTextureMapper* g
graphicsLayer->updateDebugIndicators();
- if (changeMask & ParentChange) {
- TextureMapperLayer* newParent = toTextureMapperLayer(graphicsLayer->parent());
- if (newParent != m_parent) {
- // Remove layer from current from child list first.
- if (m_parent) {
- size_t index = m_parent->m_children.find(this);
- m_parent->m_children.remove(index);
- m_parent = 0;
- }
- // Set new layer parent and add layer to the parents child list.
- if (newParent) {
- m_parent = newParent;
- m_parent->m_children.append(this);
- }
- }
- }
-
- if (changeMask & ChildrenChange) {
- // Clear children parent pointer to avoid unsync and crash on layer delete.
- for (size_t i = 0; i < m_children.size(); i++)
- m_children[i]->m_parent = 0;
-
- m_children.clear();
- for (size_t i = 0; i < graphicsLayer->children().size(); ++i) {
- TextureMapperLayer* child = toTextureMapperLayer(graphicsLayer->children()[i]);
- if (!child)
- continue;
- m_children.append(child);
- child->m_parent = this;
- }
- }
+ if (changeMask & ChildrenChange)
+ setChildren(graphicsLayer->children());
m_size = graphicsLayer->size();
@@ -446,6 +417,52 @@ void TextureMapperLayer::flushCompositingStateSelf(GraphicsLayerTextureMapper* g
m_transform.setChildrenTransform(m_state.childrenTransform);
}
+void TextureMapperLayer::setChildren(const Vector<GraphicsLayer*>& newChildren)
+{
+ removeAllChildren();
+ for (size_t i = 0; i < newChildren.size(); ++i) {
+ TextureMapperLayer* child = toTextureMapperLayer(newChildren[i]);
+ ASSERT(child);
+ addChild(child);
+ }
+}
+
+void TextureMapperLayer::addChild(TextureMapperLayer* childLayer)
+{
+ ASSERT(childLayer != this);
+
+ if (childLayer->m_parent)
+ childLayer->removeFromParent();
+
+ childLayer->m_parent = this;
+ m_children.append(childLayer);
+}
+
+void TextureMapperLayer::removeFromParent()
+{
+ if (m_parent) {
+ unsigned i;
+ for (i = 0; i < m_parent->m_children.size(); i++) {
+ if (this == m_parent->m_children[i]) {
+ m_parent->m_children.remove(i);
+ break;
+ }
+ }
+
+ m_parent = 0;
+ }
+}
+
+void TextureMapperLayer::removeAllChildren()
+{
+ while (m_children.size()) {
+ TextureMapperLayer* curLayer = m_children[0];
+ ASSERT(curLayer->m_parent);
+ curLayer->removeFromParent();
+ }
+}
+
+
bool TextureMapperLayer::descendantsOrSelfHaveRunningAnimations() const
{
if (m_animations.hasRunningAnimations())
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h b/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h
index 27a77f6..e4a422f 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h
@@ -57,7 +57,6 @@ public:
enum ChangeMask {
NoChanges = 0,
- ParentChange = (1L << 0),
ChildrenChange = (1L << 1),
MaskLayerChange = (1L << 2),
PositionChange = (1L << 3),
@@ -145,6 +144,11 @@ private:
FloatPoint adjustedPosition() const { return m_state.pos + m_scrollPositionDelta; }
bool isAncestorFixedToViewport() const;
+ void setChildren(const Vector<GraphicsLayer*>&);
+ void addChild(TextureMapperLayer*);
+ void removeFromParent();
+ void removeAllChildren();
+
void paintRecursive(const TextureMapperPaintOptions&);
void paintSelf(const TextureMapperPaintOptions&);
void paintSelfAndChildren(const TextureMapperPaintOptions&);
--
1.8.3.1

View File

@ -1,28 +0,0 @@
From da4a1e8a69083f19bb7c4553b04934267d35fdd1 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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

View File

@ -1,87 +0,0 @@
From dbc927aa59d0025f8aecec77d92a3d5166ecc644 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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 <allan.jensen@digia.com>
+
+ [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 <michael.bruning@digia.com>
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<BitmapTexture> BitmapTextureImageBuffer::applyFilters(TextureMapper*, const BitmapTexture& contentTexture, const FilterOperations& filters)
{
- RefPtr<FilterEffectRenderer> 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<const BitmapTextureImageBuffer&>(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

View File

@ -1,33 +0,0 @@
From 4e38510bbb77f339623545640178eb41af9f8641 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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

View File

@ -1,26 +0,0 @@
From f28e5ecd4af0f47037dc98eee784ff79f0ee5bff Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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

View File

@ -1,53 +0,0 @@
From 970b44d61c9adc51c586069adc902e90bab09666 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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<RootObject> r
} else if (type == static_cast<QMetaType::Type>(qMetaTypeId<QObjectList>())) {
QObjectList ol = variant.value<QObjectList>();
JSObjectRef array = JSObjectMakeArray(context, 0, 0, exception);
+ RefPtr<RootObject> 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<RootObject> r
} else if (type == static_cast<QMetaType::Type>(qMetaTypeId<QObjectList>())) {
QObjectList ol = variant.value<QObjectList>();
JSObjectRef array = JSObjectMakeArray(context, 0, 0, exception);
+ RefPtr<RootObject> 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

View File

@ -1,111 +0,0 @@
From a84c6dda2ab79017b9fbaa5cfd6ca554654913ac Mon Sep 17 00:00:00 2001
From: Huang Dongsung <luxtella@company100.net>
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 <luxtella@company100.net>
+ [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 <luxtella@company100.net>
+
[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

View File

@ -1,35 +0,0 @@
From 0e53e7835c965e4c0d3ee5be47c67bb037808ac8 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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 <simon.hausmann@digia.com>
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

View File

@ -1,70 +0,0 @@
From 992932c174d581ad5bf67ee2b2d5fffcdae78198 Mon Sep 17 00:00:00 2001
From: Eike Ziller <eike.ziller@digia.com>
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 <simon.hausmann@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
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

View File

@ -1,42 +0,0 @@
From 1dc5bf780f19bb9dc3a0ac1ae99a4182f4a6f289 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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 <jocelyn.turcotte@digia.com>
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

View File

@ -1,111 +0,0 @@
From c8040172a48006475b7f34c5ebe04ee286c0a32e Mon Sep 17 00:00:00 2001
From: Mike West <mkwst@chromium.org>
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 <mkwst@chromium.org>
+
+ 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 <andras.becsi@digia.com>
[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

View File

@ -1,79 +0,0 @@
From 9ced0261192be0072b60de79b894bc59ccef77c9 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
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

View File

@ -1,14 +0,0 @@
Description: fix build failure with new bison
Origin: upstream, https://qt.gitorious.org/qt/qtwebkit/commit/60ba8bd5b3575d
Last-Update: 2013-12-22
--- a/Source/ThirdParty/ANGLE/src/compiler/glslang.y
+++ b/Source/ThirdParty/ANGLE/src/compiler/glslang.y
@@ -47,6 +47,7 @@
%expect 1 /* One shift reduce conflict because of if | else */
%pure-parser
%parse-param {TParseContext* context}
+%lex-param {YYLEX_PARAM}
%union {
struct {

View File

@ -1,7 +1,7 @@
#!/bin/sh
qmake-qt4 \
$@ \
QMAKE_CFLAGS="${CFLAGS}" \
QMAKE_CXXFLAGS="${CXXFLAGS}" \
QMAKE_LFLAGS="${LDFLAGS}" \
$@

View File

@ -1,65 +0,0 @@
diff -urNB webkit-qtwebkit-23/Source/WebCore/WebCore.pri new/Source/WebCore/WebCore.pri
--- webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-15 16:46:12.000000000 +0100
+++ new/Source/WebCore/WebCore.pri 2013-02-21 15:46:00.298855975 +0100
@@ -197,8 +197,10 @@
contains(DEFINES, WTF_USE_GSTREAMER=1) {
DEFINES += ENABLE_GLIB_SUPPORT=1
- PKGCONFIG += glib-2.0 gio-2.0 gstreamer-0.10 gstreamer-app-0.10 gstreamer-base-0.10 gstreamer-interfaces-0.10 gstreamer-pbutils-0.10 gstreamer-plugins-base-0.10 gstreamer-video-0.10
-}
+ DEFINES += GST_API_VERSION=1.0
+ DEFINES += GST_API_VERSION_1
+ PKGCONFIG += glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-base-1.0 gstreamer-pbutils-1.0 gstreamer-plugins-base-1.0 gstreamer-video-1.0 gstreamer-audio-1.0
+ }
contains(DEFINES, ENABLE_VIDEO=1) {
contains(DEFINES, WTF_USE_QTKIT=1) {
@@ -233,7 +235,7 @@
contains(DEFINES, WTF_USE_GSTREAMER=1) {
DEFINES += WTF_USE_WEBAUDIO_GSTREAMER=1
INCLUDEPATH += $$SOURCE_DIR/platform/audio/gstreamer
- PKGCONFIG += gstreamer-audio-0.10 gstreamer-fft-0.10
+ PKGCONFIG += gstreamer-audio-1.0 gstreamer-fft-1.0
}
}
diff -urNB webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h new/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h
--- webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h 2013-02-15 16:46:12.000000000 +0100
+++ new/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h 2013-02-21 15:46:00.298855975 +0100
@@ -157,7 +157,7 @@
virtual void needTouchEvents(bool) { }
#endif
-#if ENABLE(VIDEO) && (USE(GSTREAMER) || USE(QT_MULTIMEDIA) || USE(QTKIT))
+#if ENABLE(VIDEO) && ((USE(GSTREAMER) && !defined(GST_API_VERSION_1)) || USE(QT_MULTIMEDIA) || USE(QTKIT))
virtual bool supportsFullscreenForNode(const Node*);
virtual void enterFullscreenForNode(Node*);
virtual void exitFullscreenForNode(Node*);
diff -urNB webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h new/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h
--- webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h 2013-02-15 16:46:12.000000000 +0100
+++ new/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h 2013-02-21 15:52:57.400847675 +0100
@@ -106,10 +106,10 @@
private:
ChromeClientQt* m_chromeClient;
HTMLVideoElement* m_videoElement;
-#if USE(QT_MULTIMEDIA)
+#if USE(QT_MULTIMEDIA) && !defined(GST_API_VERSION_1)
QWebFullScreenVideoHandler* m_FullScreenVideoHandler;
#endif
-#if USE(GSTREAMER)
+#if USE(GSTREAMER) && !defined(GST_API_VERSION_1)
GStreamerFullScreenVideoHandler* m_FullScreenVideoHandlerGStreamer;
#endif
#if USE(QTKIT)
diff -urNB webkit-qtwebkit-23/Tools/qmake/mkspecs/features/features.prf new/Tools/qmake/mkspecs/features/features.prf
--- webkit-qtwebkit-23/Tools/qmake/mkspecs/features/features.prf 2013-02-15 16:46:12.000000000 +0100
+++ new/Tools/qmake/mkspecs/features/features.prf 2013-02-21 15:46:00.297855972 +0100
@@ -186,7 +186,7 @@
DEFINES += WTF_USE_QTKIT=1
}
} else: linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
- !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 \'gstreamer-0.10 >= 0.10.30\' \'gstreamer-plugins-base-0.10 >= 0.10.30\'): {
+ !contains(QT_CONFIG, no-pkg-config):packagesExist("glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-plugins-base-1.0") {
DEFINES += ENABLE_VIDEO=1
DEFINES += WTF_USE_GSTREAMER=1
} else {

View File

@ -1,19 +1,7 @@
diff -Naur webkit-qtwebkit-23.orig/Source/WTF/wtf/dtoa/utils.h webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h
--- webkit-qtwebkit-23.orig/Source/WTF/wtf/dtoa/utils.h 2014-05-05 14:36:22.295067163 -0500
+++ webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h 2014-05-05 14:37:09.385146547 -0500
@@ -49,7 +49,7 @@
defined(__ARMEL__) || \
defined(_MIPS_ARCH_MIPS32R2)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(AARCH64)
+#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(AARCH64)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)
diff -Naur webkit-qtwebkit-23.orig/Source/WTF/wtf/dtoa.cpp webkit-qtwebkit-23/Source/WTF/wtf/dtoa.cpp
--- webkit-qtwebkit-23.orig/Source/WTF/wtf/dtoa.cpp 2014-05-05 14:36:22.125066877 -0500
+++ webkit-qtwebkit-23/Source/WTF/wtf/dtoa.cpp 2014-05-05 14:37:50.745216279 -0500
@@ -113,7 +113,7 @@
diff -up webkit-qtwebkit-23/Source/WTF/wtf/dtoa.cpp.ppc64le webkit-qtwebkit-23/Source/WTF/wtf/dtoa.cpp
--- webkit-qtwebkit-23/Source/WTF/wtf/dtoa.cpp.ppc64le 2014-09-24 06:42:05.000000000 -0500
+++ webkit-qtwebkit-23/Source/WTF/wtf/dtoa.cpp 2014-10-16 11:06:24.935086905 -0500
@@ -113,7 +113,7 @@ static ALWAYS_INLINE uint32_t* storeInc(
#define Big0 (Frac_mask1 | Exp_msk1 * (DBL_MAX_EXP + Bias - 1))
#define Big1 0xffffffff
@ -22,22 +10,23 @@ diff -Naur webkit-qtwebkit-23.orig/Source/WTF/wtf/dtoa.cpp webkit-qtwebkit-23/So
// FIXME: should we enable this on all 64-bit CPUs?
// 64-bit emulation provided by the compiler is likely to be slower than dtoa own code on 32-bit hardware.
#define USE_LONG_LONG
diff -Naur webkit-qtwebkit-23.orig/Source/WTF/wtf/Platform.h webkit-qtwebkit-23/Source/WTF/wtf/Platform.h
--- webkit-qtwebkit-23.orig/Source/WTF/wtf/Platform.h 2014-05-05 14:36:22.215067029 -0500
+++ webkit-qtwebkit-23/Source/WTF/wtf/Platform.h 2014-05-05 14:50:07.996460328 -0500
@@ -107,12 +107,26 @@
diff -up webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h.ppc64le webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h
--- webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h.ppc64le 2014-10-16 11:06:24.935086905 -0500
+++ webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h 2014-10-16 11:10:04.207685227 -0500
@@ -49,7 +49,7 @@
defined(__ARMEL__) || \
defined(_MIPS_ARCH_MIPS32R2)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(MIPS64) || CPU(AARCH64) || CPU(HPPA)
+#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(MIPS64) || CPU(AARCH64) || CPU(HPPA)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)
diff -up webkit-qtwebkit-23/Source/WTF/wtf/Platform.h.ppc64le webkit-qtwebkit-23/Source/WTF/wtf/Platform.h
--- webkit-qtwebkit-23/Source/WTF/wtf/Platform.h.ppc64le 2014-10-16 11:06:24.936086920 -0500
+++ webkit-qtwebkit-23/Source/WTF/wtf/Platform.h 2014-10-16 11:09:08.735022008 -0500
@@ -130,6 +130,17 @@
#endif
/* CPU(PPC64) - PowerPC 64-bit */
-#if defined(__ppc64__) \
- || defined(__PPC64__)
+/* CPU(PPC64) - PowerPC 64-bit + BIG ENDIAN */
+#if ( defined(__ppc64__) \
+ || defined(__PPC64__)) \
+ && defined(__BYTE_ORDER__) \
+ && (__BYTE_ORDER__==__ORDER_BIG_ENDIAN__)
#define WTF_CPU_PPC64 1
#define WTF_CPU_BIG_ENDIAN 1
#endif
+/* CPU(PPC64) - PowerPC 64-bit + LITTLE ENDIAN */
@ -54,14 +43,3 @@ diff -Naur webkit-qtwebkit-23.orig/Source/WTF/wtf/Platform.h webkit-qtwebkit-23/
/* CPU(SH4) - SuperH SH-4 */
#if defined(__SH4__)
#define WTF_CPU_SH4 1
@@ -883,7 +897,9 @@
|| CPU(ALPHA) \
|| CPU(SPARC64) \
|| CPU(S390X) \
- || CPU(PPC64) || CPU(AARCH64)
+ || CPU(PPC64) \
+ || CPU(PPC64LE) \
+ || CPU(AARCH64)
#define WTF_USE_JSVALUE64 1
#else
#define WTF_USE_JSVALUE32_64 1

View File

@ -1,42 +0,0 @@
diff -up webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h.aarch64 webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h
--- webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h.aarch64 2014-02-28 13:01:16.157141081 -0600
+++ webkit-qtwebkit-23/Source/WTF/wtf/dtoa/utils.h 2014-02-28 13:07:09.189431851 -0600
@@ -49,7 +49,7 @@
defined(__ARMEL__) || \
defined(_MIPS_ARCH_MIPS32R2)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA)
+#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(AARCH64)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)
diff -up webkit-qtwebkit-23/Source/WTF/wtf/Platform.h.aarch64 webkit-qtwebkit-23/Source/WTF/wtf/Platform.h
--- webkit-qtwebkit-23/Source/WTF/wtf/Platform.h.aarch64 2014-02-28 13:01:16.156141091 -0600
+++ webkit-qtwebkit-23/Source/WTF/wtf/Platform.h 2014-02-28 13:04:57.961813306 -0600
@@ -312,7 +312,16 @@
#endif /* ARM */
-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC)
+/* CPU(AARCH64) - AArch64 */
+#if defined(__aarch64__)
+#define WTF_CPU_AARCH64 1
+#if defined(__AARCH64EB__)
+#define WTF_CPU_BIG_ENDIAN 1
+#endif
+#endif
+
+/* Not sure about this one, qt5-qtwebkit doesn't include it -- rex */
+#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC) || CPU(AARCH64)
#define WTF_CPU_NEEDS_ALIGNED_ACCESS 1
#endif
@@ -874,7 +883,7 @@
|| CPU(ALPHA) \
|| CPU(SPARC64) \
|| CPU(S390X) \
- || CPU(PPC64)
+ || CPU(PPC64) || CPU(AARCH64)
#define WTF_USE_JSVALUE64 1
#else
#define WTF_USE_JSVALUE32_64 1

View File

@ -4,8 +4,8 @@
Name: qtwebkit
Summary: Qt WebKit bindings
Version: 2.3.3
Release: 18%{?dist}
Version: 2.3.4
Release: 1%{?dist}
License: LGPLv2 with exceptions or GPLv3 with exceptions
URL: http://trac.webkit.org/wiki/QtWebKit
@ -26,7 +26,8 @@ URL: http://trac.webkit.org/wiki/QtWebKit
# download from
# https://gitorious.org/webkit/qtwebkit-23/archive-tarball/qtwebkit-%{version}
# repack as .xz
Source0: qtwebkit-%{version}.tar.xz
#Source0: qtwebkit-%{version}.tar.xz
Source0: http://download.kde.org/stable/qtwebkit-2.3/%{version}/src/qtwebkit-%{version}.tar.gz
# qmake wrapper
Source1: qmake.sh
@ -46,41 +47,13 @@ Patch10: qtwebkit-ppc.patch
# rebased for 2.3.1, not sure if this is still needed? -- rex
Patch11: qtwebkit-23-LLInt-C-Loop-backend-ppc.patch
# fix build when using bison3
# https://qt.gitorious.org/qt/qtwebkit/commit/60ba8bd5b3575d
Patch12: glslang_bison3.patch
# support aarch64
Patch13: qtwebkit-aarch64.patch
# truly madly deeply no rpath please, kthxbye
Patch14: webkit-qtwebkit-23-no_rpath.patch
# ppc64le support
Patch15: qtwebkit-23-ppc64le.patch
# patch from openSUSE to support GStreamer 1.x (#1092642)
Patch16: qtwebkit-2.3.3-gstreamer1.patch
## upstream patches
Patch102: 0002-Texmap-GTK-The-poster-circle-doesn-t-appear.patch
Patch103: 0003-Qt-Tiled-backing-store-not-clipped-to-frame-or-visib.patch
Patch104: 0004-Qt-Images-scaled-poorly-on-composited-canvas.patch
Patch105: 0005-Port-of-r118587-to-TextBreakIteratorQt.cpp.patch
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: flex
@ -138,26 +111,7 @@ Provides: qt4-webkit-devel%{?_isa} = 2:%{version}-%{release}
%prep
%setup -q -n webkit-qtwebkit-23
%patch102 -p1 -b .0002
%patch103 -p1 -b .0003
%patch104 -p1 -b .0004
%patch105 -p1 -b .0005
%patch106 -p1 -b .0006
%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
%setup -q -c -n webkit-qtwebkit-23
%patch1 -p1 -b .pluginpath
%patch3 -p1 -b .debuginfo
@ -167,14 +121,8 @@ Provides: qt4-webkit-devel%{?_isa} = 2:%{version}-%{release}
%patch10 -p1 -b .system-malloc
%patch11 -p1 -b .Double2Ints
%endif
%patch12 -p1 -b .bison3
%patch13 -p1 -b .aarch64
%patch14 -p1 -b .no_rpath
%if 0%{?gstreamer1}
%patch16 -p1 -b .gstreamer1
%endif
## Apply this last patch, as it deps so aarch stuffs
%ifarch ppc64le
%patch10 -p1 -b .system-malloc
@ -205,7 +153,7 @@ WEBKITOUTPUTDIR=`pwd`; export WEBKITOUTPUTDIR
--no-webkit2 \
--release \
--qmakearg="CONFIG+=production_build DEFINES+=HAVE_LIBWEBP=1" \
--makeargs=%{?_smp_mflags} \
--makeargs="%{?_smp_mflags}" \
--system-malloc
popd
@ -219,7 +167,7 @@ WEBKITOUTPUTDIR=`pwd`; export WEBKITOUTPUTDIR
--no-webkit2 \
--release \
--qmakearg="CONFIG+=production_build DEFINES+=HAVE_LIBWEBP=1" \
--makeargs=%{?_smp_mflags} \
--makeargs="%{?_smp_mflags}" \
--system-malloc \
--no-force-sse2
popd
@ -265,6 +213,9 @@ popd
%changelog
* Thu Oct 16 2014 Rex Dieter <rdieter@fedoraproject.org> 2.3.4-1
- qtwebkit-2.3.4
* Tue Sep 23 2014 Rex Dieter <rdieter@fedoraproject.org> 2.3.3-18
- enable hardened build (#1051790)

View File

@ -1 +1 @@
6f9b0af3c401a43fa29cd3a9c393729a qtwebkit-2.3.3.tar.xz
42ef76d0cf7d0c611ef83418e9f297ff qtwebkit-2.3.4.tar.gz

View File

@ -1,6 +1,34 @@
diff -up webkit-qtwebkit-23/Source/WebKit/qt/declarative/experimental/experimental.pri.no_rpath webkit-qtwebkit-23/Source/WebKit/qt/declarative/experimental/experimental.pri
--- webkit-qtwebkit-23/Source/WebKit/qt/declarative/experimental/experimental.pri.no_rpath 2014-09-24 06:42:05.000000000 -0500
+++ webkit-qtwebkit-23/Source/WebKit/qt/declarative/experimental/experimental.pri 2014-10-16 07:34:02.266399979 -0500
@@ -29,8 +29,8 @@ haveQt(5): QT += network quick quick-pri
DESTDIR = $${ROOT_BUILD_DIR}/imports/$${TARGET.module_name}
-CONFIG += rpath
-RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
+#CONFIG += rpath
+#RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
SOURCES += plugin.cpp
diff -up webkit-qtwebkit-23/Source/WebKit/qt/declarative/public.pri.no_rpath webkit-qtwebkit-23/Source/WebKit/qt/declarative/public.pri
--- webkit-qtwebkit-23/Source/WebKit/qt/declarative/public.pri.no_rpath 2014-09-24 06:42:05.000000000 -0500
+++ webkit-qtwebkit-23/Source/WebKit/qt/declarative/public.pri 2014-10-16 07:33:46.122390687 -0500
@@ -36,8 +36,8 @@ WEBKIT += wtf
DESTDIR = $${ROOT_BUILD_DIR}/imports/$${TARGET.module_name}
-CONFIG += rpath
-RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
+#CONFIG += rpath
+#RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
SOURCES += plugin.cpp
diff -up webkit-qtwebkit-23/Tools/qmake/mkspecs/features/rpath.prf.no_rpath webkit-qtwebkit-23/Tools/qmake/mkspecs/features/rpath.prf
--- webkit-qtwebkit-23/Tools/qmake/mkspecs/features/rpath.prf.no_rpath 2013-09-03 04:58:46.000000000 -0500
+++ webkit-qtwebkit-23/Tools/qmake/mkspecs/features/rpath.prf 2014-05-02 14:27:01.188541219 -0500
--- webkit-qtwebkit-23/Tools/qmake/mkspecs/features/rpath.prf.no_rpath 2014-09-24 06:42:05.000000000 -0500
+++ webkit-qtwebkit-23/Tools/qmake/mkspecs/features/rpath.prf 2014-10-13 14:11:19.723829903 -0500
@@ -6,7 +6,7 @@
equals(ROOT_BUILD_DIR, $$dirname(DESTDIR)): RPATHDIR_RELATIVE_TO_DESTDIR = ../lib