Changeset 180998 in webkit
- Timestamp:
- Mar 4, 2015 6:19:47 AM (9 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r180988 r180998 1 2015-03-04 Debarshi Ray <debarshir@gnome.org> 2 3 [GTK] WebView should hold a reference on WebContext because non-default contexts are a reality 4 https://bugs.webkit.org/show_bug.cgi?id=142225 5 6 Reviewed by Carlos Garcia Campos. 7 8 * UIProcess/API/gtk/WebKitWebView.cpp: 9 (webkitWebViewRequestFavicon): 10 (webkitWebViewWatchForChangesInFavicon): 11 (webkitWebViewDisconnectFaviconDatabaseSignalHandlers): 12 (webkitWebViewConstructed): 13 (webkitWebViewGetProperty): 14 (webkitWebViewDispose): 15 (webkitWebViewLoadChanged): 16 (webkitWebViewLoadFailedWithTLSErrors): 17 (webkit_web_view_get_context): 18 (webkit_web_view_download_uri): 19 1 20 2015-03-03 Shivakumar JM <shiva.jm@samsung.com> 2 21 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
r179984 r180998 171 171 } 172 172 173 WebKitWebContext* context;174 173 WebKitWebView* relatedView; 175 174 CString title; … … 186 185 GRefPtr<WebKitSettings> settings; 187 186 GRefPtr<WebKitUserContentManager> userContentManager; 187 GRefPtr<WebKitWebContext> context; 188 188 GRefPtr<WebKitWindowProperties> windowProperties; 189 189 … … 449 449 WebKitWebViewPrivate* priv = webView->priv; 450 450 priv->faviconCancellable = adoptGRef(g_cancellable_new()); 451 WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context );451 WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context.get()); 452 452 webkit_favicon_database_get_favicon(database, priv->activeURI.data(), priv->faviconCancellable.get(), gotFaviconCallback, webView); 453 453 } … … 511 511 return; 512 512 513 WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context );513 WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context.get()); 514 514 priv->faviconChangedHandlerID = g_signal_connect(database, "favicon-changed", G_CALLBACK(faviconChangedCallback), webView); 515 515 } … … 519 519 WebKitWebViewPrivate* priv = webView->priv; 520 520 if (priv->faviconChangedHandlerID) 521 g_signal_handler_disconnect(webkit_web_context_get_favicon_database(priv->context ), priv->faviconChangedHandlerID);521 g_signal_handler_disconnect(webkit_web_context_get_favicon_database(priv->context.get()), priv->faviconChangedHandlerID); 522 522 priv->faviconChangedHandlerID = 0; 523 523 } … … 640 640 priv->settings = adoptGRef(webkit_settings_new()); 641 641 642 webkitWebContextCreatePageForWebView(priv->context , webView, priv->userContentManager.get(), priv->relatedView);642 webkitWebContextCreatePageForWebView(priv->context.get(), webView, priv->userContentManager.get(), priv->relatedView); 643 643 644 644 priv->loadObserver = std::make_unique<PageLoadStateObserver>(webView); … … 707 707 switch (propId) { 708 708 case PROP_WEB_CONTEXT: 709 g_value_set_object(value, webView->priv->context );709 g_value_set_object(value, webView->priv->context.get()); 710 710 break; 711 711 case PROP_SETTINGS: … … 757 757 } 758 758 759 webkitWebContextWebViewDestroyed(webView->priv->context , webView);759 webkitWebContextWebViewDestroyed(webView->priv->context.get(), webView); 760 760 761 761 G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object); … … 1812 1812 priv->waitingForMainResource = false; 1813 1813 } else if (loadEvent == WEBKIT_LOAD_COMMITTED) { 1814 WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context );1814 WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context.get()); 1815 1815 GUniquePtr<char> faviconURI(webkit_favicon_database_get_favicon_uri(database, priv->activeURI.data())); 1816 1816 webkitWebViewUpdateFaviconURI(webView, faviconURI.get()); … … 1844 1844 webkitWebViewCancelAuthenticationRequest(webView); 1845 1845 1846 WebKitTLSErrorsPolicy tlsErrorsPolicy = webkit_web_context_get_tls_errors_policy(webView->priv->context );1846 WebKitTLSErrorsPolicy tlsErrorsPolicy = webkit_web_context_get_tls_errors_policy(webView->priv->context.get()); 1847 1847 if (tlsErrorsPolicy == WEBKIT_TLS_ERRORS_POLICY_FAIL) { 1848 1848 gboolean returnValue; … … 2248 2248 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); 2249 2249 2250 return webView->priv->context ;2250 return webView->priv->context.get(); 2251 2251 } 2252 2252 … … 3382 3382 g_return_val_if_fail(uri, 0); 3383 3383 3384 WebKitDownload* download = webkitWebContextStartDownload(webView->priv->context , uri, getPage(webView));3384 WebKitDownload* download = webkitWebContextStartDownload(webView->priv->context.get(), uri, getPage(webView)); 3385 3385 webkitDownloadSetWebView(download, webView); 3386 3386 -
trunk/Tools/ChangeLog
r180983 r180998 1 2015-03-04 Debarshi Ray <debarshir@gnome.org> 2 3 [GTK] WebView should hold a reference on WebContext because non-default contexts are a reality 4 https://bugs.webkit.org/show_bug.cgi?id=142225 5 6 Reviewed by Carlos Garcia Campos. 7 8 * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp: 9 (testWebViewWebContextLifetime): 10 (beforeAll): 11 1 12 2015-03-03 David Kilzer <ddkilzer@apple.com> 2 13 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp
r179745 r180998 65 65 } 66 66 67 static void testWebViewWebContextLifetime(WebViewTest* test, gconstpointer) 68 { 69 WebKitWebContext* webContext = webkit_web_context_new(); 70 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webContext)); 71 72 GtkWidget* webView = webkit_web_view_new_with_context(webContext); 73 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView)); 74 75 g_object_ref_sink(webView); 76 g_object_unref(webContext); 77 78 // Check that the web view still has a valid context. 79 WebKitWebContext* tmpContext = webkit_web_view_get_context(WEBKIT_WEB_VIEW(webView)); 80 g_assert_true(WEBKIT_IS_WEB_CONTEXT(tmpContext)); 81 g_object_unref(webView); 82 83 WebKitWebContext* webContext2 = webkit_web_context_new(); 84 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webContext2)); 85 86 GtkWidget* webView2 = webkit_web_view_new_with_context(webContext2); 87 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView2)); 88 89 g_object_ref_sink(webView2); 90 g_object_unref(webView2); 91 92 // Check that the context is still valid. 93 g_assert_true(WEBKIT_IS_WEB_CONTEXT(webContext2)); 94 g_object_unref(webContext2); 95 } 96 67 97 static void testWebViewCustomCharset(WebViewTest* test, gconstpointer) 68 98 { … … 810 840 811 841 WebViewTest::add("WebKitWebView", "web-context", testWebViewWebContext); 842 WebViewTest::add("WebKitWebView", "web-context-lifetime", testWebViewWebContextLifetime); 812 843 WebViewTest::add("WebKitWebView", "custom-charset", testWebViewCustomCharset); 813 844 WebViewTest::add("WebKitWebView", "settings", testWebViewSettings);
Note: See TracChangeset
for help on using the changeset viewer.