| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_BROWSER_TABRESTORE_H_ |
| #define CHROME_BROWSER_UI_BROWSER_TABRESTORE_H_ |
| |
| #include <map> |
| #include <string> |
| #include <vector> |
| |
| #include "base/token.h" |
| #include "components/sessions/core/session_types.h" |
| |
| class Browser; |
| |
| namespace content { |
| class SessionStorageNamespace; |
| class WebContents; |
| } // namespace content |
| |
| namespace sessions { |
| class SerializedNavigationEntry; |
| struct SerializedUserAgentOverride; |
| } // namespace sessions |
| |
| namespace chrome { |
| |
| // Add a tab with its session history restored from the SessionRestore and |
| // TabRestoreService systems. If `select` is true, the tab is selected. |
| // |tab_index| gives the index to insert the tab at. |selected_navigation| is |
| // the index of the SerializedNavigationEntry in |navigations| to select. If |
| // |extension_app_id| is non-empty the tab is an app tab and |extension_app_id| |
| // is the id of the extension. If |group| has a value, it specifies the |
| // ID corresponding to the tab's group. If |pin| is true and |tab_index|/ is |
| // the last pinned tab, then the newly created tab is pinned. |
| // |user_agent_override| contains the string being used as the user agent for |
| // all of the tab's navigations when the regular user agent is overridden. If |
| // |from_session_restore| is true, the restored tab is created by session |
| // restore. |last_active_time| is the value to use to indicate the last time the |
| // WebContents was made active, if this is left default initialized then the |
| // creation time will be used. If `is_active_browser` is set, it indicates |
| // whether `browser` is (or will be) the active browser. |
| // Returns the WebContents of the restored tab. |
| content::WebContents* AddRestoredTab( |
| Browser* browser, |
| const std::vector<sessions::SerializedNavigationEntry>& navigations, |
| int tab_index, |
| int selected_navigation, |
| const std::string& extension_app_id, |
| std::optional<tab_groups::TabGroupId> group, |
| bool select, |
| bool pin, |
| base::TimeTicks last_active_time_ticks, |
| base::Time last_active_time, |
| content::SessionStorageNamespace* storage_namespace, |
| const sessions::SerializedUserAgentOverride& user_agent_override, |
| const std::map<std::string, std::string>& extra_data, |
| bool from_session_restore, |
| std::optional<bool> is_active_browser); |
| |
| // Replaces the state of the currently selected tab with the session |
| // history restored from the SessionRestore and TabRestoreService systems. |
| // Returns the WebContents of the restored tab. |
| content::WebContents* ReplaceRestoredTab( |
| Browser* browser, |
| const std::vector<sessions::SerializedNavigationEntry>& navigations, |
| int selected_navigation, |
| const std::string& extension_app_id, |
| content::SessionStorageNamespace* session_storage_namespace, |
| const sessions::SerializedUserAgentOverride& user_agent_override, |
| const std::map<std::string, std::string>& extra_data, |
| bool from_session_restore); |
| |
| } // namespace chrome |
| |
| #endif // CHROME_BROWSER_UI_BROWSER_TABRESTORE_H_ |