summaryrefslogtreecommitdiff
path: root/chromium/components/sessions
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-12 14:07:37 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-17 10:29:26 +0000
commitec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch)
tree25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/components/sessions
parentbb09965444b5bb20b096a291445170876225268d (diff)
downloadqtwebengine-chromium-ec02ee4181c49b61fce1c8fb99292dbb8139cc90.tar.gz
BASELINE: Update Chromium to 59.0.3071.134
Change-Id: Id02ef6fb2204c5fd21668a1c3e6911c83b17585a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/components/sessions')
-rw-r--r--chromium/components/sessions/content/content_live_tab.cc4
-rw-r--r--chromium/components/sessions/content/content_live_tab.h1
-rw-r--r--chromium/components/sessions/content/content_serialized_navigation_driver.cc106
-rw-r--r--chromium/components/sessions/content/content_serialized_navigation_driver.h11
-rw-r--r--chromium/components/sessions/content/content_serialized_navigation_driver_unittest.cc79
-rw-r--r--chromium/components/sessions/core/live_tab.h4
-rw-r--r--chromium/components/sessions/core/serialized_navigation_driver.h5
-rw-r--r--chromium/components/sessions/core/serialized_navigation_entry.h29
-rw-r--r--chromium/components/sessions/core/session_service_commands.cc17
-rw-r--r--chromium/components/sessions/core/session_types.cc29
-rw-r--r--chromium/components/sessions/core/session_types.h8
-rw-r--r--chromium/components/sessions/core/session_types_unittest.cc11
-rw-r--r--chromium/components/sessions/core/tab_restore_service_client.h6
-rw-r--r--chromium/components/sessions/core/tab_restore_service_helper.cc9
-rw-r--r--chromium/components/sessions/ios/ios_live_tab.h1
-rw-r--r--chromium/components/sessions/ios/ios_live_tab.mm6
16 files changed, 72 insertions, 254 deletions
diff --git a/chromium/components/sessions/content/content_live_tab.cc b/chromium/components/sessions/content/content_live_tab.cc
index 7b1dff013ee..3f1ef66e042 100644
--- a/chromium/components/sessions/content/content_live_tab.cc
+++ b/chromium/components/sessions/content/content_live_tab.cc
@@ -62,10 +62,6 @@ ContentLiveTab::GetPlatformSpecificTabData() {
web_contents());
}
-void ContentLiveTab::LoadIfNecessary() {
- navigation_controller().LoadIfNecessary();
-}
-
const std::string& ContentLiveTab::GetUserAgentOverride() const {
return web_contents()->GetUserAgentOverride();
}
diff --git a/chromium/components/sessions/content/content_live_tab.h b/chromium/components/sessions/content/content_live_tab.h
index f4324411ea1..5c04ba15f9f 100644
--- a/chromium/components/sessions/content/content_live_tab.h
+++ b/chromium/components/sessions/content/content_live_tab.h
@@ -41,7 +41,6 @@ class SESSIONS_EXPORT ContentLiveTab
int GetEntryCount() override;
std::unique_ptr<PlatformSpecificTabData> GetPlatformSpecificTabData()
override;
- void LoadIfNecessary() override;
const std::string& GetUserAgentOverride() const override;
content::WebContents* web_contents() { return web_contents_; }
diff --git a/chromium/components/sessions/content/content_serialized_navigation_driver.cc b/chromium/components/sessions/content/content_serialized_navigation_driver.cc
index d9e4b1c7b21..20ec2d02090 100644
--- a/chromium/components/sessions/content/content_serialized_navigation_driver.cc
+++ b/chromium/components/sessions/content/content_serialized_navigation_driver.cc
@@ -4,27 +4,23 @@
#include "components/sessions/content/content_serialized_navigation_driver.h"
+#include <utility>
+
#include "base/memory/singleton.h"
-#include "build/build_config.h"
#include "components/sessions/core/serialized_navigation_entry.h"
-#include "content/public/common/content_features.h"
#include "content/public/common/page_state.h"
-#include "content/public/common/referrer.h"
-#include "content/public/common/url_constants.h"
+#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
namespace sessions {
namespace {
+
const int kObsoleteReferrerPolicyAlways = 0;
const int kObsoleteReferrerPolicyDefault = 1;
const int kObsoleteReferrerPolicyNever = 2;
const int kObsoleteReferrerPolicyOrigin = 3;
-bool IsUberOrUberReplacementURL(const GURL& url) {
- return url.SchemeIs(content::kChromeUIScheme) &&
- (url.host_piece() == content::kChromeUIHistoryHost ||
- url.host_piece() == content::kChromeUIUberHost);
-}
+ContentSerializedNavigationDriver* g_instance = nullptr;
} // namespace
@@ -36,9 +32,21 @@ SerializedNavigationDriver* SerializedNavigationDriver::Get() {
// static
ContentSerializedNavigationDriver*
ContentSerializedNavigationDriver::GetInstance() {
- return base::Singleton<
+ if (g_instance)
+ return g_instance;
+
+ auto* instance = base::Singleton<
ContentSerializedNavigationDriver,
base::LeakySingletonTraits<ContentSerializedNavigationDriver>>::get();
+ g_instance = instance;
+ return instance;
+}
+
+// static
+void ContentSerializedNavigationDriver::SetInstance(
+ ContentSerializedNavigationDriver* instance) {
+ DCHECK(!g_instance || !instance);
+ g_instance = instance;
}
ContentSerializedNavigationDriver::ContentSerializedNavigationDriver() {
@@ -48,20 +56,20 @@ ContentSerializedNavigationDriver::~ContentSerializedNavigationDriver() {
}
int ContentSerializedNavigationDriver::GetDefaultReferrerPolicy() const {
- return blink::WebReferrerPolicyDefault;
+ return blink::kWebReferrerPolicyDefault;
}
bool ContentSerializedNavigationDriver::MapReferrerPolicyToOldValues(
int referrer_policy,
int* mapped_referrer_policy) const {
switch (referrer_policy) {
- case blink::WebReferrerPolicyAlways:
- case blink::WebReferrerPolicyDefault:
+ case blink::kWebReferrerPolicyAlways:
+ case blink::kWebReferrerPolicyDefault:
// "always" and "default" are the same value in all versions.
*mapped_referrer_policy = referrer_policy;
return true;
- case blink::WebReferrerPolicyOrigin:
+ case blink::kWebReferrerPolicyOrigin:
// "origin" exists in the old encoding.
*mapped_referrer_policy = kObsoleteReferrerPolicyOrigin;
return true;
@@ -85,7 +93,7 @@ bool ContentSerializedNavigationDriver::MapReferrerPolicyToNewValues(
default:
// Since we don't know what encoding was used, we map the rest to "never".
- *mapped_referrer_policy = blink::WebReferrerPolicyNever;
+ *mapped_referrer_policy = blink::kWebReferrerPolicyNever;
return false;
}
}
@@ -93,74 +101,16 @@ bool ContentSerializedNavigationDriver::MapReferrerPolicyToNewValues(
std::string
ContentSerializedNavigationDriver::GetSanitizedPageStateForPickle(
const SerializedNavigationEntry* navigation) const {
- if (!navigation->has_post_data_) {
- return navigation->encoded_page_state_;
- }
- content::PageState page_state =
- content::PageState::CreateFromEncodedData(
- navigation->encoded_page_state_);
+ if (!navigation->has_post_data())
+ return navigation->encoded_page_state();
+
+ content::PageState page_state = content::PageState::CreateFromEncodedData(
+ navigation->encoded_page_state());
return page_state.RemovePasswordData().ToEncodedData();
}
void ContentSerializedNavigationDriver::Sanitize(
SerializedNavigationEntry* navigation) const {
- content::Referrer old_referrer(
- navigation->referrer_url_,
- static_cast<blink::WebReferrerPolicy>(navigation->referrer_policy_));
- content::Referrer new_referrer =
- content::Referrer::SanitizeForRequest(navigation->virtual_url_,
- old_referrer);
-
- // Clear any Uber UI page state so that these pages are reloaded rather than
- // restored from page state. This fixes session restore when WebUI URLs
- // change.
- if (IsUberOrUberReplacementURL(navigation->virtual_url_) &&
- IsUberOrUberReplacementURL(navigation->original_request_url_)) {
- navigation->encoded_page_state_ = std::string();
- }
-
- // No need to compare the policy, as it doesn't change during
- // sanitization. If there has been a change, the referrer needs to be
- // stripped from the page state as well.
- if (navigation->referrer_url_ != new_referrer.url) {
- navigation->referrer_url_ = GURL();
- navigation->referrer_policy_ = GetDefaultReferrerPolicy();
- navigation->encoded_page_state_ =
- StripReferrerFromPageState(navigation->encoded_page_state_);
- }
-
-#if defined(OS_ANDROID)
- // Rewrite the old new tab and welcome page URLs to the new NTP URL.
- if (navigation->virtual_url_.SchemeIs(content::kChromeUIScheme) &&
- (navigation->virtual_url_.host_piece() == "welcome" ||
- navigation->virtual_url_.host_piece() == "newtab")) {
- navigation->virtual_url_ = GURL("chrome-native://newtab/");
- navigation->original_request_url_ = navigation->virtual_url_;
- navigation->encoded_page_state_ = content::PageState::CreateFromURL(
- navigation->virtual_url_).ToEncodedData();
- }
-
- if (base::FeatureList::IsEnabled(features::kNativeAndroidHistoryManager) &&
- navigation->virtual_url_.SchemeIs(content::kChromeUIScheme) &&
- (navigation->virtual_url_.host_piece() == content::kChromeUIHistoryHost ||
- navigation->virtual_url_.host_piece() ==
- content::kChromeUIHistoryFrameHost)) {
- // Rewrite the old history Web UI to the new android native history.
- navigation->virtual_url_ = GURL(content::kChromeUINativeHistoryURL);
- navigation->original_request_url_ = navigation->virtual_url_;
- navigation->encoded_page_state_ = content::PageState::CreateFromURL(
- navigation->virtual_url_).ToEncodedData();
- } else if (
- !base::FeatureList::IsEnabled(features::kNativeAndroidHistoryManager) &&
- navigation->virtual_url_.SchemeIs(content::kChromeNativeUIScheme) &&
- navigation->virtual_url_.host_piece() == content::kChromeUIHistoryHost) {
- // If the android native history UI has been disabled, redirect
- // chrome-native://history to the old web UI.
- navigation->virtual_url_ = GURL(content::kChromeUIHistoryURL);
- navigation->original_request_url_ = navigation->virtual_url_;
- navigation->encoded_page_state_ = std::string();
- }
-#endif // defined(OS_ANDROID)
}
std::string ContentSerializedNavigationDriver::StripReferrerFromPageState(
diff --git a/chromium/components/sessions/content/content_serialized_navigation_driver.h b/chromium/components/sessions/content/content_serialized_navigation_driver.h
index 768300dd1c8..ec732a70766 100644
--- a/chromium/components/sessions/content/content_serialized_navigation_driver.h
+++ b/chromium/components/sessions/content/content_serialized_navigation_driver.h
@@ -5,14 +5,13 @@
#ifndef COMPONENTS_SESSIONS_CONTENT_CONTENT_SERIALIZED_NAVIGATION_DRIVER_H_
#define COMPONENTS_SESSIONS_CONTENT_CONTENT_SERIALIZED_NAVIGATION_DRIVER_H_
-#include "components/sessions/core/serialized_navigation_driver.h"
-
#include <map>
#include <memory>
#include <string>
#include "base/macros.h"
#include "components/sessions/content/extended_info_handler.h"
+#include "components/sessions/core/serialized_navigation_driver.h"
#include "components/sessions/core/sessions_export.h"
namespace base {
@@ -32,6 +31,9 @@ class SESSIONS_EXPORT ContentSerializedNavigationDriver
// callers should use SerializedNavigationDriver::Get() instead.
static ContentSerializedNavigationDriver* GetInstance();
+ // Allows an embedder to override the instance returned by GetInstance().
+ static void SetInstance(ContentSerializedNavigationDriver* instance);
+
// SerializedNavigationDriver implementation.
int GetDefaultReferrerPolicy() const override;
bool MapReferrerPolicyToOldValues(int referrer_policy,
@@ -58,12 +60,13 @@ class SESSIONS_EXPORT ContentSerializedNavigationDriver
// Returns all the registered handlers to deal with the extended info.
const ExtendedInfoHandlerMap& GetAllExtendedInfoHandlers() const;
+ protected:
+ ContentSerializedNavigationDriver();
+
private:
friend struct base::DefaultSingletonTraits<ContentSerializedNavigationDriver>;
friend class ContentSerializedNavigationBuilderTest;
- ContentSerializedNavigationDriver();
-
ExtendedInfoHandlerMap extended_info_handler_map_;
DISALLOW_COPY_AND_ASSIGN(ContentSerializedNavigationDriver);
diff --git a/chromium/components/sessions/content/content_serialized_navigation_driver_unittest.cc b/chromium/components/sessions/content/content_serialized_navigation_driver_unittest.cc
index 67a34512d8c..74e4addef9c 100644
--- a/chromium/components/sessions/content/content_serialized_navigation_driver_unittest.cc
+++ b/chromium/components/sessions/content/content_serialized_navigation_driver_unittest.cc
@@ -6,10 +6,7 @@
#include "components/sessions/core/serialized_navigation_entry.h"
#include "components/sessions/core/serialized_navigation_entry_test_helper.h"
-#include "content/public/common/page_state.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
-#include "ui/base/page_transition_types.h"
namespace sessions {
@@ -41,80 +38,4 @@ TEST(ContentSerializedNavigationDriverTest, PickleSanitizationNoPostData) {
EXPECT_EQ(test_data::kEncodedPageState, sanitized_page_state);
}
-// Tests that the input data is left unsanitized when the referrer policy is
-// Always.
-TEST(ContentSerializedNavigationDriverTest, SanitizeWithReferrerPolicyAlways) {
- ContentSerializedNavigationDriver* driver =
- ContentSerializedNavigationDriver::GetInstance();
- SerializedNavigationEntry navigation =
- SerializedNavigationEntryTestHelper::CreateNavigationForTest();
- SerializedNavigationEntryTestHelper::SetReferrerPolicy(
- blink::WebReferrerPolicyAlways, &navigation);
-
- content::PageState page_state =
- content::PageState::CreateFromURL(test_data::kVirtualURL);
- SerializedNavigationEntryTestHelper::SetEncodedPageState(
- page_state.ToEncodedData(), &navigation);
-
- driver->Sanitize(&navigation);
- EXPECT_EQ(test_data::kIndex, navigation.index());
- EXPECT_EQ(test_data::kUniqueID, navigation.unique_id());
- EXPECT_EQ(test_data::kReferrerURL, navigation.referrer_url());
- EXPECT_EQ(blink::WebReferrerPolicyAlways, navigation.referrer_policy());
- EXPECT_EQ(test_data::kVirtualURL, navigation.virtual_url());
- EXPECT_EQ(test_data::kTitle, navigation.title());
- EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
- EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
- navigation.transition_type(), test_data::kTransitionType));
- EXPECT_EQ(test_data::kHasPostData, navigation.has_post_data());
- EXPECT_EQ(test_data::kPostID, navigation.post_id());
- EXPECT_EQ(test_data::kOriginalRequestURL, navigation.original_request_url());
- EXPECT_EQ(test_data::kIsOverridingUserAgent,
- navigation.is_overriding_user_agent());
- EXPECT_EQ(test_data::kTimestamp, navigation.timestamp());
- EXPECT_EQ(test_data::kSearchTerms, navigation.search_terms());
- EXPECT_EQ(test_data::kFaviconURL, navigation.favicon_url());
- EXPECT_EQ(test_data::kHttpStatusCode, navigation.http_status_code());
-}
-
-// Tests that the input data is properly sanitized when the referrer policy is
-// Never.
-TEST(ContentSerializedNavigationDriverTest, SanitizeWithReferrerPolicyNever) {
- ContentSerializedNavigationDriver* driver =
- ContentSerializedNavigationDriver::GetInstance();
- SerializedNavigationEntry navigation =
- SerializedNavigationEntryTestHelper::CreateNavigationForTest();
- SerializedNavigationEntryTestHelper::SetReferrerPolicy(
- blink::WebReferrerPolicyNever, &navigation);
-
- content::PageState page_state =
- content::PageState::CreateFromURL(test_data::kVirtualURL);
- SerializedNavigationEntryTestHelper::SetEncodedPageState(
- page_state.ToEncodedData(), &navigation);
-
- driver->Sanitize(&navigation);
-
- // Fields that should remain untouched.
- EXPECT_EQ(test_data::kIndex, navigation.index());
- EXPECT_EQ(test_data::kUniqueID, navigation.unique_id());
- EXPECT_EQ(test_data::kVirtualURL, navigation.virtual_url());
- EXPECT_EQ(test_data::kTitle, navigation.title());
- EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
- navigation.transition_type(), test_data::kTransitionType));
- EXPECT_EQ(test_data::kHasPostData, navigation.has_post_data());
- EXPECT_EQ(test_data::kPostID, navigation.post_id());
- EXPECT_EQ(test_data::kOriginalRequestURL, navigation.original_request_url());
- EXPECT_EQ(test_data::kIsOverridingUserAgent,
- navigation.is_overriding_user_agent());
- EXPECT_EQ(test_data::kTimestamp, navigation.timestamp());
- EXPECT_EQ(test_data::kSearchTerms, navigation.search_terms());
- EXPECT_EQ(test_data::kFaviconURL, navigation.favicon_url());
- EXPECT_EQ(test_data::kHttpStatusCode, navigation.http_status_code());
-
- // Fields that were sanitized.
- EXPECT_EQ(GURL(), navigation.referrer_url());
- EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy());
- EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
-}
-
} // namespace sessions
diff --git a/chromium/components/sessions/core/live_tab.h b/chromium/components/sessions/core/live_tab.h
index bd6129395a4..490219941e3 100644
--- a/chromium/components/sessions/core/live_tab.h
+++ b/chromium/components/sessions/core/live_tab.h
@@ -32,10 +32,6 @@ class SESSIONS_EXPORT LiveTab {
// implementation returns null.
virtual std::unique_ptr<PlatformSpecificTabData> GetPlatformSpecificTabData();
- // Loads the current page if necessary (where "necessary" is defined on a
- // platform-specific basis).
- virtual void LoadIfNecessary() = 0;
-
// Returns the user agent override, if any.
virtual const std::string& GetUserAgentOverride() const = 0;
};
diff --git a/chromium/components/sessions/core/serialized_navigation_driver.h b/chromium/components/sessions/core/serialized_navigation_driver.h
index 5fc261e4a95..74bbfefe1cb 100644
--- a/chromium/components/sessions/core/serialized_navigation_driver.h
+++ b/chromium/components/sessions/core/serialized_navigation_driver.h
@@ -18,8 +18,6 @@ class SerializedNavigationEntry;
// must be provided by the driver on each platform.
class SESSIONS_EXPORT SerializedNavigationDriver {
public:
- virtual ~SerializedNavigationDriver() {}
-
// Returns the singleton SerializedNavigationDriver.
static SerializedNavigationDriver* Get();
@@ -50,6 +48,9 @@ class SESSIONS_EXPORT SerializedNavigationDriver {
// Removes the referrer from the encoded page state.
virtual std::string StripReferrerFromPageState(
const std::string& page_state) const = 0;
+
+ protected:
+ virtual ~SerializedNavigationDriver() {}
};
} // namespace sessions
diff --git a/chromium/components/sessions/core/serialized_navigation_entry.h b/chromium/components/sessions/core/serialized_navigation_entry.h
index 3a8e665ff02..51171b4984f 100644
--- a/chromium/components/sessions/core/serialized_navigation_entry.h
+++ b/chromium/components/sessions/core/serialized_navigation_entry.h
@@ -88,20 +88,15 @@ class SESSIONS_EXPORT SerializedNavigationEntry {
// Accessors for some fields taken from NavigationEntry.
int unique_id() const { return unique_id_; }
- const GURL& virtual_url() const { return virtual_url_; }
const base::string16& title() const { return title_; }
- const std::string& encoded_page_state() const { return encoded_page_state_; }
const base::string16& search_terms() const { return search_terms_; }
const GURL& favicon_url() const { return favicon_url_; }
int http_status_code() const { return http_status_code_; }
- const GURL& referrer_url() const { return referrer_url_; }
- int referrer_policy() const { return referrer_policy_; }
ui::PageTransition transition_type() const {
return transition_type_;
}
bool has_post_data() const { return has_post_data_; }
int64_t post_id() const { return post_id_; }
- const GURL& original_request_url() const { return original_request_url_; }
bool is_overriding_user_agent() const { return is_overriding_user_agent_; }
base::Time timestamp() const { return timestamp_; }
@@ -115,6 +110,29 @@ class SESSIONS_EXPORT SerializedNavigationEntry {
password_state_ = password_state;
}
+ const GURL& virtual_url() const { return virtual_url_; }
+ void set_virtual_url(const GURL& virtual_url) { virtual_url_ = virtual_url; }
+
+ const std::string& encoded_page_state() const { return encoded_page_state_; }
+ void set_encoded_page_state(const std::string& encoded_page_state) {
+ encoded_page_state_ = encoded_page_state;
+ }
+
+ const GURL& original_request_url() const { return original_request_url_; }
+ void set_original_request_url(const GURL& original_request_url) {
+ original_request_url_ = original_request_url;
+ }
+
+ const GURL& referrer_url() const { return referrer_url_; }
+ void set_referrer_url(const GURL& referrer_url) {
+ referrer_url_ = referrer_url;
+ }
+
+ int referrer_policy() const { return referrer_policy_; }
+ void set_referrer_policy(int referrer_policy) {
+ referrer_policy_ = referrer_policy;
+ }
+
std::set<std::string> content_pack_categories() const {
return content_pack_categories_;
}
@@ -132,7 +150,6 @@ class SESSIONS_EXPORT SerializedNavigationEntry {
private:
friend class ContentSerializedNavigationBuilder;
- friend class ContentSerializedNavigationDriver;
friend class SerializedNavigationEntryTestHelper;
friend class IOSSerializedNavigationBuilder;
friend class IOSSerializedNavigationDriver;
diff --git a/chromium/components/sessions/core/session_service_commands.cc b/chromium/components/sessions/core/session_service_commands.cc
index d066372deaa..790a5001f03 100644
--- a/chromium/components/sessions/core/session_service_commands.cc
+++ b/chromium/components/sessions/core/session_service_commands.cc
@@ -114,7 +114,7 @@ enum PersistedWindowShowState {
PERSISTED_SHOW_STATE_FULLSCREEN = 5,
PERSISTED_SHOW_STATE_DETACHED_DEPRECATED = 6,
PERSISTED_SHOW_STATE_DOCKED_DEPRECATED = 7,
- PERSISTED_SHOW_STATE_END = 7
+ PERSISTED_SHOW_STATE_END = 8,
};
using IdToSessionTab =
@@ -125,9 +125,10 @@ using IdToSessionWindow =
// Assert to ensure PersistedWindowShowState is updated if ui::WindowShowState
// is changed.
static_assert(ui::SHOW_STATE_END ==
- static_cast<ui::WindowShowState>(PERSISTED_SHOW_STATE_END),
- "SHOW_STATE_END must equal PERSISTED_SHOW_STATE_END");
-
+ (static_cast<ui::WindowShowState>(PERSISTED_SHOW_STATE_END) -
+ 2),
+ "SHOW_STATE_END must equal PERSISTED_SHOW_STATE_END minus the "
+ "deprecated entries");
// Returns the show state to store to disk based |state|.
PersistedWindowShowState ShowStateToPersistedShowState(
ui::WindowShowState state) {
@@ -140,11 +141,6 @@ PersistedWindowShowState ShowStateToPersistedShowState(
return PERSISTED_SHOW_STATE_MAXIMIZED;
case ui::SHOW_STATE_FULLSCREEN:
return PERSISTED_SHOW_STATE_FULLSCREEN;
-
- // TODO(afakhry): Remove Docked Windows in M58.
- case ui::SHOW_STATE_DOCKED:
- return PERSISTED_SHOW_STATE_DOCKED_DEPRECATED;
-
case ui::SHOW_STATE_DEFAULT:
case ui::SHOW_STATE_INACTIVE:
return PERSISTED_SHOW_STATE_NORMAL;
@@ -167,9 +163,8 @@ ui::WindowShowState PersistedShowStateToShowState(int state) {
return ui::SHOW_STATE_MAXIMIZED;
case PERSISTED_SHOW_STATE_FULLSCREEN:
return ui::SHOW_STATE_FULLSCREEN;
- case PERSISTED_SHOW_STATE_DOCKED_DEPRECATED:
- return ui::SHOW_STATE_DOCKED;
case PERSISTED_SHOW_STATE_DETACHED_DEPRECATED:
+ case PERSISTED_SHOW_STATE_DOCKED_DEPRECATED:
return ui::SHOW_STATE_NORMAL;
}
NOTREACHED();
diff --git a/chromium/components/sessions/core/session_types.cc b/chromium/components/sessions/core/session_types.cc
index db020bf0b83..4b7ced980ca 100644
--- a/chromium/components/sessions/core/session_types.cc
+++ b/chromium/components/sessions/core/session_types.cc
@@ -39,9 +39,6 @@ void SessionTab::SetFromSyncData(const sync_pb::SessionTab& sync_data,
SerializedNavigationEntry::FromSyncData(i, sync_data.navigation(i)));
}
session_storage_persistent_id.clear();
- variation_ids.clear();
- for (int i = 0; i < sync_data.variation_id_size(); ++i)
- variation_ids.push_back(sync_data.variation_id(i));
}
sync_pb::SessionTab SessionTab::ToSyncData() const {
@@ -55,9 +52,6 @@ sync_pb::SessionTab SessionTab::ToSyncData() const {
for (const SerializedNavigationEntry& navigation : navigations) {
*sync_data.add_navigation() = navigation.ToSyncData();
}
- for (const variations::VariationID variation_id : variation_ids) {
- sync_data.add_variation_id(variation_id);
- }
return sync_data;
}
@@ -71,27 +65,4 @@ SessionWindow::SessionWindow()
SessionWindow::~SessionWindow() {}
-sync_pb::SessionWindow SessionWindow::ToSyncData() const {
- sync_pb::SessionWindow sync_data;
- sync_data.set_window_id(window_id.id());
- sync_data.set_selected_tab_index(selected_tab_index);
- switch (type) {
- case SessionWindow::TYPE_TABBED:
- sync_data.set_browser_type(
- sync_pb::SessionWindow_BrowserType_TYPE_TABBED);
- break;
- case SessionWindow::TYPE_POPUP:
- sync_data.set_browser_type(
- sync_pb::SessionWindow_BrowserType_TYPE_POPUP);
- break;
- default:
- NOTREACHED() << "Unhandled browser type.";
- }
-
- for (const auto& tab : tabs)
- sync_data.add_tab(tab->tab_id.id());
-
- return sync_data;
-}
-
} // namespace sessions
diff --git a/chromium/components/sessions/core/session_types.h b/chromium/components/sessions/core/session_types.h
index dbaabe6e24e..5ac0325d691 100644
--- a/chromium/components/sessions/core/session_types.h
+++ b/chromium/components/sessions/core/session_types.h
@@ -103,9 +103,6 @@ struct SESSIONS_EXPORT SessionTab {
// For reassociating sessionStorage.
std::string session_storage_persistent_id;
- // Ids of the currently assigned variations which should be sent to sync.
- std::vector<variations::VariationID> variation_ids;
-
private:
DISALLOW_COPY_AND_ASSIGN(SessionTab);
};
@@ -124,11 +121,6 @@ struct SESSIONS_EXPORT SessionWindow {
TYPE_POPUP = 1
};
- // Convert this object into its sync protocol buffer equivalent. Note that
- // not all fields are synced here, because they don't all make sense or
- // translate when restoring a SessionWindow on another device.
- sync_pb::SessionWindow ToSyncData() const;
-
// Identifier of the window.
SessionID window_id;
diff --git a/chromium/components/sessions/core/session_types_unittest.cc b/chromium/components/sessions/core/session_types_unittest.cc
index e7ef985bf58..a9aeee56c36 100644
--- a/chromium/components/sessions/core/session_types_unittest.cc
+++ b/chromium/components/sessions/core/session_types_unittest.cc
@@ -37,8 +37,6 @@ TEST(SessionTab, FromSyncData) {
navigation->set_title("title");
navigation->set_page_transition(sync_pb::SyncEnums_PageTransition_TYPED);
}
- sync_data.add_variation_id(3312238);
- sync_data.add_variation_id(3312242);
sessions::SessionTab tab;
tab.window_id.set_id(100);
@@ -71,9 +69,6 @@ TEST(SessionTab, FromSyncData) {
EXPECT_EQ(GURL("http://foo/" + base::IntToString(i)),
tab.navigations[i].virtual_url());
}
- ASSERT_EQ(2u, tab.variation_ids.size());
- EXPECT_EQ(3312238, tab.variation_ids[0]);
- EXPECT_EQ(3312242, tab.variation_ids[1]);
EXPECT_TRUE(tab.session_storage_persistent_id.empty());
}
@@ -93,8 +88,6 @@ TEST(SessionTab, ToSyncData) {
"http://foo/" + base::IntToString(i), "title"));
}
tab.session_storage_persistent_id = "fake";
- tab.variation_ids.push_back(3312238);
- tab.variation_ids.push_back(3312242);
const sync_pb::SessionTab& sync_data = tab.ToSyncData();
EXPECT_EQ(5, sync_data.tab_id());
@@ -113,10 +106,6 @@ TEST(SessionTab, ToSyncData) {
EXPECT_FALSE(sync_data.has_favicon());
EXPECT_FALSE(sync_data.has_favicon_type());
EXPECT_FALSE(sync_data.has_favicon_source());
-
- ASSERT_EQ(2, sync_data.variation_id_size());
- EXPECT_EQ(3312238u, sync_data.variation_id(0));
- EXPECT_EQ(3312242u, sync_data.variation_id(1));
}
} // namespace
diff --git a/chromium/components/sessions/core/tab_restore_service_client.h b/chromium/components/sessions/core/tab_restore_service_client.h
index a6aa4a8f4c6..b5d3b97671f 100644
--- a/chromium/components/sessions/core/tab_restore_service_client.h
+++ b/chromium/components/sessions/core/tab_restore_service_client.h
@@ -12,18 +12,18 @@
#include "components/sessions/core/session_id.h"
#include "components/sessions/core/sessions_export.h"
+class GURL;
+
namespace base {
class CancelableTaskTracker;
class SequencedWorkerPool;
}
-class GURL;
-
namespace sessions {
class LiveTab;
-struct SessionWindow;
class LiveTabContext;
+struct SessionWindow;
// Callback from TabRestoreServiceClient::GetLastSession.
// The second parameter is the id of the window that was last active.
diff --git a/chromium/components/sessions/core/tab_restore_service_helper.cc b/chromium/components/sessions/core/tab_restore_service_helper.cc
index c140cda055a..e792dd6b67f 100644
--- a/chromium/components/sessions/core/tab_restore_service_helper.cc
+++ b/chromium/components/sessions/core/tab_restore_service_helper.cc
@@ -209,7 +209,6 @@ std::vector<LiveTab*> TabRestoreServiceHelper::RestoreEntryById(
tab.from_last_session, tab.platform_data.get(),
tab.user_agent_override);
if (restored_tab) {
- restored_tab->LoadIfNecessary();
client_->OnTabRestored(
tab.navigations.at(tab.current_navigation_index).virtual_url());
live_tabs.push_back(restored_tab);
@@ -411,16 +410,11 @@ void TabRestoreServiceHelper::PopulateTab(Tab* tab,
int index,
LiveTabContext* context,
LiveTab* live_tab) {
- const int pending_index = live_tab->GetPendingEntryIndex();
int entry_count =
live_tab->IsInitialBlankNavigation() ? 0 : live_tab->GetEntryCount();
- if (entry_count == 0 && pending_index == 0)
- entry_count++;
tab->navigations.resize(static_cast<int>(entry_count));
for (int i = 0; i < entry_count; ++i) {
- SerializedNavigationEntry entry = (i == pending_index)
- ? live_tab->GetPendingEntry()
- : live_tab->GetEntryAtIndex(i);
+ SerializedNavigationEntry entry = live_tab->GetEntryAtIndex(i);
tab->navigations[i] = entry;
}
tab->timestamp = TimeNow();
@@ -482,7 +476,6 @@ LiveTabContext* TabRestoreServiceHelper::RestoreTab(
disposition != WindowOpenDisposition::NEW_BACKGROUND_TAB, tab.pinned,
tab.from_last_session, tab.platform_data.get(),
tab.user_agent_override);
- restored_tab->LoadIfNecessary();
}
client_->OnTabRestored(
tab.navigations.at(tab.current_navigation_index).virtual_url());
diff --git a/chromium/components/sessions/ios/ios_live_tab.h b/chromium/components/sessions/ios/ios_live_tab.h
index d4363a517a8..17b6fe54f60 100644
--- a/chromium/components/sessions/ios/ios_live_tab.h
+++ b/chromium/components/sessions/ios/ios_live_tab.h
@@ -35,7 +35,6 @@ class SESSIONS_EXPORT IOSLiveTab : public LiveTab,
sessions::SerializedNavigationEntry GetEntryAtIndex(int index) override;
sessions::SerializedNavigationEntry GetPendingEntry() override;
int GetEntryCount() override;
- void LoadIfNecessary() override;
const std::string& GetUserAgentOverride() const override;
web::WebState* web_state() { return web_state_; }
diff --git a/chromium/components/sessions/ios/ios_live_tab.mm b/chromium/components/sessions/ios/ios_live_tab.mm
index 5f8f7dda6be..584b5238dfc 100644
--- a/chromium/components/sessions/ios/ios_live_tab.mm
+++ b/chromium/components/sessions/ios/ios_live_tab.mm
@@ -33,7 +33,7 @@ bool IOSLiveTab::IsInitialBlankNavigation() {
}
int IOSLiveTab::GetCurrentEntryIndex() {
- return navigation_manager()->GetCurrentItemIndex();
+ return navigation_manager()->GetLastCommittedItemIndex();
}
int IOSLiveTab::GetPendingEntryIndex() {
@@ -54,10 +54,6 @@ int IOSLiveTab::GetEntryCount() {
return navigation_manager()->GetItemCount();
}
-void IOSLiveTab::LoadIfNecessary() {
- navigation_manager()->LoadIfNecessary();
-}
-
const std::string& IOSLiveTab::GetUserAgentOverride() const {
// Dynamic user agent overrides are not supported on iOS.
return user_agent_override_;