Commit c238a07c authored by Anders Hartvoll Ruud's avatar Anders Hartvoll Ruud Committed by Commit Bot

Drop return value of CascadeMap::Add

This prepares for 'revert', where a declaration can be partially
added to the cascade, hence a simple bool return value wouldn't be
sufficient anymore. However, the return value is not actually needed,
so just remove it.

Bug: 579788
Change-Id: Icc295364b81ef6ec9ae060ff316d27671c410016
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128055
Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#755801}
parent c0651e80
......@@ -32,15 +32,13 @@ CascadePriority* CascadeMap::Find(const CSSPropertyName& name) {
return reinterpret_cast<CascadePriority*>(native_properties_) + index;
}
bool CascadeMap::Add(const CSSPropertyName& name, CascadePriority priority) {
void CascadeMap::Add(const CSSPropertyName& name, CascadePriority priority) {
if (name.IsCustomProperty()) {
DCHECK_NE(CascadeOrigin::kUserAgent, priority.GetOrigin());
auto result = custom_properties_.insert(name, priority);
if (result.is_new_entry || result.stored_value->value < priority) {
if (result.is_new_entry || result.stored_value->value < priority)
result.stored_value->value = priority;
return true;
}
return false;
return;
}
CSSPropertyID id = name.Id();
size_t index = static_cast<size_t>(id);
......@@ -60,9 +58,7 @@ bool CascadeMap::Add(const CSSPropertyName& name, CascadePriority priority) {
std::is_trivially_destructible<CascadePriority>::value,
"~CascadePriority is never called on these CascadePriority objects");
new (p) CascadePriority(priority);
return true;
}
return false;
}
void CascadeMap::Reset() {
......
......@@ -34,9 +34,7 @@ class CORE_EXPORT CascadeMap {
CascadePriority* Find(const CSSPropertyName&);
// Adds an an entry to the map if the incoming priority is greater than or
// equal to the current priority for the same name.
//
// Returns true if added, false otherwise.
bool Add(const CSSPropertyName&, CascadePriority);
void Add(const CSSPropertyName&, CascadePriority);
// Added properties with CSSPropertyPriority::kHighPropertyPriority cause the
// corresponding high_priority_-bit to be set. This provides a fast way to
// check which high-priority properties have been added (if any).
......
......@@ -11,6 +11,19 @@
namespace blink {
namespace {
bool AddTo(CascadeMap& map,
const CSSPropertyName& name,
CascadePriority priority) {
CascadePriority before = map.At(name);
map.Add(name, priority);
CascadePriority after = map.At(name);
return before != after;
}
} // namespace
TEST(CascadeMapTest, Empty) {
CascadeMap map;
EXPECT_FALSE(map.Find(CSSPropertyName(AtomicString("--x"))));
......@@ -26,14 +39,14 @@ TEST(CascadeMapTest, AddCustom) {
CSSPropertyName x(AtomicString("--x"));
CSSPropertyName y(AtomicString("--y"));
EXPECT_TRUE(map.Add(x, user));
EXPECT_TRUE(map.Add(x, author));
EXPECT_FALSE(map.Add(x, author));
EXPECT_TRUE(AddTo(map, x, user));
EXPECT_TRUE(AddTo(map, x, author));
EXPECT_FALSE(AddTo(map, x, author));
ASSERT_TRUE(map.Find(x));
EXPECT_EQ(author, *map.Find(x));
EXPECT_FALSE(map.Find(y));
EXPECT_TRUE(map.Add(y, user));
EXPECT_TRUE(AddTo(map, y, user));
// --x should be unchanged.
ASSERT_TRUE(map.Find(x));
......@@ -51,14 +64,14 @@ TEST(CascadeMapTest, AddNative) {
CSSPropertyName color(CSSPropertyID::kColor);
CSSPropertyName display(CSSPropertyID::kDisplay);
EXPECT_TRUE(map.Add(color, user));
EXPECT_TRUE(map.Add(color, author));
EXPECT_FALSE(map.Add(color, author));
EXPECT_TRUE(AddTo(map, color, user));
EXPECT_TRUE(AddTo(map, color, author));
EXPECT_FALSE(AddTo(map, color, author));
ASSERT_TRUE(map.Find(color));
EXPECT_EQ(author, *map.Find(color));
EXPECT_FALSE(map.Find(display));
EXPECT_TRUE(map.Add(display, user));
EXPECT_TRUE(AddTo(map, display, user));
// color should be unchanged.
ASSERT_TRUE(map.Find(color));
......@@ -75,7 +88,7 @@ TEST(CascadeMapTest, FindAndMutateCustom) {
CascadePriority author(CascadeOrigin::kAuthor);
CSSPropertyName x(AtomicString("--x"));
EXPECT_TRUE(map.Add(x, user));
EXPECT_TRUE(AddTo(map, x, user));
CascadePriority* p = map.Find(x);
ASSERT_TRUE(p);
......@@ -83,7 +96,7 @@ TEST(CascadeMapTest, FindAndMutateCustom) {
*p = author;
EXPECT_FALSE(map.Add(x, author));
EXPECT_FALSE(AddTo(map, x, author));
ASSERT_TRUE(map.Find(x));
EXPECT_EQ(author, *map.Find(x));
}
......@@ -94,7 +107,7 @@ TEST(CascadeMapTest, FindAndMutateNative) {
CascadePriority author(CascadeOrigin::kAuthor);
CSSPropertyName color(CSSPropertyID::kColor);
EXPECT_TRUE(map.Add(color, user));
EXPECT_TRUE(AddTo(map, color, user));
CascadePriority* p = map.Find(color);
ASSERT_TRUE(p);
......@@ -102,7 +115,7 @@ TEST(CascadeMapTest, FindAndMutateNative) {
*p = author;
EXPECT_FALSE(map.Add(color, author));
EXPECT_FALSE(AddTo(map, color, author));
ASSERT_TRUE(map.Find(color));
EXPECT_EQ(author, *map.Find(color));
}
......@@ -115,10 +128,10 @@ TEST(CascadeMapTest, AtCustom) {
EXPECT_EQ(CascadePriority(), map.At(x));
EXPECT_TRUE(map.Add(x, user));
EXPECT_TRUE(AddTo(map, x, user));
EXPECT_EQ(user, map.At(x));
EXPECT_TRUE(map.Add(x, author));
EXPECT_TRUE(AddTo(map, x, author));
EXPECT_EQ(author, map.At(x));
}
......@@ -130,10 +143,10 @@ TEST(CascadeMapTest, AtNative) {
EXPECT_EQ(CascadePriority(), map.At(color));
EXPECT_TRUE(map.Add(color, user));
EXPECT_TRUE(AddTo(map, color, user));
EXPECT_EQ(user, map.At(color));
EXPECT_TRUE(map.Add(color, author));
EXPECT_TRUE(AddTo(map, color, author));
EXPECT_EQ(author, map.At(color));
}
......
......@@ -87,6 +87,7 @@ class CORE_EXPORT CascadePriority {
bool operator>=(const CascadePriority& o) const { return bits_ >= o.bits_; }
bool operator<(const CascadePriority& o) const { return bits_ < o.bits_; }
bool operator==(const CascadePriority& o) const { return bits_ == o.bits_; }
bool operator!=(const CascadePriority& o) const { return bits_ != o.bits_; }
private:
friend class StyleCascade;
......
......@@ -57,6 +57,14 @@ TEST(CascadePriorityTest, OriginOperators) {
for (CascadePriority priority : priority)
EXPECT_EQ(priority, priority);
for (size_t i = 0; i < priority.size(); ++i) {
for (size_t j = 0; j < priority.size(); ++j) {
if (i == j)
continue;
EXPECT_NE(priority[i], priority[j]);
}
}
}
TEST(CascadePriorityTest, OriginImportance) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment