From 7affe9878568624f53e4f3e82f3b6fccec113eeb Mon Sep 17 00:00:00 2001 From: Gijs Kruitbosch Date: Fri, 20 Apr 2018 12:48:20 +0100 Subject: [PATCH] Bug 1455379 - ignore key elements without a key attribute, r=bz,gandalf MozReview-Commit-ID: 4vv4CKp5v9V --HG-- extra : rebase_source : 52d50c1e41808b59b8787c8087e2774f3d2f4394 --- dom/xbl/nsXBLWindowKeyHandler.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dom/xbl/nsXBLWindowKeyHandler.cpp b/dom/xbl/nsXBLWindowKeyHandler.cpp index 7e14e0e801d4..45f7a21eb7f6 100644 --- a/dom/xbl/nsXBLWindowKeyHandler.cpp +++ b/dom/xbl/nsXBLWindowKeyHandler.cpp @@ -207,13 +207,14 @@ BuildHandlerChain(nsIContent* aContent, nsXBLPrototypeHandler** aResult) // Such element is used by localizers for alternative shortcut key // definition on the locale. See bug 426501. nsAutoString valKey, valCharCode, valKeyCode; - bool attrExists = - keyElement->GetAttr(kNameSpaceID_None, nsGkAtoms::key, valKey) || + // Hopefully at least one of the attributes is set: + keyElement->GetAttr(kNameSpaceID_None, nsGkAtoms::key, valKey) || keyElement->GetAttr(kNameSpaceID_None, nsGkAtoms::charcode, valCharCode) || keyElement->GetAttr(kNameSpaceID_None, nsGkAtoms::keycode, valKeyCode); - if (attrExists && - valKey.IsEmpty() && valCharCode.IsEmpty() && valKeyCode.IsEmpty()) + // If not, ignore this key element. + if (valKey.IsEmpty() && valCharCode.IsEmpty() && valKeyCode.IsEmpty()) { continue; + } // reserved="pref" is the default for elements. XBLReservedKey reserved = XBLReservedKey_Unset;