summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sessions
diff options
context:
space:
mode:
authorjaphet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-16 17:50:07 +0000
committerjaphet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-16 17:50:07 +0000
commit62c33767c032d4b2272a7a4faca91f1209bee03c (patch)
tree999b2619d0a3a55fc1cfe2522c74f9ad6b0a4ea4 /chrome/browser/sessions
parent3752cb169138cd509e2e1c32aefca69cbbd58749 (diff)
downloadchromium_src-62c33767c032d4b2272a7a4faca91f1209bee03c.zip
chromium_src-62c33767c032d4b2272a7a4faca91f1209bee03c.tar.gz
chromium_src-62c33767c032d4b2272a7a4faca91f1209bee03c.tar.bz2
Size TabContents being restored during a session restore.
BUG=40232 TEST=none Review URL: http://codereview.chromium.org/1658004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44792 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions')
-rw-r--r--chrome/browser/sessions/session_restore.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc
index 700290a..dfa65d1 100644
--- a/chrome/browser/sessions/session_restore.cc
+++ b/chrome/browser/sessions/session_restore.cc
@@ -398,14 +398,22 @@ class SessionRestoreImpl : public NotificationObserver {
0,
std::min(selected_index,
static_cast<int>(tab.navigations.size() - 1)));
- tab_loader_->AddTab(
- &browser->AddRestoredTab(tab.navigations,
+ TabContents* new_tab = browser->AddRestoredTab(tab.navigations,
static_cast<int>(i - window.tabs.begin()),
selected_index,
tab.app_extension_id,
false,
tab.pinned,
- true)->controller());
+ true);
+ // We set the size of the view here, before WebKit does its initial
+ // layout. If we don't, the initial layout of background tabs will be
+ // performed with a view width of 0, which may cause script outputs and
+ // anchor link location calculations to be incorrect even after a new
+ // layout with proper view dimensions. TabStripModel::AddTabContents()
+ // contains similar logic.
+ new_tab->view()->SizeContents(window.bounds.size());
+ new_tab->HideContents();
+ tab_loader_->AddTab(&new_tab->controller());
}
}