1 // Copyright 2014 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_BASE_SESSION_SERVICE_COMMANDS_H_
6 #define COMPONENTS_SESSIONS_BASE_SESSION_SERVICE_COMMANDS_H_
10 #include "base/memory/scoped_ptr.h"
11 #include "components/sessions/session_id.h"
12 #include "components/sessions/sessions_export.h"
16 class SerializedNavigationEntry
;
18 // These commands create and read common base commands for SessionService and
19 // PersistentTabRestoreService.
21 // Creates a SessionCommand that represents a navigation.
22 SESSIONS_EXPORT scoped_ptr
<SessionCommand
> CreateUpdateTabNavigationCommand(
23 SessionID::id_type command_id
,
24 SessionID::id_type tab_id
,
25 const sessions::SerializedNavigationEntry
& navigation
);
27 // Creates a SessionCommand that represents marking a tab as an application.
28 SESSIONS_EXPORT scoped_ptr
<SessionCommand
> CreateSetTabExtensionAppIDCommand(
29 SessionID::id_type command_id
,
30 SessionID::id_type tab_id
,
31 const std::string
& extension_id
);
33 // Creates a SessionCommand that containing user agent override used by a
35 SESSIONS_EXPORT scoped_ptr
<SessionCommand
> CreateSetTabUserAgentOverrideCommand(
36 SessionID::id_type command_id
,
37 SessionID::id_type tab_id
,
38 const std::string
& user_agent_override
);
40 // Creates a SessionCommand stores a browser window's app name.
41 SESSIONS_EXPORT scoped_ptr
<SessionCommand
> CreateSetWindowAppNameCommand(
42 SessionID::id_type command_id
,
43 SessionID::id_type window_id
,
44 const std::string
& app_name
);
46 // Converts a SessionCommand previously created by
47 // CreateUpdateTabNavigationCommand into a
48 // sessions::SerializedNavigationEntry. Returns true on success. If
49 // successful |tab_id| is set to the id of the restored tab.
50 SESSIONS_EXPORT
bool RestoreUpdateTabNavigationCommand(
51 const SessionCommand
& command
,
52 sessions::SerializedNavigationEntry
* navigation
,
53 SessionID::id_type
* tab_id
);
55 // Extracts a SessionCommand as previously created by
56 // CreateSetTabExtensionAppIDCommand into the tab id and application
58 SESSIONS_EXPORT
bool RestoreSetTabExtensionAppIDCommand(
59 const SessionCommand
& command
,
60 SessionID::id_type
* tab_id
,
61 std::string
* extension_app_id
);
63 // Extracts a SessionCommand as previously created by
64 // CreateSetTabUserAgentOverrideCommand into the tab id and user agent.
65 SESSIONS_EXPORT
bool RestoreSetTabUserAgentOverrideCommand(
66 const SessionCommand
& command
,
67 SessionID::id_type
* tab_id
,
68 std::string
* user_agent_override
);
70 // Extracts a SessionCommand as previously created by
71 // CreateSetWindowAppNameCommand into the window id and application name.
72 SESSIONS_EXPORT
bool RestoreSetWindowAppNameCommand(
73 const SessionCommand
& command
,
74 SessionID::id_type
* window_id
,
75 std::string
* app_name
);
77 } // namespace sessions
79 #endif // COMPONENTS_SESSIONS_BASE_SESSION_SERVICE_COMMANDS_H_