1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_
6 #define COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_
8 #include "base/callback.h"
9 #include "base/memory/scoped_vector.h"
10 #include "components/sessions/session_id.h"
13 class CancelableTaskTracker
;
24 // Callback from TabRestoreServiceClient::GetLastSession.
25 // The second parameter is the id of the window that was last active.
26 typedef base::Callback
<void(ScopedVector
<SessionWindow
>, SessionID::id_type
)>
27 GetLastSessionCallback
;
29 // A client interface that needs to be supplied to the tab restore service by
31 class TabRestoreServiceClient
{
33 virtual ~TabRestoreServiceClient() {}
35 // Returns whether there is a previous session to load.
36 virtual bool HasLastSession() = 0;
38 // Fetches the contents of the last session, notifying the callback when
39 // done. If the callback is supplied an empty vector of SessionWindows
40 // it means the session could not be restored.
41 virtual void GetLastSession(const GetLastSessionCallback
& callback
,
42 base::CancelableTaskTracker
* tracker
) = 0;
45 } // namespace sessions
47 #endif // COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_