Граф коммитов

520 Коммитов

Автор SHA1 Сообщение Дата
Masayuki Nakano d8d0bcab65 Bug 1543013 - part 2: Make accessible use mozilla::PresShell directly rather than via nsIPresShell r=Jamie
This patch makes accessible module use `mozilla::PresShell` directly rather
than via `nsIPresShell`.  Additionally, renames `DocAccessible::PresShell()`
to `DocAccessible::PresShellPtr()` for avoiding conflict with using
`PresShell` in it and its sub classes.

Differential Revision: https://phabricator.services.mozilla.com/D26663

--HG--
extra : moz-landing-system : lando
2019-04-13 12:13:15 +00:00
Masayuki Nakano 09fd54444c Bug 1543013 - part 1: Mark some methods of nsCoreUtils as MOZ_CAN_RUN_SCRIPT r=Jamie
This patch marks some methods of nsCoreUtils which are found at writing the
following patches, as `MOZ_CAN_RUN_SCRIPT`.

Due to bug 1543294, some of them are marked as `MOZ_CAN_RUN_SCRIPT_BOUNDARY`
because `MOZ_CAN_RUN_SCRIPT` requires to change base class, but that's
other licenses header or used in our code too many places.

Differential Revision: https://phabricator.services.mozilla.com/D26926

--HG--
extra : moz-landing-system : lando
2019-04-13 12:13:13 +00:00
Mike Hommey b5706992db Bug 1537641 - Make MIDL use clang-cl as a preprocessor. r=dmajor
Using clang-cl as a preprocessor fails with:
```
In file included from z:\build\build\src\accessible\ipc\win\handler\HandlerData.idl:8:
z:\build\build\src\accessible\ipc\win\handler/AccessibleHandler.h(27,8): error: pasting formed 'Accessible2_3.', an invalid preprocessing token [-Winvalid-token-paste]
import NEWEST_IA2_IDL;
       ^
z:\build\build\src\accessible\ipc\win\handler/AccessibleHandler.h(15,24): note: expanded from macro 'NEWEST_IA2_IDL'
                       ^
z:\build\build\src\accessible\ipc\win\handler/AccessibleHandler.h(14,22): note: expanded from macro 'IDLFOR'
                     ^
z:\build\build\src\accessible\ipc\win\handler/AccessibleHandler.h(13,36): note: expanded from macro '__GENIDL'
                                   ^
1 error generated.
midl : command line error MIDL1003 : error returned by the C preprocessor (1)
```

There's only one place using the NEWEST_IA2_IDL and accompanying
macros, we can just avoid the issue altogether by expanding it manually
(and it's not like the macro buys much, the other arm of the __midl ifdef
has a #include "Accessible2_3.h" that doesn't use the macro either,
presumably for the same reason).

Differential Revision: https://phabricator.services.mozilla.com/D24868

--HG--
extra : moz-landing-system : lando
2019-03-26 16:29:17 +00:00
Alex Gaynor 177fb00eba Bug 1375863 - fold MOZ_CONTENT_SANDBOX and MOZ_GMP_SANDBOX into MOZ_SANDBOX; r=jld,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D22975

--HG--
extra : moz-landing-system : lando
2019-03-18 22:31:59 +00:00
Eitan Isaacson 6d8e53ccd1 Bug 1479042 - Add Android announcement event plumbing. r=yzen
Depends on D21610

Differential Revision: https://phabricator.services.mozilla.com/D21611

--HG--
extra : moz-landing-system : lando
2019-03-05 19:36:05 +00:00
Boris Zbarsky 9a4ba73134 Bug 1534370 part 3. Mark InsertFromTransferable as MOZ_CAN_RUN_SCRIPT. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D23042

--HG--
extra : moz-landing-system : lando
2019-03-12 01:55:03 +00:00
Ryan Hunt 179b832433 Bug 1523969 part 1 - Move method definition inline comments to new line in accessible/. r=jamie
Differential Revision: https://phabricator.services.mozilla.com/D21101

--HG--
extra : rebase_source : 5b1dc394aba125c9f14977efc1a71b60455d1bf6
2019-02-25 16:02:26 -06:00
Eitan Isaacson bf64f6d78e Bug 1525470 - Include description in accessible hints. r=yzen
Differential Revision: https://phabricator.services.mozilla.com/D19870

--HG--
extra : moz-landing-system : lando
2019-02-21 17:45:17 +00:00
Dorel Luca 0c4863aaf0 Backed out changeset ac4f1b5527fd (bug 1525470) for failures in geckoview in org.mozilla.geckoview.test.AccessibilityTest.testCheckbox. CLOSED TREE 2019-02-20 02:53:14 +02:00
Eitan Isaacson 2ba937125b Bug 1525470 - Include description in accessible hints. r=yzen
Differential Revision: https://phabricator.services.mozilla.com/D19870

--HG--
extra : moz-landing-system : lando
2019-02-19 18:56:30 +00:00
Masatoshi Kimura e25fbce870 Bug 1528651 - Re-enable warnings-as-errors on Windows in some directories. r=dmajor
--HG--
extra : source : ba86ea25070b37f4725834e1c2d9ec4c0783e119
2019-02-17 15:03:02 +09:00
Eitan Isaacson 773b9d611a Bug 1525980 - Make announcement events work over IPC. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D19061

--HG--
extra : moz-landing-system : lando
2019-02-14 17:42:47 +00:00
Alexander Surkov 5d4b4d925d Bug 1448505 - ProxyAccessible::RelationByType fails to return early, r=jamie 2019-01-30 10:06:30 -05:00
Eitan Isaacson c8e72df146 Bug 1511398 - Don't append null proxies to batch list. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D17845

--HG--
extra : moz-landing-system : lando
2019-01-29 04:30:41 +00:00
Eitan Isaacson e18c6010be Bug 1520611 - Consolidate ProxyAccessible::MustPruneChildren into nsAccUtils. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D16997

--HG--
extra : moz-landing-system : lando
2019-01-24 00:23:30 +00:00
Dorel Luca 207c24c7d2 Backed out 3 changesets (bug 1520611) for Android gv-junit failures in org.mozilla.geckoview.test.AccessibilityTest.testTree
Backed out changeset 0a48519a9ad1 (bug 1520611)
Backed out changeset 1fea939a7e7c (bug 1520611)
Backed out changeset c9e244ccc88d (bug 1520611)

--HG--
extra : rebase_source : 448bfe14fbb8741251064da295e036a93a376145
2019-01-23 12:09:29 +02:00
Eitan Isaacson 112ac1fb11 Bug 1520611 - Consolidate ProxyAccessible::MustPruneChildren into nsAccUtils. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D16997

--HG--
extra : moz-landing-system : lando
2019-01-22 19:49:15 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
James Teh 487948a690 Bug 1514093 part 2: Marshal the result from IAccessible::get_accSelection as IEnumVARIANT. r=MarcoZ
Our accSelection implementation always returns an IUnknown which clients QI to IEnumVARIANT.
Marshaling as IUnknown works fine in this case, but it's more efficient and correct to marshal the correct interface.
Also, without this, we'd hit an assertion.

Depends on D16662

Differential Revision: https://phabricator.services.mozilla.com/D16663

--HG--
extra : moz-landing-system : lando
2019-01-16 08:13:20 +00:00
James Teh 27ee39f62b Bug 1514093 part 1: A11y HandlerProvider: Don't write any payload at all (even an empty one) if the handler isn't used for the target interface. r=aklotz
We only use the handler for specific interfaces such as IAccessible* and IAccessibleHyperlink.
For interfaces which don't use the handler, we currently write an empty payload, but this still adds bytes to the stream.
This seems to break marshaling such an interface in a VT_UNKNOWN in a VARIANT.
To fix this, just don't write any payload at all when we aren't using the handler for the target interface.

Differential Revision: https://phabricator.services.mozilla.com/D16662

--HG--
extra : moz-landing-system : lando
2019-01-16 08:08:05 +00:00
Eitan Isaacson 7c31734192 Bug 1519922 - Call ProxyEvent for scrolling events on non-Android. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D16484

--HG--
extra : moz-landing-system : lando
2019-01-14 23:46:57 +00:00
James Teh 850ee9ea2b Bug 1515294: Only use SendSyncTextChangeEvent for live regions. r=MarcoZ
In order to support IA2 live regions with e10s (bug 1322532), text change events sent from the child process to the parent process use sync IPC.
That comes at a slight performance cost: the content process is blocked until the parent returns from sending and handling the event.
However, there is no reason to do this if the event is not for an accessible inside a live region; current clients don't need the sync behaviour outside of live regions.

Differential Revision: https://phabricator.services.mozilla.com/D15183

--HG--
extra : source : 415f827cb9ce211c48b0c6625e917582bc81fd3a
2018-12-21 09:16:38 +00:00
Jacek Caban 8409db9e3c Bug 1430149 - Don't define INITGUID when not needed. r=aklotz
On mingw this causes IIDs to be defined in headers. Those definitions conflict with _i.c files that are included as well. Since we include _i.c anyway, INITGUID is simply not needed.
2018-12-25 18:49:39 +01:00
Jacek Caban 2957a4743d Bug 1430149 - widl compatibility fixes. r=aklotz
widl can't handle generating the typelib without explicit importlib() in this case. This should be fixed in widl as well, but using importlib() in this case looks right anyway.
2018-12-25 18:49:23 +01:00
arthur.iakab 70a4778dd8 Backed out changeset 415f827cb9ce (bug 1515294) on suspicion of causing content process hangs a=backout CLOSED TREE 2018-12-23 00:04:39 +02:00
James Teh f9cba89c57 Bug 1515294: Only use SendSyncTextChangeEvent for live regions. r=MarcoZ
In order to support IA2 live regions with e10s (bug 1322532), text change events sent from the child process to the parent process use sync IPC.
That comes at a slight performance cost: the content process is blocked until the parent returns from sending and handling the event.
However, there is no reason to do this if the event is not for an accessible inside a live region; current clients don't need the sync behaviour outside of live regions.

Differential Revision: https://phabricator.services.mozilla.com/D15183

--HG--
extra : moz-landing-system : lando
2018-12-21 09:16:38 +00:00
Eitan Isaacson 8e0b1240c1 Bug 1510791 - Add action count to BatchData and set isClickable correctly in Android. r=yzen
Differential Revision: https://phabricator.services.mozilla.com/D13320

--HG--
extra : moz-landing-system : lando
2018-12-05 15:37:24 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Marco Zehe ccd63db4b3 Bug 1508870 - Make a distinction between an empty returned string versus a null pointer, r=Jamie
When determining if an author provided an empty alt attribute versus no alt attribute at all, our image accessible name is either an empty string or a null string. Screen readers can then choose to guess the name from the source if the author did not explicitly provide an empty alt text and thus marked the image as decorative.

The accessible handler for the Windows remote processes did not account for this distinction, always returning what appeared to be an empty string. This was found while determining why NVDA wasn't guessing the SRC from a non-labelled graphical link. NVDA checks to see if the name returned by the link accessible is null, and then decides to look for the graphical children if that is the case.

Differential Revision: https://phabricator.services.mozilla.com/D12532

--HG--
extra : moz-landing-system : lando
2018-11-22 06:09:31 +00:00
Eitan Isaacson 970933ad81 Bug 1479039 - Extend BatchData struct and added focus path cache. r=yzen
Differential Revision: https://phabricator.services.mozilla.com/D11214

--HG--
extra : moz-landing-system : lando
2018-11-12 16:41:38 +00:00
Eitan Isaacson 3e98aa79f5 Bug 1479039 - Move PersistentPropertiesToArray to nsAccUtils. r=Jamie
In order to send send attributes in BatchData we will need to convert
them to an array. Here we factor out the private function that does that
and put it in nsAccUtils.

Differential Revision: https://phabricator.services.mozilla.com/D11211

--HG--
extra : moz-landing-system : lando
2018-11-12 16:41:31 +00:00
Eitan Isaacson 82efc98977 Bug 1502187 - Add Batch protocol to PDocAccessible. r=Jamie
This protocol is meant to be used by platform wrappers to push bulk data
to the chrome process.

Depends on D9689

Differential Revision: https://phabricator.services.mozilla.com/D9864

--HG--
extra : moz-landing-system : lando
2018-11-06 04:22:08 +00:00
Sylvestre Ledru dd5741407b Bug 1498586 - Add clang-format off to avoid the reformatting of the data structures r=Ehsan
Too hard/impossible for the tool to format correctly these structs

Differential Revision: https://phabricator.services.mozilla.com/D8569

--HG--
extra : moz-landing-system : lando
2018-10-12 20:48:24 +00:00
Eitan Isaacson fb79ae0fda Bug 1479037 - Assign a 32bit ID to each accessible, and make them retrievable from root 1/4. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D6681

--HG--
extra : moz-landing-system : lando
2018-10-11 16:20:54 +00:00
Dorel Luca 92a3152cee Backed out 4 changesets (bug 1479037) on dev's request for causing android crashes. a=backout
Backed out changeset 85f8ca59f747 (bug 1479037)
Backed out changeset 630601f0663e (bug 1479037)
Backed out changeset c926c6470235 (bug 1479037)
Backed out changeset f8a20bd86895 (bug 1479037)
2018-10-10 18:52:59 +03:00
Eitan Isaacson 98a32cc36b Bug 1479037 - Assign a 32bit ID to each accessible, and make them retrievable from root 1/4. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D6681

--HG--
extra : moz-landing-system : lando
2018-10-09 17:20:41 +00:00
Nicholas Nethercote 7de7b7aae3 Bug 1451169 - Change nsRoleMapEntry::roleAtom from `nsStaticAtom**` to `nsStaticAtom* const`. r=davidb
--HG--
extra : rebase_source : 3a7101328e9ffcb6adeef42c98afa26d0531ca1c
2018-04-03 10:55:33 +10:00
Masatoshi Kimura c4ef6c371c Bug 1493413 - Suppress warnings from MIDL generated files and re-enable warnings as errors on clang-cl in accessible/ipc/win/. r=aklotz
The compiler is not smart enough to infer that MOZ_RELEASE_ASSERT(false, ...)
will never return. Using MOZ_CRASH instead.

--HG--
extra : rebase_source : 0791f203592b4edf46a517d7945cf720a197d2da
extra : intermediate-source : 44c07680d016d5d72f77c92d968e647dd8d1b6b9
extra : source : 155877282932ab2678069c9d00672191c655e5b1
2018-07-20 19:53:49 +09:00
Ted Mielczarek de99592416 Bug 1399870 - make DEFFILE a Path instead of a string; r=gps
All but one of the current uses of DEFFILE use `SRCDIR + '/file.def'` to
get a srcdir-relative path anyway, and the other one wants an
objdir-relative path, so using Path makes everything clearer.

This makes it more straightforward to translate the paths for the WSL
build.
2018-09-18 15:50:19 -04:00
Eitan Isaacson 8a0557e2dd Bug 1479033 - Introduce Android accessibility directory. r=Jamie 2018-09-18 10:43:18 -07:00
Eitan Isaacson 76fcb09332 Bug 1491479 - Add event type to ProxyScrollingEvent. r=Jamie 2018-09-18 10:43:18 -07:00
Sylvestre Ledru aa37bde79b Bug 1489454 - Remove all trailing whitespaces (again) r=Ehsan
This also includes moving some files to the regular format.

Differential Revision: https://phabricator.services.mozilla.com/D5249

--HG--
extra : moz-landing-system : lando
2018-09-07 14:47:51 +00:00
Xidorn Quan 47b25bfcca Bug 1486329 - Fix some clang-cl warnings in accessible. r=eeejay
Specifically this fixes pessimizing-move warnings and some others.

Differential Revision: https://phabricator.services.mozilla.com/D4302

