Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index 37f883c06ca96dcc9d15e46a6924442caa9d388e..c87b5a5f3f9aa4b373e81bcd83a4529b8ead2ea9 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -2800,7 +2800,13 @@ MouseEventWithHitTestResults Document::prepareMouseEvent(const HitTestRequest& r |
{ |
ASSERT(!renderer() || renderer()->isRenderView()); |
- if (!renderer()) |
+ // RenderView::hitTest causes a layout, and we don't want to hit that until the first |
+ // layout because until then, there is nothing shown on the screen - the user can't |
+ // have intentionally clicked on something belonging to this page. Furthermore, |
+ // mousemove events before the first layout should not lead to a premature layout() |
+ // happening, which could show a flash of white. |
+ // See also the similar code in EventHandler::hitTestResultAtPoint. |
+ if (!renderer() || !view() || !view()->didFirstLayout()) |
return MouseEventWithHitTestResults(event, HitTestResult(LayoutPoint())); |
HitTestResult result(documentPoint); |