Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "HTMLNames.h" | 6 #include "HTMLNames.h" |
| 7 #include "core/dom/Element.h" | 7 #include "core/dom/Element.h" |
| 8 #include "core/dom/ElementTraversal.h" | 8 #include "core/dom/ElementTraversal.h" |
| 9 #include "core/frame/FrameView.h" | 9 #include "core/frame/FrameView.h" |
| 10 #include "core/frame/LocalFrame.h" | 10 #include "core/frame/LocalFrame.h" |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 39 | 39 |
| 40 PlatformMouseEvent moveEvent(IntPoint(20, 20), IntPoint(20, 20), NoButton, P latformEvent::MouseMoved, 0, false, false, false, false, currentTime()); | 40 PlatformMouseEvent moveEvent(IntPoint(20, 20), IntPoint(20, 20), NoButton, P latformEvent::MouseMoved, 0, false, false, false, false, currentTime()); |
| 41 document->frame()->eventHandler().handleMouseMoveEvent(moveEvent); | 41 document->frame()->eventHandler().handleMouseMoveEvent(moveEvent); |
| 42 document->view()->updateLayoutAndStyleIfNeededRecursive(); | 42 document->view()->updateLayoutAndStyleIfNeededRecursive(); |
| 43 | 43 |
| 44 unsigned accessCount = document->styleEngine()->resolverAccessCount() - star tCount; | 44 unsigned accessCount = document->styleEngine()->resolverAccessCount() - star tCount; |
| 45 | 45 |
| 46 ASSERT_EQ(1U, accessCount); | 46 ASSERT_EQ(1U, accessCount); |
| 47 } | 47 } |
| 48 | 48 |
| 49 TEST(HoverUpdateTest, ChildrenAffectedByHoverUpdate) | |
| 50 { | |
| 51 // Check that when hovering the div in the document below, you only get a | |
| 52 // style recalc for the hovered element and the class=a span. This requires | |
| 53 // supporting a descendant invalidation set for :hover. | |
| 54 | |
| 55 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSize(80 0, 600)); | |
| 56 HTMLDocument* document = toHTMLDocument(&dummyPageHolder->document()); | |
| 57 document->documentElement()->setInnerHTML("<style>div {width:100px;height:10 0px} div:hover .a { background-color: green }</style>" | |
| 58 "<div>" | |
| 59 "<span class='a'></span>" | |
| 60 "<span></span>" | |
| 61 "<span></span>" | |
| 62 "<span></span>" | |
| 63 "</div>", ASSERT_NO_EXCEPTION); | |
| 64 | |
| 65 document->view()->updateLayoutAndStyleIfNeededRecursive(); | |
| 66 unsigned startCount = document->styleEngine()->resolverAccessCount(); | |
| 67 | |
| 68 PlatformMouseEvent moveEvent(IntPoint(20, 20), IntPoint(20, 20), NoButton, P latformEvent::MouseMoved, 0, false, false, false, false, currentTime()); | |
| 69 document->frame()->eventHandler().handleMouseMoveEvent(moveEvent); | |
| 70 document->view()->updateLayoutAndStyleIfNeededRecursive(); | |
| 71 | |
| 72 unsigned accessCount = document->styleEngine()->resolverAccessCount() - star tCount; | |
|
esprehn
2014/04/11 20:23:01
Can't this be a regular layout test now that we do
rune
2014/04/11 22:34:36
Will fix.
rune
2014/04/25 11:56:50
Done.
| |
| 73 | |
| 74 ASSERT_EQ(2U, accessCount); | |
| 75 } | |
| 76 | |
| 49 } // namespace | 77 } // namespace |
| OLD | NEW |