Diff
Modified: releases/WebKitGTK/webkit-2.14/Tools/ChangeLog (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/ChangeLog 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/ChangeLog 2016-10-11 12:00:15 UTC (rev 207097)
@@ -1,5 +1,29 @@
2016-09-23 Carlos Garcia Campos <[email protected]>
+ [GTK] Make all WebView tests have a WebKitUserContentManager
+ https://bugs.webkit.org/show_bug.cgi?id=162487
+
+ Reviewed by Michael Catanzaro.
+
+ It simplifies tests using the user content manager, and allows to use it without having to subclass WebViewTest.
+
+ * TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp:
+ (ConsoleMessageTest::ConsoleMessageTest):
+ (ConsoleMessageTest::~ConsoleMessageTest):
+ * TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
+ * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
+ (testUserContentManagerInjectedStyleSheet):
+ (testUserContentManagerInjectedScript):
+ (UserScriptMessageTest::UserScriptMessageTest):
+ (beforeAll):
+ * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
+ (testWebViewIsPlayingAudio):
+ * TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
+ (WebViewTest::WebViewTest):
+ * TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
+
+2016-09-23 Carlos Garcia Campos <[email protected]>
+
REGRESSION(r194387): Crash on github.com in IntlDateTimeFormat::resolvedOptions in C locale
https://bugs.webkit.org/show_bug.cgi?id=162139
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp 2016-10-11 12:00:15 UTC (rev 207097)
@@ -64,18 +64,15 @@
}
ConsoleMessageTest()
- : WebViewTest(webkit_user_content_manager_new())
{
- WebKitUserContentManager* manager = webkit_web_view_get_user_content_manager(m_webView);
- webkit_user_content_manager_register_script_message_handler(manager, "console");
- g_signal_connect(manager, "script-message-received::console", G_CALLBACK(consoleMessageReceivedCallback), this);
+ webkit_user_content_manager_register_script_message_handler(m_userContentManager.get(), "console");
+ g_signal_connect(m_userContentManager.get(), "script-message-received::console", G_CALLBACK(consoleMessageReceivedCallback), this);
}
~ConsoleMessageTest()
{
- WebKitUserContentManager* manager = webkit_web_view_get_user_content_manager(m_webView);
- g_signal_handlers_disconnect_matched(manager, G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, this);
- webkit_user_content_manager_unregister_script_message_handler(manager, "console");
+ g_signal_handlers_disconnect_matched(m_userContentManager.get(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, this);
+ webkit_user_content_manager_unregister_script_message_handler(m_userContentManager.get(), "console");
}
void waitUntilConsoleMessageReceived()
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp 2016-10-11 12:00:15 UTC (rev 207097)
@@ -232,8 +232,7 @@
}
UIClientTest()
- : WebViewTest(webkit_user_content_manager_new())
- , m_scriptDialogType(WEBKIT_SCRIPT_DIALOG_ALERT)
+ : m_scriptDialogType(WEBKIT_SCRIPT_DIALOG_ALERT)
, m_scriptDialogConfirmed(true)
, m_allowPermissionRequests(false)
, m_verifyMediaTypes(false)
@@ -246,17 +245,15 @@
g_signal_connect(m_webView, "script-dialog", G_CALLBACK(scriptDialog), this);
g_signal_connect(m_webView, "mouse-target-changed", G_CALLBACK(mouseTargetChanged), this);
g_signal_connect(m_webView, "permission-request", G_CALLBACK(permissionRequested), this);
- WebKitUserContentManager* manager = webkit_web_view_get_user_content_manager(m_webView);
- webkit_user_content_manager_register_script_message_handler(manager, "permission");
- g_signal_connect(manager, "script-message-received::permission", G_CALLBACK(permissionResultMessageReceivedCallback), this);
+ webkit_user_content_manager_register_script_message_handler(m_userContentManager.get(), "permission");
+ g_signal_connect(m_userContentManager.get(), "script-message-received::permission", G_CALLBACK(permissionResultMessageReceivedCallback), this);
}
~UIClientTest()
{
g_signal_handlers_disconnect_matched(m_webView, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
- WebKitUserContentManager* manager = webkit_web_view_get_user_content_manager(m_webView);
- g_signal_handlers_disconnect_matched(manager, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
- webkit_user_content_manager_unregister_script_message_handler(manager, "permission");
+ g_signal_handlers_disconnect_matched(m_userContentManager.get(), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
+ webkit_user_content_manager_unregister_script_message_handler(m_userContentManager.get(), "permission");
}
static void tryWebViewCloseCallback(UIClientTest* test)
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp 2016-10-11 12:00:15 UTC (rev 207097)
@@ -27,23 +27,6 @@
#include <wtf/glib/GRefPtr.h>
#include <wtf/glib/GUniquePtr.h>
-class UserContentManagerTest : public WebViewTest {
-public:
- MAKE_GLIB_TEST_FIXTURE(UserContentManagerTest);
-
- UserContentManagerTest()
- : WebViewTest(webkit_user_content_manager_new())
- {
- // A reference is leaked when passing the result of webkit_user_content_manager_new()
- // directly to webkit_web_view_new_with_user_content_manager() above. Adopting the
- // reference here avoids the leak.
- m_userContentManager = adoptGRef(webkit_web_view_get_user_content_manager(m_webView));
- assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_userContentManager.get()));
- }
-
- GRefPtr<WebKitUserContentManager> m_userContentManager;
-};
-
static WebKitTestServer* kServer;
// These are all here so that they can be changed easily, if necessary.
@@ -127,7 +110,7 @@
}
}
-static void testUserContentManagerInjectedStyleSheet(UserContentManagerTest* test, gconstpointer)
+static void testUserContentManagerInjectedStyleSheet(WebViewTest* test, gconstpointer)
{
char* whitelist[3] = { 0, 0, 0 };
char* blacklist[3] = { 0, 0, 0 };
@@ -170,7 +153,7 @@
removeOldInjectedContentAndResetLists(test->m_userContentManager.get(), whitelist, blacklist);
}
-static void testUserContentManagerInjectedScript(UserContentManagerTest* test, gconstpointer)
+static void testUserContentManagerInjectedScript(WebViewTest* test, gconstpointer)
{
char* whitelist[3] = { 0, 0, 0 };
char* blacklist[3] = { 0, 0, 0 };
@@ -213,13 +196,12 @@
removeOldInjectedContentAndResetLists(test->m_userContentManager.get(), whitelist, blacklist);
}
-class UserScriptMessageTest : public UserContentManagerTest {
+class UserScriptMessageTest : public WebViewTest {
public:
MAKE_GLIB_TEST_FIXTURE(UserScriptMessageTest);
UserScriptMessageTest()
- : UserContentManagerTest()
- , m_userScriptMessage(nullptr)
+ : m_userScriptMessage(nullptr)
{
}
@@ -376,8 +358,8 @@
kServer->run(serverCallback);
Test::add("WebKitWebView", "new-with-user-content-manager", testWebViewNewWithUserContentManager);
- UserContentManagerTest::add("WebKitUserContentManager", "injected-style-sheet", testUserContentManagerInjectedStyleSheet);
- UserContentManagerTest::add("WebKitUserContentManager", "injected-script", testUserContentManagerInjectedScript);
+ WebViewTest::add("WebKitUserContentManager", "injected-style-sheet", testUserContentManagerInjectedStyleSheet);
+ WebViewTest::add("WebKitUserContentManager", "injected-script", testUserContentManagerInjectedScript);
UserScriptMessageTest::add("WebKitUserContentManager", "script-message-received", testUserContentManagerScriptMessageReceived);
UserScriptMessageTest::add("WebKitUserContentManager", "script-message-from-dom-bindings", testUserContentManagerScriptMessageFromDOMBindings);
}
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp 2016-10-11 12:00:15 UTC (rev 207097)
@@ -699,23 +699,20 @@
}
NotificationWebViewTest()
- : WebViewTest(webkit_user_content_manager_new())
- , m_notification(nullptr)
+ : m_notification(nullptr)
, m_event(None)
{
g_signal_connect(m_webView, "permission-request", G_CALLBACK(permissionRequestCallback), this);
g_signal_connect(m_webView, "show-notification", G_CALLBACK(showNotificationCallback), this);
- WebKitUserContentManager* manager = webkit_web_view_get_user_content_manager(m_webView);
- webkit_user_content_manager_register_script_message_handler(manager, "notifications");
- g_signal_connect(manager, "script-message-received::notifications", G_CALLBACK(notificationsMessageReceivedCallback), this);
+ webkit_user_content_manager_register_script_message_handler(m_userContentManager.get(), "notifications");
+ g_signal_connect(m_userContentManager.get(), "script-message-received::notifications", G_CALLBACK(notificationsMessageReceivedCallback), this);
}
~NotificationWebViewTest()
{
g_signal_handlers_disconnect_matched(m_webView, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
- WebKitUserContentManager* manager = webkit_web_view_get_user_content_manager(m_webView);
- g_signal_handlers_disconnect_matched(manager, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
- webkit_user_content_manager_unregister_script_message_handler(manager, "notifications");
+ g_signal_handlers_disconnect_matched(m_userContentManager.get(), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
+ webkit_user_content_manager_unregister_script_message_handler(m_userContentManager.get(), "notifications");
}
void requestPermissionAndWaitUntilGiven()
@@ -818,13 +815,15 @@
test->waitUntilLoadFinished();
g_assert(!webkit_web_view_is_playing_audio(test->m_webView));
- webkit_web_view_run_javascript(test->m_webView, "playVideo();", nullptr, nullptr, nullptr);
- test->waitUntilIsPlayingAudioChanged();
+ test->runJavaScriptAndWaitUntilFinished("playVideo();", nullptr);
+ if (!webkit_web_view_is_playing_audio(test->m_webView))
+ test->waitUntilIsPlayingAudioChanged();
g_assert(webkit_web_view_is_playing_audio(test->m_webView));
// Pause the video, and check again.
- webkit_web_view_run_javascript(test->m_webView, "document.getElementById('test-video').pause();", nullptr, nullptr, nullptr);
- test->waitUntilIsPlayingAudioChanged();
+ test->runJavaScriptAndWaitUntilFinished("document.getElementById('test-video').pause();", nullptr);
+ if (webkit_web_view_is_playing_audio(test->m_webView))
+ test->waitUntilIsPlayingAudioChanged();
g_assert(!webkit_web_view_is_playing_audio(test->m_webView));
}
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp 2016-10-11 12:00:15 UTC (rev 207097)
@@ -24,8 +24,9 @@
#include <_javascript_Core/JSRetainPtr.h>
#include <WebCore/GUniquePtrGtk.h>
-WebViewTest::WebViewTest(WebKitUserContentManager* userContentManager)
- : m_webView(WEBKIT_WEB_VIEW(g_object_ref_sink(g_object_new(WEBKIT_TYPE_WEB_VIEW, "web-context", m_webContext.get(), "user-content-manager", userContentManager, nullptr))))
+WebViewTest::WebViewTest()
+ : m_userContentManager(adoptGRef(webkit_user_content_manager_new()))
+ , m_webView(WEBKIT_WEB_VIEW(g_object_ref_sink(g_object_new(WEBKIT_TYPE_WEB_VIEW, "web-context", m_webContext.get(), "user-content-manager", m_userContentManager.get(), nullptr))))
, m_mainLoop(g_main_loop_new(nullptr, TRUE))
, m_parentWindow(nullptr)
, m_javascriptResult(nullptr)
@@ -34,6 +35,7 @@
, m_expectedWebProcessCrash(false)
{
assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_webView));
+ assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_userContentManager.get()));
g_signal_connect(m_webView, "web-process-crashed", G_CALLBACK(WebViewTest::webProcessCrashed), this);
}
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h (207096 => 207097)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h 2016-10-11 11:58:38 UTC (rev 207096)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h 2016-10-11 12:00:15 UTC (rev 207097)
@@ -28,7 +28,7 @@
class WebViewTest: public Test {
public:
MAKE_GLIB_TEST_FIXTURE(WebViewTest);
- WebViewTest(WebKitUserContentManager* = nullptr);
+ WebViewTest();
virtual ~WebViewTest();
virtual void loadURI(const char* uri);
@@ -80,6 +80,7 @@
static gboolean webProcessCrashed(WebKitWebView*, WebViewTest*);
+ GRefPtr<WebKitUserContentManager> m_userContentManager;
WebKitWebView* m_webView;
GMainLoop* m_mainLoop;
CString m_activeURI;