blob: fe1f09bc194d1fc505bdcb62d2082d9f3575d65b [file]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_LOOKALIKES_CORE_SAFETY_TIPS_CONFIG_H_
#define COMPONENTS_LOOKALIKES_CORE_SAFETY_TIPS_CONFIG_H_
#include <memory>
#include <string>
#include "components/lookalikes/core/safety_tips.pb.h"
#include "components/security_state/core/security_state.h"
class GURL;
namespace lookalikes {
// Sets the global configuration for Safety Tips retrieved from the component
// updater. The configuration proto contains the list of URLs that can trigger
// a safety tip.
void SetSafetyTipsRemoteConfigProto(
std::unique_ptr<reputation::SafetyTipsConfig> proto);
// Gets the global configuration for Safety Tips as retrieved from the component
// updater. The configuration proto contains the list of URLs that can trigger
// a safety tip.
const reputation::SafetyTipsConfig* GetSafetyTipsRemoteConfigProto();
// Checks permutations of |visited_url| against the component updater allowlist
// and returns whether the URL is explicitly allowed to spoof |canonical_url|.
//
// Cases when canonical_url is unknown (as in kFailedSpoofChecks) are treated as
// if they're trying to spoof themselves, so set canonical_url = visited_url.
bool IsUrlAllowlistedBySafetyTipsComponent(
const reputation::SafetyTipsConfig* proto,
const GURL& visited_url,
const GURL& canonical_url);
// Checks |hostname| against the component updater target allowlist and returns
// whether it is explicitly allowed.
bool IsTargetHostAllowlistedBySafetyTipsComponent(
const reputation::SafetyTipsConfig* proto,
const std::string& hostname);
// Returns whether |word| is included in the component updater common word list
bool IsCommonWordInConfigProto(const reputation::SafetyTipsConfig* proto,
const std::string& word);
} // namespace lookalikes
#endif // COMPONENTS_LOOKALIKES_CORE_SAFETY_TIPS_CONFIG_H_