summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2010-05-21 12:51:29 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2010-05-21 12:51:29 (GMT)
commitd5f3db332292e31ccf430b8267b045e014fae389 (patch)
tree88db9e8a76967be5d97ad8bad00940e5b95ab703 /src/3rdparty/webkit/WebCore
parent38b3258d6d00988f63a8384632b1ba99bb84c892 (diff)
downloadQt-d5f3db332292e31ccf430b8267b045e014fae389.zip
Qt-d5f3db332292e31ccf430b8267b045e014fae389.tar.gz
Qt-d5f3db332292e31ccf430b8267b045e014fae389.tar.bz2
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( ecee9d7244ce4f7e7acf723bcef535532780db5f )
Changes in WebKit/qt since the last update: * [Qt] Nested overflow div does not scroll https://bugs.webkit.org/show_bug.cgi?id=38641 * [Qt] Non animated gifs are animated in QtWebKit https://bugs.webkit.org/show_bug.cgi?id=35955 * [Qt] startAnimation() is not needed to preceede nativeImageForCurrentFrame() https://bugs.webkit.org/show_bug.cgi?id=37844 * Animated GIF images does not animate 10x as expected by default. https://bugs.webkit.org/show_bug.cgi?id=36818 Plus updated/fixed def files
Diffstat (limited to 'src/3rdparty/webkit/WebCore')
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog47
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp24
2 files changed, 68 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index 5e63c7c..2d905b0 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,50 @@
+2010-05-04 Tucker Jay <jay.tucker@nokia.com>
+
+ Reviewed by Holger Freyther.
+
+ Animated GIF images does not animate 10x as expected by default.
+ https://bugs.webkit.org/show_bug.cgi?id=36818
+
+ Added test case to existing manual test to test the
+ fixed functionality.
+
+ * manual-tests/qt/qt-10loop-anim.gif: Added.
+ * manual-tests/qt/qt-gif-test.html:
+ * platform/graphics/qt/ImageDecoderQt.cpp:
+ (WebCore::ImageDecoderQt::repetitionCount):
+
+2010-04-21 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] startAnimation() is not needed to preceede nativeImageForCurrentFrame()
+ https://bugs.webkit.org/show_bug.cgi?id=37844
+
+ nativeImageForCurrentFrame() resets the m_decoder parameter under Qt,
+ which is required by startAnimation() to detect frame and repetition counts.
+ Hence, Image::drawTiled cannot start animations under Qt:
+ <html><body background="animated.gif"></body></html> does not work
+
+ * platform/graphics/qt/ImageDecoderQt.cpp:
+ (WebCore::ImageDecoderQt::internalHandleCurrentImage):
+
+2010-03-10 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Non animated gifs are animated in QtWebKit
+ https://bugs.webkit.org/show_bug.cgi?id=35955
+
+ Properly map Qt animated and non-animated values to WebCore's
+ understanding of animated and non-animated images. Currently
+ we can not map anything to the cAnimationLoopNone value.
+
+ * manual-tests/qt/qt-anim.gif: Added.
+ * manual-tests/qt/qt-gif-test.html: Added.
+ * manual-tests/qt/qt-noanim.gif: Added.
+ * platform/graphics/qt/ImageDecoderQt.cpp:
+ (WebCore::ImageDecoderQt::repetitionCount):
+
2010-04-26 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
index 9bcb3e9..764b240 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
@@ -114,8 +114,23 @@ size_t ImageDecoderQt::frameCount()
int ImageDecoderQt::repetitionCount() const
{
- if (m_reader && m_reader->supportsAnimation())
- m_repetitionCount = qMax(0, m_reader->loopCount());
+ if (m_reader && m_reader->supportsAnimation()) {
+ m_repetitionCount = m_reader->loopCount();
+
+ // Qt and WebCore have a incompatible understanding of
+ // the loop count and we can not completely map everything.
+ // Qt | WebCore | description
+ // -1 | 0 | infinite animation
+ // 0 | cAnimationLoopOnce | show every frame once
+ // n | n+1 | Qt returns the # of iterations - 1
+ // n/a | cAnimationNone | show only the first frame
+ if (m_repetitionCount == -1)
+ m_repetitionCount = 0;
+ else if (m_repetitionCount == 0)
+ m_repetitionCount = cAnimationLoopOnce;
+ else
+ ++m_repetitionCount;
+ }
return m_repetitionCount;
}
@@ -188,8 +203,11 @@ void ImageDecoderQt::internalHandleCurrentImage(size_t frameIndex)
{
// Now get the QImage from Qt and place it in the RGBA32Buffer
QImage img;
- if (!m_reader->read(&img))
+ if (!m_reader->read(&img)) {
+ frameCount();
+ repetitionCount();
return failRead();
+ }
// now into the RGBA32Buffer - even if the image is not
QSize imageSize = img.size();