summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp')
-rw-r--r--Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp72
1 files changed, 28 insertions, 44 deletions
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 <QtCore/QHash>
#include <QtCore/QObject>
#include <QtCore/QUrl>
#include <QtGui/QImage>
+#include <WKContext.h>
+#include <WKContextPrivate.h>
+#include <WKIconDatabaseQt.h>
+#include <WKRetainPtr.h>
+#include <WKStringQt.h>
+#include <WKURLQt.h>
namespace WebKit {
+static unsigned s_updateId = 0;
+
static inline QtWebIconDatabaseClient* toQtWebIconDatabaseClient(const void* clientInfo)
{
ASSERT(clientInfo);
return reinterpret_cast<QtWebIconDatabaseClient*>(const_cast<void*>(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<WKStringRef> 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