blob: beb2689cca6d87c0fa4d3149653c3b640d1a9bf5 [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.
#ifndef CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_CHROME_LABS_UTILS_H_
#define CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_CHROME_LABS_UTILS_H_
#include "chrome/browser/ui/toolbar/chrome_labs/chrome_labs_model.h"
class Profile;
// This is used across Chrome Labs classes to check if a feature is valid.
bool IsChromeLabsFeatureValid(const LabInfo& lab, Profile* profile);
// Adds new experiments to PrefService and cleans up preferences for
// experiments that are no longer featured.
void UpdateChromeLabsNewBadgePrefs(Profile* profile);
// This will indicate whether any Chrome Labs UI element (toolbar button,
// menu item, etc..) be shown.
bool ShouldShowChromeLabsUI(Profile* profile);
// This will return true if there are new experiments and they haven't yet been
// seen.
bool AreNewChromeLabsExperimentsAvailable(Profile* profile);
// This returns true if Chrome Labs is enabled. 99% of clients on
// pre-stable channels will have Chrome Labs enabled by default.
bool IsChromeLabsEnabled();
// Forces the activation of the feature for testing purposes to happen 100% of
// the time. In prod code this only happens 99% of the time. Other conditions
// that control the feature's visibility are not affected by this call.
void ForceChromeLabsActivationForTesting();
#endif // CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_CHROME_LABS_UTILS_H_