Index: Source/core/page/SpatialNavigation.cpp |
diff --git a/Source/core/page/SpatialNavigation.cpp b/Source/core/page/SpatialNavigation.cpp |
index 952bfd7e0bf67e00b45727706b915133692fd314..1037c8bd21cc1b55974ca9d3dfcd2e4083a0708d 100644 |
--- a/Source/core/page/SpatialNavigation.cpp |
+++ b/Source/core/page/SpatialNavigation.cpp |
@@ -366,8 +366,11 @@ static LayoutRect rectToAbsoluteCoordinates(LocalFrame* initialFrame, const Layo |
// FIXME: Spatial navigation is broken for OOPI. |
Element* element = frame->deprecatedLocalOwner(); |
if (element) { |
- for (; element; element = element->offsetParent()) |
+ do { |
rect.move(element->offsetLeft(), element->offsetTop()); |
+ LayoutObject* layoutObject = element->layoutObject(); |
+ element = layoutObject ? layoutObject->offsetParent() : nullptr; |
+ } while (element); |
rect.move((-toLocalFrame(frame)->view()->scrollOffset())); |
} |
} |