Chromium Code Reviews| Index: extensions/common/features/feature_session_type.h |
| diff --git a/extensions/common/features/feature_session_type.h b/extensions/common/features/feature_session_type.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8aa746bdee70be389ea27b26e15d19ae810f9adb |
| --- /dev/null |
| +++ b/extensions/common/features/feature_session_type.h |
| @@ -0,0 +1,49 @@ |
| +// Copyright 2016 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 EXTENSIONS_COMMON_FEATURES_FEATURE_SESSION_TYPE_H_ |
| +#define EXTENSIONS_COMMON_FEATURES_FEATURE_SESSION_TYPE_H_ |
| + |
| +#include "base/macros.h" |
| + |
| +namespace extensions { |
| + |
| +// Classes of session types to which features can be restricted in feature |
| +// files. The session type describes session based on the type of user that is |
| +// active in the current session. |
| +enum FeatureSessionType { |
|
Devlin
2016/08/18 17:19:15
enum class
tbarzic
2016/08/18 18:58:10
Done.
|
| + // Represents a session type that cannot be used with feature's session types |
| + // property. |
| + FEATURE_SESSION_TYPE_UNKNOWN, |
| + // Regular user session. |
| + FEATURE_SESSION_TYPE_REGULAR, |
| + // Kiosk app session. |
| + FEATURE_SESSION_TYPE_KIOSK, |
| + // Helper for determining max enum value - not used as a real type. |
| + FEATURE_SESSION_TYPE_MAX = FEATURE_SESSION_TYPE_KIOSK |
| +}; |
| + |
| +// Gets the current session type as seen by the Feature system. |
| +FeatureSessionType GetCurrentFeatureSessionType(); |
| + |
| +// Sets the current session type as seen by the Feature system. In the browser |
| +// process this should be extensions::util::GetCurrentSessionType(), and in |
| +// the renderer this will need to come from an IPC. |
| +void SetCurrentFeatureSessionType(FeatureSessionType session_type); |
| + |
| +// Scoped session type setter. Use for tests. |
| +class ScopedCurrentFeatureSessionType { |
|
Devlin
2016/08/18 17:19:15
We can omit this class and just do:
base::AutoRese
tbarzic
2016/08/18 18:58:10
Done
|
| + public: |
| + explicit ScopedCurrentFeatureSessionType(FeatureSessionType session_type); |
| + ~ScopedCurrentFeatureSessionType(); |
| + |
| + private: |
| + FeatureSessionType original_session_type_{FEATURE_SESSION_TYPE_UNKNOWN}; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ScopedCurrentFeatureSessionType); |
| +}; |
| + |
| +} // namespace extensions |
| + |
| +#endif // EXTENSIONS_COMMON_FEATURES_FEATURE_SESSION_TYPE_H_ |