summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sessions/session_backend.cc
diff options
context:
space:
mode:
authoralbertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-01 18:44:38 +0000
committeralbertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-01 18:44:38 +0000
commit3acb70efe8e81a9a9851f1b1c700dad3e6d94045 (patch)
treebb50ea9d245a8829b016b7015c74ef91bf93385d /chrome/browser/sessions/session_backend.cc
parent0e5d08b9b0b2476600975106026331488deee938 (diff)
downloadchromium_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.cc18
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();