[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