diff options
Diffstat (limited to 'WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp')
-rw-r--r-- | WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp index e115683..1c851d7 100644 --- a/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp +++ b/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp @@ -38,6 +38,7 @@ #include "GOwnPtr.h" #include "LayoutTestController.h" #include "PixelDumpSupport.h" +#include "WebCoreSupport/DumpRenderTreeSupportGtk.h" #include "WorkQueue.h" #include "WorkQueueItem.h" #include <JavaScriptCore/JavaScript.h> @@ -199,6 +200,16 @@ static void initializeFonts(const char* testURL = 0) "/usr/share/fonts/dejavu/DejaVuSans.ttf", }, { "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", "/usr/share/fonts/dejavu/DejaVuSerif.ttf", }, + + // MathML tests require the STIX fonts. + { "/usr/share/fonts/opentype/stix/STIXGeneral.otf", + "/usr/share/fonts/stix/STIXGeneral.otf" }, + { "/usr/share/fonts/opentype/stix/STIXGeneralBolIta.otf", + "/usr/share/fonts/stix/STIXGeneralBolIta.otf" }, + { "/usr/share/fonts/opentype/stix/STIXGeneralBol.otf", + "/usr/share/fonts/stix/STIXGeneralBol.otf" }, + { "/usr/share/fonts/opentype/stix/STIXGeneralItalic.otf", + "/usr/share/fonts/stix/STIXGeneralItalic.otf" } }; // TODO: Some tests use Lucida. We should load these as well, once it becomes @@ -433,6 +444,8 @@ static void resetDefaultsToConsistentValues() #endif setlocale(LC_ALL, ""); + + DumpRenderTreeSupportGtk::setLinksIncludedInFocusChain(true); } static bool useLongRunningServerMode(int argc, char *argv[]) @@ -714,24 +727,8 @@ static char* getFrameNameSuitableForTestResult(WebKitWebView* view, WebKitWebFra return frameName; } -static void webViewLoadCommitted(WebKitWebView* view, WebKitWebFrame* frame, void*) -{ - if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) { - char* frameName = getFrameNameSuitableForTestResult(view, frame); - printf("%s - didCommitLoadForFrame\n", frameName); - g_free(frameName); - } -} - - static void webViewLoadFinished(WebKitWebView* view, WebKitWebFrame* frame, void*) { - if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) { - char* frameName = getFrameNameSuitableForTestResult(view, frame); - printf("%s - didFinishLoadForFrame\n", frameName); - g_free(frameName); - } - if (frame != topLoadingFrame) return; @@ -967,23 +964,43 @@ static WebKitWebView* webInspectorInspectWebView(WebKitWebInspector*, gpointer d return WEBKIT_WEB_VIEW(webView); } -static void webViewLoadStatusNotified(WebKitWebView* view, gpointer user_data) +static void webFrameLoadStatusNotified(WebKitWebFrame* frame, gpointer user_data) { - WebKitLoadStatus loadStatus = webkit_web_view_get_load_status(view); + WebKitLoadStatus loadStatus = webkit_web_frame_get_load_status(frame); if (gLayoutTestController->dumpFrameLoadCallbacks()) { - if (loadStatus == WEBKIT_LOAD_PROVISIONAL) { - char* frameName = getFrameNameSuitableForTestResult(view, mainFrame); - printf("%s - didStartProvisionalLoadForFrame\n", frameName); - g_free(frameName); + GOwnPtr<char> frameName(getFrameNameSuitableForTestResult(webkit_web_frame_get_web_view(frame), frame)); + + switch (loadStatus) { + case WEBKIT_LOAD_PROVISIONAL: + if (!done) + printf("%s - didStartProvisionalLoadForFrame\n", frameName.get()); + break; + case WEBKIT_LOAD_COMMITTED: + if (!done) + printf("%s - didCommitLoadForFrame\n", frameName.get()); + break; + case WEBKIT_LOAD_FINISHED: + if (frame != topLoadingFrame || !done) + printf("%s - didFinishLoadForFrame\n", frameName.get()); + break; + default: + break; } } } +static void frameCreatedCallback(WebKitWebView* webView, WebKitWebFrame* webFrame, gpointer user_data) +{ + g_signal_connect(webFrame, "notify::load-status", G_CALLBACK(webFrameLoadStatusNotified), NULL); +} + static WebKitWebView* createWebView() { WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); + DumpRenderTreeSupportGtk::setDumpRenderTreeModeEnabled(true); + // From bug 11756: Use a frame group name for all WebViews created by // DumpRenderTree to allow testing of cross-page frame lookup. webkit_web_view_set_group_name(view, "org.webkit.gtk.DumpRenderTree"); @@ -991,7 +1008,6 @@ static WebKitWebView* createWebView() g_object_connect(G_OBJECT(view), "signal::load-started", webViewLoadStarted, 0, "signal::load-finished", webViewLoadFinished, 0, - "signal::load-committed", webViewLoadCommitted, 0, "signal::window-object-cleared", webViewWindowObjectCleared, 0, "signal::console-message", webViewConsoleMessage, 0, "signal::script-alert", webViewScriptAlert, 0, @@ -1009,13 +1025,10 @@ static WebKitWebView* createWebView() "signal::drag-begin", dragBeginCallback, 0, "signal::drag-end", dragEndCallback, 0, "signal::drag-failed", dragFailedCallback, 0, + "signal::frame-created", frameCreatedCallback, 0, NULL); - g_signal_connect(view, - "notify::load-status", G_CALLBACK(webViewLoadStatusNotified), - NULL); - WebKitWebInspector* inspector = webkit_web_view_get_inspector(view); g_object_connect(G_OBJECT(inspector), "signal::inspect-web-view", webInspectorInspectWebView, 0, @@ -1028,6 +1041,10 @@ static WebKitWebView* createWebView() webkit_web_view_set_settings(view, settings); } + // frame-created is not issued for main frame. That's why we must do this here + WebKitWebFrame* frame = webkit_web_view_get_main_frame(view); + g_signal_connect(frame, "notify::load-status", G_CALLBACK(webFrameLoadStatusNotified), NULL); + return view; } |