Port Android relocation packer to chromium build
[chromium-blink-merge.git] / components / sessions / base_session_service_commands.h
blobd7bc7a184cd8bc0a2a75abbde6416e3b77262dcc
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_
8 #include <string>
10 #include "base/memory/scoped_ptr.h"
11 #include "components/sessions/session_id.h"
12 #include "components/sessions/sessions_export.h"
14 namespace sessions {
15 class SessionCommand;
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
34 // tab's navigations.
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
57 // extension id.
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_