author | Jim Mathies <jmathies@mozilla.com> |
Thu, 12 Mar 2015 14:32:20 -0500 | |
changeset 233548 | 4f6461936cd212e955fdb4a050b6cf154fb22acf |
parent 233547 | 8b0b98f81a1496e2d96479d6ca59c562a569bbcc |
child 233549 | 1434aefa4e49daf655e6e42d5d411ee14fd2e50d |
push id | 28417 |
push user | ryanvm@gmail.com |
push date | Fri, 13 Mar 2015 19:52:44 +0000 |
treeherder | mozilla-central@977add19414a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | Enn |
bugs | 1082510 |
milestone | 39.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -7363,16 +7363,22 @@ PresShell::HandleEvent(nsIFrame* aFrame, "How did we end up outside the connected prescontext/viewmanager hierarchy?"); // If we aren't starting our event dispatch from the root frame of the root prescontext, // then someone must be capturing the mouse. In that case we don't want to search the popup // list. if (framePresContext == rootPresContext && frame == mFrameConstructor->GetRootFrame()) { nsIFrame* popupFrame = nsLayoutUtils::GetPopupFrameForEventCoordinates(rootPresContext, aEvent); + // If a remote browser is currently capturing input break out if we + // detect a chrome generated popup. + if (popupFrame && capturingContent && + EventStateManager::IsRemoteTarget(capturingContent)) { + capturingContent = nullptr; + } // If the popupFrame is an ancestor of the 'frame', the frame should // handle the event, otherwise, the popup should handle it. if (popupFrame && !nsContentUtils::ContentIsCrossDocDescendantOf( framePresContext->GetPresShell()->GetDocument(), popupFrame->GetContent())) { frame = popupFrame; }