Chromium Code Reviews| 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); |
| }; |