blob: c74166bf9d87e474d53cdca48d6f1cbb51e3ca6f [file] [log] [blame]
// Copyright 2020 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 CHROME_BROWSER_PERFORMANCE_HINTS_PERFORMANCE_HINTS_FEATURES_H_
#define CHROME_BROWSER_PERFORMANCE_HINTS_PERFORMANCE_HINTS_FEATURES_H_
#include <string>
#include "base/feature_list.h"
namespace performance_hints {
namespace features {
// Exposed for testing.
extern const base::Feature kPerformanceHintsObserver;
extern const base::Feature kPerformanceHintsTreatUnknownAsFast;
extern const base::Feature kPerformanceHintsHandleRewrites;
extern const base::Feature kContextMenuPerformanceInfo;
extern const base::Feature kContextMenuPerformanceInfoAndRemoteHintFetching;
// Returns true if PerformanceHintsObserver should be added as a tab helper and
// fetch performance hints.
bool IsPerformanceHintsObserverEnabled();
// Returns true if hints of PERFORMANCE_UNKNOWN should be overridden to
// PERFORMANCE_FAST.
//
// This does not affect the value that is recorded via UMA.
bool ShouldTreatUnknownAsFast();
// Returns true if PerformanceHintsRewriteHandler should be used to detect
// rewritten URLs and revert them to their original form.
bool ShouldHandleRewrites();
// Returns the config string to be used by PerformanceHintsRewriteHandler.
//
// Contains rewritten URL patterns that should be replaced with a URL contained
// in their query params.
std::string GetRewriteConfigString();
// Returns true if FAST_HOST_HINTS should be checked if available.
bool AreFastHostHintsEnabled();
// Returns true if LINK_PERFORMANCE hints should be requested and used.
bool AreLinkPerformanceHintsEnabled();
// Returns true if performance info should be shown in the context menu.
bool IsContextMenuPerformanceInfoEnabled();
} // namespace features
} // namespace performance_hints
#endif // CHROME_BROWSER_PERFORMANCE_HINTS_PERFORMANCE_HINTS_FEATURES_H_