summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-23 15:08:59 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-23 15:09:20 +0100
commit061d58bc0fa016cfeed744fd3e4663460635d69b (patch)
treead9b8b032c803e1c9054c23fa1b7a0f1976bf98f /Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
parent470286ecfe79d59df14944e5b5d34630fc739391 (diff)
downloadqtwebkit-061d58bc0fa016cfeed744fd3e4663460635d69b.tar.gz
Imported WebKit commit 8eb048315f36fa33731f28694630fe4a3c2cbc99 (http://svn.webkit.org/repository/webkit/trunk@135602)
New snapshot that fixes various bugs Change-Id: Icb6ce541a26a9f500d087821ce4b83a8d8a5474a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp40
1 files changed, 15 insertions, 25 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
index 2ff70d931..6598b6602 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
@@ -116,6 +116,16 @@ typedef HashMap<uint64_t, GRefPtr<WebKitWebResource> > LoadingResourcesMap;
typedef HashMap<String, GRefPtr<WebKitWebResource> > ResourcesMap;
struct _WebKitWebViewPrivate {
+ ~_WebKitWebViewPrivate()
+ {
+ if (javascriptGlobalContext)
+ JSGlobalContextRelease(javascriptGlobalContext);
+
+ // For modal dialogs, make sure the main loop is stopped when finalizing the webView.
+ if (modalLoop && g_main_loop_is_running(modalLoop.get()))
+ g_main_loop_quit(modalLoop.get());
+ }
+
WebKitWebContext* context;
CString title;
CString customTextEncoding;
@@ -153,7 +163,7 @@ struct _WebKitWebViewPrivate {
static guint signals[LAST_SIGNAL] = { 0, };
-G_DEFINE_TYPE(WebKitWebView, webkit_web_view, WEBKIT_TYPE_WEB_VIEW_BASE)
+WEBKIT_DEFINE_TYPE(WebKitWebView, webkit_web_view, WEBKIT_TYPE_WEB_VIEW_BASE)
static inline WebPageProxy* getPage(WebKitWebView* webView)
{
@@ -441,6 +451,7 @@ static void webkitWebViewConstructed(GObject* object)
attachFormClientToView(webView);
priv->backForwardList = adoptGRef(webkitBackForwardListCreate(getPage(webView)->backForwardList()));
+ priv->windowProperties = adoptGRef(webkitWindowPropertiesCreate());
GRefPtr<WebKitSettings> settings = adoptGRef(webkit_settings_new());
webkitWebViewSetSettings(webView, settings.get());
@@ -495,34 +506,15 @@ static void webkitWebViewGetProperty(GObject* object, guint propId, GValue* valu
}
}
-static void webkitWebViewFinalize(GObject* object)
+static void webkitWebViewDispose(GObject* object)
{
WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
- WebKitWebViewPrivate* priv = webView->priv;
-
- if (priv->javascriptGlobalContext)
- JSGlobalContextRelease(priv->javascriptGlobalContext);
-
- // For modal dialogs, make sure the main loop is stopped when finalizing the webView.
- if (priv->modalLoop && g_main_loop_is_running(priv->modalLoop.get()))
- g_main_loop_quit(priv->modalLoop.get());
-
webkitWebViewCancelFaviconRequest(webView);
webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(webView);
webkitWebViewDisconnectSettingsSignalHandlers(webView);
webkitWebViewDisconnectFaviconDatabaseSignalHandlers(webView);
- priv->~WebKitWebViewPrivate();
- G_OBJECT_CLASS(webkit_web_view_parent_class)->finalize(object);
-}
-
-static void webkit_web_view_init(WebKitWebView* webView)
-{
- WebKitWebViewPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(webView, WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate);
- webView->priv = priv;
- new (priv) WebKitWebViewPrivate();
-
- webView->priv->windowProperties = adoptGRef(webkitWindowPropertiesCreate());
+ G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object);
}
static gboolean webkitWebViewAccumulatorObjectHandled(GSignalInvocationHint*, GValue* returnValue, const GValue* handlerReturn, gpointer)
@@ -541,7 +533,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
gObjectClass->constructed = webkitWebViewConstructed;
gObjectClass->set_property = webkitWebViewSetProperty;
gObjectClass->get_property = webkitWebViewGetProperty;
- gObjectClass->finalize = webkitWebViewFinalize;
+ gObjectClass->dispose = webkitWebViewDispose;
webViewClass->load_failed = webkitWebViewLoadFail;
webViewClass->create = webkitWebViewCreate;
@@ -550,8 +542,6 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
webViewClass->permission_request = webkitWebViewPermissionRequest;
webViewClass->run_file_chooser = webkitWebViewRunFileChooser;
- g_type_class_add_private(webViewClass, sizeof(WebKitWebViewPrivate));
-
/**
* WebKitWebView:web-context:
*