#include "chrome/browser/ui/tabs/pinned_tab_codec.h"
#include <stddef.h>
#include <utility>
#include "base/values.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/pref_names.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/web_contents.h"
NavigationEntry;
namespace {
const char kURL[] = …;
base::Value::Dict EncodeTab(const GURL& url) { … }
void EncodePinnedTabs(Browser* browser, base::Value::List& serialized_tabs) { … }
std::optional<StartupTab> DecodeTab(const base::Value::Dict& value) { … }
}
void PinnedTabCodec::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) { … }
void PinnedTabCodec::WritePinnedTabs(Profile* profile) { … }
void PinnedTabCodec::WritePinnedTabs(Profile* profile,
const StartupTabs& tabs) { … }
StartupTabs PinnedTabCodec::ReadPinnedTabs(Profile* profile) { … }