Changeset 206304 in webkit
- Timestamp:
- Sep 23, 2016 8:48:22 AM (8 years ago)
- Location:
- trunk/Tools
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r206303 r206304 1 2016-09-23 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 REGRESSION(r204163): [GTK] API test /webkit2/WebKitSecurityManager/file-xhr is failing 4 https://bugs.webkit.org/show_bug.cgi?id=161607 5 6 Reviewed by Michael Catanzaro. 7 8 Since r204163, in case of cross origin error when loading the XHR, the load fails and an error message is shown 9 in the console, but there isn't any js expcetion, which is what we were checking. Now, we check that there 10 aren't exceptions, and that the error message is sent to the console. 11 12 * Scripts/run-gtk-tests: 13 (TestRunner): 14 * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp: 15 (consoleMessageReceivedCallback): 16 (testWebContextSecurityFileXHR): 17 1 18 2016-09-23 Ryan Haddad <ryanhaddad@apple.com> 2 19 -
trunk/Tools/Scripts/run-gtk-tests
r205454 r206304 79 79 SkippedTest("WebKit2Gtk/TestWebViewEditor", "/webkit2/WebKitWebView/select-all/editable", "Test hits assertion", 161608), 80 80 SkippedTest("WebKit2Gtk/TestWebExtensions", "/webkit2/WebKitWebView/install-missing-plugins-permission-request", "Test times out", 147822), 81 SkippedTest("WebKit2Gtk/TestWebKitWebContext", "/webkit2/WebKitSecurityManager/file-xhr", "Test hits assertion", 161607),82 81 SkippedTest("WebKit2/TestWebKit2", "WebKit2.MouseMoveAfterCrash", "Test is flaky", 85066), 83 82 SkippedTest("WebKit2/TestWebKit2", "WebKit2.NewFirstVisuallyNonEmptyLayoutForImages", "Test is flaky", 85066), -
trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp
r206295 r206304 628 628 } 629 629 630 static void consoleMessageReceivedCallback(WebKitUserContentManager*, WebKitJavascriptResult* message, WebKitJavascriptResult** result) 631 { 632 g_assert(result); 633 g_assert(!*result); 634 *result = webkit_javascript_result_ref(message); 635 } 636 630 637 static void testWebContextSecurityFileXHR(WebViewTest* test, gconstpointer) 631 638 { … … 637 644 GUniquePtr<char> xhr(g_strdup_printf("var xhr = new XMLHttpRequest; xhr.open(\"GET\", \"%s\"); xhr.send();", jsonURL.get())); 638 645 639 // By default file access is not allowed, this will fail with a cross-origin error. 646 WebKitJavascriptResult* consoleMessage = nullptr; 647 webkit_user_content_manager_register_script_message_handler(test->m_userContentManager.get(), "console"); 648 g_signal_connect(test->m_userContentManager.get(), "script-message-received::console", G_CALLBACK(consoleMessageReceivedCallback), &consoleMessage); 649 650 // By default file access is not allowed, this will show a console message with a cross-origin error. 640 651 GUniqueOutPtr<GError> error; 641 652 WebKitJavascriptResult* javascriptResult = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr()); 642 g_assert(!javascriptResult); 643 g_assert_error(error.get(), WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED); 653 g_assert(javascriptResult); 654 g_assert(!error); 655 g_assert(consoleMessage); 656 GUniquePtr<char> messageString(WebViewTest::javascriptResultToCString(consoleMessage)); 657 GRefPtr<GVariant> variant = g_variant_parse(G_VARIANT_TYPE("(uusus)"), messageString.get(), nullptr, nullptr, nullptr); 658 g_assert(variant.get()); 659 unsigned level; 660 const char* messageText; 661 g_variant_get(variant.get(), "(uu&su&s)", nullptr, &level, &messageText, nullptr, nullptr); 662 g_assert_cmpuint(level, ==, 3); // Console error message. 663 GUniquePtr<char> expectedErrorMessage(g_strdup_printf("XMLHttpRequest cannot load %s. Cross origin requests are only supported for HTTP.", jsonURL.get())); 664 g_assert_cmpstr(messageText, ==, expectedErrorMessage.get()); 665 webkit_javascript_result_unref(consoleMessage); 666 consoleMessage = nullptr; 667 level = 0; 668 messageText = nullptr; 669 variant = nullptr; 644 670 645 671 // Allow file access from file URLs. … … 655 681 test->waitUntilLoadFinished(); 656 682 javascriptResult = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr()); 657 g_assert(!javascriptResult); 658 g_assert_error(error.get(), WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED); 683 g_assert(javascriptResult); 684 g_assert(!error); 685 g_assert(consoleMessage); 686 variant = g_variant_parse(G_VARIANT_TYPE("(uusus)"), messageString.get(), nullptr, nullptr, nullptr); 687 g_assert(variant.get()); 688 g_variant_get(variant.get(), "(uu&su&s)", nullptr, &level, &messageText, nullptr, nullptr); 689 g_assert_cmpuint(level, ==, 3); // Console error message. 690 g_assert_cmpstr(messageText, ==, expectedErrorMessage.get()); 691 webkit_javascript_result_unref(consoleMessage); 692 693 g_signal_handlers_disconnect_matched(test->m_userContentManager.get(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, &consoleMessage); 694 webkit_user_content_manager_unregister_script_message_handler(test->m_userContentManager.get(), "console"); 659 695 660 696 webkit_settings_set_allow_file_access_from_file_urls(webkit_web_view_get_settings(test->m_webView), FALSE);
Note: See TracChangeset
for help on using the changeset viewer.