blob: e147ed08a5d39030e8d034c916f7269423fbee86 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/profile_metrics/browser_profile_type.h"
namespace {
class ProfileTypeUserData : public base::SupportsUserData::Data {
public:
explicit ProfileTypeUserData(
profile_metrics::BrowserProfileType browser_context_type)
: browser_context_type_(browser_context_type) {}
ProfileTypeUserData(const ProfileTypeUserData&) = delete;
ProfileTypeUserData& operator=(const ProfileTypeUserData&) = delete;
static const void* const kKey;
profile_metrics::BrowserProfileType browser_context_type() const {
return browser_context_type_;
}
private:
const profile_metrics::BrowserProfileType browser_context_type_;
};
const void* const ProfileTypeUserData::kKey = &ProfileTypeUserData::kKey;
} // namespace
namespace profile_metrics {
void SetBrowserProfileType(base::SupportsUserData* browser_context,
BrowserProfileType type) {
browser_context->SetUserData(ProfileTypeUserData::kKey,
std::make_unique<ProfileTypeUserData>(type));
}
BrowserProfileType GetBrowserProfileType(
const base::SupportsUserData* browser_context) {
base::SupportsUserData::Data* data =
browser_context->GetUserData(ProfileTypeUserData::kKey);
return static_cast<ProfileTypeUserData*>(data)->browser_context_type();
}
} // namespace profile_metrics