diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-03-12 09:13:00 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-03-16 09:58:26 +0000 |
commit | 03561cae90f1d99b5c54b1ef3be69f10e882b25e (patch) | |
tree | cc5f0958e823c044e7ae51cc0117fe51432abe5e /chromium/components/sessions | |
parent | fa98118a45f7e169f8846086dc2c22c49a8ba310 (diff) | |
download | qtwebengine-chromium-03561cae90f1d99b5c54b1ef3be69f10e882b25e.tar.gz |
BASELINE: Update Chromium to 88.0.4324.208
Change-Id: I3ae87d23e4eff4b4a469685658740a213600c667
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/sessions')
10 files changed, 40 insertions, 47 deletions
diff --git a/chromium/components/sessions/BUILD.gn b/chromium/components/sessions/BUILD.gn index dcfbf864893..904fc5b8616 100644 --- a/chromium/components/sessions/BUILD.gn +++ b/chromium/components/sessions/BUILD.gn @@ -8,13 +8,6 @@ if (is_android) { import("//build/config/android/config.gni") } -# This file depends on the legacy global sources assignment filter. It should -# be converted to check target platform before assigning source files to the -# sources variable. Remove this import and set_sources_assignment_filter call -# when the file has been converted. See https://crbug.com/1018739 for details. -import("//build/config/deprecated_default_sources_assignment_filter.gni") -set_sources_assignment_filter(deprecated_default_sources_assignment_filter) - config("implementation") { defines = [ "SESSIONS_IMPLEMENTATION" ] } @@ -191,17 +184,12 @@ static_library("test_support") { } source_set("unit_tests") { - if (is_ios) { - configs += [ "//build/config/compiler:enable_arc" ] - } testonly = true sources = [ "core/command_storage_backend_unittest.cc", "core/serialized_navigation_entry_unittest.cc", "core/session_id_generator_unittest.cc", "core/snapshotting_session_backend_unittest.cc", - "ios/ios_serialized_navigation_builder_unittest.mm", - "ios/ios_serialized_navigation_driver_unittest.cc", ] if (!is_ios) { @@ -210,6 +198,12 @@ source_set("unit_tests") { "content/content_serialized_navigation_driver_unittest.cc", "content/navigation_task_id_unittest.cc", ] + } else { + sources += [ + "ios/ios_serialized_navigation_builder_unittest.mm", + "ios/ios_serialized_navigation_driver_unittest.cc", + ] + configs += [ "//build/config/compiler:enable_arc" ] } public_deps = [ ":sessions" ] diff --git a/chromium/components/sessions/content/DEPS b/chromium/components/sessions/content/DEPS index ce5cab76a69..06e1f2433d4 100644 --- a/chromium/components/sessions/content/DEPS +++ b/chromium/components/sessions/content/DEPS @@ -4,7 +4,8 @@ include_rules = [ "+content/public/test", "+extensions/buildflags", "+extensions/common", - "+third_party/blink/public/platform", + "+third_party/blink/public/common/page_state/page_state.h", "+third_party/blink/public/common/user_agent/user_agent_metadata.h", + "+third_party/blink/public/platform", "+services/network/public/mojom/referrer_policy.mojom.h", ] diff --git a/chromium/components/sessions/content/content_serialized_navigation_builder.cc b/chromium/components/sessions/content/content_serialized_navigation_builder.cc index 27b66c0145b..6c9558b67ee 100644 --- a/chromium/components/sessions/content/content_serialized_navigation_builder.cc +++ b/chromium/components/sessions/content/content_serialized_navigation_builder.cc @@ -17,8 +17,8 @@ #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/replaced_navigation_entry_data.h" -#include "content/public/common/page_state.h" #include "content/public/common/referrer.h" +#include "third_party/blink/public/common/page_state/page_state.h" namespace sessions { namespace { @@ -122,7 +122,7 @@ ContentSerializedNavigationBuilder::ToNavigationEntry( // Ensure that the deserialized/restored content::NavigationEntry (and // the content::FrameNavigationEntry underneath) has a valid PageState. entry->SetPageState( - content::PageState::CreateFromURL(navigation->virtual_url_)); + blink::PageState::CreateFromURL(navigation->virtual_url_)); // The |navigation|-based referrer set below might be inconsistent with the // referrer embedded inside the PageState set above. Nevertheless, to @@ -141,7 +141,7 @@ ContentSerializedNavigationBuilder::ToNavigationEntry( // Note that PageState covers some of the values inside |navigation| (e.g. // URL, Referrer). Calling SetPageState will clobber these values in // content::NavigationEntry (and FrameNavigationEntry(s) below). - entry->SetPageState(content::PageState::CreateFromEncodedData( + entry->SetPageState(blink::PageState::CreateFromEncodedData( navigation->encoded_page_state_)); // |navigation|-level referrer information is redundant wrt PageState, but diff --git a/chromium/components/sessions/content/content_serialized_navigation_builder_unittest.cc b/chromium/components/sessions/content/content_serialized_navigation_builder_unittest.cc index a8d2d284b25..9c4e1d7c409 100644 --- a/chromium/components/sessions/content/content_serialized_navigation_builder_unittest.cc +++ b/chromium/components/sessions/content/content_serialized_navigation_builder_unittest.cc @@ -18,11 +18,11 @@ #include "components/sessions/core/serialized_navigation_entry_test_helper.h" #include "content/public/browser/favicon_status.h" #include "content/public/browser/navigation_entry.h" -#include "content/public/common/page_state.h" #include "content/public/common/referrer.h" #include "content/public/test/browser_task_environment.h" #include "content/public/test/test_browser_context.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/page_state/page_state.h" namespace sessions { diff --git a/chromium/components/sessions/content/content_serialized_navigation_driver.cc b/chromium/components/sessions/content/content_serialized_navigation_driver.cc index 3521d41815d..017f8059e31 100644 --- a/chromium/components/sessions/content/content_serialized_navigation_driver.cc +++ b/chromium/components/sessions/content/content_serialized_navigation_driver.cc @@ -8,8 +8,8 @@ #include "base/memory/singleton.h" #include "components/sessions/core/serialized_navigation_entry.h" -#include "content/public/common/page_state.h" #include "services/network/public/mojom/referrer_policy.mojom.h" +#include "third_party/blink/public/common/page_state/page_state.h" namespace sessions { @@ -60,8 +60,8 @@ ContentSerializedNavigationDriver::GetSanitizedPageStateForPickle( if (!navigation->has_post_data()) return navigation->encoded_page_state(); - content::PageState page_state = content::PageState::CreateFromEncodedData( - navigation->encoded_page_state()); + blink::PageState page_state = + blink::PageState::CreateFromEncodedData(navigation->encoded_page_state()); return page_state.RemovePasswordData().ToEncodedData(); } @@ -71,7 +71,7 @@ void ContentSerializedNavigationDriver::Sanitize( std::string ContentSerializedNavigationDriver::StripReferrerFromPageState( const std::string& page_state) const { - return content::PageState::CreateFromEncodedData(page_state) + return blink::PageState::CreateFromEncodedData(page_state) .RemoveReferrer() .ToEncodedData(); } diff --git a/chromium/components/sessions/core/command_storage_backend_unittest.cc b/chromium/components/sessions/core/command_storage_backend_unittest.cc index 10bf2eb5cf6..aadc28df39e 100644 --- a/chromium/components/sessions/core/command_storage_backend_unittest.cc +++ b/chromium/components/sessions/core/command_storage_backend_unittest.cc @@ -14,7 +14,7 @@ #include "base/memory/scoped_refptr.h" #include "base/stl_util.h" #include "base/strings/string_util.h" -#include "base/test/bind_test_util.h" +#include "base/test/bind.h" #include "base/test/task_environment.h" #include "components/sessions/core/command_storage_manager.h" #include "testing/gtest/include/gtest/gtest.h" diff --git a/chromium/components/sessions/core/session_command.h b/chromium/components/sessions/core/session_command.h index 69a4bbb1e7a..23ffc3fab89 100644 --- a/chromium/components/sessions/core/session_command.h +++ b/chromium/components/sessions/core/session_command.h @@ -12,6 +12,7 @@ #include <string> #include "base/macros.h" +#include "base/strings/string_piece.h" #include "components/sessions/core/sessions_export.h" namespace base { @@ -50,7 +51,9 @@ class SESSIONS_EXPORT SessionCommand { // The contents of the command. char* contents() { return const_cast<char*>(contents_.c_str()); } const char* contents() const { return contents_.c_str(); } - + base::StringPiece contents_as_string_piece() const { + return base::StringPiece(contents_); + } // Identifier for the command. id_type id() const { return id_; } diff --git a/chromium/components/sessions/core/session_service_commands.cc b/chromium/components/sessions/core/session_service_commands.cc index c931e3ff0f0..25eb017d0c8 100644 --- a/chromium/components/sessions/core/session_service_commands.cc +++ b/chromium/components/sessions/core/session_service_commands.cc @@ -65,7 +65,8 @@ static const SessionCommand::id_type kCommandLastActiveTime = 21; static const SessionCommand::id_type kCommandSetWindowWorkspace2 = 23; static const SessionCommand::id_type kCommandTabNavigationPathPruned = 24; static const SessionCommand::id_type kCommandSetTabGroup = 25; -static const SessionCommand::id_type kCommandSetTabGroupMetadata = 26; +// OBSOLETE Superseded by kCommandSetTabGroupMetadata2. +// static const SessionCommand::id_type kCommandSetTabGroupMetadata = 26; static const SessionCommand::id_type kCommandSetTabGroupMetadata2 = 27; static const SessionCommand::id_type kCommandSetTabGuid = 28; static const SessionCommand::id_type kCommandSetTabUserAgentOverride2 = 29; @@ -635,7 +636,6 @@ bool CreateTabsAndWindows( break; } - case kCommandSetTabGroupMetadata: case kCommandSetTabGroupMetadata2: { std::unique_ptr<base::Pickle> pickle = command->PayloadAsPickle(); base::PickleIterator iter(*pickle); @@ -652,27 +652,16 @@ bool CreateTabsAndWindows( if (!iter.ReadString16(&title)) return true; - if (command->id() == kCommandSetTabGroupMetadata) { - SkColor color; - if (!iter.ReadUInt32(&color)) - return true; - - // crrev.com/c/1968039 changes the color of a tab group from a SkColor - // to a TabGroupColorId. Here we ignore the old SkColor and assign the - // default TabGroupColorId because the fallback is acceptable while - // the tab groups feature isn't yet launched. Once it is, - // kCommandSetTabGroupMetadata will be deprecated in favor of - // kCommandSetTabGroupMetadata2, which properly restores - // TabGroupColorIds. - group->visual_data = tab_groups::TabGroupVisualData( - title, tab_groups::TabGroupColorId::kGrey); - } else { - uint32_t color_int; - if (!iter.ReadUInt32(&color_int)) - return true; + uint32_t color_int; + if (!iter.ReadUInt32(&color_int)) + return true; - group->visual_data = tab_groups::TabGroupVisualData(title, color_int); - } + // The |is_collapsed| boolean was added in M88 to save the collapsed + // state, so previous versions may not have this stored. + bool is_collapsed = false; + ignore_result(!iter.ReadBool(&is_collapsed)); + group->visual_data = + tab_groups::TabGroupVisualData(title, color_int, is_collapsed); break; } @@ -963,6 +952,9 @@ std::unique_ptr<SessionCommand> CreateTabGroupMetadataUpdateCommand( WriteTokenToPickle(&pickle, group.token()); pickle.WriteString16(visual_data->title()); pickle.WriteUInt32(static_cast<int>(visual_data->color())); + + // This boolean was added in M88 to save the collapsed state. + pickle.WriteBool(visual_data->is_collapsed()); return std::make_unique<SessionCommand>(kCommandSetTabGroupMetadata2, pickle); } diff --git a/chromium/components/sessions/core/snapshotting_session_backend_unittest.cc b/chromium/components/sessions/core/snapshotting_session_backend_unittest.cc index 87c3226213a..9c500790d66 100644 --- a/chromium/components/sessions/core/snapshotting_session_backend_unittest.cc +++ b/chromium/components/sessions/core/snapshotting_session_backend_unittest.cc @@ -13,7 +13,7 @@ #include "base/memory/scoped_refptr.h" #include "base/stl_util.h" #include "base/strings/string_util.h" -#include "base/test/bind_test_util.h" +#include "base/test/bind.h" #include "base/test/task_environment.h" #include "components/sessions/core/session_constants.h" #include "testing/gtest/include/gtest/gtest.h" diff --git a/chromium/components/sessions/core/tab_restore_service_impl.cc b/chromium/components/sessions/core/tab_restore_service_impl.cc index e6ae900878f..7d149c1b372 100644 --- a/chromium/components/sessions/core/tab_restore_service_impl.cc +++ b/chromium/components/sessions/core/tab_restore_service_impl.cc @@ -1184,9 +1184,12 @@ void TabRestoreServiceImpl::PersistenceDelegate::LoadStateChanged() { } staging_entries_.clear(); - entries_to_write_ = 0; tab_restore_service_helper_->PruneEntries(); + + // Write the loaded entries into the current session. + entries_to_write_ = tab_restore_service_helper_->entries().size(); + tab_restore_service_helper_->NotifyTabsChanged(); tab_restore_service_helper_->NotifyLoaded(); |