зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1703600 part 2: Add GetMarkupMapInfoForNode and use it wherever we aren't explicitly dealing with a specific type of element. r=eeejay
For now, this just uses mHTMlMarkupMap, but it might choose the MathML map in future. In some places, we're already inside a block which explicitly checks IsHTMlElement. In those cases, we still use mHTMlMarkupMap directly, since using GetMarkupMapInfoForNode would redundantly check the element type. Differential Revision: https://phabricator.services.mozilla.com/D111362
This commit is contained in:
Родитель
0e15fa6e17
Коммит
b9c9fe8007
|
@ -887,8 +887,7 @@ LocalAccessible* nsAccessibilityService::CreateAccessible(
|
||||||
// display:contents element doesn't have a frame, but retains the semantics.
|
// display:contents element doesn't have a frame, but retains the semantics.
|
||||||
// All its children are unaffected.
|
// All its children are unaffected.
|
||||||
if (nsCoreUtils::IsDisplayContents(content)) {
|
if (nsCoreUtils::IsDisplayContents(content)) {
|
||||||
const MarkupMapInfo* markupMap =
|
const MarkupMapInfo* markupMap = GetMarkupMapInfoForNode(content);
|
||||||
mHTMLMarkupMap.Get(content->NodeInfo()->NameAtom());
|
|
||||||
if (markupMap && markupMap->new_func) {
|
if (markupMap && markupMap->new_func) {
|
||||||
RefPtr<LocalAccessible> newAcc =
|
RefPtr<LocalAccessible> newAcc =
|
||||||
markupMap->new_func(content->AsElement(), aContext);
|
markupMap->new_func(content->AsElement(), aContext);
|
||||||
|
@ -1445,7 +1444,7 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
|
||||||
void nsAccessibilityService::MarkupAttributes(
|
void nsAccessibilityService::MarkupAttributes(
|
||||||
const nsIContent* aContent, nsIPersistentProperties* aAttributes) const {
|
const nsIContent* aContent, nsIPersistentProperties* aAttributes) const {
|
||||||
const mozilla::a11y::MarkupMapInfo* markupMap =
|
const mozilla::a11y::MarkupMapInfo* markupMap =
|
||||||
mHTMLMarkupMap.Get(aContent->NodeInfo()->NameAtom());
|
GetMarkupMapInfoForNode(aContent);
|
||||||
if (!markupMap) return;
|
if (!markupMap) return;
|
||||||
|
|
||||||
for (uint32_t i = 0; i < ArrayLength(markupMap->attrs); i++) {
|
for (uint32_t i = 0; i < ArrayLength(markupMap->attrs); i++) {
|
||||||
|
|
|
@ -256,7 +256,7 @@ class nsAccessibilityService final : public mozilla::a11y::DocManager,
|
||||||
|
|
||||||
mozilla::a11y::role MarkupRole(const nsIContent* aContent) const {
|
mozilla::a11y::role MarkupRole(const nsIContent* aContent) const {
|
||||||
const mozilla::a11y::MarkupMapInfo* markupMap =
|
const mozilla::a11y::MarkupMapInfo* markupMap =
|
||||||
mHTMLMarkupMap.Get(aContent->NodeInfo()->NameAtom());
|
GetMarkupMapInfoForNode(aContent);
|
||||||
return markupMap ? markupMap->role : mozilla::a11y::roles::NOTHING;
|
return markupMap ? markupMap->role : mozilla::a11y::roles::NOTHING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ class nsAccessibilityService final : public mozilla::a11y::DocManager,
|
||||||
nsStaticAtom* MarkupAttribute(const nsIContent* aContent,
|
nsStaticAtom* MarkupAttribute(const nsIContent* aContent,
|
||||||
nsStaticAtom* aAtom) const {
|
nsStaticAtom* aAtom) const {
|
||||||
const mozilla::a11y::MarkupMapInfo* markupMap =
|
const mozilla::a11y::MarkupMapInfo* markupMap =
|
||||||
mHTMLMarkupMap.Get(aContent->NodeInfo()->NameAtom());
|
GetMarkupMapInfoForNode(aContent);
|
||||||
if (markupMap) {
|
if (markupMap) {
|
||||||
for (size_t i = 0; i < mozilla::ArrayLength(markupMap->attrs); i++) {
|
for (size_t i = 0; i < mozilla::ArrayLength(markupMap->attrs); i++) {
|
||||||
const mozilla::a11y::MarkupAttrInfo* info = markupMap->attrs + i;
|
const mozilla::a11y::MarkupAttrInfo* info = markupMap->attrs + i;
|
||||||
|
@ -363,8 +363,15 @@ class nsAccessibilityService final : public mozilla::a11y::DocManager,
|
||||||
*/
|
*/
|
||||||
static uint32_t gConsumers;
|
static uint32_t gConsumers;
|
||||||
|
|
||||||
nsTHashMap<nsPtrHashKey<const nsAtom>, const mozilla::a11y::MarkupMapInfo*>
|
using MarkupMap = nsTHashMap<nsPtrHashKey<const nsAtom>,
|
||||||
mHTMLMarkupMap;
|
const mozilla::a11y::MarkupMapInfo*>;
|
||||||
|
MarkupMap mHTMLMarkupMap;
|
||||||
|
|
||||||
|
const mozilla::a11y::MarkupMapInfo* GetMarkupMapInfoForNode(
|
||||||
|
const nsIContent* aContent) const {
|
||||||
|
return mHTMLMarkupMap.Get(aContent->NodeInfo()->NameAtom());
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef MOZ_XUL
|
#ifdef MOZ_XUL
|
||||||
nsTHashMap<nsPtrHashKey<const nsAtom>, const mozilla::a11y::XULMarkupMapInfo*>
|
nsTHashMap<nsPtrHashKey<const nsAtom>, const mozilla::a11y::XULMarkupMapInfo*>
|
||||||
mXULMarkupMap;
|
mXULMarkupMap;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче