[Webkit-unassigned] [Bug 100010] [EFL][WK2] fast/repaint/delete-into-nested-block.html and fast/repaint/4776765.html are flaky
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Oct 23 08:32:03 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=100010
--- Comment #1 from Raphael Kubo da Costa (rakuco) <rakuco at webkit.org> 2012-10-23 08:33:06 PST ---
So this is how things are working so far:
o TestController::resetStateToConsistentValues() calls PlatformWebView::focus(), which calls evas_object_focus_set(..., true) before every test is run.
o Before running the first test (fast/repaint/4774354.html), this call to evas_object_focus_set() makes the main view receive focus, and WebPageProxy::viewStateDidChange() ends up making the web process call WebPage::setFocused(true), which is the normal flow anyway.
o This test then focuses an iframe it has via `window.frames[0].focus'. This makes WebCore::FrameSelection::setFocused(false) be called for the main frame's frame selection, and WebCore::FrameSelection::setFocused(true) be called for the iframe's frame selection.
o When the test finishes, the main frame's frame selection is still internally in an unfocused state, however Evas considers the main view to still be focused.
o fast/repaint/delete-into-nested-block.html is then run, and when WebCore then queries the main frame's FrameSelection to see it is focused in order to decide whether to draw the focus ring around the <div>, that query returns false and the focus ring is not drawn.
o WebCore::FrameSelection::setFocused(true) is not called despite TestController::resetStateToConsistentValues() and thus PlatformWebView::focus() being called before each test because evas_object_focus_set(..., true) becomes a no-op since Evas thinks the main view (an Evas_Object) is still visible, as we had already called evas_object_focus_set(..., true) before. WebPageProxy::viewStateDidChange() is then not called, and the main frame's frame selection state is never reset to true.
That problem does not affect DRT because we call ewk_frame_feed_focus_in() there, whose sole responsibility is to manually call WebCore::FocusController::setFocusedFrame() on the main frame, and this triggers a call to WebCore::FrameSelection::setFocused(true).
The next step is thinking of a solution :-)
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list