summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tabs/tab_strip_model.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/tabs/tab_strip_model.cc')
-rw-r--r--chrome/browser/tabs/tab_strip_model.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/chrome/browser/tabs/tab_strip_model.cc b/chrome/browser/tabs/tab_strip_model.cc
index 2883cd0..3fd5af6 100644
--- a/chrome/browser/tabs/tab_strip_model.cc
+++ b/chrome/browser/tabs/tab_strip_model.cc
@@ -398,8 +398,14 @@ void TabStripModel::AddTabContents(TabContents* contents,
// layout is performed with sane view dimensions even when we're opening a
// new background tab.
if (TabContents* old_contents = GetSelectedTabContents()) {
- if (!foreground)
+ if (!foreground) {
+ contents->HideContents();
contents->view()->SizeContents(old_contents->view()->GetContainerSize());
+ // We need to hide the contents or else we get and execute paints for
+ // background tabs. With enough background tabs they will steal the
+ // backing store of the visible tab causing flashing. See bug 20831.
+
+ }
}
}