| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/tab_restore_service.h" | 5 #include "chrome/browser/sessions/tab_restore_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <iterator> | 8 #include <iterator> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| 11 #include "base/bind.h" |
| 12 #include "base/bind_helpers.h" |
| 11 #include "base/callback.h" | 13 #include "base/callback.h" |
| 12 #include "base/memory/scoped_vector.h" | 14 #include "base/memory/scoped_vector.h" |
| 13 #include "base/metrics/histogram.h" | 15 #include "base/metrics/histogram.h" |
| 14 #include "base/stl_util.h" | 16 #include "base/stl_util.h" |
| 15 #include "chrome/browser/extensions/extension_service.h" | 17 #include "chrome/browser/extensions/extension_service.h" |
| 16 #include "chrome/browser/extensions/extension_tab_helper.h" | 18 #include "chrome/browser/extensions/extension_tab_helper.h" |
| 17 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
| 18 #include "chrome/browser/sessions/session_service.h" | 20 #include "chrome/browser/sessions/session_service.h" |
| 19 #include "chrome/browser/sessions/session_service_factory.h" | 21 #include "chrome/browser/sessions/session_service_factory.h" |
| 20 #include "chrome/browser/sessions/session_command.h" | 22 #include "chrome/browser/sessions/session_command.h" |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 NewCallback(this, &TabRestoreService::OnGotPreviousSession)); | 434 NewCallback(this, &TabRestoreService::OnGotPreviousSession)); |
| 433 } else { | 435 } else { |
| 434 load_state_ |= LOADED_LAST_SESSION; | 436 load_state_ |= LOADED_LAST_SESSION; |
| 435 } | 437 } |
| 436 | 438 |
| 437 // Request the tabs closed in the last session. If the last session crashed, | 439 // Request the tabs closed in the last session. If the last session crashed, |
| 438 // this won't contain the tabs/window that were open at the point of the | 440 // this won't contain the tabs/window that were open at the point of the |
| 439 // crash (the call to GetLastSession above requests those). | 441 // crash (the call to GetLastSession above requests those). |
| 440 ScheduleGetLastSessionCommands( | 442 ScheduleGetLastSessionCommands( |
| 441 new InternalGetCommandsRequest( | 443 new InternalGetCommandsRequest( |
| 442 NewCallback(this, &TabRestoreService::OnGotLastSessionCommands)), | 444 base::Bind(&TabRestoreService::OnGotLastSessionCommands, |
| 445 base::Unretained(this))), |
| 443 &load_consumer_); | 446 &load_consumer_); |
| 444 } | 447 } |
| 445 | 448 |
| 446 void TabRestoreService::Save() { | 449 void TabRestoreService::Save() { |
| 447 int to_write_count = std::min(entries_to_write_, | 450 int to_write_count = std::min(entries_to_write_, |
| 448 static_cast<int>(entries_.size())); | 451 static_cast<int>(entries_.size())); |
| 449 entries_to_write_ = 0; | 452 entries_to_write_ = 0; |
| 450 if (entries_written_ + to_write_count > kEntriesPerReset) { | 453 if (entries_written_ + to_write_count > kEntriesPerReset) { |
| 451 to_write_count = entries_.size(); | 454 to_write_count = entries_.size(); |
| 452 set_pending_reset(true); | 455 set_pending_reset(true); |
| (...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1085 // correctly write out the entries when Save is invoked (Save starts from | 1088 // correctly write out the entries when Save is invoked (Save starts from |
| 1086 // the front, not the end and we just added the entries to the end). | 1089 // the front, not the end and we just added the entries to the end). |
| 1087 entries_to_write_ = staging_entries_.size(); | 1090 entries_to_write_ = staging_entries_.size(); |
| 1088 | 1091 |
| 1089 PruneAndNotify(); | 1092 PruneAndNotify(); |
| 1090 } | 1093 } |
| 1091 | 1094 |
| 1092 Time TabRestoreService::TimeNow() const { | 1095 Time TabRestoreService::TimeNow() const { |
| 1093 return time_factory_ ? time_factory_->TimeNow() : Time::Now(); | 1096 return time_factory_ ? time_factory_->TimeNow() : Time::Now(); |
| 1094 } | 1097 } |
| OLD | NEW |