Commit Graph

455 Commits

Author SHA1 Message Date
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Sebastian Hengst
72d1ea4a4b merge mozilla-central to autoland. r=merge a=merge 2017-09-27 11:49:57 +02:00
Alexander Surkov
9644ecd994 Bug 1321960, part2 - let an interrupted reflow finish before processing a11y, r=eeejay, f=dholbert 2017-09-26 16:27:02 -04:00
Nicholas Nethercote
dfd3b7e7aa Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ

--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1
2017-09-26 08:33:21 +10:00
Nicholas Nethercote
49963dad55 Bug 1402772 - Change nsIEventListenerChange::changedListenerNames to a count of a11y-affecting elements. r=smaug.
nsIEventListenerChange::changedListenerNames is an nsIArray attribute that
contains nsIAtoms. Bug 1396693 made it `noscript` to help with nsIAtom
deCOMtamination (bug 1392883) but more changes are needed: that array
eventually needs to be changed to nsTArray<RefPtr<nsIAtom>>.

Turns out the attribute has a single use, in a11y code. That code merely
iterates over the list and counts how many atoms it contains that match
"onclick", "onmousedown", and "onmouseup".

So this patch moves that counting functionality inside nsEventListenerChange by
changing the attribute to `countOfEventListenerChangesAffectingAccessibility`.
This saves us from having to expose the array of atoms via XPIDL.

--HG--
extra : rebase_source : db8b628998d45209ab724555a74efe90f431d3ae
2017-09-25 16:38:04 +10:00
Chris Peterson
5698729243 Bug 870698 - Part 10: Replace Append(NS_LITERAL_STRING("")) with AppendLiteral(u""). r=erahm
The NS_LITERAL_STRING macro creates a temporary nsLiteralString to encapsulate the char16_t string literal and its length, but AssignLiteral() can determine the char16_t string literal's length at compile-time without nsLiteralString.

MozReview-Commit-ID: H9I6vNDMdIr

--HG--
extra : rebase_source : cf537a1f65af003c6c4f8919b925b0f305c1dd4d
extra : source : 13b89ce4e6a66c840f82a335c71f5a12938aba22
2017-09-07 18:32:54 -07:00
Aaron Klotz
9d14ba5611 Bug 1401392: Use ApplicationAccessibleWrap for content application accessible on Windows; r=davidb
MozReview-Commit-ID: A0jxRorD63h
2017-09-19 16:55:34 -06:00
Eitan Isaacson
1f0f0ebd6c Bug 1396267 - Check that owner has content before aria-owns relocation. r=surkov 2017-09-11 13:56:00 -04:00
Jim Mathies
b5d3d9c7c9 Bug 1385991 - Initialize accessibility compaitibility information earlier in accessibility service startup. r=eitan 2017-09-08 16:05:06 -05:00
Marco Zehe
3e9bbd265b Bug 1396626 - Expose aria-haspopup tokens dialog, listbox, menu and tree as object attributes. r=surkov
MozReview-Commit-ID: 7iuo89tuGOu

--HG--
extra : rebase_source : 044da8a2ce31a6e894bb205bae6b86d6fce9976a
2017-09-05 15:15:09 +02:00
Marco Zehe
9998f9ab0d Bug 1316285 - Expose role and landmark role for HTML header and footer only if they are direct descendants of the body tag, section otherwise. r=eeejay
MozReview-Commit-ID: LbelxxgHlJ6

--HG--
extra : rebase_source : 6f4bbb7672cf70f15ae00abeaa41b3edc02a03f5
2017-08-28 14:30:17 +02:00
Marco Zehe
c00da5bfe0 Bug 1392926 - Only expose the Region landmark role if a section element has been explicitly named by the author, r=surkov
MozReview-Commit-ID: 6B0TSy8lqck

