My favorites | Sign in
Project Home Downloads Wiki Issues Code Search
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 22717: Open infobars or detached bookmark bars jank up tab switches
1 person starred this issue and may be notified of changes. Back to list
Status:  Verified
Owner:  rohitrao@chromium.org
Closed:  Sep 2010
Cc:  pinkerton@chromium.org, rsesek@chromium.org, viettrun...@chromium.org, rohitrao@chromium.org, stuartmorgan@chromium.org, kr...@chromium.org

Restricted
  • Only users with Commit permission may comment.


Sign in to add a comment
 
Project Member Reported by rohitrao@chromium.org, Sep 22, 2009
Trigger an infobar in one tab.  Signing into gmail to get the password save infobar is a good choice.  
Then switch to a different tab.  Notice the flash, where the content appears to resize twice.

What's happening is that on the tab switch, we're removing the infobar, swapping in the new web 
content, and then adding the infobar back.  Swapping in the new web content triggers a renderer 
resize, and then the infobar comes in and triggers another renderer resize.

It should be possible to do all this with no resizes.  I need to figure out how and fix.

Marking as a beta blocker because this looks awful when it happens.
Oct 13, 2009
#1 rohitrao@chromium.org
I looked at this a bit last week, and it's harder to fix than I expected, because we add/remove/resize views in 
many different Observe() methods, split between BWC, TabStripController, and InfobarContainerController.  
These all happen sequentially and in arbitrary order, so there may not be a good way to simply disable view 
layout until we're done with the tab switch.

I think I've seen something similar on Linux.  I'll see if I can make it happen on Windows.
Oct 16, 2009
#2 rohitrao@chromium.org
Punting to Mstone-5.  We now correctly draw the web content anchored at the top left of the view, so this has 
gone from really awful to a flicker at the bottom of the screen.  Not nearly as bad anymore.
Labels: -Mstone-4 -ReleaseBlock-Beta Mstone-5
Oct 22, 2009
#3 ben@chromium.org
You may as well mark this fixed. It LGTM.
Oct 26, 2009
#4 rohitrao@chromium.org
Open gmail in one tab and the NTP in another.  Turn off "Always show bookmarks bar," so you get the NTP-only 
version.  Now, when you switch from the NTP to gmail, you should see a flicker at the bottom of the screen.

I don't want to close this bug because I do still see the problem.  It's not all that noticeable anymore, so I don't 
think it's a high priority.  On the other hand, it would be nice to not trigger two unnecessary renderer resizes for 
each tab switch.
Dec 18, 2009
#5 or...@chromium.org
Updating labels:
Area-UI-Features replaces Area-BrowserUI
Labels: -Area-BrowserUI Area-UI-Features
Jan 8, 2010
#6 lafo...@chromium.org
(No comment was entered for this change.)
Labels: -Area-UI-Features Area-Feature
Feb 16, 2010
#7 lafo...@chromium.org
(No comment was entered for this change.)
Labels: -Area-Feature Area-UI
Mar 9, 2010
#8 ka...@chromium.org
(No comment was entered for this change.)
Labels: wasm5kg Mstone-X
Aug 30, 2010
#9 mikesm...@chromium.org
 Issue 53776  has been merged into this issue.
Cc: pinker...@chromium.org rse...@chromium.org viettrun...@chromium.org rohit...@chromium.org
Aug 30, 2010
#10 thakis@chromium.org
(Dupe has the same analysis. I think the TabStripController should do this explicitly instead of having 3 independent observers. As a workaround, you could make sure the TabStripController is always the first of the 3 observers, then it gets the event first, but that's hacky.)
Summary: Open infobars or detached bookmark bars jank up tab switches
Sep 2, 2010
#11 rohitrao@chromium.org
 Issue 54346  has been merged into this issue.
Cc: stuartmo...@chromium.org kr...@chromium.org
Sep 9, 2010
#12 aleks...@chromium.org
(No comment was entered for this change.)
Status: Fixed
Sep 9, 2010
#13 bugdroid1@gmail.com
Verified label updated by AutoAllocator, contact AmolK or KrisR for details
Labels: Verifier-Deepakg
Sep 9, 2010
#14 bugdroid1@gmail.com
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=58964

------------------------------------------------------------------------
r58964 | alekseys@chromium.org | Thu Sep 09 11:11:57 PDT 2010

Changed paths:
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/sidebar_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/browser_window_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_window_controller.h?r1=58964&r2=58963&pathrev=58964
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/dev_tools_controller.h?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/infobar_container_controller_unittest.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/infobar_container_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_contents_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/nibs/BrowserWindow.xib?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_strip_controller_unittest.mm?r1=58964&r2=58963&pathrev=58964
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/sidebar_controller.h?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_strip_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/browser_window_controller.h?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/side_tab_strip_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_window_controller.mm?r1=58964&r2=58963&pathrev=58964
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/dev_tools_controller.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/nibs/TabContents.xib?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/infobar_container_controller.h?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_contents_controller.h?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/browser_window_controller_private.mm?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/cocoa/tab_strip_controller.h?r1=58964&r2=58963&pathrev=58964
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=58964&r2=58963&pathrev=58964

Move devtools and sidebar handling to BWC and ensure the order of layout adjustments
during tab change updates to eliminate UI flickering.

TabContents.xib changes: devtools and sidebar NSSplitViews removed (moved to BrowserWindow.xib),
contentsContainer_ view removed (now it's inserted at runtime).
BrowserWindow.xib chnages: devtools and sidebar NSSplitViews added into FastResizeView.

BUG=22717, 31633
TEST=Run unit_tests, browser_tests and interactive_ui_tests.

Open google.com in one tab (it's easy to spot content relayout on google.com), trigger an infobar
and content scroll bar on another tab (ru.wikipedia.org with translation infobar will do), switch
tabs back and forth. Content should not relayout, scroll bar should not "jump".
Open new tab and make sure bookmark bar is not always visible, open any site which triggers infobar
and big enough to show content scroll bar on another tab, switch tabs back and forth. Content should
not relayout, scroolbar should not "jump".
Repeat the tests above with sidebar opened on any of these tabs, page and sidebar content should not
relayout, sidebar should stay the same width, scrollbar should not "jump".
Repeat the tests above with devtools docked.

------------------------------------------------------------------------
Sep 10, 2010
#15 deep...@chromium.org
Verified in 7.0.517.5 (Official Build 59018) dev
Status: Verified
Oct 12, 2012
#16 bugdroid1@chromium.org
This issue has been closed for some time. No one will pay attention to new comments.
If you are seeing this bug or have new data, please click New Issue to start a new bug.
Labels: Restrict-AddIssueComment-Commit
Mar 10, 2013
#17 bugdroid1@chromium.org
(No comment was entered for this change.)
Labels: -Area-UI Cr-UI
Sign in to add a comment

Powered by Google Project Hosting