| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_EXTENSIONS_SCOPED_TEST_MV2_ENABLER_H_ |
| #define CHROME_BROWSER_EXTENSIONS_SCOPED_TEST_MV2_ENABLER_H_ |
| |
| #include "base/auto_reset.h" |
| #include "base/types/pass_key.h" |
| #include "extensions/buildflags/buildflags.h" |
| |
| static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); |
| |
| namespace extensions { |
| |
| // A utility to allow loading and enabling legacy MV2 extensions. This class |
| // does *not* force the individual field trials for the MV2 deprecation to any |
| // particular state, since, for maximum test coverage, those should continue to |
| // run on many different configurations. Instead, this only prevents MV2 |
| // extensions from being disabled on startup or blocked from installation. |
| class ScopedTestMV2Enabler { |
| public: |
| ScopedTestMV2Enabler(); |
| ~ScopedTestMV2Enabler(); |
| |
| private: |
| using PassKey = base::PassKey<ScopedTestMV2Enabler>; |
| |
| base::AutoReset<bool> enable_mv2_extensions_; |
| }; |
| |
| } // namespace extensions |
| |
| #endif // CHROME_BROWSER_EXTENSIONS_SCOPED_TEST_MV2_ENABLER_H_ |