diff options
author | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-04 13:43:12 +0000 |
---|---|---|
committer | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-04 13:43:12 +0000 |
commit | 13daae6db93408e08e373f9ca911d371120cfab6 (patch) | |
tree | 8f91e6fb9b671b01b8ea3d5748d9dd1fb4a571e6 /courgette/disassembler.h | |
parent | 9fd7c4ffcdeb7149f863824094994ca7ac32486a (diff) | |
download | chromium_src-13daae6db93408e08e373f9ca911d371120cfab6.zip chromium_src-13daae6db93408e08e373f9ca911d371120cfab6.tar.gz chromium_src-13daae6db93408e08e373f9ca911d371120cfab6.tar.bz2 |
[Sync] Fix Session's handling of windows.
We previously made some false assumptions about the order of window id's, and
freed memory for windows inappropriately. This would lead to memory corruption,
usually seen in the form of accesses to bad TabNavigation objects in the
session model associator. This patch completely rewrites how
we handle synced windows. Because there's no real order to windows, we now
store them in a map. In addition, because tabs can be moved between windows
and we aren't explicitly told which windows were closed or which tabs were
closed, we now have explicit tracking of the usage of windows and tabs, coupled
with a garbage collection phase that frees those tabs/windows that weren't
used during the tracking (see SyncedSessionTracker::ResetSessionTracking and
CleanupSession methods).
Due to the change in how we store windows, the integration tests and the
sessions ui had to be modified, but the real changes are within the session
model associator and the synced session tracker. Also, undisabled a test
that should be working.
BUG=94124, 81104
TEST=unit_tests; Opening windows with valid tabs, waiting for sync, closing
those windows.
Review URL: http://codereview.chromium.org/7966020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103878 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'courgette/disassembler.h')
0 files changed, 0 insertions, 0 deletions