зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1676127 - Don't deactivate top-level remote browser twice when browser window is lowered; r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D96404
This commit is contained in:
Родитель
097ee80074
Коммит
8c4c21dae9
|
@ -2226,26 +2226,21 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear,
|
|||
// content
|
||||
if (BrowserParent* remote = BrowserParent::GetFrom(element)) {
|
||||
MOZ_ASSERT(XRE_IsParentProcess());
|
||||
// First, let's deactivate all out-of-process iframes.
|
||||
// Let's deactivate all remote browsers.
|
||||
BrowsingContext* topLevelBrowsingContext = remote->GetBrowsingContext();
|
||||
topLevelBrowsingContext->PreOrderWalk([&](BrowsingContext* aContext) {
|
||||
WindowGlobalParent* windowGlobalParent =
|
||||
aContext->Canonical()->GetCurrentWindowGlobal();
|
||||
if (windowGlobalParent) {
|
||||
RefPtr<BrowserParent> browserParent =
|
||||
windowGlobalParent->GetBrowserParent();
|
||||
if (browserParent) {
|
||||
if (WindowGlobalParent* windowGlobalParent =
|
||||
aContext->Canonical()->GetCurrentWindowGlobal()) {
|
||||
if (RefPtr<BrowserParent> browserParent =
|
||||
windowGlobalParent->GetBrowserParent()) {
|
||||
browserParent->Deactivate(windowBeingLowered);
|
||||
LOGFOCUS(("OOP iframe remote browser deactivated %p, %d", remote,
|
||||
windowBeingLowered));
|
||||
LOGFOCUS(("%s remote browser deactivated %p, %d",
|
||||
aContext == topLevelBrowsingContext ? "Top-level"
|
||||
: "OOP iframe",
|
||||
browserParent.get(), windowBeingLowered));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Now deactivate the top-level Web page.
|
||||
remote->Deactivate(windowBeingLowered);
|
||||
LOGFOCUS(("Top-level Remote browser deactivated %p, %d", remote,
|
||||
windowBeingLowered));
|
||||
}
|
||||
|
||||
// Same as above but for out-of-process iframes
|
||||
|
|
Загрузка…
Ссылка в новой задаче