Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(890)

Side by Side Diff: components/content_settings/core/common/content_settings_pattern.cc

Issue 2375183002: Add metrics for paths in file scheme exceptions in content settings. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "components/content_settings/core/common/content_settings_pattern.h" 5 #include "components/content_settings/core/common/content_settings_pattern.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 if (parts_.is_scheme_wildcard) 607 if (parts_.is_scheme_wildcard)
608 return SCHEME_WILDCARD; 608 return SCHEME_WILDCARD;
609 609
610 for (size_t i = 2; i < arraysize(kSchemeNames); ++i) { 610 for (size_t i = 2; i < arraysize(kSchemeNames); ++i) {
611 if (parts_.scheme == kSchemeNames[i]) 611 if (parts_.scheme == kSchemeNames[i])
612 return static_cast<SchemeType>(i); 612 return static_cast<SchemeType>(i);
613 } 613 }
614 return SCHEME_OTHER; 614 return SCHEME_OTHER;
615 } 615 }
616 616
617 bool ContentSettingsPattern::HasPath() const {
618 DCHECK_EQ(GetScheme(), SCHEME_FILE);
619 return !parts_.is_path_wildcard && !parts_.path.empty();
620 }
621
617 ContentSettingsPattern::Relation ContentSettingsPattern::Compare( 622 ContentSettingsPattern::Relation ContentSettingsPattern::Compare(
618 const ContentSettingsPattern& other) const { 623 const ContentSettingsPattern& other) const {
619 // Two invalid patterns are identical in the way they behave. They don't match 624 // Two invalid patterns are identical in the way they behave. They don't match
620 // anything and are represented as an empty string. So it's fair to treat them 625 // anything and are represented as an empty string. So it's fair to treat them
621 // as identical. 626 // as identical.
622 if ((this == &other) || 627 if ((this == &other) ||
623 (!is_valid_ && !other.is_valid_)) 628 (!is_valid_ && !other.is_valid_))
624 return IDENTITY; 629 return IDENTITY;
625 630
626 if (!is_valid_ && other.is_valid_) 631 if (!is_valid_ && other.is_valid_)
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
815 if (!parts.is_path_wildcard && other_parts.is_path_wildcard) 820 if (!parts.is_path_wildcard && other_parts.is_path_wildcard)
816 return ContentSettingsPattern::PREDECESSOR; 821 return ContentSettingsPattern::PREDECESSOR;
817 822
818 int result = parts.path.compare(other_parts.path); 823 int result = parts.path.compare(other_parts.path);
819 if (result == 0) 824 if (result == 0)
820 return ContentSettingsPattern::IDENTITY; 825 return ContentSettingsPattern::IDENTITY;
821 if (result > 0) 826 if (result > 0)
822 return ContentSettingsPattern::DISJOINT_ORDER_PRE; 827 return ContentSettingsPattern::DISJOINT_ORDER_PRE;
823 return ContentSettingsPattern::DISJOINT_ORDER_POST; 828 return ContentSettingsPattern::DISJOINT_ORDER_POST;
824 } 829 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698