diff options
author | albertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 18:44:38 +0000 |
---|---|---|
committer | albertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 18:44:38 +0000 |
commit | 3acb70efe8e81a9a9851f1b1c700dad3e6d94045 (patch) | |
tree | bb50ea9d245a8829b016b7015c74ef91bf93385d /chrome/browser/sessions/session_backend.cc | |
parent | 0e5d08b9b0b2476600975106026331488deee938 (diff) | |
download | chromium_src-3acb70efe8e81a9a9851f1b1c700dad3e6d94045.zip chromium_src-3acb70efe8e81a9a9851f1b1c700dad3e6d94045.tar.gz chromium_src-3acb70efe8e81a9a9851f1b1c700dad3e6d94045.tar.bz2 |
Added a new method to SessionService that returns a snapshot of the current
session. The snapshot is computed directly from memory or, if there are
pending closed windows, by reading the session commands from disk.
BUG=35040
TEST=unit tests
Review URL: http://codereview.chromium.org/661055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40284 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions/session_backend.cc')
-rw-r--r-- | chrome/browser/sessions/session_backend.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/sessions/session_backend.cc b/chrome/browser/sessions/session_backend.cc index 6658673..f9de317 100644 --- a/chrome/browser/sessions/session_backend.cc +++ b/chrome/browser/sessions/session_backend.cc @@ -281,6 +281,24 @@ void SessionBackend::MoveCurrentSessionToLastSession() { ResetFile(); } +void SessionBackend::ReadCurrentSessionCommands( + scoped_refptr<BaseSessionService::InternalGetCommandsRequest> request) { + if (request->canceled()) + return; + Init(); + ReadCurrentSessionCommandsImpl(&(request->commands)); + request->ForwardResult( + BaseSessionService::InternalGetCommandsRequest::TupleType( + request->handle(), request)); +} + +bool SessionBackend::ReadCurrentSessionCommandsImpl( + std::vector<SessionCommand*>* commands) { + Init(); + SessionFileReader file_reader(GetCurrentSessionPath()); + return file_reader.Read(type_, commands); +} + bool SessionBackend::AppendCommandsToFile(net::FileStream* file, const std::vector<SessionCommand*>& commands) { for (std::vector<SessionCommand*>::const_iterator i = commands.begin(); |