--HG--
extra : rebase_source : e79e1927eadb88ba107269effbdb3072427fc9ae
2017-08-28 10:48:09 +02:00
Sebastian Hengst
4acdd37bd2 Backed out changeset c216b1ee565e (bug 1392926) for failing a11y's accessible/tests/mochitest/attributes/test_xml-roles.html and accessible/tests/mochitest/jsat/test_traversal_helper.html. r=backout 2017-08-25 17:04:47 +02:00
Marco Zehe
34e218781d Bug 1392926 - Only expose the Region landmark role if a section element has been explicitly named by the author, r=surkov
MozReview-Commit-ID: 2HIVAuQBfQx

--HG--
extra : rebase_source : e309a9d82a2ce61b399cc0da5d547740d8bdb5a9
2017-08-25 14:28:39 +02:00
Nicholas Nethercote
eb53891d73 Bug 1392993 - Change nsIAccessibleObjectAttributeChangedEvent.changedAttribute from an nsIAtom to an AString. r=MarcoZ.
This removes one use of nsIAtom within scripts, which is good (see bug
1392883). All the uses of this attribute within scripts just converted it to a
string anyway.

--HG--
extra : rebase_source : 080c12506722df5d18e78659bbb922421baa5b80
2017-08-24 17:19:09 +10:00
Eric Rahm
a33f11e0f5 Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj
We should not be declaring forward declarations for nsString classes directly,
instead we should use nsStringFwd.h. This will make changing the underlying
types easier.

--HG--
extra : rebase_source : b2c7554e8632f078167ff2f609392e63a136c299
2017-08-16 16:48:52 -07:00
Eitan Isaacson
5dcba0ecf8 Bug 1376754 - Remove hide event target flag from accessible when event is dropped. r=surkov 2017-08-16 07:27:31 -07:00
Eitan Isaacson
e6166bf4d1 Bug 1384672 - Add accessibility instantiator to about:support. r=jimm 2017-08-10 15:32:07 -07:00
Aaron Klotz
05284bffa5 Bug 1386836: Add a nsACString overload to nsAccessibilityService::GetStringEventType; r=surkov
MozReview-Commit-ID: 9hMC54ki37e
2017-08-02 15:39:51 -06:00
Masatoshi Kimura
f143125cc2 Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu
MozReview-Commit-ID: DqJdTGopR9G

--HG--
extra : rebase_source : e8c9eb03468c075b79013b6e0bd8b367229c24cd
2017-07-29 20:50:21 +09:00
Eitan Isaacson
c7bc22bcfd Bug 1330739 - Don't use control's frame as reference in SelectionManager. r=surkov 2017-07-26 19:02:37 -04:00
Bevis Tseng
95b18d794e Bug 1382172 - Name nsITimerCallback instances in native implementation. r=billm
--HG--
extra : rebase_source : 84de1abfcc30a6964144c2e6718a508c71027b65
2017-07-27 02:18:20 +08:00
Joanmarie Diggs
99540643ac Bug 1379098 - ARIA combobox should map to AXComboBox. r=marcoz
Create a new internal role EDITCOMBOBOX so that we can distinguish
comboboxes with a text input (which is the case for the ARIA role)
from those which consist of only a popup button and associated list
(which is the case for the select element with a size of 1). Also
change the type of ARIA combobox from kGenericAccType to eCombobox
so that IsCombobox() will return true for both EDITCOMBOBOX and
COMBOBOX. Lastly, call IsCombobox() rather than role() when assigning
internal roles to descendants of comboboxes and emitting accessibility
events.

