Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index 2805c26655f0d17f1a842b09222087e09353068f..cff2dc256274e675a021d08777efb73a00938c43 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -2796,7 +2796,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); |