Summary: | WebKit2.MouseMoveAfterCrash API test is failing | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> | ||||
Component: | WebKit2 | Assignee: | Beth Dakin <bdakin> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | aroben, bdakin, simon.fraser | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Simon Fraser (smfr)
2011-11-18 13:13:11 PST
I confirmed that rolling out r100483 fixes this. I see what the problem is. The problem is in these changes: Index: Source/WebKit2/WebProcess/WebPage/WebPage.cpp =================================================================== --- Source/WebKit2/WebProcess/WebPage/WebPage.cpp (revision 100305) +++ Source/WebKit2/WebProcess/WebPage/WebPage.cpp (working copy) @@ -1105,7 +1105,7 @@ static bool handleContextMenuEvent(const return handled; } -static bool handleMouseEvent(const WebMouseEvent& mouseEvent, Page* page) +static bool handleMouseEvent(const WebMouseEvent& mouseEvent, Page* page, bool onlyUpdateScrollbars) { Frame* frame = page->mainFrame(); if (!frame->view()) @@ -1128,7 +1128,7 @@ static bool handleMouseEvent(const WebMo case WebCore::MouseEventReleased: return frame->eventHandler()->handleMouseReleaseEvent(platformMouseEvent); case WebCore::MouseEventMoved: - return frame->eventHandler()->mouseMoved(platformMouseEvent); + return frame->eventHandler()->mouseMoved(platformMouseEvent, onlyUpdateScrollbars); default: ASSERT_NOT_REACHED(); @@ -1154,7 +1154,7 @@ void WebPage::mouseEvent(const WebMouseE if (!handled) { CurrentEvent currentEvent(mouseEvent); - handled = handleMouseEvent(mouseEvent, m_page.get()); + handled = handleMouseEvent(mouseEvent, m_page.get(), !windowIsFocused()); } send(Messages::WebPageProxy::DidReceiveEvent(static_cast<uint32_t>(mouseEvent.type()), handled)); @@ -1172,7 +1172,7 @@ void WebPage::mouseEventSyncForTesting(c if (!handled) { CurrentEvent currentEvent(mouseEvent); - handled = handleMouseEvent(mouseEvent, m_page.get()); + handled = handleMouseEvent(mouseEvent, m_page.get(), !windowIsFocused()); } } In the test harness, windowIsFocused() is false because on Mac it evaluates to m_windowIsVisible, and the window is not visible. It's a simple problem, but I'll have to think about the best way to solve it. Created attachment 117087 [details]
Patch
Thanks Sam! Committed change with revision 101532. |