OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_ | 5 #ifndef COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_ |
6 #define COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_ | 6 #define COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/files/file_path.h" |
9 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
10 #include "components/sessions/session_id.h" | 11 #include "components/sessions/session_id.h" |
11 | 12 |
12 namespace base { | 13 namespace base { |
13 class CancelableTaskTracker; | 14 class CancelableTaskTracker; |
14 } | 15 } |
15 | 16 |
16 namespace sessions { | 17 namespace sessions { |
17 struct SessionWindow; | 18 struct SessionWindow; |
18 } | 19 } |
19 | 20 |
| 21 class GURL; |
| 22 |
20 namespace sessions { | 23 namespace sessions { |
21 | 24 |
22 struct SessionWindow; | 25 struct SessionWindow; |
23 | 26 |
24 // Callback from TabRestoreServiceClient::GetLastSession. | 27 // Callback from TabRestoreServiceClient::GetLastSession. |
25 // The second parameter is the id of the window that was last active. | 28 // The second parameter is the id of the window that was last active. |
26 typedef base::Callback<void(ScopedVector<SessionWindow>, SessionID::id_type)> | 29 typedef base::Callback<void(ScopedVector<SessionWindow>, SessionID::id_type)> |
27 GetLastSessionCallback; | 30 GetLastSessionCallback; |
28 | 31 |
29 // A client interface that needs to be supplied to the tab restore service by | 32 // A client interface that needs to be supplied to the tab restore service by |
30 // the embedder. | 33 // the embedder. |
31 class TabRestoreServiceClient { | 34 class TabRestoreServiceClient { |
32 public: | 35 public: |
33 virtual ~TabRestoreServiceClient() {} | 36 virtual ~TabRestoreServiceClient() {} |
34 | 37 |
| 38 // Returns the path of the directory to save state into. |
| 39 virtual base::FilePath GetPathToSaveTo() = 0; |
| 40 |
| 41 // Returns the URL that corresponds to the new tab page. |
| 42 virtual GURL GetNewTabURL() = 0; |
| 43 |
35 // Returns whether there is a previous session to load. | 44 // Returns whether there is a previous session to load. |
36 virtual bool HasLastSession() = 0; | 45 virtual bool HasLastSession() = 0; |
37 | 46 |
38 // Fetches the contents of the last session, notifying the callback when | 47 // Fetches the contents of the last session, notifying the callback when |
39 // done. If the callback is supplied an empty vector of SessionWindows | 48 // done. If the callback is supplied an empty vector of SessionWindows |
40 // it means the session could not be restored. | 49 // it means the session could not be restored. |
41 virtual void GetLastSession(const GetLastSessionCallback& callback, | 50 virtual void GetLastSession(const GetLastSessionCallback& callback, |
42 base::CancelableTaskTracker* tracker) = 0; | 51 base::CancelableTaskTracker* tracker) = 0; |
| 52 |
| 53 // Called when a tab is restored. |url| is the URL that the tab is currently |
| 54 // visiting. |
| 55 virtual void OnTabRestored(const GURL& url) {} |
43 }; | 56 }; |
44 | 57 |
45 } // namespace sessions | 58 } // namespace sessions |
46 | 59 |
47 #endif // COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_ | 60 #endif // COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_CLIENT_H_ |
OLD | NEW |