summaryrefslogtreecommitdiff
path: root/chromium/components/sessions
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-03-12 09:13:00 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-03-16 09:58:26 +0000
commit03561cae90f1d99b5c54b1ef3be69f10e882b25e (patch)
treecc5f0958e823c044e7ae51cc0117fe51432abe5e /chromium/components/sessions
parentfa98118a45f7e169f8846086dc2c22c49a8ba310 (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/components/sessions/BUILD.gn18
-rw-r--r--chromium/components/sessions/content/DEPS3
-rw-r--r--chromium/components/sessions/content/content_serialized_navigation_builder.cc6
-rw-r--r--chromium/components/sessions/content/content_serialized_navigation_builder_unittest.cc2
-rw-r--r--chromium/components/sessions/content/content_serialized_navigation_driver.cc8
-rw-r--r--chromium/components/sessions/core/command_storage_backend_unittest.cc2
-rw-r--r--chromium/components/sessions/core/session_command.h5
-rw-r--r--chromium/components/sessions/core/session_service_commands.cc36
-rw-r--r--chromium/components/sessions/core/snapshotting_session_backend_unittest.cc2
-rw-r--r--chromium/components/sessions/core/tab_restore_service_impl.cc5
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();