--HG--
extra : rebase_source : 3e31f2e2423d6cc7697b03c9afb3b1f8c136675a
2017-07-11 11:16:00 +02:00
Sebastian Hengst
adabab920b Backed out changeset ed18b5a361f9 (bug 1379098) for timing out in a11y's accessible/tests/mochitest/events/test_valuechange.html and browser-chrome's accessible/tests/browser/e10s/browser_caching_value.js. r=backout 2017-07-10 16:02:38 +02:00
Joanmarie Diggs
55edd4314f Bug 1379098 - ARIA combobox should map to AXComboBox. r=marcoz
Create a new internal role EDITCOMBOBOX so that we can distinguish
comboboxes with a text input (which is the case for the ARIA role)
from those which consist of only a popup button and associated list
(which is the case for the select element with a size of 1). Also
change the type of ARIA combobox from kGenericAccType to eCombobox
so that IsCombobox() will return true for both EDITCOMBOBOX and
COMBOBOX. Lastly, call IsCombobox() rather than role() when assigning
internal roles to descendants of comboboxes.
2017-07-10 04:26:00 +02:00
Sylvestre Ledru
4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Joanmarie Diggs
4cc658fc52 Bug 1378160 - The ARIA region role should be exposed as a landmark; not a pane. r=MarcoZ
Create a new internal REGION role which maps to the generic landmark role
of each platform accessibility API. Update the internal mapping of region
from roles::PANE and kGenericAccType to roles::REGION and eLandmark. Also
change the AXSubrole of region from "AXDocumentRegion" to "AXLandmarkRegion",
the latter being what is specified in the Core AAM 1.1 and used in Safari.
2017-07-04 18:10:00 -04:00
Joanmarie Diggs
bc62a859db Bug 1358447 - Elements which do not support aria-checked="mixed" should not expose "checked" accessibility state. r=marcoz
Treat an author-provided value of "mixed" as the equivalent of "false" for
ARIA roles which do not support the "mixed" state on a given property.
2017-07-03 19:12:00 +02:00
Joanmarie Diggs
dd969f27d8 Bug 1356049 - Map ARIA figure role. r=marcoz
Add the figure role to the ARIA role map so that it's exposed on all
platforms. Expose "figure" as the AXRoleDescription for macOS.
2017-07-04 04:27:00 +02:00
Joanmarie Diggs
b66b7af7bc Bug 1355921 - Elements with a defined, non-false value for aria-current should expose ATK_STATE_ACTIVE. r=marcoz
Create states::CURRENT and add it to the list of "universal" (global)
ARIA states. Map states::CURRENT to ATK_STATE_ACTIVE and emit accessible
state-change notifications when the value of aria-current is modified.
2017-07-03 17:02:00 +02:00
Joanmarie Diggs
35af6f703f Bug 1355954 - Focusable separators should implement the accessible value interface. r=MarcoZ
Add eHasValueMinMaxIfFocusable to the ARIA role map so that we can
take the accessible element's interactive state into account when
determining if the value interface should be supported.
2017-06-28 07:11:00 -04:00
Nicholas Nethercote
58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00
Nicholas Nethercote
f1364a75ea Bug 1374580 (part 3) - Remove ns{,C}Substring typedefs. r=froydnj.
All the instances are converted as follows.

- nsSubstring  --> nsAString
- nsCSubstring --> nsACString

--HG--
extra : rebase_source : cfd2238c52e3cb4d13e3bd5ddb80ba6584ab6d91
2017-06-20 19:19:52 +10:00
Nicholas Nethercote
fe9268c4cd Bug 1374580 (part 2) - Remove nsAFlat{,C}String typedefs. r=froydnj.
All the instances are converted as follows.

- nsAFlatString  --> nsString
- nsAFlatCString --> nsCString

--HG--
extra : rebase_source : b37350642c58a85a08363df2e7c610873faa6e41
2017-06-20 19:19:05 +10:00
Eitan Isaacson
39a6c4774c Bug 1330765 - Only attempt to shutdown a11y if last XPC doc was just removed. r=surkov 2017-06-22 12:37:42 -07:00
Joanmarie Diggs
66ad9aca23 Bug 1375116 - RelationType::CONTAINING_WINDOW is not in the RelationTypeMap. r=surkov
Add RelationType::CONTAINING_WINDOW to the RelationTypeMap. Note that
there is no implementation for this RelationType in place yet, but this
addition will fix off-by-one bugs when mapping newly-added relation types
to platform accessibility APIs.
2017-06-21 09:28:00 -04:00
Joanmarie Diggs
2ba8ad9f9e Bug 1374697 - Add ATK support for aria-details and aria-errormessage. r=surkov
Add the new-to-ATK relation types to the ATK headers we maintain and
map those relation types to the internal equivalents. No new tests
because we have sufficient coverage for the internal relations and
currently lack a means to test platform accessibility API exposure.
2017-06-21 15:53:00 -04:00
Joanmarie Diggs
132af70e13 Bug 1374316 - Add aria-readonly to several roles as per ARIA 1.1. r=surkov
In ARIA 1.1, aria-readonly became a supported property of switch,
menuitemcheckbox, menuitemradio, and radiogroup.

