diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-23 15:08:59 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-23 15:09:20 +0100 |
commit | 061d58bc0fa016cfeed744fd3e4663460635d69b (patch) | |
tree | ad9b8b032c803e1c9054c23fa1b7a0f1976bf98f /Source/WebKit2/UIProcess/API/gtk | |
parent | 470286ecfe79d59df14944e5b5d34630fc739391 (diff) | |
download | qtwebkit-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')
30 files changed, 205 insertions, 547 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp index 56eae4437..fbf302aa8 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp @@ -63,27 +63,10 @@ struct _WebKitBackForwardListPrivate { static guint signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE(WebKitBackForwardList, webkit_back_forward_list, G_TYPE_OBJECT) - -static void webkitBackForwardListFinalize(GObject* object) -{ - WEBKIT_BACK_FORWARD_LIST(object)->priv->~WebKitBackForwardListPrivate(); - G_OBJECT_CLASS(webkit_back_forward_list_parent_class)->finalize(object); -} - -static void webkit_back_forward_list_init(WebKitBackForwardList* list) -{ - WebKitBackForwardListPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(list, WEBKIT_TYPE_BACK_FORWARD_LIST, WebKitBackForwardListPrivate); - list->priv = priv; - new (priv) WebKitBackForwardListPrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitBackForwardList, webkit_back_forward_list, G_TYPE_OBJECT) static void webkit_back_forward_list_class_init(WebKitBackForwardListClass* listClass) { - GObjectClass* gObjectClass = G_OBJECT_CLASS(listClass); - - gObjectClass->finalize = webkitBackForwardListFinalize; - /** * WebKitBackForwardList::changed: * @back_forward_list: the #WebKitBackForwardList on which the signal was emitted @@ -105,8 +88,6 @@ static void webkit_back_forward_list_class_init(WebKitBackForwardListClass* list G_TYPE_NONE, 2, WEBKIT_TYPE_BACK_FORWARD_LIST_ITEM, G_TYPE_POINTER); - - g_type_class_add_private(listClass, sizeof(WebKitBackForwardListPrivate)); } static WebKitBackForwardListItem* webkitBackForwardListGetOrCreateItem(WebKitBackForwardList* list, WebBackForwardListItem* webListItem) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.cpp index 8b22afc46..53fd1c8c2 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.cpp @@ -35,28 +35,10 @@ struct _WebKitBackForwardListItemPrivate { CString originalURI; }; -G_DEFINE_TYPE(WebKitBackForwardListItem, webkit_back_forward_list_item, G_TYPE_INITIALLY_UNOWNED) - -static void webkitBackForwardListItemFinalize(GObject* object) -{ - WEBKIT_BACK_FORWARD_LIST_ITEM(object)->priv->~WebKitBackForwardListItemPrivate(); - G_OBJECT_CLASS(webkit_back_forward_list_item_parent_class)->finalize(object); -} - -static void webkit_back_forward_list_item_init(WebKitBackForwardListItem* listItem) -{ - WebKitBackForwardListItemPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(listItem, WEBKIT_TYPE_BACK_FORWARD_LIST_ITEM, WebKitBackForwardListItemPrivate); - listItem->priv = priv; - new (priv) WebKitBackForwardListItemPrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitBackForwardListItem, webkit_back_forward_list_item, G_TYPE_INITIALLY_UNOWNED) static void webkit_back_forward_list_item_class_init(WebKitBackForwardListItemClass* listItemClass) { - GObjectClass* gObjectClass = G_OBJECT_CLASS(listItemClass); - - gObjectClass->finalize = webkitBackForwardListItemFinalize; - - g_type_class_add_private(listItemClass, sizeof(WebKitBackForwardListItemPrivate)); } typedef HashMap<WebBackForwardListItem*, WebKitBackForwardListItem*> HistoryItemsMap; diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp index e65728aac..46ce958ee 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp @@ -33,29 +33,18 @@ struct _WebKitContextMenuPrivate { WebKitContextMenuItem* parentItem; }; -G_DEFINE_TYPE(WebKitContextMenu, webkit_context_menu, G_TYPE_OBJECT) +WEBKIT_DEFINE_TYPE(WebKitContextMenu, webkit_context_menu, G_TYPE_OBJECT) -static void webkitContextMenuFinalize(GObject* object) +static void webkitContextMenuDispose(GObject* object) { - WebKitContextMenu* menu = WEBKIT_CONTEXT_MENU(object); - webkit_context_menu_remove_all(menu); - menu->priv->~WebKitContextMenuPrivate(); - G_OBJECT_CLASS(webkit_context_menu_parent_class)->finalize(object); -} - -static void webkit_context_menu_init(WebKitContextMenu* menu) -{ - WebKitContextMenuPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(menu, WEBKIT_TYPE_CONTEXT_MENU, WebKitContextMenuPrivate); - menu->priv = priv; - new (priv) WebKitContextMenuPrivate(); + webkit_context_menu_remove_all(WEBKIT_CONTEXT_MENU(object)); + G_OBJECT_CLASS(webkit_context_menu_parent_class)->dispose(object); } static void webkit_context_menu_class_init(WebKitContextMenuClass* listClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(listClass); - gObjectClass->finalize = webkitContextMenuFinalize; - - g_type_class_add_private(listClass, sizeof(WebKitContextMenuPrivate)); + gObjectClass->dispose = webkitContextMenuDispose; } void webkitContextMenuPopulate(WebKitContextMenu* menu, Vector<ContextMenuItem>& contextMenuItems) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp index a73f07575..aa89b990b 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp @@ -38,33 +38,20 @@ using namespace WebKit; using namespace WebCore; struct _WebKitContextMenuItemPrivate { + ~_WebKitContextMenuItemPrivate() + { + if (subMenu) + webkitContextMenuSetParentItem(subMenu.get(), 0); + } + OwnPtr<ContextMenuItem> menuItem; GRefPtr<WebKitContextMenu> subMenu; }; -G_DEFINE_TYPE(WebKitContextMenuItem, webkit_context_menu_item, G_TYPE_INITIALLY_UNOWNED) - -static void webkitContextMenuItemFinalize(GObject* object) -{ - WebKitContextMenuItemPrivate* priv = WEBKIT_CONTEXT_MENU_ITEM(object)->priv; - if (priv->subMenu) - webkitContextMenuSetParentItem(priv->subMenu.get(), 0); - priv->~WebKitContextMenuItemPrivate(); - G_OBJECT_CLASS(webkit_context_menu_item_parent_class)->finalize(object); -} - -static void webkit_context_menu_item_init(WebKitContextMenuItem* item) -{ - WebKitContextMenuItemPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(item, WEBKIT_TYPE_CONTEXT_MENU_ITEM, WebKitContextMenuItemPrivate); - item->priv = priv; - new (priv) WebKitContextMenuItemPrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitContextMenuItem, webkit_context_menu_item, G_TYPE_INITIALLY_UNOWNED) static void webkit_context_menu_item_class_init(WebKitContextMenuItemClass* itemClass) { - GObjectClass* gObjectClass = G_OBJECT_CLASS(itemClass); - gObjectClass->finalize = webkitContextMenuItemFinalize; - g_type_class_add_private(itemClass, sizeof(WebKitContextMenuItemPrivate)); } static bool checkAndWarnIfMenuHasParentItem(WebKitContextMenu* menu) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp index 66db1cc5b..29a37ebd3 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp @@ -36,12 +36,17 @@ enum { }; struct _WebKitCookieManagerPrivate { + ~_WebKitCookieManagerPrivate() + { + webCookieManager->stopObservingCookieChanges(); + } + RefPtr<WebCookieManagerProxy> webCookieManager; }; static guint signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE(WebKitCookieManager, webkit_cookie_manager, G_TYPE_OBJECT) +WEBKIT_DEFINE_TYPE(WebKitCookieManager, webkit_cookie_manager, G_TYPE_OBJECT) COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT, SoupCookiePersistentStorageText); COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE, SoupCookiePersistentStorageSQLite); @@ -50,27 +55,9 @@ COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS, HTTPCookieAccep COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_COOKIE_POLICY_ACCEPT_NEVER, HTTPCookieAcceptPolicyNever); COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY, HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain); -static void webkit_cookie_manager_init(WebKitCookieManager* manager) -{ - WebKitCookieManagerPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(manager, WEBKIT_TYPE_COOKIE_MANAGER, WebKitCookieManagerPrivate); - manager->priv = priv; - new (priv) WebKitCookieManagerPrivate(); -} - -static void webkitCookieManagerFinalize(GObject* object) -{ - WebKitCookieManagerPrivate* priv = WEBKIT_COOKIE_MANAGER(object)->priv; - priv->webCookieManager->stopObservingCookieChanges(); - priv->~WebKitCookieManagerPrivate(); - G_OBJECT_CLASS(webkit_cookie_manager_parent_class)->finalize(object); -} - static void webkit_cookie_manager_class_init(WebKitCookieManagerClass* findClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(findClass); - gObjectClass->finalize = webkitCookieManagerFinalize; - - g_type_class_add_private(findClass, sizeof(WebKitCookieManagerPrivate)); /** * WebKitCookieManager::changed: diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitDownload.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitDownload.cpp index a6754de06..245f1a61b 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitDownload.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitDownload.cpp @@ -53,6 +53,12 @@ enum { }; struct _WebKitDownloadPrivate { + ~_WebKitDownloadPrivate() + { + if (webView) + g_object_remove_weak_pointer(G_OBJECT(webView), reinterpret_cast<void**>(&webView)); + } + RefPtr<DownloadProxy> download; GRefPtr<WebKitURIRequest> request; @@ -68,16 +74,7 @@ struct _WebKitDownloadPrivate { static guint signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE(WebKitDownload, webkit_download, G_TYPE_OBJECT) - -static void webkitDownloadFinalize(GObject* object) -{ - WebKitDownloadPrivate* priv = WEBKIT_DOWNLOAD(object)->priv; - if (priv->webView) - g_object_remove_weak_pointer(G_OBJECT(priv->webView), reinterpret_cast<void**>(&priv->webView)); - priv->~WebKitDownloadPrivate(); - G_OBJECT_CLASS(webkit_download_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitDownload, webkit_download, G_TYPE_OBJECT) static void webkitDownloadGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -111,18 +108,10 @@ static gboolean webkitDownloadDecideDestination(WebKitDownload* download, const return TRUE; } -static void webkit_download_init(WebKitDownload* download) -{ - WebKitDownloadPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(download, WEBKIT_TYPE_DOWNLOAD, WebKitDownloadPrivate); - download->priv = priv; - new (priv) WebKitDownloadPrivate(); -} - static void webkit_download_class_init(WebKitDownloadClass* downloadClass) { GObjectClass* objectClass = G_OBJECT_CLASS(downloadClass); objectClass->get_property = webkitDownloadGetProperty; - objectClass->finalize = webkitDownloadFinalize; downloadClass->decide_destination = webkitDownloadDecideDestination; @@ -264,8 +253,6 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) g_cclosure_marshal_VOID__STRING, G_TYPE_BOOLEAN, 1, G_TYPE_STRING); - - g_type_class_add_private(downloadClass, sizeof(WebKitDownloadPrivate)); } WebKitDownload* webkitDownloadCreate(DownloadProxy* downloadProxy) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp index 1847b9605..d50533b91 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp @@ -52,14 +52,7 @@ struct _WebKitFaviconDatabasePrivate { HashMap<String, String> pageURLToIconURLMap; }; -G_DEFINE_TYPE(WebKitFaviconDatabase, webkit_favicon_database, G_TYPE_OBJECT) - -static void webkit_favicon_database_init(WebKitFaviconDatabase* manager) -{ - WebKitFaviconDatabasePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(manager, WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabasePrivate); - manager->priv = priv; - new (priv) WebKitFaviconDatabasePrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitFaviconDatabase, webkit_favicon_database, G_TYPE_OBJECT) static void webkitFaviconDatabaseDispose(GObject* object) { @@ -72,18 +65,10 @@ static void webkitFaviconDatabaseDispose(GObject* object) G_OBJECT_CLASS(webkit_favicon_database_parent_class)->dispose(object); } -static void webkitFaviconDatabaseFinalize(GObject* object) -{ - WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(object); - database->priv->~WebKitFaviconDatabasePrivate(); - G_OBJECT_CLASS(webkit_favicon_database_parent_class)->finalize(object); -} - static void webkit_favicon_database_class_init(WebKitFaviconDatabaseClass* faviconDatabaseClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(faviconDatabaseClass); gObjectClass->dispose = webkitFaviconDatabaseDispose; - gObjectClass->finalize = webkitFaviconDatabaseFinalize; /** * WebKitFaviconDatabase::favicon-changed: @@ -108,8 +93,6 @@ static void webkit_favicon_database_class_init(WebKitFaviconDatabaseClass* favic G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); - - g_type_class_add_private(faviconDatabaseClass, sizeof(WebKitFaviconDatabasePrivate)); } struct GetFaviconSurfaceAsyncData { diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp index 26ab99b44..85ae0efa0 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp @@ -56,7 +56,6 @@ using namespace WebCore; * WebKit will provide a default handler which will asynchronously run * a regular #GtkFileChooserDialog for the user to interact with. */ -G_DEFINE_TYPE(WebKitFileChooserRequest, webkit_file_chooser_request, G_TYPE_OBJECT) struct _WebKitFileChooserRequestPrivate { RefPtr<WebOpenPanelParameters> parameters; @@ -67,6 +66,8 @@ struct _WebKitFileChooserRequestPrivate { bool handledRequest; }; +WEBKIT_DEFINE_TYPE(WebKitFileChooserRequest, webkit_file_chooser_request, G_TYPE_OBJECT) + enum { PROP_0, PROP_FILTER, @@ -75,13 +76,7 @@ enum { PROP_SELECTED_FILES, }; -static void webkit_file_chooser_request_init(WebKitFileChooserRequest* request) -{ - request->priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_FILE_CHOOSER_REQUEST, WebKitFileChooserRequestPrivate); - new (request->priv) WebKitFileChooserRequestPrivate(); -} - -static void webkitFileChooserRequestFinalize(GObject* object) +static void webkitFileChooserRequestDispose(GObject* object) { WebKitFileChooserRequest* request = WEBKIT_FILE_CHOOSER_REQUEST(object); @@ -89,8 +84,7 @@ static void webkitFileChooserRequestFinalize(GObject* object) if (!request->priv->handledRequest) webkit_file_chooser_request_cancel(request); - request->priv->~WebKitFileChooserRequestPrivate(); - G_OBJECT_CLASS(webkit_file_chooser_request_parent_class)->finalize(object); + G_OBJECT_CLASS(webkit_file_chooser_request_parent_class)->dispose(object); } static void webkitFileChooserRequestGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) @@ -118,9 +112,8 @@ static void webkitFileChooserRequestGetProperty(GObject* object, guint propId, G static void webkit_file_chooser_request_class_init(WebKitFileChooserRequestClass* requestClass) { GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - objectClass->finalize = webkitFileChooserRequestFinalize; + objectClass->dispose = webkitFileChooserRequestDispose; objectClass->get_property = webkitFileChooserRequestGetProperty; - g_type_class_add_private(requestClass, sizeof(WebKitFileChooserRequestPrivate)); /** * WebKitFileChooserRequest:filter: diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp index be3f571d6..7e36a4ad5 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp @@ -62,7 +62,7 @@ struct _WebKitFindControllerPrivate { static guint signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE(WebKitFindController, webkit_find_controller, G_TYPE_OBJECT) +WEBKIT_DEFINE_TYPE(WebKitFindController, webkit_find_controller, G_TYPE_OBJECT) COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE, FindOptionsCaseInsensitive); COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_FIND_OPTIONS_AT_WORD_STARTS, FindOptionsAtWordStarts); @@ -85,13 +85,6 @@ static void didCountStringMatches(WKPageRef page, WKStringRef string, unsigned m g_signal_emit(WEBKIT_FIND_CONTROLLER(clientInfo), signals[COUNTED_MATCHES], 0, matchCount); } -static void webkit_find_controller_init(WebKitFindController* findController) -{ - WebKitFindControllerPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(findController, WEBKIT_TYPE_FIND_CONTROLLER, WebKitFindControllerPrivate); - findController->priv = priv; - new (priv) WebKitFindControllerPrivate(); -} - static inline WebPageProxy* getPage(WebKitFindController* findController) { return webkitWebViewBaseGetPage(reinterpret_cast<WebKitWebViewBase*>(findController->priv->webView)); @@ -146,22 +139,12 @@ static void webkitFindControllerSetProperty(GObject* object, guint propId, const } } -static void webkitFindControllerFinalize(GObject* object) -{ - WEBKIT_FIND_CONTROLLER(object)->priv->~WebKitFindControllerPrivate(); - G_OBJECT_CLASS(webkit_find_controller_parent_class)->finalize(object); -} - static void webkit_find_controller_class_init(WebKitFindControllerClass* findClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(findClass); - gObjectClass->constructed = webkitFindControllerConstructed; gObjectClass->get_property = webkitFindControllerGetProperty; gObjectClass->set_property = webkitFindControllerSetProperty; - gObjectClass->finalize = webkitFindControllerFinalize; - - g_type_class_add_private(findClass, sizeof(WebKitFindControllerPrivate)); /** * WebKitFindController:text: diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp index f901e7375..816cee3f6 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp @@ -28,8 +28,6 @@ using namespace WebKit; -G_DEFINE_TYPE(WebKitFormSubmissionRequest, webkit_form_submission_request, G_TYPE_OBJECT) - struct _WebKitFormSubmissionRequestPrivate { RefPtr<ImmutableDictionary> webValues; RefPtr<WebFormSubmissionListenerProxy> listener; @@ -37,14 +35,9 @@ struct _WebKitFormSubmissionRequestPrivate { bool handledRequest; }; -static void webkit_form_submission_request_init(WebKitFormSubmissionRequest* request) -{ - WebKitFormSubmissionRequestPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_FORM_SUBMISSION_REQUEST, WebKitFormSubmissionRequestPrivate); - request->priv = priv; - new (priv) WebKitFormSubmissionRequestPrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitFormSubmissionRequest, webkit_form_submission_request, G_TYPE_OBJECT) -static void webkitFormSubmissionRequestFinalize(GObject* object) +static void webkitFormSubmissionRequestDispose(GObject* object) { WebKitFormSubmissionRequest* request = WEBKIT_FORM_SUBMISSION_REQUEST(object); @@ -52,15 +45,13 @@ static void webkitFormSubmissionRequestFinalize(GObject* object) if (!request->priv->handledRequest) webkit_form_submission_request_submit(request); - request->priv->~WebKitFormSubmissionRequestPrivate(); - G_OBJECT_CLASS(webkit_form_submission_request_parent_class)->finalize(object); + G_OBJECT_CLASS(webkit_form_submission_request_parent_class)->dispose(object); } static void webkit_form_submission_request_class_init(WebKitFormSubmissionRequestClass* requestClass) { GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - objectClass->finalize = webkitFormSubmissionRequestFinalize; - g_type_class_add_private(requestClass, sizeof(WebKitFormSubmissionRequestPrivate)); + objectClass->dispose = webkitFormSubmissionRequestDispose; } WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(ImmutableDictionary* values, WebFormSubmissionListenerProxy* listener) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp index 664293770..f780dafb2 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp @@ -36,16 +36,18 @@ using namespace WebKit; * permission to decide whether WebKit should provide the user's * location to a website when requested throught the Geolocation API. */ + static void webkit_permission_request_interface_init(WebKitPermissionRequestIface*); -G_DEFINE_TYPE_WITH_CODE(WebKitGeolocationPermissionRequest, webkit_geolocation_permission_request, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE(WEBKIT_TYPE_PERMISSION_REQUEST, - webkit_permission_request_interface_init)) struct _WebKitGeolocationPermissionRequestPrivate { RefPtr<GeolocationPermissionRequestProxy> request; bool madeDecision; }; +WEBKIT_DEFINE_TYPE_WITH_CODE( + WebKitGeolocationPermissionRequest, webkit_geolocation_permission_request, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE(WEBKIT_TYPE_PERMISSION_REQUEST, webkit_permission_request_interface_init)) + static void webkitGeolocationPermissionRequestAllow(WebKitPermissionRequest* request) { ASSERT(WEBKIT_IS_GEOLOCATION_PERMISSION_REQUEST(request)); @@ -80,29 +82,17 @@ static void webkit_permission_request_interface_init(WebKitPermissionRequestIfac iface->deny = webkitGeolocationPermissionRequestDeny; } -static void webkit_geolocation_permission_request_init(WebKitGeolocationPermissionRequest* request) +static void webkitGeolocationPermissionRequestDispose(GObject* object) { - request->priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_GEOLOCATION_PERMISSION_REQUEST, WebKitGeolocationPermissionRequestPrivate); - new (request->priv) WebKitGeolocationPermissionRequestPrivate(); -} - -static void webkitGeolocationPermissionRequestFinalize(GObject* object) -{ - WebKitGeolocationPermissionRequestPrivate* priv = WEBKIT_GEOLOCATION_PERMISSION_REQUEST(object)->priv; - // Default behaviour when no decision has been made is denying the request. - if (!priv->madeDecision) - priv->request->deny(); - - priv->~WebKitGeolocationPermissionRequestPrivate(); - G_OBJECT_CLASS(webkit_geolocation_permission_request_parent_class)->finalize(object); + webkitGeolocationPermissionRequestDeny(WEBKIT_PERMISSION_REQUEST(object)); + G_OBJECT_CLASS(webkit_geolocation_permission_request_parent_class)->dispose(object); } static void webkit_geolocation_permission_request_class_init(WebKitGeolocationPermissionRequestClass* klass) { GObjectClass* objectClass = G_OBJECT_CLASS(klass); - objectClass->finalize = webkitGeolocationPermissionRequestFinalize; - g_type_class_add_private(klass, sizeof(WebKitGeolocationPermissionRequestPrivate)); + objectClass->dispose = webkitGeolocationPermissionRequestDispose; } WebKitGeolocationPermissionRequest* webkitGeolocationPermissionRequestCreate(GeolocationPermissionRequestProxy* request) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp index 4c9486782..8df293cba 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp @@ -74,13 +74,7 @@ struct _WebKitHitTestResultPrivate { CString mediaURI; }; -G_DEFINE_TYPE(WebKitHitTestResult, webkit_hit_test_result, G_TYPE_OBJECT) - -static void webkitHitTestResultFinalize(GObject* object) -{ - WEBKIT_HIT_TEST_RESULT(object)->priv->~WebKitHitTestResultPrivate(); - G_OBJECT_CLASS(webkit_hit_test_result_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitHitTestResult, webkit_hit_test_result, G_TYPE_OBJECT) static void webkitHitTestResultGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -138,19 +132,11 @@ static void webkitHitTestResultSetProperty(GObject* object, guint propId, const } } -static void webkit_hit_test_result_init(WebKitHitTestResult* hitTestResult) -{ - WebKitHitTestResultPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(hitTestResult, WEBKIT_TYPE_HIT_TEST_RESULT, WebKitHitTestResultPrivate); - hitTestResult->priv = priv; - new (priv) WebKitHitTestResultPrivate(); -} - static void webkit_hit_test_result_class_init(WebKitHitTestResultClass* hitTestResultClass) { GObjectClass* objectClass = G_OBJECT_CLASS(hitTestResultClass); objectClass->get_property = webkitHitTestResultGetProperty; objectClass->set_property = webkitHitTestResultSetProperty; - objectClass->finalize = webkitHitTestResultFinalize; GParamFlags paramFlags = static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); @@ -233,8 +219,6 @@ static void webkit_hit_test_result_class_init(WebKitHitTestResultClass* hitTestR _("The media URI"), 0, paramFlags)); - - g_type_class_add_private(hitTestResultClass, sizeof(WebKitHitTestResultPrivate)); } WebKitHitTestResult* webkitHitTestResultCreate(WebHitTestResult* hitTestResult) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp index 0901d8079..deef50c55 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp @@ -43,8 +43,6 @@ using namespace WebCore; * the navigation was triggered by a mouse event. */ -G_DEFINE_TYPE(WebKitNavigationPolicyDecision, webkit_navigation_policy_decision, WEBKIT_TYPE_POLICY_DECISION) - struct _WebKitNavigationPolicyDecisionPrivate { WebKitNavigationType navigationType; unsigned modifiers; @@ -53,6 +51,8 @@ struct _WebKitNavigationPolicyDecisionPrivate { CString frameName; }; +WEBKIT_DEFINE_TYPE(WebKitNavigationPolicyDecision, webkit_navigation_policy_decision, WEBKIT_TYPE_POLICY_DECISION) + enum { PROP_0, PROP_NAVIGATION_TYPE, @@ -62,18 +62,6 @@ enum { PROP_FRAME_NAME, }; -static void webkit_navigation_policy_decision_init(WebKitNavigationPolicyDecision* decision) -{ - decision->priv = G_TYPE_INSTANCE_GET_PRIVATE(decision, WEBKIT_TYPE_NAVIGATION_POLICY_DECISION, WebKitNavigationPolicyDecisionPrivate); - new (decision->priv) WebKitNavigationPolicyDecisionPrivate(); -} - -static void webkitNavigationPolicyDecisionFinalize(GObject* object) -{ - WEBKIT_NAVIGATION_POLICY_DECISION(object)->priv->~WebKitNavigationPolicyDecisionPrivate(); - G_OBJECT_CLASS(webkit_navigation_policy_decision_parent_class)->finalize(object); -} - static void webkitNavigationPolicyDecisionGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { WebKitNavigationPolicyDecision* decision = WEBKIT_NAVIGATION_POLICY_DECISION(object); @@ -102,9 +90,7 @@ static void webkitNavigationPolicyDecisionGetProperty(GObject* object, guint pro static void webkit_navigation_policy_decision_class_init(WebKitNavigationPolicyDecisionClass* decisionClass) { GObjectClass* objectClass = G_OBJECT_CLASS(decisionClass); - objectClass->finalize = webkitNavigationPolicyDecisionFinalize; objectClass->get_property = webkitNavigationPolicyDecisionGetProperty; - g_type_class_add_private(decisionClass, sizeof(WebKitNavigationPolicyDecisionPrivate)); /** * WebKitNavigationPolicyDecision:navigation-type: diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitPlugin.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitPlugin.cpp index aff651aed..0dd1121cf 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitPlugin.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitPlugin.cpp @@ -27,6 +27,11 @@ using namespace WebKit; struct _WebKitPluginPrivate { + ~_WebKitPluginPrivate() + { + g_list_free_full(mimeInfoList, reinterpret_cast<GDestroyNotify>(webkit_mime_info_unref)); + } + PluginModuleInfo pluginInfo; CString name; CString description; @@ -34,29 +39,10 @@ struct _WebKitPluginPrivate { GList* mimeInfoList; }; -G_DEFINE_TYPE(WebKitPlugin, webkit_plugin, G_TYPE_OBJECT) - -static void webkitPluginFinalize(GObject* object) -{ - WebKitPluginPrivate* priv = WEBKIT_PLUGIN(object)->priv; - g_list_free_full(priv->mimeInfoList, reinterpret_cast<GDestroyNotify>(webkit_mime_info_unref)); - priv->~WebKitPluginPrivate(); - G_OBJECT_CLASS(webkit_plugin_parent_class)->finalize(object); -} - -static void webkit_plugin_init(WebKitPlugin* plugin) -{ - WebKitPluginPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(plugin, WEBKIT_TYPE_PLUGIN, WebKitPluginPrivate); - plugin->priv = priv; - new (priv) WebKitPluginPrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitPlugin, webkit_plugin, G_TYPE_OBJECT) static void webkit_plugin_class_init(WebKitPluginClass* pluginClass) { - GObjectClass* gObjectClass = G_OBJECT_CLASS(pluginClass); - gObjectClass->finalize = webkitPluginFinalize; - - g_type_class_add_private(pluginClass, sizeof(WebKitPluginPrivate)); } WebKitPlugin* webkitPluginCreate(const PluginModuleInfo& pluginInfo) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp index 3e9ef3fbf..ee44eaebb 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp @@ -41,30 +41,18 @@ using namespace WebKit; * completes. To make a policy decision asynchronously, simply increment * the reference count of the #WebKitPolicyDecision object. */ -G_DEFINE_ABSTRACT_TYPE(WebKitPolicyDecision, webkit_policy_decision, G_TYPE_OBJECT) struct _WebKitPolicyDecisionPrivate { RefPtr<WebFramePolicyListenerProxy> listener; bool madePolicyDecision; }; -static void webkit_policy_decision_init(WebKitPolicyDecision* decision) -{ - decision->priv = G_TYPE_INSTANCE_GET_PRIVATE(decision, WEBKIT_TYPE_POLICY_DECISION, WebKitPolicyDecisionPrivate); - new (decision->priv) WebKitPolicyDecisionPrivate(); - decision->priv->madePolicyDecision = false; -} +WEBKIT_DEFINE_ABSTRACT_TYPE(WebKitPolicyDecision, webkit_policy_decision, G_TYPE_OBJECT) -static void webkitPolicyDecisionFinalize(GObject* object) +static void webkitPolicyDecisionDispose(GObject* object) { - WebKitPolicyDecisionPrivate* priv = WEBKIT_POLICY_DECISION(object)->priv; - - // This is the default choice for all policy decisions in WebPageProxy.cpp. - if (!priv->madePolicyDecision) - priv->listener->use(); - - priv->~WebKitPolicyDecisionPrivate(); - G_OBJECT_CLASS(webkit_policy_decision_parent_class)->finalize(object); + webkit_policy_decision_use(WEBKIT_POLICY_DECISION(object)); + G_OBJECT_CLASS(webkit_policy_decision_parent_class)->dispose(object); } void webkitPolicyDecisionSetListener(WebKitPolicyDecision* decision, WebFramePolicyListenerProxy* listener) @@ -75,8 +63,7 @@ void webkitPolicyDecisionSetListener(WebKitPolicyDecision* decision, WebFramePol static void webkit_policy_decision_class_init(WebKitPolicyDecisionClass* decisionClass) { GObjectClass* objectClass = G_OBJECT_CLASS(decisionClass); - objectClass->finalize = webkitPolicyDecisionFinalize; - g_type_class_add_private(decisionClass, sizeof(WebKitPolicyDecisionPrivate)); + objectClass->dispose = webkitPolicyDecisionDispose; } /** @@ -88,6 +75,10 @@ static void webkit_policy_decision_class_init(WebKitPolicyDecisionClass* decisio void webkit_policy_decision_use(WebKitPolicyDecision* decision) { g_return_if_fail(WEBKIT_IS_POLICY_DECISION(decision)); + + if (decision->priv->madePolicyDecision) + return; + decision->priv->listener->use(); decision->priv->madePolicyDecision = true; } @@ -102,6 +93,10 @@ void webkit_policy_decision_use(WebKitPolicyDecision* decision) void webkit_policy_decision_ignore(WebKitPolicyDecision* decision) { g_return_if_fail(WEBKIT_IS_POLICY_DECISION(decision)); + + if (decision->priv->madePolicyDecision) + return; + decision->priv->listener->ignore(); decision->priv->madePolicyDecision = true; } @@ -115,6 +110,10 @@ void webkit_policy_decision_ignore(WebKitPolicyDecision* decision) void webkit_policy_decision_download(WebKitPolicyDecision* decision) { g_return_if_fail(WEBKIT_IS_POLICY_DECISION(decision)); + + if (decision->priv->madePolicyDecision) + return; + decision->priv->listener->download(); decision->priv->madePolicyDecision = true; } diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp index 7da0b197a..6b72d188d 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp @@ -54,6 +54,11 @@ enum { }; struct _WebKitPrintOperationPrivate { + ~_WebKitPrintOperationPrivate() + { + g_signal_handler_disconnect(webView, webViewDestroyedId); + } + WebKitWebView* webView; gulong webViewDestroyedId; @@ -63,16 +68,7 @@ struct _WebKitPrintOperationPrivate { static guint signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE(WebKitPrintOperation, webkit_print_operation, G_TYPE_OBJECT) - -static void webkitPrintOperationFinalize(GObject* object) -{ - WebKitPrintOperationPrivate* priv = WEBKIT_PRINT_OPERATION(object)->priv; - g_signal_handler_disconnect(priv->webView, priv->webViewDestroyedId); - - priv->~WebKitPrintOperationPrivate(); - G_OBJECT_CLASS(webkit_print_operation_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitPrintOperation, webkit_print_operation, G_TYPE_OBJECT) static void webViewDestroyed(GtkWidget* webView, GObject* printOperation) { @@ -128,17 +124,9 @@ static void webkitPrintOperationSetProperty(GObject* object, guint propId, const } } -static void webkit_print_operation_init(WebKitPrintOperation* printOperation) -{ - WebKitPrintOperationPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(printOperation, WEBKIT_TYPE_PRINT_OPERATION, WebKitPrintOperationPrivate); - printOperation->priv = priv; - new (priv) WebKitPrintOperationPrivate(); -} - static void webkit_print_operation_class_init(WebKitPrintOperationClass* printOperationClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(printOperationClass); - gObjectClass->finalize = webkitPrintOperationFinalize; gObjectClass->constructed = webkitPrintOperationConstructed; gObjectClass->get_property = webkitPrintOperationGetProperty; gObjectClass->set_property = webkitPrintOperationSetProperty; @@ -213,8 +201,6 @@ static void webkit_print_operation_class_init(WebKitPrintOperationClass* printOp g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); - - g_type_class_add_private(printOperationClass, sizeof(WebKitPrintOperationPrivate)); } #ifdef HAVE_GTK_UNIX_PRINTING diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h index 5aabcbc2e..be39e802c 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h @@ -66,6 +66,57 @@ static void destroy##structName(structName* data) \ g_slice_free(structName, data); \ } +#define WEBKIT_DEFINE_TYPE(TypeName, type_name, TYPE_PARENT) _WEBKIT_DEFINE_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, 0, { }) +#define WEBKIT_DEFINE_ABSTRACT_TYPE(TypeName, type_name, TYPE_PARENT) _WEBKIT_DEFINE_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, G_TYPE_FLAG_ABSTRACT, { }) +#define WEBKIT_DEFINE_TYPE_WITH_CODE(TypeName, type_name, TYPE_PARENT, Code) _WEBKIT_DEFINE_TYPE_EXTENDED_BEGIN(TypeName, type_name, TYPE_PARENT, 0) {Code;} _WEBKIT_DEFINE_TYPE_EXTENDED_END() + +#define _WEBKIT_DEFINE_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, flags, Code) _WEBKIT_DEFINE_TYPE_EXTENDED_BEGIN(TypeName, type_name, TYPE_PARENT, flags) {Code;} _WEBKIT_DEFINE_TYPE_EXTENDED_END() +#define _WEBKIT_DEFINE_TYPE_EXTENDED_BEGIN(TypeName, type_name, TYPE_PARENT, flags) \ +\ +static void type_name##_class_init(TypeName##Class* klass); \ +static gpointer type_name##_parent_class = 0; \ +static void type_name##_finalize(GObject* object) \ +{ \ + TypeName* self = (TypeName*)object; \ + self->priv->~TypeName##Private(); \ + G_OBJECT_CLASS(type_name##_parent_class)->finalize(object); \ +} \ +\ +static void type_name##_class_intern_init(gpointer klass) \ +{ \ + GObjectClass* gObjectClass = G_OBJECT_CLASS(klass); \ + g_type_class_add_private(klass, sizeof(TypeName##Private)); \ + type_name##_parent_class = g_type_class_peek_parent(klass); \ + type_name##_class_init((TypeName##Class*)klass); \ + gObjectClass->finalize = type_name##_finalize; \ +} \ +\ +static void type_name##_init(TypeName* self) \ +{ \ + TypeName##Private* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, type_name##_get_type(), TypeName##Private); \ + self->priv = priv; \ + new (priv) TypeName##Private(); \ +}\ +GType type_name##_get_type(void) \ +{ \ + static volatile gsize g_define_type_id__volatile = 0; \ + if (g_once_init_enter(&g_define_type_id__volatile)) { \ + GType g_define_type_id = \ + g_type_register_static_simple( \ + TYPE_PARENT, \ + g_intern_static_string(#TypeName), \ + sizeof(TypeName##Class), \ + (GClassInitFunc)type_name##_class_intern_init, \ + sizeof(TypeName), \ + (GInstanceInitFunc)type_name##_init, \ + (GTypeFlags)flags); \ + // Custom code follows. +#define _WEBKIT_DEFINE_TYPE_EXTENDED_END() \ + g_once_init_leave(&g_define_type_id__volatile, g_define_type_id); \ + } \ + return g_define_type_id__volatile; \ +} // Closes type_name##_get_type(). + unsigned wkEventModifiersToGdkModifiers(WKEventModifiers); unsigned wkEventMouseButtonToWebKitMouseButton(WKEventMouseButton); diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp index ab5f38c97..3a75e38c9 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp @@ -44,31 +44,20 @@ using namespace WebKit; * whether or not to download a particular resource or to load it * normally. */ -G_DEFINE_TYPE(WebKitResponsePolicyDecision, webkit_response_policy_decision, WEBKIT_TYPE_POLICY_DECISION) struct _WebKitResponsePolicyDecisionPrivate { GRefPtr<WebKitURIRequest> request; GRefPtr<WebKitURIResponse> response; }; +WEBKIT_DEFINE_TYPE(WebKitResponsePolicyDecision, webkit_response_policy_decision, WEBKIT_TYPE_POLICY_DECISION) + enum { PROP_0, PROP_REQUEST, PROP_RESPONSE, }; -static void webkit_response_policy_decision_init(WebKitResponsePolicyDecision* decision) -{ - decision->priv = G_TYPE_INSTANCE_GET_PRIVATE(decision, WEBKIT_TYPE_RESPONSE_POLICY_DECISION, WebKitResponsePolicyDecisionPrivate); - new (decision->priv) WebKitResponsePolicyDecisionPrivate(); -} - -static void webkitResponsePolicyDecisionFinalize(GObject* object) -{ - WEBKIT_RESPONSE_POLICY_DECISION(object)->priv->~WebKitResponsePolicyDecisionPrivate(); - G_OBJECT_CLASS(webkit_response_policy_decision_parent_class)->finalize(object); -} - static void webkitResponsePolicyDecisionGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { WebKitResponsePolicyDecision* decision = WEBKIT_RESPONSE_POLICY_DECISION(object); @@ -88,9 +77,7 @@ static void webkitResponsePolicyDecisionGetProperty(GObject* object, guint propI static void webkit_response_policy_decision_class_init(WebKitResponsePolicyDecisionClass* decisionClass) { GObjectClass* objectClass = G_OBJECT_CLASS(decisionClass); - objectClass->finalize = webkitResponsePolicyDecisionFinalize; objectClass->get_property = webkitResponsePolicyDecisionGetProperty; - g_type_class_add_private(decisionClass, sizeof(WebKitResponsePolicyDecisionPrivate)); /** * WebKitResponsePolicyDecision:request: diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp index d170fcf3f..cd8803749 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp @@ -40,28 +40,10 @@ struct _WebKitSecurityManagerPrivate { WebKitWebContext* webContext; }; -G_DEFINE_TYPE(WebKitSecurityManager, webkit_security_manager, G_TYPE_OBJECT) - -static void webkit_security_manager_init(WebKitSecurityManager* manager) -{ - WebKitSecurityManagerPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(manager, WEBKIT_TYPE_SECURITY_MANAGER, WebKitSecurityManagerPrivate); - manager->priv = priv; - new (priv) WebKitSecurityManagerPrivate(); -} - -static void webkitSecurityManagerFinalize(GObject* object) -{ - WebKitSecurityManagerPrivate* priv = WEBKIT_SECURITY_MANAGER(object)->priv; - priv->~WebKitSecurityManagerPrivate(); - G_OBJECT_CLASS(webkit_security_manager_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitSecurityManager, webkit_security_manager, G_TYPE_OBJECT) static void webkit_security_manager_class_init(WebKitSecurityManagerClass* klass) { - GObjectClass* gObjectClass = G_OBJECT_CLASS(klass); - gObjectClass->finalize = webkitSecurityManagerFinalize; - - g_type_class_add_private(klass, sizeof(WebKitSecurityManagerPrivate)); } WebKitSecurityManager* webkitSecurityManagerCreate(WebKitWebContext* webContext) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp index 005aaae78..bf1ede057 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp @@ -43,6 +43,19 @@ using namespace WebKit; struct _WebKitSettingsPrivate { + _WebKitSettingsPrivate() + : preferences(WebPreferences::create()) + { + defaultFontFamily = preferences->standardFontFamily().utf8(); + monospaceFontFamily = preferences->fixedFontFamily().utf8(); + serifFontFamily = preferences->serifFontFamily().utf8(); + sansSerifFontFamily = preferences->sansSerifFontFamily().utf8(); + cursiveFontFamily = preferences->cursiveFontFamily().utf8(); + fantasyFontFamily = preferences->fantasyFontFamily().utf8(); + pictographFontFamily = preferences->pictographFontFamily().utf8(); + defaultCharset = preferences->defaultTextEncodingName().utf8(); + } + RefPtr<WebPreferences> preferences; CString defaultFontFamily; CString monospaceFontFamily; @@ -74,8 +87,7 @@ struct _WebKitSettingsPrivate { * </programlisting></informalexample> */ - -G_DEFINE_TYPE(WebKitSettings, webkit_settings, G_TYPE_OBJECT) +WEBKIT_DEFINE_TYPE(WebKitSettings, webkit_settings, G_TYPE_OBJECT) enum { PROP_0, @@ -405,18 +417,11 @@ static void webKitSettingsGetProperty(GObject* object, guint propId, GValue* val } } -static void webKitSettingsFinalize(GObject* object) -{ - WEBKIT_SETTINGS(object)->priv->~WebKitSettingsPrivate(); - G_OBJECT_CLASS(webkit_settings_parent_class)->finalize(object); -} - static void webkit_settings_class_init(WebKitSettingsClass* klass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(klass); gObjectClass->set_property = webKitSettingsSetProperty; gObjectClass->get_property = webKitSettingsGetProperty; - gObjectClass->finalize = webKitSettingsFinalize; GParamFlags readWriteConstructParamFlags = static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT); @@ -1062,26 +1067,6 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass) _("Whether to enable smooth scrolling"), FALSE, readWriteConstructParamFlags)); - - g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate)); -} - -static void webkit_settings_init(WebKitSettings* settings) -{ - WebKitSettingsPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(settings, WEBKIT_TYPE_SETTINGS, WebKitSettingsPrivate); - settings->priv = priv; - new (priv) WebKitSettingsPrivate(); - - priv->preferences = WebPreferences::create(); - priv->defaultFontFamily = priv->preferences->standardFontFamily().utf8(); - priv->monospaceFontFamily = priv->preferences->fixedFontFamily().utf8(); - priv->serifFontFamily = priv->preferences->serifFontFamily().utf8(); - priv->sansSerifFontFamily = priv->preferences->sansSerifFontFamily().utf8(); - priv->cursiveFontFamily = priv->preferences->cursiveFontFamily().utf8(); - priv->fantasyFontFamily = priv->preferences->fantasyFontFamily().utf8(); - priv->pictographFontFamily = priv->preferences->pictographFontFamily().utf8(); - priv->defaultCharset = priv->preferences->defaultTextEncodingName().utf8(); - } void webkitSettingsAttachSettingsToPage(WebKitSettings* settings, WebPageProxy* page) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp index c882cb788..147d17e1c 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp @@ -33,18 +33,12 @@ enum { using namespace WebCore; -G_DEFINE_TYPE(WebKitURIRequest, webkit_uri_request, G_TYPE_OBJECT) - struct _WebKitURIRequestPrivate { WebCore::ResourceRequest resourceRequest; CString uri; }; -static void webkitURIRequestFinalize(GObject* object) -{ - WEBKIT_URI_REQUEST(object)->priv->~WebKitURIRequestPrivate(); - G_OBJECT_CLASS(webkit_uri_request_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitURIRequest, webkit_uri_request, G_TYPE_OBJECT) static void webkitURIRequestGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -75,8 +69,6 @@ static void webkitURIRequestSetProperty(GObject* object, guint propId, const GVa static void webkit_uri_request_class_init(WebKitURIRequestClass* requestClass) { GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - - objectClass->finalize = webkitURIRequestFinalize; objectClass->get_property = webkitURIRequestGetProperty; objectClass->set_property = webkitURIRequestSetProperty; @@ -91,15 +83,6 @@ static void webkit_uri_request_class_init(WebKitURIRequestClass* requestClass) _("The URI to which the request will be made."), 0, static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - g_type_class_add_private(requestClass, sizeof(WebKitURIRequestPrivate)); -} - -static void webkit_uri_request_init(WebKitURIRequest* request) -{ - WebKitURIRequestPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_URI_REQUEST, WebKitURIRequestPrivate); - request->priv = priv; - new (priv) WebKitURIRequestPrivate(); } /** diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURIResponse.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitURIResponse.cpp index d4404147b..576ce953a 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitURIResponse.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURIResponse.cpp @@ -40,8 +40,6 @@ enum { PROP_SUGGESTED_FILENAME }; -G_DEFINE_TYPE(WebKitURIResponse, webkit_uri_response, G_TYPE_OBJECT) - struct _WebKitURIResponsePrivate { ResourceResponse resourceResponse; CString uri; @@ -49,11 +47,7 @@ struct _WebKitURIResponsePrivate { CString suggestedFilename; }; -static void webkitURIResponseFinalize(GObject* object) -{ - WEBKIT_URI_RESPONSE(object)->priv->~WebKitURIResponsePrivate(); - G_OBJECT_CLASS(webkit_uri_response_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitURIResponse, webkit_uri_response, G_TYPE_OBJECT) static void webkitURIResponseGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -83,8 +77,6 @@ static void webkitURIResponseGetProperty(GObject* object, guint propId, GValue* static void webkit_uri_response_class_init(WebKitURIResponseClass* responseClass) { GObjectClass* objectClass = G_OBJECT_CLASS(responseClass); - - objectClass->finalize = webkitURIResponseFinalize; objectClass->get_property = webkitURIResponseGetProperty; /** @@ -150,15 +142,6 @@ static void webkit_uri_response_class_init(WebKitURIResponseClass* responseClass _("The suggested filename for the URI response"), 0, WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(responseClass, sizeof(WebKitURIResponsePrivate)); -} - -static void webkit_uri_response_init(WebKitURIResponse* response) -{ - WebKitURIResponsePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(response, WEBKIT_TYPE_URI_RESPONSE, WebKitURIResponsePrivate); - response->priv = priv; - new (priv) WebKitURIResponsePrivate(); } /** diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp index e2542e844..f65789fce 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp @@ -35,8 +35,6 @@ using namespace WebKit; static const unsigned int gReadBufferSize = 8192; -G_DEFINE_TYPE(WebKitURISchemeRequest, webkit_uri_scheme_request, G_TYPE_OBJECT) - struct _WebKitURISchemeRequestPrivate { WebKitWebContext* webContext; RefPtr<WebSoupRequestManagerProxy> webRequestManager; @@ -53,24 +51,10 @@ struct _WebKitURISchemeRequestPrivate { CString mimeType; }; -static void webkit_uri_scheme_request_init(WebKitURISchemeRequest* request) -{ - WebKitURISchemeRequestPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_URI_SCHEME_REQUEST, WebKitURISchemeRequestPrivate); - request->priv = priv; - new (priv) WebKitURISchemeRequestPrivate(); -} - -static void webkitURISchemeRequestFinalize(GObject* object) -{ - WEBKIT_URI_SCHEME_REQUEST(object)->priv->~WebKitURISchemeRequestPrivate(); - G_OBJECT_CLASS(webkit_uri_scheme_request_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitURISchemeRequest, webkit_uri_scheme_request, G_TYPE_OBJECT) static void webkit_uri_scheme_request_class_init(WebKitURISchemeRequestClass* requestClass) { - GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - objectClass->finalize = webkitURISchemeRequestFinalize; - g_type_class_add_private(requestClass, sizeof(WebKitURISchemeRequestPrivate)); } WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext* webContext, WebSoupRequestManagerProxy* webRequestManager, WebURL* webURL, WebPageProxy* initiatingPage, uint64_t requestID) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp index 7707c70ab..3dbcfe88f 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp @@ -114,25 +114,11 @@ struct _WebKitWebContextPrivate { static guint signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE(WebKitWebContext, webkit_web_context, G_TYPE_OBJECT) - -static void webkitWebContextFinalize(GObject* object) -{ - WEBKIT_WEB_CONTEXT(object)->priv->~WebKitWebContextPrivate(); - G_OBJECT_CLASS(webkit_web_context_parent_class)->finalize(object); -} - -static void webkit_web_context_init(WebKitWebContext* webContext) -{ - WebKitWebContextPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(webContext, WEBKIT_TYPE_WEB_CONTEXT, WebKitWebContextPrivate); - webContext->priv = priv; - new (priv) WebKitWebContextPrivate(); -} +WEBKIT_DEFINE_TYPE(WebKitWebContext, webkit_web_context, G_TYPE_OBJECT) static void webkit_web_context_class_init(WebKitWebContextClass* webContextClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(webContextClass); - gObjectClass->finalize = webkitWebContextFinalize; /** * WebKitWebContext::download-started: @@ -149,8 +135,6 @@ static void webkit_web_context_class_init(WebKitWebContextClass* webContextClass g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, WEBKIT_TYPE_DOWNLOAD); - - g_type_class_add_private(webContextClass, sizeof(WebKitWebContextPrivate)); } static gpointer createDefaultWebContext(gpointer) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp index b788f1771..378a1f4c0 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp @@ -47,14 +47,19 @@ enum { }; struct _WebKitWebInspectorPrivate { + ~_WebKitWebInspectorPrivate() + { + WKInspectorSetInspectorClientGtk(toAPI(webInspector.get()), 0); + } + RefPtr<WebInspectorProxy> webInspector; CString inspectedURI; unsigned attachedHeight; }; -static guint signals[LAST_SIGNAL] = { 0, }; +WEBKIT_DEFINE_TYPE(WebKitWebInspector, webkit_web_inspector, G_TYPE_OBJECT) -G_DEFINE_TYPE(WebKitWebInspector, webkit_web_inspector, G_TYPE_OBJECT) +static guint signals[LAST_SIGNAL] = { 0, }; static void webkitWebInspectorGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -72,29 +77,11 @@ static void webkitWebInspectorGetProperty(GObject* object, guint propId, GValue* } } -static void webkitWebInspectorFinalize(GObject* object) -{ - WebKitWebInspectorPrivate* priv = WEBKIT_WEB_INSPECTOR(object)->priv; - WKInspectorSetInspectorClientGtk(toAPI(priv->webInspector.get()), 0); - priv->~WebKitWebInspectorPrivate(); - G_OBJECT_CLASS(webkit_web_inspector_parent_class)->finalize(object); -} - -static void webkit_web_inspector_init(WebKitWebInspector* inspector) -{ - WebKitWebInspectorPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(inspector, WEBKIT_TYPE_WEB_INSPECTOR, WebKitWebInspectorPrivate); - inspector->priv = priv; - new (priv) WebKitWebInspectorPrivate(); -} - static void webkit_web_inspector_class_init(WebKitWebInspectorClass* findClass) { GObjectClass* gObjectClass = G_OBJECT_CLASS(findClass); - gObjectClass->finalize = webkitWebInspectorFinalize; gObjectClass->get_property = webkitWebInspectorGetProperty; - g_type_class_add_private(findClass, sizeof(WebKitWebInspectorPrivate)); - /** * WebKitWebInspector:inspected-uri: * diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp index 73736f68f..7a540d353 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp @@ -55,15 +55,9 @@ struct _WebKitWebResourcePrivate { bool isMainResource; }; -static guint signals[LAST_SIGNAL] = { 0, }; - -G_DEFINE_TYPE(WebKitWebResource, webkit_web_resource, G_TYPE_OBJECT) +WEBKIT_DEFINE_TYPE(WebKitWebResource, webkit_web_resource, G_TYPE_OBJECT) -static void webkitWebResourceFinalize(GObject* object) -{ - WEBKIT_WEB_RESOURCE(object)->priv->~WebKitWebResourcePrivate(); - G_OBJECT_CLASS(webkit_web_resource_parent_class)->finalize(object); -} +static guint signals[LAST_SIGNAL] = { 0, }; static void webkitWebResourceGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -81,18 +75,10 @@ static void webkitWebResourceGetProperty(GObject* object, guint propId, GValue* } } -static void webkit_web_resource_init(WebKitWebResource* resource) -{ - WebKitWebResourcePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(resource, WEBKIT_TYPE_WEB_RESOURCE, WebKitWebResourcePrivate); - resource->priv = priv; - new (priv) WebKitWebResourcePrivate(); -} - static void webkit_web_resource_class_init(WebKitWebResourceClass* resourceClass) { GObjectClass* objectClass = G_OBJECT_CLASS(resourceClass); objectClass->get_property = webkitWebResourceGetProperty; - objectClass->finalize = webkitWebResourceFinalize; /** * WebKitWebResource:uri: @@ -194,8 +180,6 @@ static void webkit_web_resource_class_init(WebKitWebResourceClass* resourceClass g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); - - g_type_class_add_private(resourceClass, sizeof(WebKitWebResourcePrivate)); } static void webkitWebResourceUpdateURI(WebKitWebResource* resource, const CString& requestURI) 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: * diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp index 015f668cd..de741c2e3 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp @@ -80,6 +80,19 @@ void redirectedWindowDamagedCallback(void* data); #endif struct _WebKitWebViewBasePrivate { + _WebKitWebViewBasePrivate() + : imContext(adoptGRef(gtk_im_multicontext_new())) +#if USE(TEXTURE_MAPPER_GL) + , redirectedWindow(RedirectedXCompositeWindow::create(IntSize(1, 1))) +#endif + { + } + + ~_WebKitWebViewBasePrivate() + { + pageProxy->close(); + } + WebKitWebViewChildrenMap children; OwnPtr<PageClientImpl> pageClient; RefPtr<WebPageProxy> pageProxy; @@ -120,7 +133,7 @@ struct _WebKitWebViewBasePrivate { #endif }; -G_DEFINE_TYPE(WebKitWebViewBase, webkit_web_view_base, GTK_TYPE_CONTAINER) +WEBKIT_DEFINE_TYPE(WebKitWebViewBase, webkit_web_view_base, GTK_TYPE_CONTAINER) static void webkitWebViewBaseNotifyResizerSize(WebKitWebViewBase* webViewBase) { @@ -322,42 +335,29 @@ void webkitWebViewBaseChildMoveResize(WebKitWebViewBase* webView, GtkWidget* chi gtk_widget_queue_resize_no_redraw(GTK_WIDGET(webView)); } -static void webkitWebViewBaseFinalize(GObject* gobject) +static void webkitWebViewBaseDispose(GObject* gobject) { - WebKitWebViewBase* webkitWebViewBase = WEBKIT_WEB_VIEW_BASE(gobject); - WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv; - priv->pageProxy->close(); - - webkitWebViewBaseSetToplevelOnScreenWindow(webkitWebViewBase, 0); - - priv->~WebKitWebViewBasePrivate(); - G_OBJECT_CLASS(webkit_web_view_base_parent_class)->finalize(gobject); + webkitWebViewBaseSetToplevelOnScreenWindow(WEBKIT_WEB_VIEW_BASE(gobject), 0); + G_OBJECT_CLASS(webkit_web_view_base_parent_class)->dispose(gobject); } -static void webkit_web_view_base_init(WebKitWebViewBase* webkitWebViewBase) +static void webkitWebViewBaseConstructed(GObject* object) { - WebKitWebViewBasePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(webkitWebViewBase, WEBKIT_TYPE_WEB_VIEW_BASE, WebKitWebViewBasePrivate); - webkitWebViewBase->priv = priv; - new (priv) WebKitWebViewBasePrivate(); - - priv->shouldForwardNextKeyEvent = FALSE; + G_OBJECT_CLASS(webkit_web_view_base_parent_class)->constructed(object); - GtkWidget* viewWidget = GTK_WIDGET(webkitWebViewBase); + GtkWidget* viewWidget = GTK_WIDGET(object); gtk_widget_set_can_focus(viewWidget, TRUE); - priv->imContext = adoptGRef(gtk_im_multicontext_new()); - - priv->pageClient = PageClientImpl::create(viewWidget); - - priv->dragAndDropHelper.setWidget(viewWidget); - gtk_drag_dest_set(viewWidget, static_cast<GtkDestDefaults>(0), 0, 0, static_cast<GdkDragAction>(GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_PRIVATE)); gtk_drag_dest_set_target_list(viewWidget, PasteboardHelper::defaultPasteboardHelper()->targetList()); + WebKitWebViewBasePrivate* priv = WEBKIT_WEB_VIEW_BASE(object)->priv; + priv->pageClient = PageClientImpl::create(viewWidget); + priv->dragAndDropHelper.setWidget(viewWidget); + #if USE(TEXTURE_MAPPER_GL) - priv->redirectedWindow = RedirectedXCompositeWindow::create(IntSize(1, 1)); if (priv->redirectedWindow) - priv->redirectedWindow->setDamageNotifyCallback(redirectedWindowDamagedCallback, webkitWebViewBase); + priv->redirectedWindow->setDamageNotifyCallback(redirectedWindowDamagedCallback, object); #endif } @@ -767,14 +767,13 @@ static void webkit_web_view_base_class_init(WebKitWebViewBaseClass* webkitWebVie widgetClass->parent_set = webkitWebViewBaseParentSet; GObjectClass* gobjectClass = G_OBJECT_CLASS(webkitWebViewBaseClass); - gobjectClass->finalize = webkitWebViewBaseFinalize; + gobjectClass->constructed = webkitWebViewBaseConstructed; + gobjectClass->dispose = webkitWebViewBaseDispose; GtkContainerClass* containerClass = GTK_CONTAINER_CLASS(webkitWebViewBaseClass); containerClass->add = webkitWebViewBaseContainerAdd; containerClass->remove = webkitWebViewBaseContainerRemove; containerClass->forall = webkitWebViewBaseContainerForall; - - g_type_class_add_private(webkitWebViewBaseClass, sizeof(WebKitWebViewBasePrivate)); } WebKitWebViewBase* webkitWebViewBaseCreate(WebContext* context, WebPageGroup* pageGroup) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp index 09a11abe6..7b069dd94 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp @@ -20,20 +20,14 @@ #include "config.h" #include "WebKitWebViewBaseAccessible.h" +#include "WebKitPrivate.h" #include <gtk/gtk.h> struct _WebKitWebViewBaseAccessiblePrivate { GtkWidget* widget; }; -G_DEFINE_TYPE(WebKitWebViewBaseAccessible, webkit_web_view_base_accessible, ATK_TYPE_SOCKET) - -static void webkitWebViewBaseAccessibleFinalize(GObject* gobject) -{ - WebKitWebViewBaseAccessible* accessible = WEBKIT_WEB_VIEW_BASE_ACCESSIBLE(gobject); - accessible->priv->~WebKitWebViewBaseAccessiblePrivate(); - G_OBJECT_CLASS(webkit_web_view_base_accessible_parent_class)->finalize(gobject); -} +WEBKIT_DEFINE_TYPE(WebKitWebViewBaseAccessible, webkit_web_view_base_accessible, ATK_TYPE_SOCKET) static void webkitWebViewBaseAccessibleWidgetDestroyed(GtkWidget* widget, WebKitWebViewBaseAccessible* accessible) { @@ -94,18 +88,8 @@ static gint webkitWebViewBaseAccessibleGetIndexInParent(AtkObject* atkObject) return -1; } -static void webkit_web_view_base_accessible_init(WebKitWebViewBaseAccessible* accessible) -{ - WebKitWebViewBaseAccessiblePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(accessible, WEBKIT_TYPE_WEB_VIEW_BASE_ACCESSIBLE, WebKitWebViewBaseAccessiblePrivate); - accessible->priv = priv; - new (priv) WebKitWebViewBaseAccessiblePrivate(); -} - static void webkit_web_view_base_accessible_class_init(WebKitWebViewBaseAccessibleClass* klass) { - GObjectClass* gObjectClass = G_OBJECT_CLASS(klass); - gObjectClass->finalize = webkitWebViewBaseAccessibleFinalize; - // No need to implement get_n_children() and ref_child() here // since this is a subclass of AtkSocket and all the logic related // to those functions will be implemented by the ATK bridge. @@ -113,8 +97,6 @@ static void webkit_web_view_base_accessible_class_init(WebKitWebViewBaseAccessib atkObjectClass->initialize = webkitWebViewBaseAccessibleInitialize; atkObjectClass->ref_state_set = webkitWebViewBaseAccessibleRefStateSet; atkObjectClass->get_index_in_parent = webkitWebViewBaseAccessibleGetIndexInParent; - - g_type_class_add_private(klass, sizeof(WebKitWebViewBaseAccessiblePrivate)); } WebKitWebViewBaseAccessible* webkitWebViewBaseAccessibleNew(GtkWidget* widget) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWindowProperties.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWindowProperties.cpp index 930cf8676..bdfc72589 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWindowProperties.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWindowProperties.cpp @@ -106,8 +106,6 @@ enum { PROP_FULLSCREEN }; -G_DEFINE_TYPE(WebKitWindowProperties, webkit_window_properties, G_TYPE_OBJECT) - struct _WebKitWindowPropertiesPrivate { GdkRectangle geometry; @@ -121,11 +119,7 @@ struct _WebKitWindowPropertiesPrivate { bool fullscreen : 1; }; -static void webkitWindowPropertiesFinalize(GObject* object) -{ - WEBKIT_WINDOW_PROPERTIES(object)->priv->~WebKitWindowPropertiesPrivate(); - G_OBJECT_CLASS(webkit_window_properties_parent_class)->finalize(object); -} +WEBKIT_DEFINE_TYPE(WebKitWindowProperties, webkit_window_properties, G_TYPE_OBJECT) static void webkitWindowPropertiesGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { @@ -199,8 +193,6 @@ static void webkitWindowPropertiesSetProperty(GObject* object, guint propId, con static void webkit_window_properties_class_init(WebKitWindowPropertiesClass* requestClass) { GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - - objectClass->finalize = webkitWindowPropertiesFinalize; objectClass->get_property = webkitWindowPropertiesGetProperty; objectClass->set_property = webkitWindowPropertiesSetProperty; @@ -308,15 +300,6 @@ static void webkit_window_properties_class_init(WebKitWindowPropertiesClass* req _("Whether window will be displayed fullscreen."), FALSE, paramFlags)); - - g_type_class_add_private(requestClass, sizeof(WebKitWindowPropertiesPrivate)); -} - -static void webkit_window_properties_init(WebKitWindowProperties* request) -{ - WebKitWindowPropertiesPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_WINDOW_PROPERTIES, WebKitWindowPropertiesPrivate); - request->priv = priv; - new (priv) WebKitWindowPropertiesPrivate(); } WebKitWindowProperties* webkitWindowPropertiesCreate() |