summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser.cc
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-28 06:52:35 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-28 06:52:35 +0000
commit329581b6dbfa4ad0ca1013d0407e202b8dffed77 (patch)
tree8a6832ac64e99760cb07b74a08896f7a41def051 /chrome/browser/browser.cc
parent6faa0e0d23ca6fc27ae603063ce23eb018a670cd (diff)
downloadchromium_src-329581b6dbfa4ad0ca1013d0407e202b8dffed77.zip
chromium_src-329581b6dbfa4ad0ca1013d0407e202b8dffed77.tar.gz
chromium_src-329581b6dbfa4ad0ca1013d0407e202b8dffed77.tar.bz2
Synchronously update the loading state when a load starts so that the UI will
be more responsive and the loading state won't be out-of-sync with anything else. This also removes the synchronous update to the throbber when we load a URL because this happens before the loda actually starts, giving a flash of the default favicon. The load start call made by RenderViewHost will cover this case after the load actually starts. BUG=11051 Review URL: http://codereview.chromium.org/100033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14718 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser.cc')
-rw-r--r--chrome/browser/browser.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index 8bdbc81..ace2369 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -1737,10 +1737,13 @@ void Browser::OpenURLFromTab(TabContents* source,
if (GetStatusBubble())
GetStatusBubble()->Hide();
- // Update the location bar and load state. These are both synchronous
- // updates inside of ScheduleUIUpdate.
- ScheduleUIUpdate(current_tab, TabContents::INVALIDATE_URL |
- TabContents::INVALIDATE_LOAD);
+ // Update the location bar. This is synchronous. We specfically don't update
+ // the load state since the load hasn't started yet and updating it will put
+ // it out of sync with the actual state like whether we're displaying a
+ // favicon, which controls the throbber. If we updated it here, the throbber
+ // will show the default favicon for a split second when navigating away
+ // from the new tab page.
+ ScheduleUIUpdate(current_tab, TabContents::INVALIDATE_URL);
} else if (disposition == OFF_THE_RECORD) {
OpenURLOffTheRecord(profile_, url);
return;