blob: 94e43305a1ddd0fb72fe2a3db841980d9fff0cb5 [file] [log] [blame]
// Copyright 2016 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 COMPONENTS_NAVIGATION_METRICS_ORIGINS_SEEN_SERVICE_H_
#define COMPONENTS_NAVIGATION_METRICS_ORIGINS_SEEN_SERVICE_H_
#include "base/containers/mru_cache.h"
#include "components/keyed_service/core/keyed_service.h"
#include "url/origin.h"
namespace navigation_metrics {
class OriginsSeenService : public KeyedService {
public:
OriginsSeenService();
~OriginsSeenService() override;
// Used when deciding whether or not to record
// Navigation.SchemePerUniqueOrigin[OTR]. Inserts a copy of |origin| into the
// set |origins_seen_|, and returns whether or not |origin| was already in the
// set.
bool Insert(const url::Origin& origin);
private:
// Used by |HaveAlreadySeenOrigin|. This cache is in volatile storage because
// Off The Record Profiles also use this Service.
base::MRUCache<url::Origin, bool> origins_seen_;
};
} // namespace navigation_metrics
#endif // COMPONENTS_NAVIGATION_METRICS_ORIGINS_SEEN_SERVICE_H_