Changeset 116105 in webkit


Ignore:
Timestamp:
May 4, 2012 8:27:44 AM (12 years ago)
Author:
zoltan@webkit.org
Message:

Unreviewed, rolling out r116085, r116091, and r116095.
http://trac.webkit.org/changeset/116085
http://trac.webkit.org/changeset/116091
http://trac.webkit.org/changeset/116095
https://bugs.webkit.org/show_bug.cgi?id=85628

We are not ready with dependencies on all platform yet (mac) +
problems with debug builds. (Requested by Zoltan on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-05-04

Source/WebCore:

  • Target.pri:
  • WebCore.pri:
  • platform/MIMETypeRegistry.cpp:

(WebCore::initializeSupportedImageMIMETypes):
(WebCore::initializeSupportedImageMIMETypesForEncoding):

  • platform/graphics/ImageSource.cpp:
  • platform/graphics/ImageSource.h:

(WebCore):

  • platform/graphics/qt/ImageDecoderQt.cpp:

(WebCore::ImageDecoder::create):
(WebCore):
(WebCore::ImageDecoderQt::filenameExtension):
(WebCore::ImageDecoderQt::internalHandleCurrentImage):
(WebCore::ImageDecoderQt::clearPointers):

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::create):

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageFrame::getAddr):
(ImageFrame):

  • platform/image-decoders/qt/ImageFrameQt.cpp: Added.

(WebCore):
(WebCore::ImageFrame::ImageFrame):
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::clearPixelData):
(WebCore::ImageFrame::zeroFillPixelData):
(WebCore::ImageFrame::copyBitmapData):
(WebCore::ImageFrame::setSize):
(WebCore::ImageFrame::asNewNativeImage):
(WebCore::ImageFrame::hasAlpha):
(WebCore::ImageFrame::setHasAlpha):
(WebCore::ImageFrame::setColorProfile):
(WebCore::ImageFrame::setStatus):
(WebCore::ImageFrame::setPixmap):
(WebCore::ImageFrame::width):
(WebCore::ImageFrame::height):

Source/WebKit/blackberry:

  • WebCoreSupport/AboutDataEnableFeatures.in:

Tools:

  • qmake/mkspecs/features/features.prf:
Location:
trunk
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r116104 r116105  
     12012-05-04  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r116085, r116091, and r116095.
     4        http://trac.webkit.org/changeset/116085
     5        http://trac.webkit.org/changeset/116091
     6        http://trac.webkit.org/changeset/116095
     7        https://bugs.webkit.org/show_bug.cgi?id=85628
     8
     9        We are not ready with dependencies on all platform yet (mac) +
     10        problems with debug builds. (Requested by Zoltan on #webkit).
     11
     12        * Target.pri:
     13        * WebCore.pri:
     14        * platform/MIMETypeRegistry.cpp:
     15        (WebCore::initializeSupportedImageMIMETypes):
     16        (WebCore::initializeSupportedImageMIMETypesForEncoding):
     17        * platform/graphics/ImageSource.cpp:
     18        * platform/graphics/ImageSource.h:
     19        (WebCore):
     20        * platform/graphics/qt/ImageDecoderQt.cpp:
     21        (WebCore::ImageDecoder::create):
     22        (WebCore):
     23        (WebCore::ImageDecoderQt::filenameExtension):
     24        (WebCore::ImageDecoderQt::internalHandleCurrentImage):
     25        (WebCore::ImageDecoderQt::clearPointers):
     26        * platform/image-decoders/ImageDecoder.cpp:
     27        (WebCore::ImageDecoder::create):
     28        * platform/image-decoders/ImageDecoder.h:
     29        (WebCore::ImageFrame::getAddr):
     30        (ImageFrame):
     31        * platform/image-decoders/qt/ImageFrameQt.cpp: Added.
     32        (WebCore):
     33        (WebCore::ImageFrame::ImageFrame):
     34        (WebCore::ImageFrame::operator=):
     35        (WebCore::ImageFrame::clearPixelData):
     36        (WebCore::ImageFrame::zeroFillPixelData):
     37        (WebCore::ImageFrame::copyBitmapData):
     38        (WebCore::ImageFrame::setSize):
     39        (WebCore::ImageFrame::asNewNativeImage):
     40        (WebCore::ImageFrame::hasAlpha):
     41        (WebCore::ImageFrame::setHasAlpha):
     42        (WebCore::ImageFrame::setColorProfile):
     43        (WebCore::ImageFrame::setStatus):
     44        (WebCore::ImageFrame::setPixmap):
     45        (WebCore::ImageFrame::width):
     46        (WebCore::ImageFrame::height):
     47
    1482012-05-04  Ilya Tikhonovsky  <loislo@chromium.org>
    249
  • trunk/Source/WebCore/Target.pri

    r116102 r116105  
    10861086    platform/FileSystem.cpp \
    10871087    platform/HistogramSupport.cpp \
     1088    platform/image-decoders/qt/ImageFrameQt.cpp \
    10881089    platform/graphics/FontDescription.cpp \
    10891090    platform/graphics/FontFallbackList.cpp \
     
    11381139    platform/graphics/transforms/TransformState.cpp \
    11391140    platform/graphics/transforms/TranslateTransformOperation.cpp \
    1140     platform/image-decoders/ImageDecoder.cpp \
    1141     platform/image-decoders/bmp/BMPImageDecoder.cpp \
    1142     platform/image-decoders/bmp/BMPImageReader.cpp \
    1143     platform/image-decoders/gif/GIFImageDecoder.cpp \
    1144     platform/image-decoders/gif/GIFImageReader.cpp\
    1145     platform/image-decoders/ico/ICOImageDecoder.cpp \
    1146     platform/image-decoders/jpeg/JPEGImageDecoder.cpp \
    1147     platform/image-decoders/png/PNGImageDecoder.cpp \
    11481141    platform/KillRingNone.cpp \
    11491142    platform/KURL.cpp \
     
    22922285    platform/graphics/transforms/TransformState.h \
    22932286    platform/graphics/transforms/TranslateTransformOperation.h \
    2294     platform/image-decoders/bmp/BMPImageDecoder.h \
    2295     platform/image-decoders/bmp/BMPImageReader.h \
    2296     platform/image-decoders/gif/GIFImageDecoder.h \
    2297     platform/image-decoders/gif/GIFImageReader.h\
    2298     platform/image-decoders/ico/ICOImageDecoder.h \
    2299     platform/image-decoders/jpeg/JPEGImageDecoder.h \
    2300     platform/image-decoders/png/PNGImageDecoder.h \
    23012287    platform/KillRing.h \
    23022288    platform/KURL.h \
     
    28722858    platform/graphics/qt/IconQt.cpp \
    28732859    platform/graphics/qt/ImageBufferQt.cpp \
    2874     platform/graphics/qt/ImageDecoderQt.cpp \
    28752860    platform/graphics/qt/ImageQt.cpp \
    28762861    platform/graphics/qt/IntPointQt.cpp \
     
    40444029}
    40454030
    4046 contains(DEFINES, WTF_USE_WEBP=1) {
    4047     INCLUDEPATH += platform/image-decoders/webp
    4048     HEADERS += platform/image-decoders/webp/WEBPImageDecoder.h
    4049     SOURCES += platform/image-decoders/webp/WEBPImageDecoder.cpp
     4031contains(DEFINES, WTF_USE_QT_IMAGE_DECODER=1) {
     4032    HEADERS += platform/graphics/qt/ImageDecoderQt.h
     4033    SOURCES += platform/graphics/qt/ImageDecoderQt.cpp
     4034} else {
     4035    HEADERS += \
     4036        platform/image-decoders/bmp/BMPImageDecoder.h \
     4037        platform/image-decoders/bmp/BMPImageReader.h \
     4038        platform/image-decoders/gif/GIFImageDecoder.h \
     4039        platform/image-decoders/gif/GIFImageReader.h\
     4040        platform/image-decoders/ico/ICOImageDecoder.h \
     4041        platform/image-decoders/jpeg/JPEGImageDecoder.h \
     4042        platform/image-decoders/png/PNGImageDecoder.h
     4043
     4044    SOURCES += \
     4045        platform/image-decoders/ImageDecoder.cpp \
     4046        platform/image-decoders/bmp/BMPImageDecoder.cpp \
     4047        platform/image-decoders/bmp/BMPImageReader.cpp \
     4048        platform/image-decoders/gif/GIFImageDecoder.cpp \
     4049        platform/image-decoders/gif/GIFImageReader.cpp\
     4050        platform/image-decoders/ico/ICOImageDecoder.cpp \
     4051        platform/image-decoders/jpeg/JPEGImageDecoder.cpp \
     4052        platform/image-decoders/png/PNGImageDecoder.cpp
     4053
     4054    contains(DEFINES, WTF_USE_WEBP=1) {
     4055        HEADERS += platform/image-decoders/webp/WEBPImageDecoder.h
     4056        SOURCES += platform/image-decoders/webp/WEBPImageDecoder.cpp
     4057    }
    40504058}
    40514059
  • trunk/Source/WebCore/WebCore.pri

    r116095 r116105  
    6565    $$SOURCE_DIR/platform/graphics/transforms \
    6666    $$SOURCE_DIR/platform/image-decoders \
    67     $$SOURCE_DIR/platform/image-decoders/bmp \
    68     $$SOURCE_DIR/platform/image-decoders/gif \
    69     $$SOURCE_DIR/platform/image-decoders/ico \
    70     $$SOURCE_DIR/platform/image-decoders/jpeg \
    71     $$SOURCE_DIR/platform/image-decoders/png \
    7267    $$SOURCE_DIR/platform/leveldb \
    7368    $$SOURCE_DIR/platform/mock \
     
    228223}
    229224
    230 contains(DEFINES, WTF_USE_WEBP=1) {
    231     INCLUDEPATH += $$SOURCE_DIR/platform/image-decoders/webp
    232     LIBS += -lwebp
    233 }
    234 
    235 haveQt(5) {
    236     # Qt5 allows us to use config tests to check for the presence of these libraries
    237     !contains(config_test_libjpeg, yes): error("JPEG library not found!")
    238     !contains(config_test_libpng, yes): error("PNG library not found!")
    239 }
    240 
    241 LIBS += -ljpeg -lpng
     225contains(DEFINES, WTF_USE_QT_IMAGE_DECODER=0) {
     226    INCLUDEPATH += \
     227        $$SOURCE_DIR/platform/image-decoders/bmp \
     228        $$SOURCE_DIR/platform/image-decoders/gif \
     229        $$SOURCE_DIR/platform/image-decoders/ico \
     230        $$SOURCE_DIR/platform/image-decoders/jpeg \
     231        $$SOURCE_DIR/platform/image-decoders/png
     232
     233    haveQt(5) {
     234        # Qt5 allows us to use config tests to check for the presence of these libraries
     235        !contains(config_test_libjpeg, yes): error("JPEG library not found!")
     236        !contains(config_test_libpng, yes): error("PNG 1.2 library not found!")
     237    }
     238
     239    LIBS += -ljpeg -lpng12
     240
     241    contains(DEFINES, WTF_USE_WEBP=1) {
     242        INCLUDEPATH += $$SOURCE_DIR/platform/image-decoders/webp
     243        LIBS += -lwebp
     244    }
     245}
    242246
    243247win32-*|wince* {
  • trunk/Source/WebCore/platform/MIMETypeRegistry.cpp

    r116085 r116105  
    4040#include <wtf/RetainPtr.h>
    4141#endif
    42 #if PLATFORM(QT)
    43 #include <QImageReader>
    44 #include <QImageWriter>
     42#if PLATFORM(QT) && USE(QT_IMAGE_DECODER)
     43#include <qimagereader.h>
     44#include <qimagewriter.h>
    4545#endif
    4646
     
    228228    supportedImageMIMETypes->remove("application/postscript");
    229229
     230#elif PLATFORM(QT) && USE(QT_IMAGE_DECODER)
     231    QList<QByteArray> formats = QImageReader::supportedImageFormats();
     232    for (size_t i = 0; i < static_cast<size_t>(formats.size()); ++i) {
     233#if ENABLE(SVG)
     234        /*
     235         * Qt has support for SVG, but we want to use KSVG2
     236         */
     237        if (formats.at(i).toLower().startsWith("svg"))
     238            continue;
     239#endif
     240        String mimeType = MIMETypeRegistry::getMIMETypeForExtension(formats.at(i).constData());
     241        if (!mimeType.isEmpty()) {
     242            supportedImageMIMETypes->add(mimeType);
     243            supportedImageResourceMIMETypes->add(mimeType);
     244        }
     245    }
    230246#else
    231247    // assume that all implementations at least support the following standard
     
    244260        supportedImageResourceMIMETypes->add(types[i]);
    245261    }
    246 #if PLATFORM(QT)
    247     QList<QByteArray> formats = QImageReader::supportedImageFormats();
    248     for (size_t i = 0; i < static_cast<size_t>(formats.size()); ++i) {
    249 #if ENABLE(SVG)
    250         // Qt has support for SVG, but we want to use KSVG2
    251         if (formats.at(i).toLower().startsWith("svg"))
    252             continue;
    253 #endif // ENABLE(SVG)
    254         String mimeType = MIMETypeRegistry::getMIMETypeForExtension(formats.at(i).constData());
    255         if (!mimeType.isEmpty()) {
    256             supportedImageMIMETypes->add(mimeType);
    257             supportedImageResourceMIMETypes->add(mimeType);
    258         }
    259     }
    260 #endif // PLATFORM(QT)
    261262#if PLATFORM(BLACKBERRY)
    262263    supportedImageMIMETypes->add("image/pjpeg");
     
    287288    supportedImageMIMETypesForEncoding->add("image/gif");
    288289#endif
    289 #elif PLATFORM(QT)
     290#elif PLATFORM(QT) && USE(QT_IMAGE_DECODER)
    290291    QList<QByteArray> formats = QImageWriter::supportedImageFormats();
    291292    for (int i = 0; i < formats.size(); ++i) {
     
    294295            supportedImageMIMETypesForEncoding->add(mimeType);
    295296    }
    296 #elif PLATFORM(GTK)
     297#elif PLATFORM(GTK) || (PLATFORM(QT) && !USE(QT_IMAGE_DECODER))
    297298    supportedImageMIMETypesForEncoding->add("image/png");
    298299    supportedImageMIMETypesForEncoding->add("image/jpeg");
  • trunk/Source/WebCore/platform/graphics/ImageSource.cpp

    r116086 r116105  
    3030#include "ImageSource.h"
    3131
     32#if PLATFORM(QT)
     33#include "ImageDecoderQt.h"
     34#else
    3235#include "ImageDecoder.h"
     36#endif
    3337
    3438#include "ImageOrientation.h"
  • trunk/Source/WebCore/platform/graphics/ImageSource.h

    r116086 r116105  
    7676typedef ImageDecoder* NativeImageSourcePtr;
    7777typedef TiledImageOpenVG* NativeImagePtr;
     78#elif PLATFORM(QT)
     79class ImageDecoderQt;
     80typedef ImageDecoderQt* NativeImageSourcePtr;
     81typedef QPixmap* NativeImagePtr;
    7882#else
    7983class ImageDecoder;
     
    9599typedef ImageDecoder* NativeImageSourcePtr;
    96100typedef void* NativeImagePtr;
    97 #elif PLATFORM(QT)
    98 typedef QPixmap* NativeImagePtr;
    99101#endif
    100102#endif
  • trunk/Source/WebCore/platform/graphics/qt/ImageDecoderQt.cpp

    r116086 r116105  
    3232#include <QtCore/QByteArray>
    3333#include <QtCore/QBuffer>
     34
    3435#include <QtGui/QImageReader>
     36#include <qdebug.h>
    3537
    3638namespace WebCore {
     39
     40ImageDecoder* ImageDecoder::create(const SharedBuffer& data, ImageSource::AlphaOption alphaOption, ImageSource::GammaAndColorProfileOption gammaAndColorProfileOption)
     41{
     42    // We need at least 4 bytes to figure out what kind of image we're dealing with.
     43    if (data.size() < 4)
     44        return 0;
     45
     46    return new ImageDecoderQt(alphaOption, gammaAndColorProfileOption);
     47}
    3748
    3849ImageDecoderQt::ImageDecoderQt(ImageSource::AlphaOption alphaOption, ImageSource::GammaAndColorProfileOption gammaAndColorProfileOption)
     
    119130{
    120131    return String(m_format.constData(), m_format.length());
    121 }
     132};
    122133
    123134ImageFrame* ImageDecoderQt::frameBufferAtIndex(size_t index)
     
    184195bool ImageDecoderQt::internalHandleCurrentImage(size_t frameIndex)
    185196{
    186     ImageFrame* const buffer = &m_frameBufferCache[frameIndex];
    187     QSize imageSize = m_reader->size();
    188 
    189     if (!buffer->setSize(imageSize.width(), imageSize.height()))
    190         return false;
    191 
    192     QImage image(reinterpret_cast<uchar*>(buffer->getAddr(0, 0)), imageSize.width(), imageSize.height(), sizeof(ImageFrame::PixelData) * imageSize.width(), m_reader->imageFormat());
    193 
    194     buffer->setDuration(m_reader->nextImageDelay());
    195     m_reader->read(&image);
    196 
    197     if (image.isNull()) {
     197    QPixmap pixmap = QPixmap::fromImageReader(m_reader.get());
     198
     199    if (pixmap.isNull()) {
    198200        frameCount();
    199201        repetitionCount();
     
    202204    }
    203205
    204     buffer->setOriginalFrameRect(image.rect());
    205     buffer->setHasAlpha(image.hasAlphaChannel());
     206    // now into the ImageFrame - even if the image is not
     207    ImageFrame* const buffer = &m_frameBufferCache[frameIndex];
     208    buffer->setOriginalFrameRect(m_reader->currentImageRect());
    206209    buffer->setStatus(ImageFrame::FrameComplete);
    207 
     210    buffer->setDuration(m_reader->nextImageDelay());
     211    buffer->setPixmap(pixmap);
    208212    return true;
    209213}
     
    242246    m_buffer.clear();
    243247}
    244 
    245 NativeImagePtr ImageFrame::asNewNativeImage() const
    246 {
    247     QImage::Format format;
    248     if (m_hasAlpha)
    249         format = m_premultiplyAlpha ?  QImage::Format_ARGB32_Premultiplied : QImage::Format_ARGB32;
    250     else
    251         format = QImage::Format_RGB32;
    252 
    253     QImage img(reinterpret_cast<uchar*>(m_bytes), m_size.width(), m_size.height(), sizeof(PixelData) * m_size.width(), format);
    254 
    255     return new QPixmap(QPixmap::fromImage(img));
    256 }
    257 
    258248}
    259249
  • trunk/Source/WebCore/platform/image-decoders/ImageDecoder.cpp

    r116086 r116105  
    2121
    2222#include "config.h"
     23
    2324#include "ImageDecoder.h"
     25
     26#include <algorithm>
     27#include <cmath>
    2428
    2529#include "BMPImageDecoder.h"
    2630#include "GIFImageDecoder.h"
    2731#include "ICOImageDecoder.h"
    28 #if PLATFORM(QT)
    29 #include "ImageDecoderQt.h"
    30 #endif
    3132#include "JPEGImageDecoder.h"
    3233#include "PNGImageDecoder.h"
    33 #include "SharedBuffer.h"
    3434#if USE(WEBP)
    3535#include "WEBPImageDecoder.h"
    3636#endif
    37 
    38 #include <algorithm>
    39 #include <cmath>
     37#include "SharedBuffer.h"
    4038
    4139using namespace std;
     
    127125        return new ICOImageDecoder(alphaOption, gammaAndColorProfileOption);
    128126
    129 #if PLATFORM(QT)
    130     return new ImageDecoderQt(alphaOption, gammaAndColorProfileOption);
    131 #endif
    132127    return 0;
    133128}
  • trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h

    r116086 r116105  
    4141#include "NativeImageSkia.h"
    4242#include "SkColorPriv.h"
     43#elif PLATFORM(QT)
     44#include <QPixmap>
     45#include <QImage>
    4346#endif
    4447
     
    6265                                      // contents
    6366        };
    64 #if USE(SKIA)
     67#if USE(SKIA) || (PLATFORM(QT) && USE(QT_IMAGE_DECODER))
    6568        typedef uint32_t PixelData;
    6669#else
     
    138141#if USE(SKIA)
    139142            return m_bitmap.bitmap().getAddr32(x, y);
     143#elif PLATFORM(QT) && USE(QT_IMAGE_DECODER)
     144            m_image = m_pixmap.toImage();
     145            m_pixmap = QPixmap();
     146            return reinterpret_cast_ptr<QRgb*>(m_image.scanLine(y)) + x;
    140147#else
    141148            return m_bytes + (y * width()) + x;
    142149#endif
    143150        }
     151
     152#if PLATFORM(QT) && USE(QT_IMAGE_DECODER)
     153        void setPixmap(const QPixmap& pixmap);
     154#endif
     155
    144156    private:
    145157#if USE(CG)
     
    179191        ColorProfile m_colorProfile;
    180192#endif
     193#elif PLATFORM(QT) && USE(QT_IMAGE_DECODER)
     194        mutable QPixmap m_pixmap;
     195        mutable QImage m_image;
     196        bool m_hasAlpha;
     197        IntSize m_size;
    181198#else
    182199        NativeBackingStore m_backingStore;
  • trunk/Source/WebKit/blackberry/ChangeLog

    r116085 r116105  
     12012-05-04  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r116085, r116091, and r116095.
     4        http://trac.webkit.org/changeset/116085
     5        http://trac.webkit.org/changeset/116091
     6        http://trac.webkit.org/changeset/116095
     7        https://bugs.webkit.org/show_bug.cgi?id=85628
     8
     9        We are not ready with dependencies on all platform yet (mac) +
     10        problems with debug builds. (Requested by Zoltan on #webkit).
     11
     12        * WebCoreSupport/AboutDataEnableFeatures.in:
     13
    1142012-05-04  Zoltan Horvath  <zoltan@webkit.org>
    215
  • trunk/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in

    r116085 r116105  
    108108PROGRESS_TAG
    109109PURGEABLE_MEMORY
     110QT_IMAGE_DECODER
    110111QUOTA
    111112REGEXP_TRACING
  • trunk/Tools/ChangeLog

    r116097 r116105  
     12012-05-04  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r116085, r116091, and r116095.
     4        http://trac.webkit.org/changeset/116085
     5        http://trac.webkit.org/changeset/116091
     6        http://trac.webkit.org/changeset/116095
     7        https://bugs.webkit.org/show_bug.cgi?id=85628
     8
     9        We are not ready with dependencies on all platform yet (mac) +
     10        problems with debug builds. (Requested by Zoltan on #webkit).
     11
     12        * qmake/mkspecs/features/features.prf:
     13
    1142012-05-04  Christophe Dumez  <christophe.dumez@intel.com>
    215
  • trunk/Tools/qmake/mkspecs/features/features.prf

    r116089 r116105  
    115115!contains(DEFINES, ENABLE_FAST_MOBILE_SCROLLING=.): DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1
    116116!contains(DEFINES, ENABLE_PAGE_VISIBILITY_API=.): DEFINES += ENABLE_PAGE_VISIBILITY_API=1
     117
     118# Policy decisions: for using a particular third-party library or optional OS service
     119!contains(DEFINES, WTF_USE_QT_IMAGE_DECODER=.): DEFINES += WTF_USE_QT_IMAGE_DECODER=1
    117120
    118121# Enabled in Source/JavaScriptCore/wtf/Platform.h if not set
Note: See TracChangeset for help on using the changeset viewer.