Index: third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
diff --git a/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp b/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
index 27da8417ba632798c4eb0d955c89389aecc0bc86..262510f80da0b129ddbc5833dd927e46e0edd622 100644 |
--- a/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
+++ b/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
@@ -27,8 +27,10 @@ ActiveSheetsChange compareActiveStyleSheets( |
if (newStyleSheets[index].second == oldStyleSheets[index].second) |
continue; |
- changedRuleSets.append(newStyleSheets[index].second); |
- changedRuleSets.append(oldStyleSheets[index].second); |
+ if (newStyleSheets[index].second) |
+ changedRuleSets.append(newStyleSheets[index].second); |
+ if (oldStyleSheets[index].second) |
+ changedRuleSets.append(oldStyleSheets[index].second); |
} |
if (index == oldStyleSheetCount) { |
@@ -37,16 +39,21 @@ ActiveSheetsChange compareActiveStyleSheets( |
: NoActiveSheetsChanged; |
// Sheets added at the end. |
- for (; index < newStyleSheetCount; index++) |
- changedRuleSets.append(newStyleSheets[index].second); |
- return ActiveSheetsAppended; |
+ for (; index < newStyleSheetCount; index++) { |
+ if (newStyleSheets[index].second) |
+ changedRuleSets.append(newStyleSheets[index].second); |
+ } |
+ return changedRuleSets.size() ? ActiveSheetsAppended |
+ : NoActiveSheetsChanged; |
} |
if (index == newStyleSheetCount) { |
// Sheets removed from the end. |
- for (; index < oldStyleSheetCount; index++) |
- changedRuleSets.append(oldStyleSheets[index].second); |
- return ActiveSheetsChanged; |
+ for (; index < oldStyleSheetCount; index++) { |
+ if (oldStyleSheets[index].second) |
+ changedRuleSets.append(oldStyleSheets[index].second); |
+ } |
+ return changedRuleSets.size() ? ActiveSheetsChanged : NoActiveSheetsChanged; |
} |
DCHECK(index < oldStyleSheetCount && index < newStyleSheetCount); |
@@ -71,7 +78,8 @@ ActiveSheetsChange compareActiveStyleSheets( |
if (mergedIterator == mergedSorted.end() || |
(*mergedIterator).first != sheet1.first) { |
// Sheet either removed or inserted. |
- changedRuleSets.append(sheet1.second); |
+ if (sheet1.second) |
+ changedRuleSets.append(sheet1.second); |
continue; |
} |
@@ -83,10 +91,12 @@ ActiveSheetsChange compareActiveStyleSheets( |
// Active rules for the given stylesheet changed. |
// DOM, CSSOM, or media query changes. |
- changedRuleSets.append(sheet1.second); |
- changedRuleSets.append(sheet2.second); |
+ if (sheet1.second) |
+ changedRuleSets.append(sheet1.second); |
+ if (sheet2.second) |
+ changedRuleSets.append(sheet2.second); |
} |
- return ActiveSheetsChanged; |
+ return changedRuleSets.size() ? ActiveSheetsChanged : NoActiveSheetsChanged; |
} |
} // namespace blink |