aria-checked is not, and has not been, a supported property of menuitem.
This property should only be supported on checkable subclasses of the
ARIA menuitem role, namely menuitemcheckbox and menuitemradio.
2017-06-19 11:09:23 -04:00
Joanmarie Diggs
ee236a6c7f Bug 1357042 - Implement or update support for exposure of aria-orientation. r=surkov
In ARIA 1.1, "undefined" was added as a possible value of aria-orientation,
and the default value for the combobox and treegrid roles. Therefore, remove
states::VERTICAL from the nsRoleMapEntry for these two roles and update the
associated mochitest expectations. The rest of the ARIA roles which support
aria-orientation have the correct defaults and test coverage.
2017-06-20 05:32:00 +02:00
Joanmarie Diggs
638636b4ef Bug 1373786 - Mapping of "article" role and element is incorrect for AX API and ATK. r=surkov 2017-06-16 16:07:23 -04:00
Joanmarie Diggs
88ed2a9207 Bug 1358417 - Use ATK_ROLE_DESCRIPTION_TERM for "term" role and "dt" element. r=surkov 2017-06-16 14:02:55 -04:00
Joanmarie Diggs
8f7067dc67 Bug 1355423 - Fix AtkRole and AXSubrole for ARIA treeitem. r=surkov 2017-06-16 12:15:45 -04:00
Eitan Isaacson
109fff34b9 Bug 1366374 - Check if AccessibleHandler.dll is registered before using. r=aklotz 2017-06-15 15:55:06 -07:00
Joanmarie Diggs
c306e05c88 Bug 1343537 - Implement ARIA DPUB extension. r=surkov
--HG--
extra : rebase_source : 38af7ac790cb60d952b1dc2885f50fc9c15cdea6
2017-06-13 15:06:08 -04:00
Jim Mathies
d99ea037ac Bug 1309271 - Patch to cleanup nesting and updated comments per review nits. r=surkov
MozReview-Commit-ID: CKwg9xsXl7G
2017-06-13 06:44:55 -05:00
Ryan VanderMeulen
926bfc8d2c Bug 1372221 - Set containerElm only if A11Y_LOG is defined. r=davidb 2017-06-12 10:13:05 -04:00
Jim Mathies
10b72ec89d Bug 1309271 - Fire accessibility focus events from focused content elements when focus changes from chrome to content. r=surkov
MozReview-Commit-ID: 5Iu2TQ58kGa
2017-06-06 06:09:01 -05:00
Mats Palmgren
a1f37b1e8f Bug 1349835 - Create accessibles for <input type=checkbox/radio> with -moz-appearance:none. r=surkov
MozReview-Commit-ID: Cot3jyZBdpU
2017-05-31 21:29:49 +02:00
dbolter
a3cffe12d0 Bug 1368121 - Remove telemetry for a11y update time. r=eeejay 2017-05-26 14:03:57 -04:00
Aaron Klotz
570cbae5c4 Bug 1364544: Ensure that proxied CARET_MOVED and FOCUS events update the Win32 system caret before firing their WinEvents; r=eeejay
MozReview-Commit-ID: LVML7EZaSYD

In non-e10s AccessibleWrap::HandleAccEvent, we special case our handling of
CARET_MOVED and FOCUS events with a call to UpdateSystemCaretFor. In e10s mode
we were not doing the same thing for proxied events sent from content. This
threw JAWS for a loop and presumably messes up other ATs as well.

This patch modifies the IPDL messages for these two events so that we may
send the caret rect along with the event, thus allowing us to update the
system caret for proxied events as well.

--HG--
extra : rebase_source : e1502c12b038739520afd5c7078d011e25ea669e
2017-05-15 14:11:46 -06:00