refactor: instantiate navigation_entries local variable on the stack (#46453)

* refactor: instantiate navigation_entries on the stack instead of the heap

* refactor: reserve the full size of navigation_entries

* refactor: use emplace_back to simplify the code a little
This commit is contained in:
Charles Kerr 2025-04-04 16:55:27 -05:00 committed by GitHub
parent c2ae4afb8f
commit 4e33d1690d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2518,8 +2518,9 @@ void WebContents::RestoreHistory(
return;
}
auto navigation_entries = std::make_unique<
std::vector<std::unique_ptr<content::NavigationEntry>>>();
auto navigation_entries =
std::vector<std::unique_ptr<content::NavigationEntry>>{};
navigation_entries.reserve(entries.size());
blink::UserAgentOverride ua_override;
ua_override.ua_string_override = GetUserAgent();
@ -2539,14 +2540,13 @@ void WebContents::RestoreHistory(
nav_entry->SetIsOverridingUserAgent(
!ua_override.ua_string_override.empty());
navigation_entries->push_back(
std::unique_ptr<content::NavigationEntry>(nav_entry));
navigation_entries.emplace_back(nav_entry);
}
if (!navigation_entries->empty()) {
if (!navigation_entries.empty()) {
web_contents()->SetUserAgentOverride(ua_override, false);
web_contents()->GetController().Restore(
index, content::RestoreType::kRestored, navigation_entries.get());
index, content::RestoreType::kRestored, &navigation_entries);
web_contents()->GetController().LoadIfNecessary();
}
}