Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4317)

Unified Diff: chrome/browser/sessions/session_service.h

Issue 694813003: Changing SessionService to have a BaseSessionService, not being one. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed non ChromeOS builds Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sessions/session_service.h
diff --git a/chrome/browser/sessions/session_service.h b/chrome/browser/sessions/session_service.h
index 44a2ff5c6b06fbf5eb8fb9fb1a8afe386f9e41aa..b0f8e9631355a06d5394711d513999f99bc48f3a 100644
--- a/chrome/browser/sessions/session_service.h
+++ b/chrome/browser/sessions/session_service.h
@@ -15,7 +15,7 @@
#include "base/task/cancelable_task_tracker.h"
#include "base/time/time.h"
#include "chrome/browser/defaults.h"
-#include "chrome/browser/sessions/base_session_service.h"
+#include "chrome/browser/sessions/base_session_service_delegate_impl.h"
#include "chrome/browser/sessions/session_service_commands.h"
#include "chrome/browser/sessions/session_service_utils.h"
#include "chrome/browser/ui/browser.h"
@@ -56,7 +56,7 @@ class WebContents;
// flushed to |SessionBackend| and written to a file. Every so often
// |SessionService| rebuilds the contents of the file from the open state of the
// browser.
-class SessionService : public BaseSessionService,
+class SessionService : public BaseSessionServiceDelegateImpl,
public KeyedService,
public content::NotificationObserver,
public chrome::BrowserListObserver {
@@ -100,6 +100,9 @@ class SessionService : public BaseSessionService,
// browsers are running.
void MoveCurrentSessionToLastSession();
+ // Deletes the last session.
+ void DeleteLastSession();
+
// Associates a tab with a window.
void SetTabWindow(const SessionID& window_id,
const SessionID& tab_id);
@@ -207,9 +210,11 @@ class SessionService : public BaseSessionService,
const SessionCallback& callback,
base::CancelableTaskTracker* tracker);
- // Overridden from BaseSessionService because we want some UMA reporting on
- // session update activities.
- void Save() override;
+ // BaseSessionServiceDelegateImpl:
+ void OnSavedCommands() override;
+
+ // Unit test accessors.
+ BaseSessionService* GetBaseSessionServiceForTest();
sky 2014/10/31 22:36:17 Same comment about preferring friend here.
Mr4D (OOO till 08-26) 2014/11/01 01:28:24 Done.
private:
// Allow tests to access our innards for testing purposes.
@@ -229,10 +234,6 @@ class SessionService : public BaseSessionService,
// Removes unrestorable windows from the previous windows list.
void RemoveUnusedRestoreWindows(std::vector<SessionWindow*>* window_list);
- // Returns true if we have scheduled any commands, or any scheduled commands
- // have been saved.
- bool processed_any_commands();
-
// Implementation of RestoreIfNecessary. If |browser| is non-null and we need
// to restore, the tabs are added to it, otherwise a new browser is created.
bool RestoreIfNecessary(const std::vector<GURL>& urls_to_open,
@@ -287,7 +288,7 @@ class SessionService : public BaseSessionService,
void ScheduleResetCommands();
// Schedules the specified command.
- void ScheduleCommand(scoped_ptr<SessionCommand> command) override;
+ void ScheduleCommand(scoped_ptr<SessionCommand> command);
// Converts all pending tab/window closes to commands and schedules them.
void CommitPendingCloses();
@@ -330,6 +331,9 @@ class SessionService : public BaseSessionService,
// The profile. This may be null during testing.
Profile* profile_;
+ // The owned BaseSessionService.
+ scoped_ptr<BaseSessionService> base_session_service_;
+
content::NotificationRegistrar registrar_;
// Maps from session tab id to the range of navigation entries that has

Powered by Google App Engine
This is Rietveld 408576698