--HG--
extra : moz-landing-system : lando
2018-08-27 15:49:01 +00:00
Eitan Isaacson 57a25953a0 Bug 1483911 - Defer scrolling events until after ipc doc construction. r=Jamie 2018-08-20 15:51:00 +03:00
Eitan Isaacson 8d5dad89ed Bug 1479591 - Introduced accessibility scrolling event and interface. r=surkov 2018-08-15 13:07:00 -04:00
Cosmin Sabou c2b1fcd31c Backed out changeset dad95d849302 (bug 1479591) for causing linux debug leaks and security issues. 2018-08-15 04:39:43 +03:00
Eitan Isaacson 0f281891a2 Bug 1479591 - Introduced accessibility scrolling event and interface. r=surkov 2018-08-14 11:46:00 +03:00
Masatoshi Kimura 3b21b7868b Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj
--HG--
extra : rebase_source : c09366fb93e5b0f72abe1e99d3094e3d96a934fb
extra : intermediate-source : 5950c9d63c3b4fd63a25464a7b50944aaec7079f
extra : source : ca1b9a2bcc4381795f556fea2fb59066567c30f3
2018-07-31 22:10:07 +09:00
Brian Hackett 05a7f56ce7 Bug 1479585 - Use replayable IDs in PDocAccessible IPC, r=davidb.
--HG--
extra : rebase_source : 40e1b80174483e5bce3a76f5a82c5b4951a38e63
2018-08-02 17:30:17 +00:00
Cosmin Sabou de8c2bd891 Backed out changeset 5950c9d63c3b (bug 1090497) for build bustages on several files. CLOSED TREE 2018-08-02 19:59:53 +03:00
Masatoshi Kimura feea19030c Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj
--HG--
extra : rebase_source : a62521fdc66def4e4d5d7bf52e68365a786b5c55
extra : source : ca1b9a2bcc4381795f556fea2fb59066567c30f3
2018-07-31 22:10:07 +09:00
Eitan Isaacson 0df14aa6d7 Bug 1479530 - Swap newPosition with oldPosition in ProxyVirtualCursorChangeEvent. r=surkov
--HG--
extra : rebase_source : 79602da380d99dd32c49f1216f107e7c28dcc773
2018-07-30 11:41:00 +03:00
Masatoshi Kimura ee9d736001 Bug 1476948 - Suppress clang-cl warnings from the MIDL generated code in accessible/. r=froydnj
MozReview-Commit-ID: KttvrkWWRPB

--HG--
extra : rebase_source : ce96cd8e12bb53ecb1a1c7a5638bfe0e6fda2d09
2018-07-19 23:05:27 +09:00
Eitan Isaacson 3fa0f4108f Bug 1475087 - Include boundaryType in vc change event. r=surkov 2018-07-16 13:56:00 +03:00
Gurzau Raul 117e86643a Backed out changeset ed8baebfeb78 (bug 1475087) for Windows build bustages on mozilla/a11y/DocAccessibleParent.h on a CLOSED TREE 2018-07-16 23:20:28 +03:00
Eitan Isaacson 95b1000eef Bug 1475087 - Include boundaryType in vc change event. r=surkov 2018-07-16 12:36:31 -07:00
James Teh d4ef733244 Bug 1472137 - Prevent mutex reentry in mscom::Interceptor::Create if GetInitialInterceptorForIID fails. r=aklotz
If GetInitialInterceptorForIID fails, the live set lock is not released in most cases, but the newly created Interceptor will be destroyed.
The Interceptor's destructor tries to acquire the live set lock again, but that causes a deadlock, since reentry is no longer allowed for a mutex after bug 1364624.
GetInitialInterceptorForIID now ensures the live set lock is always released  on failure, thus preventing the deadlock.

MozReview-Commit-ID: z0Q7JLnJXQ

