OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/browsing_data/origin_filter_builder.h" | 5 #include "chrome/browser/browsing_data/origin_filter_builder.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "components/content_settings/core/common/content_settings_pattern.h" | 10 #include "components/content_settings/core/common/content_settings_pattern.h" |
11 | 11 |
12 using Relation = ContentSettingsPattern::Relation; | 12 using Relation = ContentSettingsPattern::Relation; |
13 | 13 |
14 namespace { | |
15 | |
16 template<typename T> bool DontDeleteAnythingFilter(const T& data) { | |
17 return false; | |
18 } | |
19 | |
20 } // namespace | |
21 | |
22 OriginFilterBuilder::OriginFilterBuilder(Mode mode) | 14 OriginFilterBuilder::OriginFilterBuilder(Mode mode) |
23 : BrowsingDataFilterBuilder(mode) { | 15 : BrowsingDataFilterBuilder(mode) { |
24 } | 16 } |
25 | 17 |
26 OriginFilterBuilder::~OriginFilterBuilder() { | 18 OriginFilterBuilder::~OriginFilterBuilder() { |
27 } | 19 } |
28 | 20 |
29 void OriginFilterBuilder::AddOrigin(const url::Origin& origin) { | 21 void OriginFilterBuilder::AddOrigin(const url::Origin& origin) { |
30 // TODO(msramek): Optimize OriginFilterBuilder for larger filters if needed. | 22 // TODO(msramek): Optimize OriginFilterBuilder for larger filters if needed. |
31 DCHECK_LE(origin_list_.size(), 10U) << "OriginFilterBuilder is only suitable " | 23 DCHECK_LE(origin_list_.size(), 10U) << "OriginFilterBuilder is only suitable " |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 | 58 |
67 return base::Bind(&OriginFilterBuilder::MatchesWebsiteSettingsPattern, | 59 return base::Bind(&OriginFilterBuilder::MatchesWebsiteSettingsPattern, |
68 base::Owned(patterns_from_origins), mode()); | 60 base::Owned(patterns_from_origins), mode()); |
69 } | 61 } |
70 | 62 |
71 base::Callback<bool(const net::CanonicalCookie& cookie)> | 63 base::Callback<bool(const net::CanonicalCookie& cookie)> |
72 OriginFilterBuilder::BuildCookieFilter() const { | 64 OriginFilterBuilder::BuildCookieFilter() const { |
73 NOTREACHED() << | 65 NOTREACHED() << |
74 "Origin-based deletion is not suitable for cookies. Please use " | 66 "Origin-based deletion is not suitable for cookies. Please use " |
75 "different scoping, such as RegistrableDomainFilterBuilder."; | 67 "different scoping, such as RegistrableDomainFilterBuilder."; |
76 return base::Bind(DontDeleteAnythingFilter<net::CanonicalCookie>); | 68 return base::Callback<bool(const net::CanonicalCookie&)>(); |
77 } | 69 } |
78 | 70 |
79 base::Callback<bool(const std::string& channel_id_server_id)> | 71 base::Callback<bool(const std::string& channel_id_server_id)> |
80 OriginFilterBuilder::BuildChannelIDFilter() const { | 72 OriginFilterBuilder::BuildChannelIDFilter() const { |
81 NOTREACHED() << | 73 NOTREACHED() << |
82 "Origin-based deletion is not suitable for channel IDs. Please use " | 74 "Origin-based deletion is not suitable for channel IDs. Please use " |
83 "different scoping, such as RegistrableDomainFilterBuilder."; | 75 "different scoping, such as RegistrableDomainFilterBuilder."; |
84 return base::Bind(DontDeleteAnythingFilter<std::string>); | 76 return base::Callback<bool(const std::string&)>(); |
| 77 } |
| 78 |
| 79 base::Callback<bool(const std::string& site)> |
| 80 OriginFilterBuilder::BuildPluginFilter() const { |
| 81 NOTREACHED() << |
| 82 "Origin-based deletion is not suitable for plugins. Please use " |
| 83 "different scoping, such as RegistrableDomainFilterBuilder."; |
| 84 return base::Callback<bool(const std::string&)>(); |
85 } | 85 } |
86 | 86 |
87 bool OriginFilterBuilder::operator==(const OriginFilterBuilder& other) const { | 87 bool OriginFilterBuilder::operator==(const OriginFilterBuilder& other) const { |
88 return origin_list_ == other.origin_list_ && mode() == other.mode(); | 88 return origin_list_ == other.origin_list_ && mode() == other.mode(); |
89 } | 89 } |
90 | 90 |
91 bool OriginFilterBuilder::IsEmpty() const { | 91 bool OriginFilterBuilder::IsEmpty() const { |
92 return origin_list_.empty(); | 92 return origin_list_.empty(); |
93 } | 93 } |
94 | 94 |
(...skipping 10 matching lines...) Expand all Loading... |
105 } | 105 } |
106 return mode != WHITELIST; | 106 return mode != WHITELIST; |
107 } | 107 } |
108 | 108 |
109 // static | 109 // static |
110 bool OriginFilterBuilder::MatchesURL( | 110 bool OriginFilterBuilder::MatchesURL( |
111 std::set<url::Origin>* origins, Mode mode, const GURL& url) { | 111 std::set<url::Origin>* origins, Mode mode, const GURL& url) { |
112 return ((origins->find(url::Origin(url)) != origins->end()) == | 112 return ((origins->find(url::Origin(url)) != origins->end()) == |
113 (mode == WHITELIST)); | 113 (mode == WHITELIST)); |
114 } | 114 } |
OLD | NEW |