diff options
author | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-16 17:50:07 +0000 |
---|---|---|
committer | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-16 17:50:07 +0000 |
commit | 62c33767c032d4b2272a7a4faca91f1209bee03c (patch) | |
tree | 999b2619d0a3a55fc1cfe2522c74f9ad6b0a4ea4 /chrome/browser/sessions | |
parent | 3752cb169138cd509e2e1c32aefca69cbbd58749 (diff) | |
download | chromium_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.cc | 14 |
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()); } } |