--HG--
extra : amend_source : 0b9837e5500754b5782e72337fc59b7904c5e29c
2018-07-02 15:17:12 +10:00
Eitan Isaacson 09ec9609fb Bug 1465823 - Add new position and offsets to pivot change notifications and vc events. r=surkov 2018-06-21 14:47:00 +03:00
Alex Gaynor b174206e6f Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Cosmin Sabou 18d0742c9b Backed out 3 changesets (bug 1451859) for causing Spidermonkey bustages on Linux x64 opt.
Backed out changeset 8f5a9e18e953 (bug 1451859)
Backed out changeset 950fa584ec8e (bug 1451859)
Backed out changeset f1f42726f1ec (bug 1451859)
2018-06-07 09:10:35 +03:00
Alex Gaynor 76b53de450 Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Miko Mynttinen 4c85ef17cc Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 1e7eea4f2d4ec16ec0c559a8afb26976ddbf4d07
2018-06-01 17:59:07 +02:00
arthur.iakab 7e765f798b Backed out 2 changesets (bug 1465060) for build bustages on security/sandbox/linux/reporter/SandboxReporter.cpp
Backed out changeset 7c8905b6b226 (bug 1465060)
Backed out changeset 10446073eca8 (bug 1465060)
2018-06-03 19:25:41 +03:00
Miko Mynttinen 8d9dc85cd4 Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 619d0e0ff63a2453c80f0c4d9beb906d43fa9b01
2018-06-01 17:59:07 +02:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Boris Zbarsky 4ef13b9076 Bug 1455676 part 2. Remove nsIDOMNode usage from accessible/. r=surkov 2018-05-29 22:58:47 -04:00
James Teh e8f0bb8cd9 Bug 1455745: Remove more accessibility related diagnostic crashes on Nightly. r=aklotz
This condition is rare and does indicate a problem which breaks accessibility.
However, we aren't getting any closer to diagnosing this as a result of this crash, so it causes user pain without any gain to us.

MozReview-Commit-ID: GacAQDbhB0h

--HG--
extra : rebase_source : 478ec67da378ff763c0e0d8a998de1956b51b85b
2018-04-23 12:27:17 +10:00
Yura Zenevich 55fe960cc1 Bug 1450927 - add getBoundsInCSSPixels XPCOM method. r=surkov r=jld
MozReview-Commit-ID: CTANPVQw1sG
2018-04-25 14:51:09 -04:00
Tiberius Oros 2fffa00bb3 Backed out 2 changesets (bug 1450927) for failing on ProxyAccessible.cpp(247) on a CLOSED TREE
Backed out changeset ca285aed3926 (bug 1450927)
Backed out changeset d7dd8b0d2473 (bug 1450927)
2018-04-25 19:31:50 +03:00
Yura Zenevich db18588465 Bug 1450927 - add getBoundsInCSSPixels XPCOM method. r=surkov r=jld
MozReview-Commit-ID: CTANPVQw1sG
2018-04-25 11:45:47 -04:00
Alex Gaynor 015fb6557b Bug 1454628 - fixed compilation with --disable-accessibility builds; r=aklotz
This was broken by bug 1453979.

MozReview-Commit-ID: JtJqICb2vBP

--HG--
extra : rebase_source : 90aa93a1591b0d8c0705fd79fdf9a64c5ee15e57
2018-04-17 13:01:19 -04:00
Alex Gaynor 6666b550ef Bug 1453979 - use ContiguousEnumSerializerInclusive for serializing enums in a11y IPC code; r=MarcoZ
MozReview-Commit-ID: 92S42SkSEEP

--HG--
extra : rebase_source : c549b4bd6de72ecd321c556b3330de92060973ec
2018-04-13 10:51:43 -04:00
shindli cdc66c6a3b Backed out changeset 99c2396a4c87 (bug 1453979) for mozmake.exe failures in z:/build/build/src/accessible/ipc/win/DocAccessibleChild.cpp on a CLOSED TREE 2018-04-16 21:07:44 +03:00
Alex Gaynor 6e06627ff1 Bug 1453979 - use ContiguousEnumSerializerInclusive for serializing enums in a11y IPC code; r=MarcoZ
MozReview-Commit-ID: 92S42SkSEEP

--HG--
extra : rebase_source : 6689ffd790390892faa4a80c60737934afda7477
2018-04-13 10:51:43 -04:00
Ciure Andrei 873d562bc3 Backed out 8 changesets (bug 1451169) on request from njn a=backout
Backed out changeset b92f856e15a8 (bug 1451169)
Backed out changeset 348e825756fa (bug 1451169)
Backed out changeset 624d82428726 (bug 1451169)
Backed out changeset 4d51610ca08e (bug 1451169)
Backed out changeset bb76a9589717 (bug 1451169)
Backed out changeset c145fbd03947 (bug 1451169)
Backed out changeset 6d36289e0f54 (bug 1451169)
Backed out changeset 914fb7cd9fc3 (bug 1451169)

