author | Alexander Surkov <surkov.alexander@gmail.com> |
Fri, 21 Dec 2012 12:16:44 +0900 | |
changeset 116746 | 1412ac59be4fa0f1d9470e60f1fbe343a7566cc4 |
parent 116745 | 7d5f2e584f8a169c57ef90dd997f8b4f1ec2175b |
child 116747 | 9475349dcd810f87041d440f78b9a05370436e4a |
push id | 24072 |
push user | Ms2ger@gmail.com |
push date | Sat, 22 Dec 2012 13:18:22 +0000 |
treeherder | mozilla-central@ea373e534245 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | tbsaunde |
bugs | 818407 |
milestone | 20.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/accessible/src/atk/nsMaiInterfaceDocument.cpp +++ b/accessible/src/atk/nsMaiInterfaceDocument.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "InterfaceInitFuncs.h" +#include "Accessible-inl.h" #include "AccessibleWrap.h" #include "DocAccessible.h" #include "nsMai.h" #include "mozilla/Likely.h" using namespace mozilla::a11y; static const char* const kDocTypeName = "W3C-doctype";
--- a/accessible/src/atk/nsMaiInterfaceEditableText.cpp +++ b/accessible/src/atk/nsMaiInterfaceEditableText.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "InterfaceInitFuncs.h" +#include "Accessible-inl.h" #include "HyperTextAccessible.h" #include "nsMai.h" #include "nsString.h" #include "mozilla/Likely.h" using namespace mozilla::a11y;
--- a/accessible/src/atk/nsMaiInterfaceHypertext.cpp +++ b/accessible/src/atk/nsMaiInterfaceHypertext.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "InterfaceInitFuncs.h" +#include "Accessible-inl.h" #include "HyperTextAccessible.h" #include "nsMai.h" #include "nsMaiHyperlink.h" #include "mozilla/Likely.h" using namespace mozilla::a11y; extern "C" {
--- a/accessible/src/atk/nsMaiInterfaceSelection.cpp +++ b/accessible/src/atk/nsMaiInterfaceSelection.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "InterfaceInitFuncs.h" +#include "Accessible-inl.h" #include "AccessibleWrap.h" #include "nsMai.h" #include "mozilla/Likely.h" #include <atk/atk.h> using namespace mozilla::a11y;
--- a/accessible/src/atk/nsMaiInterfaceText.cpp +++ b/accessible/src/atk/nsMaiInterfaceText.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "InterfaceInitFuncs.h" +#include "Accessible-inl.h" #include "HyperTextAccessible.h" #include "nsMai.h" #include "nsIPersistentProperties2.h" #include "mozilla/Likely.h" using namespace mozilla::a11y;
--- a/accessible/src/base/AccIterator.cpp +++ b/accessible/src/base/AccIterator.cpp @@ -1,16 +1,16 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "AccIterator.h" #include "nsAccessibilityService.h" -#include "Accessible.h" +#include "Accessible-inl.h" #include "mozilla/dom/Element.h" #include "nsBindingManager.h" using namespace mozilla; using namespace mozilla::a11y; ////////////////////////////////////////////////////////////////////////////////
--- a/accessible/src/base/nsARIAMap.h +++ b/accessible/src/base/nsARIAMap.h @@ -4,16 +4,17 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _nsARIAMap_H_ #define _nsARIAMap_H_ #include "ARIAStateMap.h" +#include "mozilla/a11y/AccTypes.h" #include "mozilla/a11y/Role.h" #include "nsIAtom.h" #include "nsIContent.h" class nsINode; //////////////////////////////////////////////////////////////////////////////// @@ -145,16 +146,22 @@ struct nsRoleMapEntry { /** * Return true if matches to the given ARIA role. */ bool Is(nsIAtom* aARIARole) const { return *roleAtom == aARIARole; } /** + * Return true if ARIA role has the given accessible type. + */ + bool IsOfType(mozilla::a11y::AccGenericType aType) const + { return accTypes & aType; } + + /** * Return ARIA role. */ const nsDependentAtomString ARIARoleString() const { return nsDependentAtomString(*roleAtom); } // ARIA role: string representation such as "button" nsIAtom** roleAtom;
--- a/accessible/src/generic/Accessible-inl.h +++ b/accessible/src/generic/Accessible-inl.h @@ -26,22 +26,21 @@ inline mozilla::a11y::role Accessible::ARIARole() { if (!mRoleMapEntry || mRoleMapEntry->roleRule != kUseMapRole) return mozilla::a11y::roles::NOTHING; return ARIATransformRole(mRoleMapEntry->role); } -inline void -Accessible::SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry) +inline bool +Accessible::HasGenericType(AccGenericType aType) const { - mRoleMapEntry = aRoleMapEntry; - if (mRoleMapEntry) - mGenericTypes |= mRoleMapEntry->accTypes; + return (mGenericTypes & aType) || + (mRoleMapEntry && mRoleMapEntry->IsOfType(aType)); } inline bool Accessible::HasNumericValue() const { if (mStateFlags & eHasNumericValue) return true;
--- a/accessible/src/generic/Accessible.h +++ b/accessible/src/generic/Accessible.h @@ -299,17 +299,18 @@ public: virtual mozilla::a11y::Relation RelationByType(uint32_t aType); ////////////////////////////////////////////////////////////////////////////// // Initializing methods /** * Set the ARIA role map entry for a new accessible. */ - void SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry); + void SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry) + { mRoleMapEntry = aRoleMapEntry; } /** * Update the children cache. */ inline bool UpdateChildren() { InvalidateChildren(); return EnsureChildren(); @@ -463,72 +464,77 @@ public: inline bool IsAbbreviation() const { return mContent->IsHTML() && (mContent->Tag() == nsGkAtoms::abbr || mContent->Tag() == nsGkAtoms::acronym); } bool IsApplication() const { return mType == eApplicationType; } - bool IsAutoComplete() const { return mGenericTypes & eAutoComplete; } + bool IsAutoComplete() const { return HasGenericType(eAutoComplete); } bool IsAutoCompletePopup() const - { return mGenericTypes & eAutoCompletePopup; } + { return HasGenericType(eAutoCompletePopup); } - bool IsCombobox() const { return mGenericTypes & eCombobox; } + bool IsCombobox() const { return HasGenericType(eCombobox); } - bool IsDoc() const { return mGenericTypes & eDocument; } + bool IsDoc() const { return HasGenericType(eDocument); } DocAccessible* AsDoc(); - bool IsHyperText() const { return mGenericTypes & eHyperText; } + bool IsHyperText() const { return HasGenericType(eHyperText); } HyperTextAccessible* AsHyperText(); bool IsHTMLFileInput() const { return mType == eHTMLFileInputType; } bool IsHTMLListItem() const { return mType == eHTMLLiType; } HTMLLIAccessible* AsHTMLListItem(); bool IsHTMLTableRow() const { return mType == eHTMLTableRowType; } bool IsImage() const { return mType == eImageType; } ImageAccessible* AsImage(); bool IsImageMap() const { return mType == eImageMapType; } HTMLImageMapAccessible* AsImageMap(); - bool IsList() const { return mGenericTypes & eList; } + bool IsList() const { return HasGenericType(eList); } - bool IsListControl() const { return mGenericTypes & eListControl; } + bool IsListControl() const { return HasGenericType(eListControl); } - bool IsMenuButton() const { return mGenericTypes & eMenuButton; } + bool IsMenuButton() const { return HasGenericType(eMenuButton); } bool IsMenuPopup() const { return mType == eMenuPopupType; } bool IsProgress() const { return mType == eProgressType; } bool IsRoot() const { return mType == eRootType; } a11y::RootAccessible* AsRoot(); - bool IsSelect() const { return mGenericTypes & eSelect; } + bool IsSelect() const { return HasGenericType(eSelect); } - bool IsTable() const { return mGenericTypes & eTable; } + bool IsTable() const { return HasGenericType(eTable); } virtual TableAccessible* AsTable() { return nullptr; } virtual TableCellAccessible* AsTableCell() { return nullptr; } - bool IsTableRow() const { return mGenericTypes & eTableRow; } + bool IsTableRow() const { return HasGenericType(eTableRow); } bool IsTextLeaf() const { return mType == eTextLeafType; } TextLeafAccessible* AsTextLeaf(); bool IsXULDeck() const { return mType == eXULDeckType; } bool IsXULTree() const { return mType == eXULTreeType; } XULTreeAccessible* AsXULTree(); + /** + * Return true if the accessible belongs to the given accessible type. + */ + bool HasGenericType(AccGenericType aType) const; + ////////////////////////////////////////////////////////////////////////////// // ActionAccessible /** * Return the number of actions that can be performed on this accessible. */ virtual uint8_t ActionCount();
--- a/accessible/src/generic/OuterDocAccessible.cpp +++ b/accessible/src/generic/OuterDocAccessible.cpp @@ -1,15 +1,16 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "OuterDocAccessible.h" +#include "Accessible-inl.h" #include "nsAccUtils.h" #include "DocAccessible.h" #include "Role.h" #include "States.h" #ifdef A11Y_LOG #include "Logging.h" #endif
--- a/accessible/src/mac/mozHTMLAccessible.mm +++ b/accessible/src/mac/mozHTMLAccessible.mm @@ -2,16 +2,17 @@ /* vim:expandtab:shiftwidth=2:tabstop=2: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #import "mozHTMLAccessible.h" +#import "Accessible-inl.h" #import "HyperTextAccessible.h" #import "nsCocoaUtils.h" @implementation mozHeadingAccessible - (NSString*)title {
--- a/accessible/src/mac/mozTextAccessible.mm +++ b/accessible/src/mac/mozTextAccessible.mm @@ -1,14 +1,14 @@ /* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - +#include "Accessible-inl.h" #include "AccessibleWrap.h" #include "TextLeafAccessible.h" #include "nsCocoaUtils.h" #include "nsObjCExceptions.h" #import "mozTextAccessible.h"
--- a/accessible/src/xul/XULAlertAccessible.cpp +++ b/accessible/src/xul/XULAlertAccessible.cpp @@ -1,15 +1,16 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "XULAlertAccessible.h" +#include "Accessible-inl.h" #include "Role.h" #include "States.h" using namespace mozilla::a11y; //////////////////////////////////////////////////////////////////////////////// // XULAlertAccessible ////////////////////////////////////////////////////////////////////////////////
--- a/accessible/src/xul/XULTreeAccessible.cpp +++ b/accessible/src/xul/XULTreeAccessible.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "XULTreeAccessible.h" +#include "Accessible-inl.h" #include "DocAccessible-inl.h" #include "nsAccCache.h" #include "nsAccUtils.h" #include "nsCoreUtils.h" #include "nsEventShell.h" #include "DocAccessible.h" #include "Relation.h" #include "Role.h"