Title: [145516] trunk/Source/WebKit2
- Revision
- 145516
- Author
- jocelyn.turco...@digia.com
- Date
- 2013-03-12 04:14:42 -0700 (Tue, 12 Mar 2013)
Log Message
[Qt] Properly layer QtWebContext on top of the C API
https://bugs.webkit.org/show_bug.cgi?id=108475
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
* UIProcess/qt/QtWebContext.cpp:
(WebKit::initializeContextInjectedBundleClient):
(WebKit::QtWebContext::QtWebContext):
(WebKit::QtWebContext::create):
(WebKit::QtWebContext::defaultContext):
* UIProcess/qt/QtWebContext.h:
(WebKit):
(QtWebContext):
(WebKit::QtWebContext::context):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (145515 => 145516)
--- trunk/Source/WebKit2/ChangeLog 2013-03-12 11:13:31 UTC (rev 145515)
+++ trunk/Source/WebKit2/ChangeLog 2013-03-12 11:14:42 UTC (rev 145516)
@@ -1,5 +1,25 @@
2013-02-14 Jocelyn Turcotte <jocelyn.turco...@digia.com>
+ [Qt] Properly layer QtWebContext on top of the C API
+ https://bugs.webkit.org/show_bug.cgi?id=108475
+
+ Reviewed by Simon Hausmann.
+ Signed off for WebKit2 by Benjamin Poulain.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::initialize):
+ * UIProcess/qt/QtWebContext.cpp:
+ (WebKit::initializeContextInjectedBundleClient):
+ (WebKit::QtWebContext::QtWebContext):
+ (WebKit::QtWebContext::create):
+ (WebKit::QtWebContext::defaultContext):
+ * UIProcess/qt/QtWebContext.h:
+ (WebKit):
+ (QtWebContext):
+ (WebKit::QtWebContext::context):
+
+2013-02-14 Jocelyn Turcotte <jocelyn.turco...@digia.com>
+
[Qt][WK2] Allow QtWebContext to call directly to QQuickWebView with a WKPageRef
https://bugs.webkit.org/show_bug.cgi?id=109829
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (145515 => 145516)
--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp 2013-03-12 11:13:31 UTC (rev 145515)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp 2013-03-12 11:14:42 UTC (rev 145516)
@@ -34,6 +34,7 @@
#include "QtWebPageEventHandler.h"
#include "QtWebPagePolicyClient.h"
#include "WebBackForwardList.h"
+#include "WebContext.h"
#include "WebFindOptions.h"
#if ENABLE(INSPECTOR_SERVER)
#include "WebInspectorProxy.h"
@@ -321,8 +322,8 @@
if (!pageGroup)
pageGroup = adoptWK(WKPageGroupCreateWithIdentifier(0));
- context = contextRef ? QtWebContext::create(toImpl(contextRef)) : QtWebContext::defaultContext();
- webPageProxy = context->createWebPage(&pageClient, toImpl(pageGroup.get()));
+ context = contextRef ? QtWebContext::create(contextRef) : QtWebContext::defaultContext();
+ webPageProxy = toImpl(context->context())->createWebPage(&pageClient, toImpl(pageGroup.get()));
webPage = toAPI(webPageProxy.get());
pageToView()->insert(webPage.get(), this);
Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp (145515 => 145516)
--- trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp 2013-03-12 11:13:31 UTC (rev 145515)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp 2013-03-12 11:14:42 UTC (rev 145516)
@@ -23,10 +23,9 @@
#include "QtDownloadManager.h"
#include "QtWebIconDatabaseClient.h"
-#include "WKAPICast.h"
-#include "WebContext.h"
#include "WebInspectorServer.h"
#include "qquickwebview_p_p.h"
+#include <WKAPICast.h>
#include <WKArray.h>
#include <WKPage.h>
#include <WKString.h>
@@ -102,19 +101,19 @@
QQuickWebViewPrivate::get(page)->didReceiveMessageFromNavigatorQtObject(str);
}
-static void initializeContextInjectedBundleClient(WebContext* context)
+static void initializeContextInjectedBundleClient(WKContextRef context)
{
WKContextInjectedBundleClient injectedBundleClient;
memset(&injectedBundleClient, 0, sizeof(WKContextInjectedBundleClient));
injectedBundleClient.version = kWKContextInjectedBundleClientCurrentVersion;
injectedBundleClient.didReceiveMessageFromInjectedBundle = didReceiveMessageFromInjectedBundle;
- WKContextSetInjectedBundleClient(toAPI(context), &injectedBundleClient);
+ WKContextSetInjectedBundleClient(context, &injectedBundleClient);
}
-QtWebContext::QtWebContext(PassRefPtr<WebContext> context)
+QtWebContext::QtWebContext(WKContextRef context)
: m_context(context)
- , m_downloadManager(new QtDownloadManager(m_context.get()))
- , m_iconDatabase(new QtWebIconDatabaseClient(m_context.get()))
+ , m_downloadManager(new QtDownloadManager(toImpl(context)))
+ , m_iconDatabase(new QtWebIconDatabaseClient(toImpl(context)))
{
}
@@ -123,7 +122,7 @@
}
// Used directly only by WebKitTestRunner.
-QtWebContext* QtWebContext::create(PassRefPtr<WebContext> context)
+QtWebContext* QtWebContext::create(WKContextRef context)
{
globalInitialization();
return new QtWebContext(context);
@@ -132,23 +131,18 @@
QtWebContext* QtWebContext::defaultContext()
{
if (!s_defaultQtWebContext) {
- RefPtr<WebContext> webContext = WebContext::create(String());
+ WKRetainPtr<WKContextRef> wkContext = adoptWK(WKContextCreate());
// Make sure for WebKitTestRunner that the injected bundle client isn't initialized
// and that the page cache isn't enabled (defaultContext() isn't used there).
- initializeContextInjectedBundleClient(webContext.get());
+ initializeContextInjectedBundleClient(wkContext.get());
// A good all-around default.
- webContext->setCacheModel(CacheModelDocumentBrowser);
+ WKContextSetCacheModel(wkContext.get(), kWKCacheModelDocumentBrowser);
- s_defaultQtWebContext = QtWebContext::create(webContext.release());
+ s_defaultQtWebContext = QtWebContext::create(wkContext.get());
}
return s_defaultQtWebContext;
}
-PassRefPtr<WebPageProxy> QtWebContext::createWebPage(PageClient* client, WebPageGroup* pageGroup)
-{
- return m_context->createWebPage(client, pageGroup);
-}
-
} // namespace WebKit
Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h (145515 => 145516)
--- trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h 2013-03-12 11:13:31 UTC (rev 145515)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h 2013-03-12 11:14:42 UTC (rev 145516)
@@ -24,38 +24,29 @@
#include <QScopedPointer>
#include <QtGlobal>
#include <WKContext.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/RefPtr.h>
+#include <WKRetainPtr.h>
namespace WebKit {
-class PageClient;
class QtDownloadManager;
class QtWebIconDatabaseClient;
-class WebContext;
-class WebPageGroup;
-class WebPageProxy;
class QtWebContext {
public:
~QtWebContext();
- static QtWebContext* create(PassRefPtr<WebContext>);
+ static QtWebContext* create(WKContextRef);
static QtWebContext* defaultContext();
- PassRefPtr<WebPageProxy> createWebPage(PageClient*, WebPageGroup*);
+ WKContextRef context() { return m_context.get(); }
- WebContext* context() { return m_context.get(); }
-
QtDownloadManager* downloadManager() { return m_downloadManager.data(); }
QtWebIconDatabaseClient* iconDatabase() { return m_iconDatabase.data(); }
private:
- explicit QtWebContext(PassRefPtr<WebContext>);
+ explicit QtWebContext(WKContextRef);
- RefPtr<WebContext> m_context;
+ WKRetainPtr<WKContextRef> m_context;
QScopedPointer<QtDownloadManager> m_downloadManager;
QScopedPointer<QtWebIconDatabaseClient> m_iconDatabase;
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes