diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-12 14:07:37 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 10:29:26 +0000 |
commit | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch) | |
tree | 25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/components/sessions | |
parent | bb09965444b5bb20b096a291445170876225268d (diff) | |
download | qtwebengine-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')
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_; |