From d441d6f39bb846989d95bcf5caf387b42414718d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 13 Sep 2013 12:51:20 +0200 Subject: Import Qt5x2 branch of QtWebkit for Qt 5.2 Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen --- .../UIProcess/qt/QtWebIconDatabaseClient.cpp | 72 +++++++++------------- 1 file changed, 28 insertions(+), 44 deletions(-) (limited to 'Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp') diff --git a/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp b/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp index 7dbb273fd..86ac710bf 100644 --- a/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp +++ b/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp @@ -20,89 +20,73 @@ #include "config.h" #include "QtWebIconDatabaseClient.h" -#include "Image.h" -#include "KURL.h" -#include "SharedBuffer.h" -#include "WKURLQt.h" -#include "WebContext.h" -#include "WebIconDatabase.h" +#include "QtWebContext.h" #include #include #include #include +#include +#include +#include +#include +#include +#include namespace WebKit { +static unsigned s_updateId = 0; + static inline QtWebIconDatabaseClient* toQtWebIconDatabaseClient(const void* clientInfo) { ASSERT(clientInfo); return reinterpret_cast(const_cast(clientInfo)); } -QtWebIconDatabaseClient::QtWebIconDatabaseClient(WebContext *context) +QtWebIconDatabaseClient::QtWebIconDatabaseClient(WKContextRef context) { - // The setter calls the getter here as it triggers the startup of the icon database. - if (!context->iconDatabase()->isOpen()) - context->setIconDatabasePath(context->iconDatabasePath()); - m_iconDatabase = context->iconDatabase(); + m_iconDatabase = WKContextGetIconDatabase(context); WKIconDatabaseClient iconDatabaseClient; memset(&iconDatabaseClient, 0, sizeof(WKIconDatabaseClient)); iconDatabaseClient.version = kWKIconDatabaseClientCurrentVersion; iconDatabaseClient.clientInfo = this; iconDatabaseClient.didChangeIconForPageURL = didChangeIconForPageURL; - WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase.get()), &iconDatabaseClient); + WKIconDatabaseSetIconDatabaseClient(m_iconDatabase, &iconDatabaseClient); + // Triggers the startup of the icon database. + WKRetainPtr path = adoptWK(WKStringCreateWithQString(QtWebContext::preparedStoragePath(QtWebContext::IconDatabaseStorage))); + WKContextSetIconDatabasePath(context, path.get()); } QtWebIconDatabaseClient::~QtWebIconDatabaseClient() { - m_iconDatabase->close(); - WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase.get()), 0); + WKIconDatabaseClose(m_iconDatabase); + WKIconDatabaseSetIconDatabaseClient(m_iconDatabase, 0); } -void QtWebIconDatabaseClient::didChangeIconForPageURL(WKIconDatabaseRef, WKURLRef pageURL, const void* clientInfo) +unsigned QtWebIconDatabaseClient::updateID() { - emit toQtWebIconDatabaseClient(clientInfo)->iconChangedForPageURL(toImpl(pageURL)->string()); + return s_updateId; } -WTF::String QtWebIconDatabaseClient::iconForPageURL(const WTF::String& pageURL) +void QtWebIconDatabaseClient::didChangeIconForPageURL(WKIconDatabaseRef, WKURLRef pageURL, const void* clientInfo) { - String iconURL; - m_iconDatabase->synchronousIconURLForPageURL(pageURL, iconURL); - - if (iconURL.isEmpty()) - return String(); - - // Verify that the image data is actually available before reporting back - // a url, since clients assume that the url can be used directly. - WebCore::Image* iconImage = m_iconDatabase->imageForPageURL(pageURL); - if (!iconImage || iconImage->isNull()) - return String(); - - return iconURL; + ++s_updateId; + emit toQtWebIconDatabaseClient(clientInfo)->iconChangedForPageURL(WKURLCopyQString(pageURL)); } -QImage QtWebIconDatabaseClient::iconImageForPageURL(const WTF::String& pageURL, const QSize& iconSize) +QImage QtWebIconDatabaseClient::iconImageForPageURL(const QString& pageURL) { - MutexLocker locker(m_imageLock); - - WebCore::IntSize size(iconSize.width(), iconSize.height()); - - QPixmap* nativeImage = m_iconDatabase->nativeImageForPageURL(pageURL, size); - if (!nativeImage) - return QImage(); - - return nativeImage->toImage(); + return WKIconDatabaseTryGetQImageForURL(m_iconDatabase, adoptWK(WKURLCreateWithQString(pageURL)).get()); } -void QtWebIconDatabaseClient::retainIconForPageURL(const String& pageURL) +void QtWebIconDatabaseClient::retainIconForPageURL(const QString& pageURL) { - m_iconDatabase->retainIconForPageURL(pageURL); + WKIconDatabaseRetainIconForURL(m_iconDatabase, adoptWK(WKURLCreateWithQString(pageURL)).get()); } -void QtWebIconDatabaseClient::releaseIconForPageURL(const String& pageURL) +void QtWebIconDatabaseClient::releaseIconForPageURL(const QString& pageURL) { - m_iconDatabase->releaseIconForPageURL(pageURL); + WKIconDatabaseReleaseIconForURL(m_iconDatabase, adoptWK(WKURLCreateWithQString(pageURL)).get()); } } // namespace WebKit -- cgit v1.2.1