Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Side by Side Diff: Source/core/dom/Document.cpp

Issue 15425005: Don't force layout for mouse event hit tests (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: touch adjustment in window.internals also needs layout Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
(...skipping 2778 matching lines...) Expand 10 before | Expand all | Expand 10 after
2789 else if (equalIgnoringCase(policy, "always")) 2789 else if (equalIgnoringCase(policy, "always"))
2790 m_referrerPolicy = ReferrerPolicyAlways; 2790 m_referrerPolicy = ReferrerPolicyAlways;
2791 else if (equalIgnoringCase(policy, "origin")) 2791 else if (equalIgnoringCase(policy, "origin"))
2792 m_referrerPolicy = ReferrerPolicyOrigin; 2792 m_referrerPolicy = ReferrerPolicyOrigin;
2793 } 2793 }
2794 2794
2795 MouseEventWithHitTestResults Document::prepareMouseEvent(const HitTestRequest& r equest, const LayoutPoint& documentPoint, const PlatformMouseEvent& event) 2795 MouseEventWithHitTestResults Document::prepareMouseEvent(const HitTestRequest& r equest, const LayoutPoint& documentPoint, const PlatformMouseEvent& event)
2796 { 2796 {
2797 ASSERT(!renderer() || renderer()->isRenderView()); 2797 ASSERT(!renderer() || renderer()->isRenderView());
2798 2798
2799 if (!renderer()) 2799 // RenderView::hitTest causes a layout, and we don't want to hit that until the first
2800 // layout because until then, there is nothing shown on the screen - the use r can't
2801 // have intentionally clicked on something belonging to this page. Furthermo re,
2802 // mousemove events before the first layout should not lead to a premature l ayout()
2803 // happening, which could show a flash of white.
2804 // See also the similar code in EventHandler::hitTestResultAtPoint.
2805 if (!renderer() || !view() || !view()->didFirstLayout())
2800 return MouseEventWithHitTestResults(event, HitTestResult(LayoutPoint())) ; 2806 return MouseEventWithHitTestResults(event, HitTestResult(LayoutPoint())) ;
2801 2807
2802 HitTestResult result(documentPoint); 2808 HitTestResult result(documentPoint);
2803 renderView()->hitTest(request, result); 2809 renderView()->hitTest(request, result);
2804 2810
2805 if (!request.readOnly()) 2811 if (!request.readOnly())
2806 updateHoverActiveState(request, result.innerElement()); 2812 updateHoverActiveState(request, result.innerElement());
2807 2813
2808 return MouseEventWithHitTestResults(event, result); 2814 return MouseEventWithHitTestResults(event, result);
2809 } 2815 }
(...skipping 2786 matching lines...) Expand 10 before | Expand all | Expand 10 after
5596 return; 5602 return;
5597 5603
5598 Vector<RefPtr<Element> > associatedFormControls; 5604 Vector<RefPtr<Element> > associatedFormControls;
5599 copyToVector(m_associatedFormControls, associatedFormControls); 5605 copyToVector(m_associatedFormControls, associatedFormControls);
5600 5606
5601 frame()->page()->chrome()->client()->didAssociateFormControls(associatedForm Controls); 5607 frame()->page()->chrome()->client()->didAssociateFormControls(associatedForm Controls);
5602 m_associatedFormControls.clear(); 5608 m_associatedFormControls.clear();
5603 } 5609 }
5604 5610
5605 } // namespace WebCore 5611 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/fast/repaint/event-while-loading-expected.txt ('k') | Source/core/page/EventHandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698