Closed Bug 960859 Opened 6 years ago Closed 6 years ago

[e10s] Can't scroll content when text in chrome UI is focused

Categories

(Core :: DOM: Events, defect)

x86
macOS
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla29
Tracking Status
firefox31 --- verified

People

(Reporter: reuben, Assigned: billm)

References

Details

Attachments

(1 file, 1 obsolete file)

STR:

1) Click on awesome bar or search bar
2) Hover content with the mouse and try to scroll it
Untriaged because I don't know what component to put this under.
Attached patch mouse-wheel-guess (obsolete) — Splinter Review
I'm just looking for feedback here since this patch is probably wrong. Here's what I'm seeing when I try this STR.

1. We enter nsEventStateManager::PreHandleEvent for an NS_WHEEL_WHEEL event. It sets mCurrentTargetContent to the be the URL bar (assuming it was in focus).
2. (In non-e10s builds) We enter nsEventStateManager::PostHandleEvent for the same event. aTargetFrame is a frame in the actual HTML document. All the scrolling stuff is done in terms of aTargetFrame.
2. (In e10s builds) We enter nsEventStateManager::PostHandleEvent and call HandleCrossProcessEvent. It looks at mCurrentTargetContent, which is still the URL bar, and ignores the event because mCurrentTargetContent isn't a remote target.

My patch just changes HandleCrossProcessEvent so that it uses aTargetFrame instead of mCurrentTargetContent. With this change, the mouse wheel works. I didn't notice any other problems, but I didn't do much testing.

I don't really understand the purpose of mCurrentTargetContent. Maybe you guys can explain it?
Attachment #8362736 - Flags: feedback?(felipc)
Attachment #8362736 - Flags: feedback?(bugs)
Component: Untriaged → DOM: Events
Product: Firefox → Core
Comment on attachment 8362736 [details] [diff] [review]
mouse-wheel-guess

Review of attachment 8362736 [details] [diff] [review]:
-----------------------------------------------------------------

Olli knows for sure, but this looks reasonable. I wonder if it's worth to keep the opposite logic, i.e. if aTargetFrame = null use mCurrentTargetContent
Attachment #8362736 - Flags: feedback?(felipc) → feedback+
Could you make that code
nsIFrame* frame = GetEventTarget();
nsIContent* target = frame ? frame->GetContent() : null;
if (IsRemoteTarget(target)) {
  targets.AppendElement(target);
}

(I need to cleanup mCurrentTargetContent handling a bit. That stuff is _old_.)
Attachment #8362736 - Flags: feedback?(bugs)
Attached patch scrollwheel-fixSplinter Review
Thanks for the help!
Assignee: nobody → wmccloskey
Attachment #8362736 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #8363884 - Flags: review?(bugs)
Attachment #8363884 - Flags: review?(bugs) → review+
https://hg.mozilla.org/mozilla-central/rev/0fbf19e7ed9c
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
Reproduced in Nightly 2014-01-17, Win 7 x64.
Verified fixed FF 31 RC 2.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.