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

Reply via email to