summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-01 08:58:33 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-01 08:58:33 +0000
commit744121a2bf4ccf78a95cd816e696c0fc7f2551a5 (patch)
treea0df3438a20399a50b753e638c671bc4c7f1347f
parent1f332d828675b4a711e8a1e8c56c31966fb51ea8 (diff)
downloadchromium_src-744121a2bf4ccf78a95cd816e696c0fc7f2551a5.zip
chromium_src-744121a2bf4ccf78a95cd816e696c0fc7f2551a5.tar.gz
chromium_src-744121a2bf4ccf78a95cd816e696c0fc7f2551a5.tar.bz2
Make Gtk/Gdk/GLib errors/warnings really fatal.
I had to disable RedirectTest because on Linux it triggered Gdk assertion. It was a bug in our logging <-> glib logging glue code that didn't make this test fail earlier. http://crbug.com/9519 Review URL: http://codereview.chromium.org/56072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12947 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/chrome_dll_main.cc39
-rw-r--r--chrome/chrome.gyp1
-rw-r--r--chrome/test/ui/ui_tests.scons1
3 files changed, 25 insertions, 16 deletions
diff --git a/chrome/app/chrome_dll_main.cc b/chrome/app/chrome_dll_main.cc
index 6ef4c20..46bd0ff 100644
--- a/chrome/app/chrome_dll_main.cc
+++ b/chrome/app/chrome_dll_main.cc
@@ -159,18 +159,33 @@ bool IncorrectChromeHtmlArguments(const std::wstring& command_line) {
#endif // OS_WIN
#if defined(OS_LINUX)
-static void GtkFatalLogHandler(const gchar* log_domain,
- GLogLevelFlags log_level,
- const gchar* message,
- gpointer userdata) {
+static void GLibFatalLogHandler(const gchar* log_domain,
+ GLogLevelFlags log_level,
+ const gchar* message,
+ gpointer userdata) {
if (!log_domain)
- log_domain = "<all>";
+ log_domain = "<unknown>";
if (!message)
message = "<no message>";
- NOTREACHED() << "GTK: (" << log_domain << "): " << message;
+ LOG(FATAL) << log_domain << ": " << message;
}
-#endif
+
+static void SetUpGLibLogHandler() {
+ // Register GLib-handled assertions to go through our logging system.
+ const char* kLogDomains[] = { NULL, "Gtk", "Gdk", "GLib" };
+ for (size_t i = 0; i < arraysize(kLogDomains); i++) {
+ g_log_set_handler(kLogDomains[i],
+ static_cast<GLogLevelFlags>(G_LOG_FLAG_RECURSION |
+ G_LOG_FLAG_FATAL |
+ G_LOG_LEVEL_ERROR |
+ G_LOG_LEVEL_CRITICAL |
+ G_LOG_LEVEL_WARNING),
+ GLibFatalLogHandler,
+ NULL);
+ }
+}
+#endif // defined(OS_LINUX)
// Register the invalid param handler and pure call handler to be able to
// notify breakpad when it happens.
@@ -404,15 +419,7 @@ int ChromeMain(int argc, const char** argv) {
#if defined(OS_LINUX)
// gtk_init() can change |argc| and |argv|, but nobody else uses them.
gtk_init(&argc, const_cast<char***>(&argv));
- // Register GTK assertions to go through our logging system.
- g_log_set_handler(NULL, // All logging domains.
- static_cast<GLogLevelFlags>(G_LOG_FLAG_RECURSION |
- G_LOG_FLAG_FATAL |
- G_LOG_LEVEL_ERROR |
- G_LOG_LEVEL_CRITICAL |
- G_LOG_LEVEL_WARNING),
- GtkFatalLogHandler,
- NULL);
+ SetUpGLibLogHandler();
#endif
ScopedOleInitializer ole_initializer;
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index bb12b9c..d0ca8a0 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -1949,6 +1949,7 @@
'browser/download/download_uitest.cc',
'browser/download/save_page_uitest.cc',
'browser/errorpage_uitest.cc',
+ 'browser/history/redirect_uitest.cc',
'browser/iframe_uitest.cc',
'browser/interstitial_page_uitest.cc',
'browser/login_prompt_uitest.cc',
diff --git a/chrome/test/ui/ui_tests.scons b/chrome/test/ui/ui_tests.scons
index bdc2821..28c50ee 100644
--- a/chrome/test/ui/ui_tests.scons
+++ b/chrome/test/ui/ui_tests.scons
@@ -286,6 +286,7 @@ if not env.Bit('windows'):
'$CHROME_DIR/browser/download/save_page_uitest.cc',
'$CHROME_DIR/browser/errorpage_uitest.cc',
'$CHROME_DIR/browser/iframe_uitest.cc',
+ '$CHROME_DIR/browser/history/redirect_uitest.cc',
'$CHROME_DIR/browser/interstitial_page_uitest.cc',
'$CHROME_DIR/browser/login_prompt_uitest.cc',
'$CHROME_DIR/browser/metrics/metrics_service_uitest.cc',