searching for reviewer(marcoz)
4c11d8d96c247b0057a30e1521ac56ce90283f5e: Bug 1498274 - Remove grouping from the download interstitial dialog and the dialog to set the desktop background. r=bgrins,MarcoZ
Paolo Amadini <paolo.mozmail@amadzone.org> - Fri, 12 Oct 2018 15:07:17 +0100 - rev 489305
Push 247 by fmarier@mozilla.com at Sat, 27 Oct 2018 01:06:44 +0000
Bug 1498274 - Remove grouping from the download interstitial dialog and the dialog to set the desktop background. r=bgrins,MarcoZ These are two other cases where grouping is not really necessary. For accessibility, the checkbox at the end of the download interstitial dialog does not need to be in the same group as the radio button, and the question text can more simply just label the radiogroup. The vbox is still necessary to hide the section, but is not related to accessibility or dialog structure. Differential Revision: https://phabricator.services.mozilla.com/D8421
ba07c543cc935aed4a56a495a031dc8cd970290b: Bug 1496850 - add label to volume slider, r=MarcoZ
Gijs Kruitbosch <gijskruitbosch@gmail.com> - Wed, 10 Oct 2018 17:40:42 +0000 - rev 488989
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1496850 - add label to volume slider, r=MarcoZ Differential Revision: https://phabricator.services.mozilla.com/D8202
c25dbd88a42d643e4a23fb27daeebe17da92199f: Bug 1331755: Refactor handling of accessibility focus in the URL bar so focus never moves to suggestions while the user is editing. r=Gijs,MarcoZ
James Teh <jteh@mozilla.com> - Tue, 18 Sep 2018 05:10:35 +0000 - rev 485331
Push 241 by fmarier@mozilla.com at Mon, 24 Sep 2018 21:48:02 +0000
Bug 1331755: Refactor handling of accessibility focus in the URL bar so focus never moves to suggestions while the user is editing. r=Gijs,MarcoZ When the user is editing the text in the URL bar (typing, backspace, etc.), the first suggestion is always selected. Because accessibility clients require autocomplete items to be "focused", the code needs to differentiate between explicit selection (e.g. via down/up arrow) and auto selection (e.g. when typing). Otherwise, the focus continually moves away from the text box while the user is typing, as was previously occurring. This makes it very difficult for the user to edit text, particularly backspace/delete. There was a previous attempt to handle this, but it was somewhat fragile and broke completely some time ago. Now, rather than trying to handle this based on autocomplete events, it is handled in the input and key press events. For input events, accessibility focus is forced back to the text box and further accessibility focus events are suppressed. For down arrow, up arrow, etc. key presses, accessibility focus events for suggestions are enabled. This makes it easier to understand and predict the user experience, rather than relying on underlying autocomplete implementation details. This is tested using an accessibility browser test, which makes it easier to make assertions about accessibility focus. This also means that if the underlying implementation details change (e.g. HTML + aria-activedescendant instead of XUL + DOMMenuItemActive events), this test should still be valid and allow us to catch regressions. Differential Revision: https://phabricator.services.mozilla.com/D5987
e67f28fac303774e424dee53737744f3fb2bf77e: Bug 1487304: Add more labels/descriptions in Privacy preferences for accessibility. r=johannh,MarcoZ
James Teh <jteh@mozilla.com> - Fri, 31 Aug 2018 07:57:57 +0000 - rev 482617
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1487304: Add more labels/descriptions in Privacy preferences for accessibility. r=johannh,MarcoZ This allows screen reader users to determine the context of various controls when tabbing through them. Specific changes: 1. Describe the "Cookies and Site Data" group using the disk space indicator; e.g. "Your stored cookies, site data and cache are currently using 315 MB of disk space." 2. Associate the description for the "Content Blocking" group; i.e. "Block third-party content, like ads or code..." 3. Correct association of the label for the "Do Not Track" setting; i.e. 'Send websites a “Do Not Track” signal that you don’t want to be tracked' 4. Associate the label for the "Permissions" group. 5. Make each permission a labelled group so the user knows what the various "Settings…" buttons are for. 6. Associate the label for the "Data Collection and Use" group. Differential Revision: https://phabricator.services.mozilla.com/D4638
179fc264c8643d1f8770ef2b2e861abf56a5287e: Bug 1480060: Support aria-multiselectable on role tablist. r=MarcoZ
James Teh <jteh@mozilla.com> - Mon, 13 Aug 2018 06:28:35 +0000 - rev 479479
Push 220 by fmarier@mozilla.com at Mon, 13 Aug 2018 20:22:19 +0000
Bug 1480060: Support aria-multiselectable on role tablist. r=MarcoZ Differential Revision: https://phabricator.services.mozilla.com/D3076
b6c8ed7e23e393ac9dc6873ba0efecd52cf9cad0: Bug 903187: Map HTML ins/del to accessible roles. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 27 Jul 2018 16:40:50 +1000 - rev 477419
Push 211 by fmarier@mozilla.com at Wed, 01 Aug 2018 21:19:47 +0000
Bug 903187: Map HTML ins/del to accessible roles. r=MarcoZ IA2 now has IA2_ROLE_CONTENT_INSERTION/DELETION. Mac has AXInsert/DeleteStyleGroup subroles. We now create accessibles for these elements and expose the appropriate role. For ATK, there is no specific role for these, so we just use the generic ATK_ROLE_SECTION. MozReview-Commit-ID: 2khzRa7BQ6z
84450fef88b2fa9c6696bf26cc5c211a0ce98b97: Bug 1478568 part 2: Map BLOCKQUOTE role to IA2_ROLE_BLOCK_QUOTE. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 27 Jul 2018 10:30:25 +1000 - rev 476980
Push 211 by fmarier@mozilla.com at Wed, 01 Aug 2018 21:19:47 +0000
Bug 1478568 part 2: Map BLOCKQUOTE role to IA2_ROLE_BLOCK_QUOTE. r=MarcoZ MozReview-Commit-ID: KxGnO0R1dRJ
08dc38b9377252d2b10caea1c10971f6fbe25908: Bug 1478568 part 1: Update IAccessible2 so we can use new roles (IA2_ROLE_BLOCK_QUOTE, etc.). r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 27 Jul 2018 10:27:44 +1000 - rev 476979
Push 211 by fmarier@mozilla.com at Wed, 01 Aug 2018 21:19:47 +0000
Bug 1478568 part 1: Update IAccessible2 so we can use new roles (IA2_ROLE_BLOCK_QUOTE, etc.). r=MarcoZ MozReview-Commit-ID: GctgcmwrzMc
ab79c47390b5f8e508353093ed77b90b7e6fcce3: Bug 1476347: Fix accessibility for HTML dt/dd with a div as its parent. r=MarcoZ
James Teh <jteh@mozilla.com> - Wed, 18 Jul 2018 20:13:01 +1000 - rev 475711
Push 204 by fmarier@mozilla.com at Wed, 25 Jul 2018 00:48:09 +0000
Bug 1476347: Fix accessibility for HTML dt/dd with a div as its parent. r=MarcoZ It is conforming in HTML to use a div to group dt/dd elements. Previously, we didn't create an accessible for dt/dd elements in this case. MozReview-Commit-ID: 8GDDxU3RbLd
254564563107faac0f16dd48fa6927ddbfac955c: Bug 1475376: Support aria-valuetext for implicit ARIA roles. r=MarcoZ
James Teh <jteh@mozilla.com> - Thu, 12 Jul 2018 20:22:09 -0400 - rev 474733
Push 204 by fmarier@mozilla.com at Wed, 25 Jul 2018 00:48:09 +0000
Bug 1475376: Support aria-valuetext for implicit ARIA roles. r=MarcoZ For example, <input type="range"> maps to role="slider", so aria-valuetext should be supported. MozReview-Commit-ID: IYBVTHP3ZLo
cbf89941ccff2dde578bb11be34aec1a1b902b1f: Bug 1474814: Invalidate the AccessibleHandler cache on focus events. r=MarcoZ
James Teh <jteh@mozilla.com> - Wed, 11 Jul 2018 16:26:19 +1000 - rev 474475
Push 204 by fmarier@mozilla.com at Wed, 25 Jul 2018 00:48:09 +0000
Bug 1474814: Invalidate the AccessibleHandler cache on focus events. r=MarcoZ We don't fire a state change for the focused state, since that would be redundant given that we fire a focus event. However, that also means the handler cache previously didn't get invalidated when there was a focus change without any other update. That resulted in stale focused states, which could mean an object was exposed as focused when it wasn't. Invalidating the cache for focus events ensures the focused state is always up to date. MozReview-Commit-ID: DZTJMbiTwgt
7f496f2f11ef8fccba876b2a307bbf8f4f6e77e1: Bug 1473453 - Part 1: a11y: assert `hitregion` property is always null or true. r=MarcoZ
Chris Peterson <cpeterson@mozilla.com> - Wed, 04 Jul 2018 14:39:57 -0700 - rev 474403
Push 204 by fmarier@mozilla.com at Wed, 25 Jul 2018 00:48:09 +0000
Bug 1473453 - Part 1: a11y: assert `hitregion` property is always null or true. r=MarcoZ Fix clang-tidy warning about bool pointers: [misc-bool-pointer-implicit-conversion] accessible/generic/Accessible.cpp:644:9: warning: dubious check of 'bool *' against 'nullptr', did you mean to dereference it? The `hitregion` property is always null or points to a true bool, set here: https://searchfox.org/mozilla-central/rev/6ef785903fee6c0b16a1eab79d722373d940fd78/dom/canvas/CanvasRenderingContext2D.cpp#3936-3937 The `hitregion` property used to be an nsRect pointer: https://searchfox.org/mozilla-central/diff/c797577640f306df87e8c32313c5b826d1e58a9b/accessible/src/generic/Accessible.cpp#928 MozReview-Commit-ID: HYlAnMyaitB
4fd60abd9726046598d302b473106f7df33e66f1: Bug 468497: Inform the accessibility FocusManager when a XUL tree's view changes. r=MarcoZ
James Teh <jteh@mozilla.com> - Thu, 05 Jul 2018 16:33:24 +1000 - rev 473533
Push 201 by fmarier@mozilla.com at Sat, 07 Jul 2018 02:45:18 +0000
Bug 468497: Inform the accessibility FocusManager when a XUL tree's view changes. r=MarcoZ Without this, accessibility clients don't get notified about the newly focused item. For example, this meant that nothing was reported by screen readers when switching tabs in Thunderbird with control+tab. MozReview-Commit-ID: F7vqvLXzeJR
50a6c79860000396a9d1378687e150310ae96eb4: Bug 1460244 - Tables with CSS display properties no longer participate in layout table calculation, r=marcoz
Alexander Surkov <surkov.alexander@gmail.com> - Fri, 25 May 2018 10:55:52 -0400 - rev 468083
Push 182 by fmarier@mozilla.com at Wed, 30 May 2018 01:07:46 +0000
Bug 1460244 - Tables with CSS display properties no longer participate in layout table calculation, r=marcoz
cb4152d2175e9ada6736224067b322a785e106c8: Bug 1462238: Extend/clarify expiry of accessibility instantiator/consumers telemetry. r=MarcoZ data-review=francois
James Teh <jteh@mozilla.com> - Thu, 17 May 2018 16:55:03 +1000 - rev 466958
Push 179 by fmarier@mozilla.com at Fri, 25 May 2018 23:33:48 +0000
Bug 1462238: Extend/clarify expiry of accessibility instantiator/consumers telemetry. r=MarcoZ data-review=francois 1. Set A11Y_INSTANTIATORS to never expire. 2. A11Y_CONSUMERS was already set to never expire, but only because expiry was never explicitly declared (when this was allowed). Explicitly set it as never expiring now. This also means it can be removed from the associated whitelist. 3. Change the email for both so it gets to the team and me (since policy requires a responsible person and that's me now for these). MozReview-Commit-ID: BgjMoVnVp6U
c199ef8f320762d7fcbec18bd68f0aecc5c22c1b: Bug 1455357 - Setting grid item to display:contents resets its accessible role, patch=surkov,jamie, r=marcoz
Alexander Surkov <surkov.alexander@gmail.com> - Tue, 15 May 2018 09:44:21 -0400 - rev 466475
Push 179 by fmarier@mozilla.com at Fri, 25 May 2018 23:33:48 +0000
Bug 1455357 - Setting grid item to display:contents resets its accessible role, patch=surkov,jamie, r=marcoz
821855807c5b55884306ffe17c8b1e26e5d876eb: Bug 1453873 - Stop firing accessible focus events for JAWS when combo box options are selected. r=MarcoZ, a=jcristau
James Teh <jteh@mozilla.com> - Fri, 13 Apr 2018 14:14:50 +1000 - rev 465253
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1453873 - Stop firing accessible focus events for JAWS when combo box options are selected. r=MarcoZ, a=jcristau These events were a hack implemented in bug 703198. At that time, JAWS required focus events for selection changes in a collapsed combo box. However, these events also fire for expanded combo boxes. This is problematic with e10s because now, for an expanded combo box, the real focus events come from the XUL dropdown implemented in the parent process, which is not associated with the document a11y tree in any way. JAWS seems to cope just fine with value changes for Firefox combo boxes now and VFO have agreed that this is the correct path forward. MozReview-Commit-ID: Iefop25bFe0
c0ae9d98922d58dd629644966a67b35f30e35bda: Bug 1451673 - "Crash in mozilla::a11y::HTMLTableAccessible::IsProbablyLayoutTable" r=MarcoZ a=jcristau
alexander :surkov <surkov.alexander@gmail.com> - Thu, 05 Apr 2018 10:24:00 +0300 - rev 465149
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1451673 - "Crash in mozilla::a11y::HTMLTableAccessible::IsProbablyLayoutTable" r=MarcoZ a=jcristau
880bdfaff98ec3098a2fd2ea50c29c52b540ee53: Bug 1448091 - Part 2: AccessibleHandler: Don't repeatedly and unnecessarily refresh the cache after the first change. r=MarcoZ, a=jcristau
James Teh <jteh@mozilla.com> - Fri, 23 Mar 2018 11:53:01 -0400 - rev 464819
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1448091 - Part 2: AccessibleHandler: Don't repeatedly and unnecessarily refresh the cache after the first change. r=MarcoZ, a=jcristau The singleton AccessibleHandlerControl maintains a global cache generation counter which is incremented whenever any node is changed. The handler for each node tracks the cache generation at the time its cache was initialized. To check whether the cache needs to be updated, the handler compares its generation against the global generation from AccessibleHandlerControl. If they differ, it refreshes the cache. Previously, the handler didn't update its cache generation after refreshing. This meant that every single query after the first change would refresh the whole cache, even if there wasn't a second change. This resulted in a huge number of wasted cache updates for clients such as JAWS which hold onto accessibles, rather than releasing them and fetching them again for each update. MozReview-Commit-ID: 80d4n1cIjzQ
50c5d93932ca95a27cb9ddb5d9af37dc0c0d0ce1: Bug 1448091 - Part 1: Accessible HandlerProvider: Return an error if refreshing the cache fails. r=MarcoZ, a=jcristau
James Teh <jteh@mozilla.com> - Fri, 23 Mar 2018 11:44:05 -0400 - rev 464818
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1448091 - Part 1: Accessible HandlerProvider: Return an error if refreshing the cache fails. r=MarcoZ, a=jcristau BuildDynamicIA2Data can't return an HRESULT; failure is communicated by the fact that the unique id in the data is set to 0. However, IGeckoBackChannel::Refresh returned S_OK even if BuildDynamicIA2Data failed. We now check the unique id and return an appropriate error code if it's 0. Among other things, this means that the handler will return an error when querying dead objects instead of returning stale cache data. MozReview-Commit-ID: IorDRHCItD8
983fc859d6ac5e2aff690ec746b392eb17936386: Bug 1431256 correction: AccessibleHandler: Really return E_NOINTERFACE for IEnumVARIANT if there are no children. r=MarcoZ a=jcristau
James Teh <jteh@mozilla.com> - Thu, 22 Mar 2018 17:57:34 -0400 - rev 464806
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431256 correction: AccessibleHandler: Really return E_NOINTERFACE for IEnumVARIANT if there are no children. r=MarcoZ a=jcristau A typo meant we were checking the address of mChildCount, not the value. MozReview-Commit-ID: 7Hit3FBy9pr
57eb2c7e72d966b03f4eea6d9214fb8c83ef4f01: Bug 1431256 part 4: Remove IEnumVARIANT from the AccessibleHandler payload. r=MarcoZ a=jcristau
James Teh <jteh@mozilla.com> - Fri, 19 Jan 2018 11:40:42 +1000 - rev 464805
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431256 part 4: Remove IEnumVARIANT from the AccessibleHandler payload. r=MarcoZ a=jcristau Now that the handler implements IEnumVARIANT itself (and uses our own internal method to retrieve the children), caching this remote interface is pointless. MozReview-Commit-ID: FyagiEcHMP2
df06bf127293c21f69e464bf4684ee0256459f52: Bug 1431256 part 3: AccessibleHandler: When a client requests children, fetch them optimally using a single cross-process call. r=MarcoZ a=jcristau
James Teh <jteh@mozilla.com> - Wed, 21 Mar 2018 11:03:45 -0400 - rev 464804
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431256 part 3: AccessibleHandler: When a client requests children, fetch them optimally using a single cross-process call. r=MarcoZ a=jcristau This implements IEnumVARIANT locally using the new method provided by HandlerProvider. This avoids marshaling full objects for text leaf accessibles (instead using HandlerTextLeaf), which is much faster. It also avoids a pointless cross-process call to IEnumVARIANT::Reset (and possibly IEnumVARIANT::Clone). Finally, it caches children after the first query so that clients (such as UI Automation) which walk children one by one don't incur separate cross-process calls for every child. MozReview-Commit-ID: KUIXQoXxInQ
c0512d8cd20fba291b1777561e75863206152a3d: Bug 1431256 part 2: AccessibleHandler: Implementation of IAccessible2 for text leaf accessibles using data provided in AccChildData. r=MarcoZ a=jcristau
James Teh <jteh@mozilla.com> - Wed, 21 Mar 2018 10:56:11 -0400 - rev 464803
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431256 part 2: AccessibleHandler: Implementation of IAccessible2 for text leaf accessibles using data provided in AccChildData. r=MarcoZ a=jcristau For text leaf accessibles, the HandlerProvider::AllChildren property provides text and other necessary information in an AccChildData struct, rather than providing the full accessible object. Therefore, we must provide a specific local implementation of IAccessible2 which answers queries based on the data provided in this struct. MozReview-Commit-ID: 8BYMF59EoTe
b319326019dff8a3c5600ad625acbf12e69e8a83: Bug 1431256 part 1: Accessible HandlerProvider: Implement a method to optimally retrieve all children in a single call. r=MarcoZ a=jcristau
James Teh <jteh@mozilla.com> - Wed, 21 Mar 2018 10:08:53 -0400 - rev 464802
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431256 part 1: Accessible HandlerProvider: Implement a method to optimally retrieve all children in a single call. r=MarcoZ a=jcristau When considering a large document, a huge number of the children we return are text leaf nodes. Marshaling full objects is expensive, but for text leaf nodes, the client is only interested in the text and a few other pieces of information. Therefore, rather than returning the full object for text leaf accessibles, we just return the text and other necessary information. For other non-text children, we return the full object as usual. In addition, clients normally use the IEnumVARIANT interface to retrieve children in a single call. However, it doesn't allow you to specify a starting index. Therefore, you must first call the Reset method to reset the starting point to 0. Practically, this means an extra cross-process call whenever the caller fetches children. When dealing with a large document, this can be a significant number of wasted calls. This new method retrieves all children always starting at the first using a single call. MozReview-Commit-ID: A9lc7BBTWdb
6f99bde986e07b6606f172483ce0e1384fd22bd9: Bug 1431264 part 3: AccessibleHandler: If a client wants to query all relations, fetch as much info as possible in a single cross-process call. r=MarcoZ a=ritu
James Teh <jteh@mozilla.com> - Fri, 02 Feb 2018 09:38:51 +1000 - rev 464125
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431264 part 3: AccessibleHandler: If a client wants to query all relations, fetch as much info as possible in a single cross-process call. r=MarcoZ a=ritu If a client calls IAccessible2::nRelations, it's likely that it will next call IAccessible2::relations to query each relation. Furthermore, it's likely the client will call relationType and nTargets on each relation. Therefore, fetch all of this info when nRelations is called. The number of relations is immediately returned to the client. The rest of the info is cached and returned to the client when the appropriate methods are called. The info is only cached for one call; i.e. after the client calls relations once, the cache is dropped. This makes memory management simpler and lowers the risk of cache invalidation problems. MozReview-Commit-ID: IBoJbu42osG
617e767b8af15c1d81f1f512193c76747837c62f: Bug 1431264 part 2: AccessibleHandler: Local implementation of IAccessibleRelation using data provided in IARelationData. r=MarcoZ a=ritu
James Teh <jteh@mozilla.com> - Fri, 02 Feb 2018 09:35:16 +1000 - rev 464124
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431264 part 2: AccessibleHandler: Local implementation of IAccessibleRelation using data provided in IARelationData. r=MarcoZ a=ritu The HandlerProvider::RelationsInfo method provides the type and number of targets for each relation in an IARelationData struct. This local implementaition of IAccessibleRelation is constructed with an IARelationData struct and serves a single relation. It uses the data from the struct to answer queries, except for actual targets. For targets, it makes a remote call to IA2_2::relationTargetsOfType to answer the query. We use relationTargetsOfType instead of IARelation::targets because marshaling so many IARelation pointers is a major bottleneck. MozReview-Commit-ID: Dva00FhoSbx
e2ec2a10573d21fd773c9845b24d95081fcf195c: Bug 1431264 part 1: Accessible HandlerProvider: Implement a method to retrieve info for all relations in a single call. r=MarcoZ a=ritu
James Teh <jteh@mozilla.com> - Fri, 02 Feb 2018 09:16:17 +1000 - rev 464123
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1431264 part 1: Accessible HandlerProvider: Implement a method to retrieve info for all relations in a single call. r=MarcoZ a=ritu IAccessible2::relations allows you to fetch IAccessibleRelation objects for all relations. However, you must first call IAccessible2::nRelations to get the number of relations. In addition, getting the type and number of targets for each relation requires additional calls. This new method allows all of this to be retrieved in a single cross-process call. MozReview-Commit-ID: 3zEIjxEyMP5
143546f96bc440dad090e47a47b2cb9bd44133c8: Bug 1422201: Only handle remote ids passed to IAccessible::accChild on the root accessible. r=MarcoZ a=gchang
James Teh <jteh@mozilla.com> - Mon, 04 Dec 2017 15:32:56 +1000 - rev 463169
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1422201: Only handle remote ids passed to IAccessible::accChild on the root accessible. r=MarcoZ a=gchang Previously, we could return remote accessibles which weren't actually descendants of the accessible on which accChild was called. For example, calling accChild on a local document with the id of a remote document would happily return the remote accessible. This confused clients such as NVDA which use accChild to check whether something is a descendant of a document. MozReview-Commit-ID: 8mJ4m6RC3r2
ad61044a4ba8ce0077c8ad6a415a0555fd8fac7c: Bug 1417327 part 3: Accessible handler: Fix cache for IAccessible::accDefaultAction and use it for IAccessibleAction::name(0). r=MarcoZ a=gchang
James Teh <jteh@mozilla.com> - Thu, 16 Nov 2017 16:51:28 +1000 - rev 462899
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1417327 part 3: Accessible handler: Fix cache for IAccessible::accDefaultAction and use it for IAccessibleAction::name(0). r=MarcoZ a=gchang 1. Bug 1363595 added support for retrieving accDefaultAction from the cache, but the value was never cached in the first place. This would have meant that accDefaultAction was returning nothing to clients. 2. Since accDefaultAction is the name of the first action, we can also use this cached value for IAccessibleAction::name for index 0. MozReview-Commit-ID: 6PGRH45kKdB
5b467b5636efa46906af107b824ecfb4787cc971: Bug 1417327 part 2: Accessible handler: Cache IAccessibleTableCell row/column indexes/extents. r=MarcoZ a=gchang
James Teh <jteh@mozilla.com> - Thu, 16 Nov 2017 11:47:28 +1000 - rev 462898
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1417327 part 2: Accessible handler: Cache IAccessibleTableCell row/column indexes/extents. r=MarcoZ a=gchang MozReview-Commit-ID: 8hMzyJZ5zFI
403ec09d449e557972cf017f4f094e76e7009c95: Bug 1417327 part 1: Accessible handler: Cache IAccessibleAction::nActions. r=MarcoZ a=gchang
James Teh <jteh@mozilla.com> - Wed, 15 Nov 2017 17:27:05 +1000 - rev 462897
Push 177 by fmarier@mozilla.com at Thu, 24 May 2018 16:58:35 +0000
Bug 1417327 part 1: Accessible handler: Cache IAccessibleAction::nActions. r=MarcoZ a=gchang MozReview-Commit-ID: EJIhSxSiQGq
1abaa57e467e72e566b4f74485ba10322bde6921: Bug 1005271 - HTML table with display:block should expose table semantics, r=marcoz
Alexander Surkov <surkov.alexander@gmail.com> - Tue, 08 May 2018 13:13:38 -0400 - rev 462350
Push 166 by fmarier@mozilla.com at Thu, 10 May 2018 00:43:18 +0000
Bug 1005271 - HTML table with display:block should expose table semantics, r=marcoz
c3296237754d22e87755b3f9c4d75bb0e18eb95f: Bug 1453979 - use ContiguousEnumSerializerInclusive for serializing enums in a11y IPC code; r=MarcoZ
Alex Gaynor <agaynor@mozilla.com> - Fri, 13 Apr 2018 10:51:43 -0400 - rev 458962
Push 159 by fmarier@mozilla.com at Thu, 19 Apr 2018 00:14:50 +0000
Bug 1453979 - use ContiguousEnumSerializerInclusive for serializing enums in a11y IPC code; r=MarcoZ MozReview-Commit-ID: 92S42SkSEEP
99c2396a4c8767d152e437299664d0e15c3d8e35: Bug 1453979 - use ContiguousEnumSerializerInclusive for serializing enums in a11y IPC code; r=MarcoZ
Alex Gaynor <agaynor@mozilla.com> - Fri, 13 Apr 2018 10:51:43 -0400 - rev 458906
Push 159 by fmarier@mozilla.com at Thu, 19 Apr 2018 00:14:50 +0000
Bug 1453979 - use ContiguousEnumSerializerInclusive for serializing enums in a11y IPC code; r=MarcoZ MozReview-Commit-ID: 92S42SkSEEP
ad1a87f7ffa532f18f6ced9f93a2f51c790f1b35: Bug 1453873: Stop firing accessible focus events for JAWS when combo box options are selected. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 13 Apr 2018 14:14:50 +1000 - rev 458099
Push 159 by fmarier@mozilla.com at Thu, 19 Apr 2018 00:14:50 +0000
Bug 1453873: Stop firing accessible focus events for JAWS when combo box options are selected. r=MarcoZ These events were a hack implemented in bug 703198. At that time, JAWS required focus events for selection changes in a collapsed combo box. However, these events also fire for expanded combo boxes. This is problematic with e10s because now, for an expanded combo box, the real focus events come from the XUL dropdown implemented in the parent process, which is not associated with the document a11y tree in any way. JAWS seems to cope just fine with value changes for Firefox combo boxes now and VFO have agreed that this is the correct path forward. MozReview-Commit-ID: Iefop25bFe0
5a6db1121fcede3d0844ec1be195ab7858cd1e19: Bug 1451673 - "Crash in mozilla::a11y::HTMLTableAccessible::IsProbablyLayoutTable" r=MarcoZ
alexander :surkov <surkov.alexander@gmail.com> - Thu, 05 Apr 2018 10:24:00 +0300 - rev 457037
Push 153 by fmarier@mozilla.com at Tue, 10 Apr 2018 02:28:40 +0000
Bug 1451673 - "Crash in mozilla::a11y::HTMLTableAccessible::IsProbablyLayoutTable" r=MarcoZ
a61e917f9406110b7d84ccc01416fda61c8bf4d0: Bug 1448091 part 2: AccessibleHandler: Don't repeatedly and unnecessarily refresh the cache after the first change. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 23 Mar 2018 11:53:01 -0400 - rev 454678
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1448091 part 2: AccessibleHandler: Don't repeatedly and unnecessarily refresh the cache after the first change. r=MarcoZ The singleton AccessibleHandlerControl maintains a global cache generation counter which is incremented whenever any node is changed. The handler for each node tracks the cache generation at the time its cache was initialized. To check whether the cache needs to be updated, the handler compares its generation against the global generation from AccessibleHandlerControl. If they differ, it refreshes the cache. Previously, the handler didn't update its cache generation after refreshing. This meant that every single query after the first change would refresh the whole cache, even if there wasn't a second change. This resulted in a huge number of wasted cache updates for clients such as JAWS which hold onto accessibles, rather than releasing them and fetching them again for each update. MozReview-Commit-ID: 80d4n1cIjzQ
702ffbc7ccd54d86913b43becf7a559da8b3f189: Bug 1448091 part 1: Accessible HandlerProvider: Return an error if refreshing the cache fails. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 23 Mar 2018 11:44:05 -0400 - rev 454677
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1448091 part 1: Accessible HandlerProvider: Return an error if refreshing the cache fails. r=MarcoZ BuildDynamicIA2Data can't return an HRESULT; failure is communicated by the fact that the unique id in the data is set to 0. However, IGeckoBackChannel::Refresh returned S_OK even if BuildDynamicIA2Data failed. We now check the unique id and return an appropriate error code if it's 0. Among other things, this means that the handler will return an error when querying dead objects instead of returning stale cache data. MozReview-Commit-ID: IorDRHCItD8
aa06fb8316c272ecf735aecb59673544d6423631: Bug 1431256 correction: AccessibleHandler: Really return E_NOINTERFACE for IEnumVARIANT if there are no children. r=MarcoZ
James Teh <jteh@mozilla.com> - Thu, 22 Mar 2018 17:57:34 -0400 - rev 454556
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1431256 correction: AccessibleHandler: Really return E_NOINTERFACE for IEnumVARIANT if there are no children. r=MarcoZ A typo meant we were checking the address of mChildCount, not the value. MozReview-Commit-ID: 7Hit3FBy9pr
8f68422b3307dc910732da8f07ceb9accbc74873: Bug 1431256 part 4: Remove IEnumVARIANT from the AccessibleHandler payload. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 19 Jan 2018 11:40:42 +1000 - rev 454526
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1431256 part 4: Remove IEnumVARIANT from the AccessibleHandler payload. r=MarcoZ Now that the handler implements IEnumVARIANT itself (and uses our own internal method to retrieve the children), caching this remote interface is pointless. MozReview-Commit-ID: FyagiEcHMP2
7e3ec61fa95274530ca48fba49e263811c9f3d2b: Bug 1431256 part 3: AccessibleHandler: When a client requests children, fetch them optimally using a single cross-process call. r=MarcoZ
James Teh <jteh@mozilla.com> - Wed, 21 Mar 2018 11:03:45 -0400 - rev 454525
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1431256 part 3: AccessibleHandler: When a client requests children, fetch them optimally using a single cross-process call. r=MarcoZ This implements IEnumVARIANT locally using the new method provided by HandlerProvider. This avoids marshaling full objects for text leaf accessibles (instead using HandlerTextLeaf), which is much faster. It also avoids a pointless cross-process call to IEnumVARIANT::Reset (and possibly IEnumVARIANT::Clone). Finally, it caches children after the first query so that clients (such as UI Automation) which walk children one by one don't incur separate cross-process calls for every child. MozReview-Commit-ID: KUIXQoXxInQ
580a1123de819a3798a53c9c14516d438fcb1046: Bug 1431256 part 2: AccessibleHandler: Implementation of IAccessible2 for text leaf accessibles using data provided in AccChildData. r=MarcoZ
James Teh <jteh@mozilla.com> - Wed, 21 Mar 2018 10:56:11 -0400 - rev 454524
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1431256 part 2: AccessibleHandler: Implementation of IAccessible2 for text leaf accessibles using data provided in AccChildData. r=MarcoZ For text leaf accessibles, the HandlerProvider::AllChildren property provides text and other necessary information in an AccChildData struct, rather than providing the full accessible object. Therefore, we must provide a specific local implementation of IAccessible2 which answers queries based on the data provided in this struct. MozReview-Commit-ID: 8BYMF59EoTe
fc4b465ae5c1d8e9910c3e5815e3f4cb2f083637: Bug 1431256 part 1: Accessible HandlerProvider: Implement a method to optimally retrieve all children in a single call. r=MarcoZ
James Teh <jteh@mozilla.com> - Wed, 21 Mar 2018 10:08:53 -0400 - rev 454523
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1431256 part 1: Accessible HandlerProvider: Implement a method to optimally retrieve all children in a single call. r=MarcoZ When considering a large document, a huge number of the children we return are text leaf nodes. Marshaling full objects is expensive, but for text leaf nodes, the client is only interested in the text and a few other pieces of information. Therefore, rather than returning the full object for text leaf accessibles, we just return the text and other necessary information. For other non-text children, we return the full object as usual. In addition, clients normally use the IEnumVARIANT interface to retrieve children in a single call. However, it doesn't allow you to specify a starting index. Therefore, you must first call the Reset method to reset the starting point to 0. Practically, this means an extra cross-process call whenever the caller fetches children. When dealing with a large document, this can be a significant number of wasted calls. This new method retrieves all children always starting at the first using a single call. MozReview-Commit-ID: A9lc7BBTWdb
4811c426205d64975325c471f897ede03fba2757: Bug 1434822 part 3: On Windows, when a content Accessible shuts down, disconnect all associated remote clients. r=MarcoZ
James Teh <jteh@mozilla.com> - Thu, 22 Feb 2018 22:00:36 +1000 - rev 451786
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1434822 part 3: On Windows, when a content Accessible shuts down, disconnect all associated remote clients. r=MarcoZ To improve performance for cross-process COM, we disable COM garbage collection. However, this means we never receive Release calls from clients, so defunct accessibles can never be deleted. Since we know when an accessible is shutting down, we can work around this by forcing COM to disconnect this object from all of its remote clients, which will cause associated references to be released. MozReview-Commit-ID: 5sIuxnaRJWj
918b41fa66d95903a98dc7026122371fe41134a1: Bug 1434822 part 3: On Windows, when a content Accessible shuts down, disconnect all associated remote clients. r=MarcoZ
James Teh <jteh@mozilla.com> - Thu, 22 Feb 2018 22:00:36 +1000 - rev 450966
Push 148 by fmarier@mozilla.com at Thu, 29 Mar 2018 23:06:47 +0000
Bug 1434822 part 3: On Windows, when a content Accessible shuts down, disconnect all associated remote clients. r=MarcoZ To improve performance for cross-process COM, we disable COM garbage collection. However, this means we never receive Release calls from clients, so defunct accessibles can never be deleted. Since we know when an accessible is shutting down, we can work around this by forcing COM to disconnect this object from all of its remote clients, which will cause associated references to be released. MozReview-Commit-ID: 5sIuxnaRJWj
ec4ad0ab47e961504afd7c9ac201826fcae7e851: Bug 1437417 part 2: Don't block accessibility instantiation for newer RealPlayer builds with accessibility performance fixes. r=MarcoZ
James Teh <jteh@mozilla.com> - Tue, 13 Feb 2018 16:50:23 +1000 - rev 449517
Push 146 by fmarier@mozilla.com at Fri, 02 Mar 2018 02:16:17 +0000
Bug 1437417 part 2: Don't block accessibility instantiation for newer RealPlayer builds with accessibility performance fixes. r=MarcoZ RealPlayer's use of accessibility was blocked in bug 1418535 due to severe performance problems caused by its use of accessibility. This is fixed in newer builds, so we want to allow those while still blocking older builds. MozReview-Commit-ID: 5XlY4IM5qHf
799a9c8323feda6667264e041f6ea6fb0e083fff: Bug 1437417 part 1: a11y: Fix some issues in IsModuleVersionLessThan and make it reusable. r=MarcoZ
James Teh <jteh@mozilla.com> - Tue, 13 Feb 2018 16:48:16 +1000 - rev 449516
Push 146 by fmarier@mozilla.com at Fri, 02 Mar 2018 02:16:17 +0000
Bug 1437417 part 1: a11y: Fix some issues in IsModuleVersionLessThan and make it reusable. r=MarcoZ 1. Move IsModuleVersionLessThan into the Compatibility class and export it in the header file. 2. The function previously referred to the third component of the version as the minor version; i.e. it was testing major.bbbb.minor.dddd. This is incorrect and might confuse people using this in future code. The minor version is the second component; i.e. major.minor.cccc.dddd. cccc and dddd are often named build and revision, but the naming here is less consistent. 3. Rather than accepting separate version components, the function now accepts a single 64 bit value. This makes comparison easier and also allows for comparison against magic values in other code; e.g. a value meaning "all versions". This value can be created from separate components using the MAKE_FILE_VERSION macro. 4. Previously, it was assumed that a dll path could not be longer than MAX_PATH, but it can actually be longer. The function now handles this. 5. The function previously didn't do any error checking, which could have led to null pointer dereferences and possibly other pain. This was fine when it was only being used for JAWS, which we know always has version info, but this could be problematic for other callers. We return true if there is a failure, assuming that no version info implies an earlier version. 6. The code now uses smart pointers instead of raw pointers, making memory management simpler. 7. Updated the JAWS version check accordingly. MozReview-Commit-ID: 9Y6gUQSX0P5
1564fec091b4cccc4b2fd652132e8c9dcdbbdb91: Bug 1433891 - ARIA documents should be easily distinguishable from native ones r=marcoz
Joanmarie Diggs <jdiggs@igalia.com> - Tue, 06 Feb 2018 12:13:00 +0200 - rev 447291
Push 135 by fmarier@mozilla.com at Sat, 10 Feb 2018 02:56:15 +0000
Bug 1433891 - ARIA documents should be easily distinguishable from native ones r=marcoz Gecko has two document roles: roles::DOCUMENT_FRAME and roles::DOCUMENT. However, the former was not being used at all; the latter was being used for both ARIA documents and for the native document container. We can therefore fix this issue by repurposing the unused internal role: * Rename the role from roles::DOCUMENT_FRAME to roles::NON_NATIVE_DOCUMENT, and add clarification to the doc strings in Role.h * Ensure load events are still emitted for ARIA documents (bug 759833) * Update the ARIA-document mochitests to reflect the above changes * Change the ATK role mapping for roles::DOCUMENT (the native container) from ATK_ROLE_DOCUMENT_FRAME TO ATK_ROLE_DOCUMENT_WEB. * On IAccessible2, map roles::NON_NATIVE_DOCUMENT to ROLE_SYSTEM_DOCUMENT. This should cause there to be no change in behavior for that platform. * On macOS map roles::NON_NATIVE_DOCUMENT to NSAccessibilityGroupRole with a subrole of AXDocument.
7fe5e2760a88dcfc14d640b4aa5a95e1da4cc0a1: Bug 1431264 part 3: AccessibleHandler: If a client wants to query all relations, fetch as much info as possible in a single cross-process call. r=MarcoZ
James Teh <jteh@mozilla.com> - Fri, 02 Feb 2018 09:38:51 +1000 - rev 446753
Push 128 by fmarier@mozilla.com at Fri, 02 Feb 2018 22:40:15 +0000
Bug 1431264 part 3: AccessibleHandler: If a client wants to query all relations, fetch as much info as possible in a single cross-process call. r=MarcoZ If a client calls IAccessible2::nRelations, it's likely that it will next call IAccessible2::relations to query each relation. Furthermore, it's likely the client will call relationType and nTargets on each relation. Therefore, fetch all of this info when nRelations is called. The number of relations is immediately returned to the client. The rest of the info is cached and returned to the client when the appropriate methods are called. The info is only cached for one call; i.e. after the client calls relations once, the cache is dropped. This makes memory management simpler and lowers the risk of cache invalidation problems. MozReview-Commit-ID: IBoJbu42osG