Bug 1534255 - Enable out-of-process iframes to take APZ focus. r=rhunt

Differential Revision: https://phabricator.services.mozilla.com/D22968

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Henri Sivonen 2019-03-11 18:49:12 +00:00
Родитель 06f24fd1bb
Коммит a24b99a70f
1 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -6,6 +6,7 @@
#include "mozilla/layers/FocusTarget.h" #include "mozilla/layers/FocusTarget.h"
#include "mozilla/dom/BrowserBridgeChild.h" // for BrowserBridgeChild
#include "mozilla/dom/EventTarget.h" // for EventTarget #include "mozilla/dom/EventTarget.h" // for EventTarget
#include "mozilla/dom/TabParent.h" // for TabParent #include "mozilla/dom/TabParent.h" // for TabParent
#include "mozilla/EventDispatcher.h" // for EventDispatcher #include "mozilla/EventDispatcher.h" // for EventDispatcher
@ -179,6 +180,17 @@ FocusTarget::FocusTarget(nsIPresShell* aRootPresShell,
return; return;
} }
// Check if the key event target is a remote browser
if (BrowserBridgeChild* bbc = BrowserBridgeChild::GetFrom(keyEventTarget)) {
FT_LOG("Creating oopif reflayer target with seq=%" PRIu64
", kl=%d, lt=%" PRIu64 "\n",
aFocusSequenceNumber, mFocusHasKeyEventListeners,
bbc->GetLayersId());
mData = AsVariant<LayersId>(bbc->GetLayersId());
return;
}
// The content to scroll is either the focused element or the focus node of // The content to scroll is either the focused element or the focus node of
// the selection. It's difficult to determine if an element is an interactive // the selection. It's difficult to determine if an element is an interactive
// element requiring async keyboard scrolling to be disabled. So we only // element requiring async keyboard scrolling to be disabled. So we only