blob: 7d2f5cbcf5f104f6f90e6610c41091248ba36ee2 [file] [log] [blame]
// 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_