diff options
-rw-r--r-- | webkit/tools/test_shell/test_shell_platform_delegate_gtk.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/webkit/tools/test_shell/test_shell_platform_delegate_gtk.cc b/webkit/tools/test_shell/test_shell_platform_delegate_gtk.cc index 78dd552..4947b01 100644 --- a/webkit/tools/test_shell/test_shell_platform_delegate_gtk.cc +++ b/webkit/tools/test_shell/test_shell_platform_delegate_gtk.cc @@ -9,8 +9,35 @@ #include "webkit/tools/test_shell/test_shell.h" #include "webkit/tools/test_shell/test_shell_platform_delegate.h" +// Hooks Gtk's logs so that we can ignore harmless warnings. +static void GtkLogHandler(const gchar* log_domain, + GLogLevelFlags log_level, + const gchar* message, + gpointer userdata) { + if (strstr(message, "Loading IM context type") || + strstr(message, "wrong ELF class: ELFCLASS64")) { + // GTK outputs some warnings when it attempts to load 64bit shared + // objects from 32bit binaries. Suppress them as they are not + // actual errors. The warning messages are like + // + // (test_shell:2476): Gtk-WARNING **: + // /usr/lib/gtk-2.0/2.10.0/immodules/im-uim.so: wrong ELF class: ELFCLASS64 + // + // (test_shell:2476): Gtk-WARNING **: Loading IM context type 'uim' failed + // + // Related bug: http://crbug.com/9643 + } else { + g_log_default_handler(log_domain, log_level, message, userdata); + } +} + +static void SetUpGtkLogHandler() { + g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, GtkLogHandler, NULL); +} + void TestShellPlatformDelegate::PreflightArgs(int *argc, char ***argv) { gtk_init(argc, argv); + SetUpGtkLogHandler(); } void TestShellPlatformDelegate::SelectUnifiedTheme() { |