Title: [207097] releases/WebKitGTK/webkit-2.14/Tools
Revision
207097
Author
[email protected]
Date
2016-10-11 05:00:15 -0700 (Tue, 11 Oct 2016)

Log Message

Merge r206302 - [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:

Modified Paths

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;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to