| Index: chrome/browser/ui/browser_tabrestore.cc
|
| diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc
|
| index 9bb737a4d97ea4e407d2d7c44a843ea1ec5aa9d9..b6f6eeff60841670bcd0d1ce6cb97815d54b3f92 100644
|
| --- a/chrome/browser/ui/browser_tabrestore.cc
|
| +++ b/chrome/browser/ui/browser_tabrestore.cc
|
| @@ -8,6 +8,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/sessions/session_service.h"
|
| #include "chrome/browser/sessions/session_service_factory.h"
|
| +#include "chrome/browser/sessions/session_tab_helper.h"
|
| #include "chrome/browser/tab_contents/tab_util.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_window.h"
|
| @@ -43,7 +44,8 @@ WebContents* CreateRestoredTab(
|
| const std::string& extension_app_id,
|
| bool from_last_session,
|
| content::SessionStorageNamespace* session_storage_namespace,
|
| - const std::string& user_agent_override) {
|
| + const std::string& user_agent_override,
|
| + const int64 sync_id) {
|
| GURL restore_url = navigations.at(selected_navigation).virtual_url();
|
| // TODO(ajwong): Remove the temporary session_storage_namespace_map when
|
| // we teach session restore to understand that one tab can have multiple
|
| @@ -65,11 +67,13 @@ WebContents* CreateRestoredTab(
|
| create_params,
|
| session_storage_namespace_map);
|
| extensions::TabHelper::CreateForWebContents(web_contents);
|
| - extensions::TabHelper::FromWebContents(web_contents)->
|
| - SetExtensionAppById(extension_app_id);
|
| + SessionTabHelper::CreateForWebContents(web_contents);
|
| + SessionTabHelper::FromWebContents(web_contents)->SetSessionSyncId(sync_id);
|
| + extensions::TabHelper::FromWebContents(web_contents)
|
| + ->SetExtensionAppById(extension_app_id);
|
| std::vector<NavigationEntry*> entries =
|
| - SerializedNavigationEntry::ToNavigationEntries(
|
| - navigations, browser->profile());
|
| + SerializedNavigationEntry::ToNavigationEntries(navigations,
|
| + browser->profile());
|
| web_contents->SetUserAgentOverride(user_agent_override);
|
| web_contents->GetController().Restore(
|
| selected_navigation, GetRestoreType(browser, from_last_session),
|
| @@ -91,14 +95,16 @@ content::WebContents* AddRestoredTab(
|
| bool pin,
|
| bool from_last_session,
|
| content::SessionStorageNamespace* session_storage_namespace,
|
| - const std::string& user_agent_override) {
|
| + const std::string& user_agent_override,
|
| + const int64& sync_id) {
|
| WebContents* web_contents = CreateRestoredTab(browser,
|
| navigations,
|
| selected_navigation,
|
| extension_app_id,
|
| from_last_session,
|
| session_storage_namespace,
|
| - user_agent_override);
|
| + user_agent_override,
|
| + sync_id);
|
|
|
| int add_types = select ? TabStripModel::ADD_ACTIVE
|
| : TabStripModel::ADD_NONE;
|
| @@ -137,14 +143,16 @@ void ReplaceRestoredTab(
|
| bool from_last_session,
|
| const std::string& extension_app_id,
|
| content::SessionStorageNamespace* session_storage_namespace,
|
| - const std::string& user_agent_override) {
|
| + const std::string& user_agent_override,
|
| + const int64& sync_id) {
|
| WebContents* web_contents = CreateRestoredTab(browser,
|
| navigations,
|
| selected_navigation,
|
| extension_app_id,
|
| from_last_session,
|
| session_storage_namespace,
|
| - user_agent_override);
|
| + user_agent_override,
|
| + sync_id);
|
|
|
| // ReplaceWebContentsAt won't animate in the restoration, so manually do the
|
| // equivalent of ReplaceWebContentsAt.
|
|
|