Index: third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp b/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
index 2ae1556fc10ddca7a031867902c3f74dde19c9c3..f6d3ceaa20baca2b813705065ad283ae5f28ad86 100644 |
--- a/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
+++ b/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
@@ -50,19 +50,22 @@ void IntersectionObservation::computeIntersectionObservations( |
// intersection to have "crossed" a zero threshold, but not crossed |
// any non-zero threshold. |
unsigned newThresholdIndex; |
- float newVisibleRatio = 0; |
- if (geometry.targetRect().isEmpty()) { |
- newThresholdIndex = geometry.doesIntersect() ? 1 : 0; |
- } else if (!geometry.doesIntersect()) { |
- newThresholdIndex = 0; |
- } else { |
- float intersectionArea = |
- geometry.intersectionRect().size().width().toFloat() * |
- geometry.intersectionRect().size().height().toFloat(); |
- float targetArea = geometry.targetRect().size().width().toFloat() * |
- geometry.targetRect().size().height().toFloat(); |
- newVisibleRatio = intersectionArea / targetArea; |
+ float newVisibleRatio; |
+ if (geometry.doesIntersect()) { |
+ if (geometry.targetRect().isEmpty()) { |
+ newVisibleRatio = 1; |
+ } else { |
+ float intersectionArea = |
+ geometry.intersectionRect().size().width().toFloat() * |
+ geometry.intersectionRect().size().height().toFloat(); |
+ float targetArea = geometry.targetRect().size().width().toFloat() * |
+ geometry.targetRect().size().height().toFloat(); |
+ newVisibleRatio = intersectionArea / targetArea; |
+ } |
newThresholdIndex = observer().firstThresholdGreaterThan(newVisibleRatio); |
+ } else { |
+ newVisibleRatio = 0; |
+ newThresholdIndex = 0; |
} |
if (m_lastThresholdIndex != newThresholdIndex) { |
IntRect snappedRootBounds = geometry.rootIntRect(); |