diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-15 14:43:37 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-15 14:43:37 +0000 |
commit | 47e020a9b1dc2259fa3279ad572ce877d871d219 (patch) | |
tree | 03334ada969fc8c1c6814afb0881edb708838921 /chrome/browser/sessions | |
parent | 526d9e5e23752ce4a8c3ad3e81ed1db02a643b52 (diff) | |
download | chromium_src-47e020a9b1dc2259fa3279ad572ce877d871d219.zip chromium_src-47e020a9b1dc2259fa3279ad572ce877d871d219.tar.gz chromium_src-47e020a9b1dc2259fa3279ad572ce877d871d219.tar.bz2 |
Makes session restore work correctly with instant.
BUG=58956
TEST=see bug
Review URL: http://codereview.chromium.org/3783005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62738 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions')
-rw-r--r-- | chrome/browser/sessions/session_id.h | 5 | ||||
-rw-r--r-- | chrome/browser/sessions/session_service.cc | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/chrome/browser/sessions/session_id.h b/chrome/browser/sessions/session_id.h index 1731d59..3036386 100644 --- a/chrome/browser/sessions/session_id.h +++ b/chrome/browser/sessions/session_id.h @@ -8,6 +8,7 @@ #include "base/basictypes.h" +class NavigationController; class SessionService; // Uniquely identifies a tab or window for the duration of a session. @@ -22,10 +23,14 @@ class SessionID { id_type id() const { return id_; } private: + friend class NavigationController; friend class SessionService; explicit SessionID(id_type id) : id_(id) {} + // Resets the ID to 0. + void clear() { id_ = 0; } + // Resets the id. This is used when restoring a session void set_id(id_type id) { id_ = id; } diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc index a430d56..b0ba070 100644 --- a/chrome/browser/sessions/session_service.cc +++ b/chrome/browser/sessions/session_service.cc @@ -215,6 +215,9 @@ void SessionService::SetPinnedState(const SessionID& window_id, void SessionService::TabClosed(const SessionID& window_id, const SessionID& tab_id, bool closed_by_user_gesture) { + if (!tab_id.id()) + return; // Hapens when the tab is replaced. + if (!ShouldTrackChangesToWindow(window_id)) return; |