| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_PROFILE_METRICS_BROWSER_PROFILE_TYPE_H_ |
| #define COMPONENTS_PROFILE_METRICS_BROWSER_PROFILE_TYPE_H_ |
| |
| #include "base/supports_user_data.h" |
| |
| namespace profile_metrics { |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| // A Java counterpart will be generated for this enum. |
| // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.profile_metrics |
| enum class BrowserProfileType { |
| kRegular = 0, |
| kIncognito = 1, |
| kGuest = 2, |
| kSystem = 3, |
| kOtherOffTheRecordProfile = 4, |
| kDeprecatedEphemeralGuest = 5, |
| kMaxValue = kDeprecatedEphemeralGuest, |
| }; |
| |
| // Returns the BrowserProfileType value associated with |browser_context|. |
| // Note that the browser profile type should be set for all BrowserContext (or |
| // equivalent) objects during creation or initialization of the object. This |
| // function will result in a crash if |SetBrowserProfileType| is not called |
| // before to associate the browser profile type. |
| BrowserProfileType GetBrowserProfileType( |
| const base::SupportsUserData* browser_context); |
| |
| // Associates |type| as the BrowserProfileType value for |browser_context|. |
| void SetBrowserProfileType(base::SupportsUserData* browser_context, |
| BrowserProfileType type); |
| } // namespace profile_metrics |
| |
| #endif // COMPONENTS_PROFILE_METRICS_BROWSER_PROFILE_TYPE_H_ |