--HG--
extra : histedit_source : 94de6631919f895dec422bc0e564f5baf885ba4a%2C18f52c6c11d3064d3137a6847575effb7d407894
2018-04-11 11:22:05 +03:00
Nicholas Nethercote 30c7ab35fe Bug 1451169 - Change nsRoleMapEntry::roleAtom from `nsStaticAtom**` to `nsStaticAtom* const`. r=davidb
And likewise for AttrCharacteristics::attributeName.

MozReview-Commit-ID: DwGzWCCKcVP

--HG--
extra : rebase_source : ac595af0b0da2cee36b5aecf4474880fbe993f11
2018-04-03 10:55:33 +10:00
James Teh 83a22d7047 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

--HG--
extra : rebase_source : a0903ddb33eba5381a232a661deaa3754b92406f
2018-03-23 11:53:01 -04:00
James Teh 46dc3c27be 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

--HG--
extra : rebase_source : 1b3b8393309ccefac27d0228aa528cd6fa55ad35
2018-03-23 11:44:05 -04:00
James Teh ab44d98e0d 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

--HG--
extra : amend_source : edb85b8e73184e47cd9ff42c0442f89d5f3c5152
2018-03-22 17:57:34 -04:00
Noemi Erli 1270a21724 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-03-23 01:00:18 +02:00
James Teh 25c5e06a69 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

--HG--
extra : rebase_source : 267568164fb46d98c8cde22dfbb4f36f2afceb8c
2018-01-19 11:40:42 +10:00
James Teh 4ce4f0dab8 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

--HG--
extra : rebase_source : a6c0a56c2bb65e227f7c45eb1b767e7df19efa49
2018-03-21 11:03:45 -04:00
James Teh 7603de4f18 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

--HG--
extra : rebase_source : 0cdc01158f7fd1a04b0751a0a1703f9aa03cbe4c
2018-03-21 10:56:11 -04:00
James Teh 39c71764d7 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

--HG--
extra : rebase_source : d50507c182ab7760c17c5e7bb9956f46a3dc188c
2018-03-21 10:08:53 -04:00
David Major 524a6c226d Bug 1324110: Add braces to initialization in ProxyAccessible.cpp to appease clang-cl. r=Jamie 2018-03-22 14:20:56 -04:00
James Teh 7e1997102b Bug 1444851 - a11y::HandlerProvider: Clear the interceptor target reference when disconnecting remotes. r=aklotz
If a handlerProvider call is pending on another thread, CoDisconnectObject won't release this HandlerProvider immediately.
However, the interceptor and its target might be destroyed.

MozReview-Commit-ID: 75SyPMIpit0

--HG--
extra : amend_source : a80f50f754c9be171e9262b13136e95005bc62af
2018-03-19 11:03:18 +02:00
Tom Ritter f572733682 Bug 1444169 Fix capitalization for a few Windows files r=aklotz
MozReview-Commit-ID: BlWgIVobOBK

--HG--
extra : rebase_source : 71a8052c562aa7be510e3a4c13a0ca698a04a5ac
2018-03-08 14:49:59 -06:00
James Teh f84eedf97c 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

--HG--
extra : rebase_source : e5c54e4f107b2db39d77277020aa939a6a283bd8
extra : histedit_source : 0a964ba20363cc1b8880d78e5d214dae0f758a01
2018-02-22 22:00:36 +10:00
Bogdan Tara 0a896b5418 Backed out changeset 918b41fa66d9 (bug 1434822) is causing 1442523. a=backout 2018-03-02 11:27:08 +02:00
James Teh a2e576c75c 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

--HG--
extra : rebase_source : 9059dbed02bf78b4be5b544c8b3bc14f0ca088c8
2018-02-22 22:00:36 +10:00
Chris Peterson fe5cd3d5d9 Bug 1436263 - Part 3: Remove `virtual` from final virtual function declarations. r=froydnj
MozReview-Commit-ID: 8pjYjEvQF42

