Index: components/previews/core/previews_black_list_item.h |
diff --git a/components/previews/core/previews_black_list_item.h b/components/previews/core/previews_black_list_item.h |
index 462e61d1c4ade6782ada52f7035baef9dd35d5b2..26892c88c6eb74b42bc5480eb78391416341e813 100644 |
--- a/components/previews/core/previews_black_list_item.h |
+++ b/components/previews/core/previews_black_list_item.h |
@@ -1,22 +1,22 @@ |
// 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_PREVIEWS_CORE_PREVIEWS_BLACK_LIST_ITEM_H_ |
#define COMPONENTS_PREVIEWS_CORE_PREVIEWS_BLACK_LIST_ITEM_H_ |
#include <stdint.h> |
-#include <list> |
#include <map> |
#include <memory> |
+#include <queue> |
#include <string> |
#include "base/callback.h" |
#include "base/macros.h" |
#include "base/optional.h" |
#include "base/time/time.h" |
namespace previews { |
// Stores the recent black list history for a single host. Stores |
@@ -40,38 +40,55 @@ class PreviewsBlackListItem { |
// showing previews. |
bool IsBlackListed(base::Time now) const; |
base::Optional<base::Time> most_recent_opt_out_time() const { |
return most_recent_opt_out_time_; |
} |
private: |
// A previews navigation to this host is represented by time and whether the |
// navigation was an opt out. |
- struct OptOutRecord { |
+ class OptOutRecord { |
+ public: |
OptOutRecord(base::Time entry_time, bool opt_out); |
- ~OptOutRecord() {} |
- const base::Time |
- entry_time; // The time that the opt out state was determined. |
- const bool opt_out; // Whether the user opt out of the preview. |
+ ~OptOutRecord(); |
+ OptOutRecord(OptOutRecord&&); |
+ OptOutRecord& operator=(OptOutRecord&&); |
+ |
+ // Used to determine eviction priority. |
+ bool operator<(const OptOutRecord& other) const; |
+ |
+ // Whether the user opted out of the preview. |
+ bool opt_out() const { return opt_out_; } |
tbansal1
2016/10/25 16:15:48
nit: reverse the order of functions to match the o
RyanSturm
2016/10/25 18:15:44
Done.
|
+ |
+ // The time that the opt out state was determined. |
+ base::Time entry_time() const { return entry_time_; } |
+ |
+ private: |
+ // The time that the opt out state was determined. |
+ base::Time entry_time_; |
+ // Whether the user opted out of the preview. |
+ bool opt_out_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(OptOutRecord); |
}; |
// The number of entries to store to determine preview eligibility. |
const size_t max_stored_history_length_; |
// The number opt outs in recent history that will trigger blacklisting. |
const int opt_out_black_list_threshold_; |
// The amount of time to black list a domain after the most recent opt out. |
const base::TimeDelta max_black_list_duration_; |
// The |max_stored_history_length_| most recent previews navigation. Is |
// maintained as a list sorted by entry_time (earliest to latest). |
tbansal1
2016/10/25 16:15:48
"sorted"
stale comment
Also, mention that top ele
RyanSturm
2016/10/25 18:15:44
Done.
|
- std::list<OptOutRecord> opt_out_records_; |
+ std::priority_queue<OptOutRecord> opt_out_records_; |
// Time of the most recent opt out. |
base::Optional<base::Time> most_recent_opt_out_time_; |
// The total number of opt outs currently in |opt_out_records_|. |
int total_opt_out_; |
DISALLOW_COPY_AND_ASSIGN(PreviewsBlackListItem); |
}; |