| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sessions/session_backend.h" | 5 #include "chrome/browser/sessions/session_backend.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/files/file.h" | 9 #include "base/files/file.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 | 214 |
| 215 inited_ = true; | 215 inited_ = true; |
| 216 | 216 |
| 217 // Create the directory for session info. | 217 // Create the directory for session info. |
| 218 base::CreateDirectory(path_to_dir_); | 218 base::CreateDirectory(path_to_dir_); |
| 219 | 219 |
| 220 MoveCurrentSessionToLastSession(); | 220 MoveCurrentSessionToLastSession(); |
| 221 } | 221 } |
| 222 | 222 |
| 223 void SessionBackend::AppendCommands( | 223 void SessionBackend::AppendCommands( |
| 224 ScopedVector<SessionCommand>* commands, | 224 ScopedVector<SessionCommand> commands, |
| 225 bool reset_first) { | 225 bool reset_first) { |
| 226 Init(); | 226 Init(); |
| 227 // Make sure and check current_session_file_, if opening the file failed | 227 // Make sure and check current_session_file_, if opening the file failed |
| 228 // current_session_file_ will be NULL. | 228 // current_session_file_ will be NULL. |
| 229 if ((reset_first && !empty_file_) || !current_session_file_.get() || | 229 if ((reset_first && !empty_file_) || !current_session_file_.get() || |
| 230 !current_session_file_->IsValid()) { | 230 !current_session_file_->IsValid()) { |
| 231 ResetFile(); | 231 ResetFile(); |
| 232 } | 232 } |
| 233 // Need to check current_session_file_ again, ResetFile may fail. | 233 // Need to check current_session_file_ again, ResetFile may fail. |
| 234 if (current_session_file_.get() && current_session_file_->IsValid() && | 234 if (current_session_file_.get() && current_session_file_->IsValid() && |
| 235 !AppendCommandsToFile(current_session_file_.get(), *commands)) { | 235 !AppendCommandsToFile(current_session_file_.get(), commands)) { |
| 236 current_session_file_.reset(NULL); | 236 current_session_file_.reset(NULL); |
| 237 } | 237 } |
| 238 empty_file_ = false; | 238 empty_file_ = false; |
| 239 // Deleting the ScopedVector will also delete its elements. | |
| 240 delete commands; | |
| 241 } | 239 } |
| 242 | 240 |
| 243 void SessionBackend::ReadLastSessionCommands( | 241 void SessionBackend::ReadLastSessionCommands( |
| 244 const base::CancelableTaskTracker::IsCanceledCallback& is_canceled, | 242 const base::CancelableTaskTracker::IsCanceledCallback& is_canceled, |
| 245 const BaseSessionService::InternalGetCommandsCallback& callback) { | 243 const BaseSessionService::InternalGetCommandsCallback& callback) { |
| 246 if (is_canceled.Run()) | 244 if (is_canceled.Run()) |
| 247 return; | 245 return; |
| 248 | 246 |
| 249 Init(); | 247 Init(); |
| 250 | 248 |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 } | 393 } |
| 396 | 394 |
| 397 base::FilePath SessionBackend::GetCurrentSessionPath() { | 395 base::FilePath SessionBackend::GetCurrentSessionPath() { |
| 398 base::FilePath path = path_to_dir_; | 396 base::FilePath path = path_to_dir_; |
| 399 if (type_ == BaseSessionService::TAB_RESTORE) | 397 if (type_ == BaseSessionService::TAB_RESTORE) |
| 400 path = path.AppendASCII(kCurrentTabSessionFileName); | 398 path = path.AppendASCII(kCurrentTabSessionFileName); |
| 401 else | 399 else |
| 402 path = path.AppendASCII(kCurrentSessionFileName); | 400 path = path.AppendASCII(kCurrentSessionFileName); |
| 403 return path; | 401 return path; |
| 404 } | 402 } |
| OLD | NEW |