summaryrefslogtreecommitdiffstats
path: root/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp')
-rw-r--r--WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp71
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;
}