Hello,

On 11/06/2010 03:30 PM, ext Harri Pasanen wrote:
After some debugging of webkit internals, I found out that if the external Qt
plugin does not support Size option, the following code in ImageDecoderQt.cpp
fails it:

void ImageDecoderQt::internalDecodeSize()
{
     ASSERT(m_reader);

     // If we have a QSize() something failed
     QSize size = m_reader->size();
     if (size.isEmpty()) {
         setFailed();
         return clearPointers();
     }

     setSize(size.width(), size.height());
}

Note that image plugins are not required to provide support for Size option,
so this seems a bit harsh - but perhaps this is important for performance?

I created a bug report for it: https://bugs.webkit.org/show_bug.cgi?id=49178

It looks like the change was introduced as a smart way to detect errors early. The real problem is the interface QImageIOHandler which has no effective way to report errors.

Checking the size there is a way to detect early if there was problems when reading the headers.

I believe you could work around the issue without too much impact on performance. Reporting the failure will only be slightly delayed.

Do you plan to work to patch the problem?
Do not forget to change ImageDecoderQt::isSizeAvailable() to avoid infinite loop. A test case would be more than welcome if you change this behavior.

cheers,
Benjamin
_______________________________________________
webkit-qt mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt

Reply via email to