summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/gtk_theme_provider_unittest.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-02 00:27:48 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-02 00:27:48 +0000
commita49437de9e757ffaf4e74f82686ee37b73950c6a (patch)
tree617e093be408d370fe19ad48c750dd2286bba5b5 /chrome/browser/gtk/gtk_theme_provider_unittest.cc
parentb7d155f67aad56a2bab35339456fa10d1a2de13e (diff)
downloadchromium_src-a49437de9e757ffaf4e74f82686ee37b73950c6a.zip
chromium_src-a49437de9e757ffaf4e74f82686ee37b73950c6a.tar.gz
chromium_src-a49437de9e757ffaf4e74f82686ee37b73950c6a.tar.bz2
[GTK] delay reference count check in OwnedWidgetGtk
It's a common problem that a GtkWidget will be referenced by an event that's currently on the callstack. These ref holders ignore the "destroy" signal, so when we go to destroy the owned widget, the refcount == 1 DCHECK fails. This change delays that DCHECK until the current stack has unwound, so we don't have to keep running into this. BUG=none TEST=in debug builds, Escape in a constrained window doesn't DCHECK, dragging a tab doesn't cause a DCHECK, pressing the custom frame [x] in lucid doesn't DCHECK; in general, no additional DCHECKs Review URL: http://codereview.chromium.org/3416032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61269 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/gtk_theme_provider_unittest.cc')
-rw-r--r--chrome/browser/gtk/gtk_theme_provider_unittest.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/chrome/browser/gtk/gtk_theme_provider_unittest.cc b/chrome/browser/gtk/gtk_theme_provider_unittest.cc
index 1836b80..4779063 100644
--- a/chrome/browser/gtk/gtk_theme_provider_unittest.cc
+++ b/chrome/browser/gtk/gtk_theme_provider_unittest.cc
@@ -4,6 +4,7 @@
#include <gtk/gtk.h>
+#include "base/message_loop.h"
#include "chrome/browser/gtk/gtk_theme_provider.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profile.h"
@@ -36,6 +37,9 @@ class GtkThemeProviderTest : public testing::Test {
provider_ = GtkThemeProvider::GetFrom(&profile_);
}
+ private:
+ MessageLoop message_loop_;
+
protected:
TestingProfile profile_;