--HG--
extra : rebase_source : 5eb0bea2ef5f06a811b4f3daf57ce8720f12dd07
2018-02-08 21:22:43 -08:00
Chris Peterson 0129d900f3 Bug 1436263 - Part 2: Replace `override final` virtual function specifiers with just `final`. r=froydnj
MozReview-Commit-ID: 70gt5SUu4Dv

--HG--
extra : rebase_source : 71912c6bde22aaed01e70615a4ee794a36e70d0e
extra : source : 1c22d4c65d70b797ee3e963ec426c90e1f89b5e3
2018-02-05 22:50:00 -08:00
Mike Shal 15573ecba5 Bug 1420119 - avoid issues with make's timestamp caching; r=nalexander
When an idl file is updated, files like HandlerData.h are generated as
part of the midl target (eg: midl_done). However, Make may have already
stat'd HandlerData.h and cached its timestamp. Although there is a
dependency from HandlerData.h on midl_done, there is no recipe. As such,
Make assumes that HandlerData.h hasn't actually changed, and uses the
cached value of the timestamp when determining if it should install the
file into dist/include. If the cached value is older, make may not
trigger the install rule, leaving the old header in place and breaking
the build.

MozReview-Commit-ID: 9rdtXIt8mXC

--HG--
extra : rebase_source : 8b22f1d6656d0dbc2c3b5dc53ea2b936fdd637bd
2018-02-13 16:04:31 -05:00
David Parks d2fcfd4724 Bug 1358372: Part 2 - Run Windows AudioSessionControl operations on main thread r=jimm
This plays better with sndvol.exe.  It reduces the impact of a bug that shows multiple volume sliders for the content processes.
2018-01-10 14:57:19 -08:00
James Teh b65ec03904 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

--HG--
extra : rebase_source : d1af83f4c6c0e7762299e9e3da95a67217157200
2018-02-02 09:38:51 +10:00
James Teh 19ad84e3ed Bug 1431264 part 2: AccessibleHandler: Local implementation of IAccessibleRelation using data provided in IARelationData. r=MarcoZ
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

--HG--
extra : rebase_source : 6dc2f46eb99e5c19ace89d0d9d21558b675ab68e
2018-02-02 09:35:16 +10:00
James Teh 2bbbe57bb9 Bug 1431264 part 1: Accessible HandlerProvider: Implement a method to retrieve info for all relations in a single call. r=MarcoZ
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

--HG--
extra : rebase_source : 281217f4c0974040e35a197d0f1c555d9e4356fc
2018-02-02 09:16:17 +10:00
James Teh 2b917a104f Bug 1430938 part 2: AccessibleHandler: When QueryService is called for IAccessibleAction or IAccessibleText, just use QI. r=MarcoZ
JAWS uses QueryService for these.
Using QI avoids a cross-process call, since we have these interfaces cached.
More importantly, if QS is used, the handler won't get used for that object, so our caching won't be used.

MozReview-Commit-ID: Ejc2Bjp7NSv

--HG--
extra : rebase_source : f0154a6691d4d6be97e9aa60b0613ff04f76b7ff
2018-01-17 10:23:07 +10:00
James Teh f3b93020fe Bug 1430938 part 1: AccessibleHandler: Handle some additional unsupported services queried by JAWS and UI Automation. r=MarcoZ
We just return failure for these, thus avoiding a pointless cross-process call.
I also updated the comment for an existing service, since I discovered its constant name.

MozReview-Commit-ID: E5hjhR6nYtv

--HG--
extra : rebase_source : 8f01da6b98a881809a106a03eb611aadc90a6d20
2018-01-17 10:18:49 +10:00
Milan Sreckovic 6cf51345e7 Bug 1423541: Use BaseRect access methods instead of member variables in accessible/ r=surkov
MozReview-Commit-ID: KRfgYEW7aWY

--HG--
extra : rebase_source : b88fcdb3095ac9bfa82ae6a596070d80c1c482fd
2018-01-12 12:07:29 -05:00