Commit Graph

555 Commits

Author SHA1 Message Date
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
Sylvestre Ledru
9bfe27d903 Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 7duJk2gSd4m

--HG--
extra : rebase_source : 7312fe276e561e8c034a5f6749774ae812727f9c
2017-12-07 22:09:15 +01:00
James Teh
31c03e927b Bug 1421873: Fix infinite loop in HandlerProvider::GetAllTextInfoMainThread when invalid attribute offsets are returned. r=MarcoZ
When querying text attributes, Gecko can return an end offset less than the requested offset in some rare cases, which isn't valid.
This is perhaps because the text mutated during the attribute fetching loop for some reason, making the requested offset invalid.
We now check the end offset and break out of the loop in this case.
This fixes a freeze after sending a message in OX Mail with NVDA.

MozReview-Commit-ID: 1lVSLAdOcS7

--HG--
extra : rebase_source : 048fbed8ddc591f62c17d559483bfe2f1542431c
2017-11-30 16:44:02 +10:00
James Teh
abec79ee0b Bug 1421209 part 1: Fix incorrect iid in AccessibleHandler::ResolveIAHypertext. r=MarcoZ
Previously, it was querying for IID_IAccessibleHypertext, but this is actually an IAccessibleHypertext2 pointer.
This meant we were crashing when trying to call an IAccessibleHypertext2 method.
This was a regression introduced in bug 1419362.

MozReview-Commit-ID: 7akjIfNuIh3

--HG--
extra : rebase_source : 18e126e3b47bc5a8f486870a285668a7f85e95c9
2017-11-29 14:39:00 +10:00
James Teh
e9098869dd Bug 1421478: Clarify comment in handlerDataCleanup.h. r=aklotz
MozReview-Commit-ID: EVzuqVMl7Ck

--HG--
extra : rebase_source : ebcad7cbc5ed49417ece2d9b220d52488ee28732
2017-11-29 10:18:01 +10:00
James Teh
2cb46a14be Bug 1418448 part 3: Accessible Handler/Provider: Unify release of interfaces in StaticIA2Data. r=aklotz
Both Provider and Handler need to release the interfaces in StaticIA2Data.
Therefore, move this into a common function to avoid duplication pain in future.

MozReview-Commit-ID: 7J4iuvDa8m2

--HG--
extra : rebase_source : 98c97b51c27c318ba987787518cfd70bda8967d4
2017-11-24 15:10:41 +10:00
James Teh
f7fcce5742 Bug 1418448 part 2: AccessibleHandler: Clean up DynamicIA2Data. r=aklotz
We need to clean up the VARIANT and BSTRs in DynamicIA2Data in the handler as well.
We do this in two places:
1. Before reading a new payload (because we need to clean up the existing payload); and
2. When we're being destroyed.

MozReview-Commit-ID: GvO7csuxtwZ

--HG--
extra : rebase_source : 92cc9a64deddee07bbbc77e53117c15351816778
2017-11-24 15:14:04 +10:00
James Teh
f81d8d0130 Bug 1418448 part 1: Accessible HandlerProvider: Clean up DynamicIA2Data correctly. r=aklotz
DynamicIA2Data contains several BSTRs that need to be freed with SysFreeString.
Previously, we just did a ZeroMemory without actually freeing them.
This cleanup code is placed in a header file so it can be used by AccessibleHandler as well.

MozReview-Commit-ID: 4SWuK9oMRYZ

--HG--
extra : rebase_source : e7358752e7eee1bae000e4005832bfc48c9342af
2017-11-24 15:12:37 +10:00
James Teh
242aa87f1a Bug 1419362 part 4: AccessibleHandler: When a caller asks for all text, cache hyperlinks and text attributes in the same call. r=MarcoZ
If a client requests all text (via IAccessibleText::text with IA2_TEXT_OFFSET_LENGTH), it's quite likely they will want all other information about the text as well; i.e. embedded objects and attributes.
Therefore, fetch all of this using a single cross-process call.
The text is immediately returned to the client.
The hyperlinks and attributes are cached for later return to the client when they call the appropriate methods.
They are only cached for one call; i.e. after the client retrieves them, the cache is dropped.
This makes memory management simpler and lowers the risk of cache invalidation problems.

MozReview-Commit-ID: FgFkX8J7wg1

--HG--
extra : rebase_source : e521d6ca7b00fcf1aad1f0ada299bac4c4b85c50
2017-11-22 21:32:28 +10:00
James Teh
f5aa51e880 Bug 1419362 part 3: Accessible HandlerProvider: Implement a method to retrieve all text, hyperlinks and attributes at once. r=aklotz,MarcoZ
This allows the handler to fetch all text information in a single cross-process call when appropriate.
Normally, it would be a minimum of 3 calls, plus one call for each additional attribute run.

MozReview-Commit-ID: K5x9bAWiWWJ

--HG--
extra : rebase_source : fbf89ff79d7afcff6bcc32ff940f9e06c1e7f136
2017-11-22 16:08:11 +10:00
James Teh
29ed5a05ed Bug 1419362 part 2: Move AccessibleTextTearoff into AccessibleHandler. r=MarcoZ
We want to be able to cache data related to both IAccessibleText and IAccessibleHypertext2 in a single call.
This is difficult with the tearoff because separate instances of the tearoff get created for the two interfaces.
Ensuring we use the same instance means working around reference cycles.
We could maintain a separate cache object, but that makes things more complex.
Therefore, it's much simpler to get rid of the tearoff.

A few things to note:

1. ResolveAccHypertext has been renamed to ResolveIAHypertext for consistency with the rest of AccessibleHandler.
2. mAccHypertextProxy has been renamed to mIAHypertextPassThru for consistency with the rest of AccessibleHandler.
3. mIAHypertextPassThru is a weak reference (just like the rest of the passthru pointers) because it refers to a proxy interface and the proxy aggregates the handler.
  Thus, we release it immediately to avoid reference cycles.
  When it was a tearoff, this was not the case; it was a strong reference.

MozReview-Commit-ID: 8NwPA0T1MFX

--HG--
extra : rebase_source : 57c4d19516d01b820bb3b4c1a9974ff3b889ed64
2017-11-22 12:16:18 +10:00
James Teh
f08015a587 Bug 1417327 part 3: Accessible handler: Fix cache for IAccessible::accDefaultAction and use it for IAccessibleAction::name(0). r=MarcoZ
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

--HG--
extra : rebase_source : 52688f1e44ad7613c5dd14903b6240a51aa2d4eb
2017-11-16 16:51:28 +10:00
James Teh
2d3278eb8f Bug 1417327 part 2: Accessible handler: Cache IAccessibleTableCell row/column indexes/extents. r=MarcoZ
MozReview-Commit-ID: 8hMzyJZ5zFI

--HG--
extra : rebase_source : dd66de5e37cc1abdbb5e0e7bb6d3bf67ad65edbb
2017-11-16 11:47:28 +10:00
James Teh
c743f90376 Bug 1417327 part 1: Accessible handler: Cache IAccessibleAction::nActions. r=MarcoZ
MozReview-Commit-ID: EJIhSxSiQGq

--HG--
extra : rebase_source : 89b73bd626f93c17a467c5ad06b391bffa534ced
2017-11-15 17:27:05 +10:00
James Teh
fb7c94c665 Bug 1416986 part 4: AccessibleHandler: Don't fall through to the proxy for IAccessibleHyperlink. r=aklotz
The handler's implementation of IAHyperlink just forwards calls through to the proxy.
However, it exists because we want the cache to be used when a hyperlink is retrieved.
When querying from the handler to IAHyperlink, we should use the same implementation.
This is mostly about consistency/correctness, especially as we're increasing complexity.

MozReview-Commit-ID: AwYibrFzUyf

--HG--
extra : rebase_source : 3d8f33639190a4220a21d0a6eeac401829d8345c
2017-11-15 12:32:52 +10:00
James Teh
ff41c00a3e Bug 1416986 part 3: AccessibleHandler: Avoid cross-process QI calls for interfaces which we know don't exist. r=aklotz
The proxy manager caches interfaces marshaled in the payload and returns them on QI without a cross-process call.
However, it doesn't know about interfaces which don't exist.
We can determine this from the payload, since interfaces which don't exist will have a null pointer.
We use this information to avoid querying the proxy in this case.

MozReview-Commit-ID: FnzDetmTiPP

--HG--
extra : rebase_source : 076ce714a69d3883a149487e5f9235ff495eedd0
2017-11-15 12:28:45 +10:00
James Teh
aebc388fb6 Bug 1416986 part 2: Include interfaces the client is likely to request in the accessible handler payload. r=aklotz
Now that virtual buffers have to render across processes, we want to eliminate as many cross-process calls as possible.
This includes QueryInterface calls, since buffers query for several interfaces on every node they visit.
To avoid these cross-process QI calls, we include interfaces clients are likely to request in the handler payload.
This way, they get marshaled in the single call used to retrieve the object.

This patch does the following:

1. Passes the interceptor when building the payload.
We need this so we can get interceptors for other interfaces.

2. Splits the payload into two main parts: a static part and a dynamic part.
The (new) static part contains the interface pointers. The dynamic part contains the rest.
This is necessary because the refresh call cannot pass the interceptor, but the interceptor is needed to build the static part.
Also, re-building the static part is pointless when refreshing.

3. Includes the interface pointers in the payload (BuildStaticIA2Data).
The pointers also have to be cleaned up after marshaling.

4. Releases the interface pointers in the handler after the payload is received.
We do this because they're aggregated by the proxy manager as they're unmarshaled.

MozReview-Commit-ID: 6VRLMNScgwW

--HG--
extra : rebase_source : 249589643b7a69e870962ea55a44849bf03a2693
2017-11-15 12:18:18 +10:00
Chris Peterson
0c6b205207 Bug 1415470 - a11y: Fix VS2017 initializer list order warnings. r=yzen
Reorder DocAccessibleParent's and DocAccessibleChild's constructor initializer lists to fix these VS2017 warnings:

a11y/DocAccessibleParent.h(32): warning C5038: data member 'mozilla::a11y::DocAccessibleParent::mShutdown' will be initialized after data member 'mozilla::a11y::DocAccessibleParent::mEmulatedWindowHandle'

accessible/ipc/win/DocAccessibleChild.cpp(22): warning C5038: data member 'mozilla::a11y::DocAccessibleChild::mEmulatedWindowHandle' will be initialized after data member 'mozilla::a11y::DocAccessibleChild::mIsRemoteConstructed'

MozReview-Commit-ID: 8flWtpe13ob

--HG--
extra : rebase_source : 96528a886c099897df691623948d755eecda119f
2017-11-06 23:54:53 -08:00
James Teh
67c58fedf0 Bug 1414118: Update handler's AccessibleTextTearoff for IAccessibleHypertext2. r=MarcoZ
Bug 873444 implemented support for IAccessibleHypertext2.
AccessibleHandler's AccessibleTextTearoff needs to be updated accordingly, thus eliminating an additional cross-process QueryInterface for IAHypertext2 when the client also wants IAText.

MozReview-Commit-ID: EGqYX7jY9Cp

--HG--
extra : rebase_source : cc79b605bf75538bebc10b104e5f6771bc52d2f4
2017-10-30 21:24:15 +10:00
Aaron Klotz
5c0d27a5e4 Bug 1410159: Add additional IUnknown resolution to a11y::HandlerProvider; r=Jamie
MozReview-Commit-ID: 4duTGCN9xJ6

--HG--
extra : rebase_source : f3338181ac309a6255596a751ddeb7a7d70a3d1e
2017-11-02 15:37:57 -06:00
James Teh
f95226e22b Bug 1413072: Eliminate pointless cross-process QueryInterface for IAccessibleText in AccessibleHandler. r=MarcoZ
AccessibleHandler's AccessibleTextTearoff currently makes separate queries for the IAccessibleText and IAccessibleHypertext interfaces.
However, IAccessibleHypertext inherits from IAccessibleText, and wherever one of these interfaces are present, Gecko always implements both.
Therefore, we should just query for and use IAccessibleHypertext for all of these methods, thus saving a cross-process call should a client want both interfaces.

MozReview-Commit-ID: Fb5P7IGDAZZ

--HG--
extra : rebase_source : 08c9484989eaf8b810ef6f9ababf354eee8fa7f8
2017-10-31 12:11:39 +10:00
James Teh
627fc4f0b6 Bug 1409928: Use e10s a11y handler cache for accessibles retrieved via IAccessibleHypertext. r=aklotz
IAccessibleHypertext::hyperlink returns an IAccessibleHyperlink, not an IAccessible2.
previously, the handler didn't know about this interface, so it wasn't used.
Thus, any accessibles retrieved in this way did not benefit from the cache.
This patch teaches the handler about IAccessibleHyperlink so the handler gets used in this case.

MozReview-Commit-ID: 17CxxGyCLrE

--HG--
extra : rebase_source : 7f933bfd880c9ee009eafe8cee4ece4ef83004cd
2017-10-13 17:01:20 +10:00
James Teh
d11dfce827 Bug 1409916: Eliminate pointless cross-process call for IAccessible2_2::get_attribute. r=aklotz
IAccessible2_2::get_attribute is not implemented yet in Gecko.
However, the handler still passes this through, thus resulting in a pointless cross-process call.
Instead, just return E_NOTIMPL in the handler for this method.

MozReview-Commit-ID: 5XHieUC4cuz

--HG--
extra : rebase_source : 814ceda6d9dd4ec26f05a4ff90bbd4af2a6eb84e
2017-10-19 09:22:44 +10:00
Aaron Klotz
5a394f86cf Bug 1411439: Pass reference to owning interceptor into HandlerProvider for payload creation; r=Jamie
MozReview-Commit-ID: GUW4DrsJEn

--HG--
extra : amend_source : 755ff37c8bc40de408f8668e9e44ebfd41bd9136
2017-10-24 17:48:51 -06:00
Aaron Klotz
be5782c8e7 Bug 1412103: Use VARIANT for storing MSAA role in a11y handler cache; r=Jamie
MozReview-Commit-ID: 6dPxrckm8FM
2017-10-26 14:34:02 -06:00
Aaron Klotz
b594b508ec Bug 1363595: Add support for COM handler invalidation events to msaa AccessibleWrap; r=eeejay
MozReview-Commit-ID: OIiUiILiEW

--HG--
extra : rebase_source : 457399a703b6daf0341fcdb3dd058cd21f5dfc8c
2017-03-27 15:45:44 -06:00
Aaron Klotz
c7e3c01c5e Bug 1363595: Add additional fields to accessible handler cache; r=eeejay
MozReview-Commit-ID: GFNtt5MtPjx

--HG--
extra : rebase_source : 52bab1c8205266228e59d23a2db2a865884e6780
2017-08-08 15:12:46 -06:00
Aaron Klotz
7570c7a401 Bug 1409541 - Replace IID_IUnknown with expected interfaces for outparams in a11y content ArrayData. r=Jamie
MozReview-Commit-ID: 4t0h8zH2hsB
2017-10-17 15:03:40 -06:00
Aaron Klotz
743c2cb58b Bug 1406822: Implement a11y::HandlerProvider::GetEffectiveOutParamIid; r=Jamie
MozReview-Commit-ID: BKH3ooMQvN1

--HG--
extra : rebase_source : 50b666c3366e4f354b61ec2c3a37bf7f83c5f362
2017-10-17 15:01:27 -06:00
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
Aaron Klotz
aab52dc8f2 Bug 1383501 - Do not crash when TabParent::RecvPDocAccessibleConstructor receives a null COM proxy sent to the parent process. r=jimm
MozReview-Commit-ID: 5IOuLXc375T
2017-10-04 09:12:25 -06:00
Aaron Klotz
aa44e53f36 Bug 1393600: Ensure that the handler sends a known interface to external clients; r=jimm
MozReview-Commit-ID: F5vxF2pB347
2017-09-24 14:32:36 -06:00
Alexander Surkov
848867821c Bug 1402951 - no show events for content on document load complete, r=aklotz, yzen 2017-10-03 10:58:27 -04:00
Aaron Klotz
f88fa2ef6c Bug 1399557: Add Environment to mscom::ProxyStream and define it for IAccessible; r=jimm
MozReview-Commit-ID: 4wBjnFW9GRa

--HG--
extra : rebase_source : 43308d5c1d926300be222cb59d4913f61cc6c060
2017-09-29 15:41:28 -06:00
Aaron Klotz
abc6376ae3 Bug 1403687: Prevent use of SendSyncTextChangeEvent when replaying text changes from DocAccessibleChild deferred event queue; r=Jamie
MozReview-Commit-ID: 6itBBycWb0h
2017-09-27 15:34:56 -04:00
Aaron Klotz
c0a1a84af9 Bug 1399557: Add diagnostic asserts to interceptor creation code; r=jimm
MozReview-Commit-ID: 9fJxHbxCmgh
2017-09-18 10:49:15 -06:00
Chris Manchester
c0a229d4c3 Bug 1386876 - Replace all uses of DISABLE_STL_WRAPPING with a template, remove DISABLE_STL_WRAPPING. r=glandium
MozReview-Commit-ID: FMEtb5PY7iP

--HG--
extra : rebase_source : 3cdee7528846462c758e623d6bcd2e6e17dbabff
2017-09-11 11:33:26 -07:00
Aaron Klotz
5921c2115b Bug 1393589: Refactor NOPING marshaling into its own class, mscom::FastMarshaler, and use it with IGeckoBackChannel; r=jimm
MozReview-Commit-ID: 9osDoYcvtWV

--HG--
extra : rebase_source : 9ead42f1b0c79f11b15121274a996d33d7ad4830
2017-08-17 15:54:28 -06:00
Aaron Klotz
d7d645f5c4 Bug 1390652: Part 3 - Add proxy wrapper that passes its inner proxy through content as a blob; r=jimm
MozReview-Commit-ID: A4pAyiuJUlz
2017-08-21 15:47:44 -06:00
Aaron Klotz
7319740647 Bug 1390652: Part 1 - Send parent COM proxies to content as IDispatch instead of IAccessible to match the outparam type of IAccessible::get_accParent; r=yzen
MozReview-Commit-ID: 1CplfZrIt6l
2017-08-16 10:56:00 -06:00
Aaron Klotz
24cb1e1776 Bug 1379643: When running under sandbox level >= 3, parent should retain IStream of marshaled interface to be destroyed later; r=jimm
MozReview-Commit-ID: Egb6Yahdbxm

--HG--
extra : rebase_source : a59cfdfdbd1203b89822e68765bd5a0f35b67ada
2017-07-19 12:07:45 -06:00
Aaron Klotz
5e6827da6d Bug 1380214: Ensure that if the handler payload fails to serialize that we may still marshal the accessible itself; r=eeejay
MozReview-Commit-ID: VH06GAR7Ph
2017-07-17 17:19:58 -06:00
Aaron Klotz
22d6b8c708 Bug 1380471: Move follow-up initialization for emulated windows into a callback invoked by the emulated window's WM_CREATE handler; r=yzen
--HG--
extra : rebase_source : d8742fc08cea75e994c9ee4f7c5eca50d40aeac1
2017-07-12 18:01:43 -06: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
Aaron Klotz
6ac7e2f671 Bug 1378141: Make 32-bit a11y builds make more thorough checks to determine which manifest to load; r=eeejay
MozReview-Commit-ID: 6Hx7ggqt9Ck

--HG--
extra : histedit_source : 28db28e939c947361988cb8e3c8d7932787cf47e
2017-07-04 16:04:35 -07:00
Aaron Klotz
44e203215a Bug 1374792: Modify a11y handler to only invoke IGeckoBackChannel::put_HandlerControl once; r=eeejay
MozReview-Commit-ID: Bxo0IsAuhBh
2017-06-30 12:04:02 -07:00
Aaron Klotz
a129f378f7 Bug 1377195: Remove redundant main thread activation context from a11y::PlatformChild; r=eeejay
--HG--
extra : rebase_source : f8ff2ab8ca7eaf7c0dea9b082af7180f1a6d9208
2017-06-29 10:47:15 -07:00
Aaron Klotz
091386062e Bug 1354077: Modify a11y platform initialization to select and enable appropriate IAccessible manifest; r=eeejay
MozReview-Commit-ID: 1ODOm4Vc4UH
2017-06-06 12:19:17 -06:00
Aaron Klotz
9db0de2b03 Bug 1354077: Add manifests for IAccessible variants: 32-bit and 64-bit; r=jimm
MozReview-Commit-ID: CoHASAsg5tf
2017-06-06 12:19:12 -06:00
Aaron Klotz
d5cffb7895 Bug 1375590: Replace NS_ERROR + IPC_FAIL_NO_REASON with IPC_FAIL in DocAccessibleParent; r=eeejay
--HG--
extra : rebase_source : 3859abca294230d6bc7061ee8b807191790f822b
2017-06-27 11:52:55 -07:00
Bill McCloskey
f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Eitan Isaacson
71c52fe020 Bug 1375348 - Include last role as a good role to recieve from child. r=davidb 2017-06-23 08:55:38 -07:00
Carsten "Tomcat" Book
8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey
6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Aaron Klotz
a33d941b4e Bug 1374643: Use IID instead of REFIID for a11y::HandlerProvider::mTargetUnkIid; r=jimm
MozReview-Commit-ID: IMFMxhHsbp6

--HG--
extra : amend_source : 10f8b88b0ba538241b59e88ad145db7479d64c07
2017-06-20 12:32:21 -06:00
Carsten "Tomcat" Book
ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey
4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Eitan Isaacson
109fff34b9 Bug 1366374 - Check if AccessibleHandler.dll is registered before using. r=aklotz 2017-06-15 15:55:06 -07:00
Wes Kocher
3ee39c3f47 Backed out 3 changesets (bug 1354077) for assertions in AccessibleWrap.cpp a=backout CLOSED TREE
Backed out changeset 1380fe0f701b (bug 1354077)
Backed out changeset 2b5602bd352a (bug 1354077)
Backed out changeset a0fc3a1a9122 (bug 1354077)

MozReview-Commit-ID: ABHV3evXKrG
2017-06-12 16:54:10 -07:00
Aaron Klotz
da19e2296f Bug 1354077: Modify a11y platform initialization to select and enable appropriate IAccessible manifest; r=eeejay
MozReview-Commit-ID: 1ODOm4Vc4UH

--HG--
extra : rebase_source : 6bac99f6e5e6318cf856f860edb373930979c92a
2017-06-06 12:19:17 -06:00
Aaron Klotz
05e5a2e310 Bug 1354077: Add manifests for IAccessible variants: 32-bit and 64-bit; r=jimm
MozReview-Commit-ID: CoHASAsg5tf

--HG--
extra : rebase_source : 84e30f4601c5f628cc731e1796601381cc012b6c
2017-06-06 12:19:12 -06:00
Aaron Klotz
230ddb60a5 Bug 1368571: Modify handler and interceptor marshaling code so that it strips out any handlers from proxies that are destined for non-Gecko processes; r=jimm
MozReview-Commit-ID: A1lCqvbQYAF

There is no clean API-based solution to this, so instead I went grovelling
through the DCOM wire protocol and was able to write a function that converts
handler OBJREFs into standard OBJREFs.

See also:
https://msdn.microsoft.com/en-us/library/cc226801

--HG--
extra : rebase_source : a650055c4adda3a1d99262e47f2b463074c6b935
2017-06-06 17:35:51 -06: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
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
David Parks
cff8d258a2 Bug 1330484 - Part 2: Remove invalid assert that checked that removed a11y child documents have no children. r=jimm
Here is a scenario under which the assert is invalid:

RecvHideEvent is received on a DocAccessibleParent DAP1 that has a child document DAP2... that in turn has a child document DAP3.  DAP1::RecvHideEvent calls Shutdown on its root ProxyAccessible.  This recursively calls Shutdown on child ProxyAccessibles until it reaches the one that is the parent of the child document DAP2.  ProxyAccessibleBase::Shutdown then attempts to Unbind DAP2, which calls DAP1::RemoveChildDoc, which trips the assert because DAP2 has child document DAP3.
2017-05-22 02:39:11 -07:00
David Parks
1810e88c32 Bug 1359129 - Use the most recent RootDocAccessible when delaying DocAccessibleChild messages. r=aklotz
We sometimes briefly have more than one root DocAccessible associated with a TabChild, for example, while navigating links in a page.  This patch makes sure that we use the correct accessible when delaying messages that we forward to the parent process.
2017-05-01 14:04:55 -07:00
Aaron Klotz
369e5eb9f0 Bug 1357967: Include mozilla-config.h in HandlerData.idl so that we have access to configured preprocessor defines; r=jimm
MozReview-Commit-ID: LWaxhDzq2ge

--HG--
extra : rebase_source : de6e88530e8c4ff6a8b43120a0fa9a944c643d84
2017-04-19 19:06:53 -06:00
Aaron Klotz
92ce20591b Bug 1357194: Use MOZ_UPDATE_CHANNEL to distinguish between local/nightly and beta/release builds for AccessibleHandler CLSIDs; r=mhowell,mshal
MozReview-Commit-ID: Kp8x5o66nrY

I want AccessibleHandler.dll to use different UUIDs based on release channel.
The way I was doing it before wasn't working correctly because I also wanted
local builds to have their own set of UUIDs vs our regular Nightly/Beta/Release
builds.

I also want the beta channel to have its own set of UUIDs that are distinct
from release.

I'm using MOZ_UPDATE_CHANNEL to distinguish between the channels when
NIGHTLY_BUILD and BETA_OR_RELEASE are insufficient.

--HG--
extra : rebase_source : 8cb28a22a3cac16fb743a8fe81db5e120c1fdf6d
2017-04-17 14:47:41 -06:00
David Parks
6a3359a108 Bug 1326084 - Unbind accessible child doc before replacing with new one. r=trevor
We need to update mChildDocs on child document removal.  This also cleans up some code related to setting a new child doc when one is already set -- we now assert that this cannot happen.
2017-04-07 13:26:45 -07:00
Aaron Klotz
4978c3cc95 Bug 1322532: Platform a11y changes to enable handler-based live regions; r=tbsaunde
MozReview-Commit-ID: nNPvBy3ZGO

--HG--
extra : rebase_source : 8c9f9e7a07e1e2268d922574273a3d65919513a7
2017-04-13 20:35:32 -06:00
Aaron Klotz
6302f1af4a Bug 1322532: Add sync text event to PDocAccessible; r=tbsaunde, r=billm
MozReview-Commit-ID: AFZMYghoOHe

--HG--
extra : rebase_source : 2364cf4a5ecaaceda151e16df170aebb77ae55e9
2017-04-13 17:08:42 -06:00
Aaron Klotz
c06b376e9a Bug 1322532: Move a11y retrieval of native window handle to DocAccessibleChild; r=yzen
MozReview-Commit-ID: DwLBfAQJkRJ

--HG--
extra : rebase_source : 8ca53e9c4882ce9053e9a36428fed503ebe8919c
2017-02-21 11:27:33 -07:00
Aaron Klotz
ba24d548f9 Bug 1322532: Add support for live regions to the com handler dll; r=tbsaunde
MozReview-Commit-ID: 1JPaUw5PrxU

--HG--
extra : rebase_source : e74cf6b3a2e9d78a3e939231ea06e0e3088fd538
2017-04-13 16:57:33 -06:00
Wes Kocher
5c3c7eb8db Backed out 4 changesets (bug 1322532) for windows static build failures a=backout
Backed out changeset df4e3ee037d6 (bug 1322532)
Backed out changeset 0acfde7a7a45 (bug 1322532)
Backed out changeset 34bf061d8e29 (bug 1322532)
Backed out changeset 954ea82470ed (bug 1322532)
2017-04-14 00:02:40 -07:00
Aaron Klotz
0ee7073299 Bug 1322532: Platform a11y changes to enable handler-based live regions; r=tbsaunde
MozReview-Commit-ID: nNPvBy3ZGO

--HG--
extra : rebase_source : d8a797c9ddfb3d8ab4f13c9f2f261fba04320beb
extra : histedit_source : cc4f0bd8ba26cc88bcf9907f684e5d6c240d354f
2017-04-13 20:35:32 -06:00
Aaron Klotz
1de2299a3a Bug 1322532: Add sync text event to PDocAccessible; r=tbsaunde, r=billm
MozReview-Commit-ID: AFZMYghoOHe

--HG--
extra : rebase_source : 22939e1a1208501fa646c02ee8199b72a16e14b5
extra : histedit_source : fd408d3d96578bc23c8d6627248c0578563e9b7e
2017-04-13 17:08:42 -06:00
Aaron Klotz
68616ae61e Bug 1322532: Move a11y retrieval of native window handle to DocAccessibleChild; r=yzen
MozReview-Commit-ID: DwLBfAQJkRJ

--HG--
extra : rebase_source : b206229f4167979d79c71e7cad11d01d7d60f9ed
2017-02-21 11:27:33 -07:00
Aaron Klotz
c9721c0a3b Bug 1322532: Add support for live regions to the com handler dll; r=tbsaunde
MozReview-Commit-ID: 1JPaUw5PrxU

--HG--
extra : rebase_source : eef53f27be2d431c8b86c90e0681af9fb29c7d90
2017-04-13 16:57:33 -06:00
Ryan VanderMeulen
cae23d0f9a Bug 1354293 - Don't try to build a11y IPC code that depends on accessibility being enabled. r=aklotz 2017-04-06 18:51:02 -04:00
Aaron Klotz
0a1611cdcd Bug 1303060: Build system changes for implementation of the caching COM handler for a11y; r=mshal
MozReview-Commit-ID: KBe1bw6xnhD

--HG--
extra : rebase_source : ea5f60be13f5ff6c0d295b4704646ceb44eb5794
2017-03-27 19:13:40 -06:00
Aaron Klotz
54c8ab6c9e Bug 1303060: Implementation of the caching COM handler for a11y; r=tbsaunde
MozReview-Commit-ID: HkiIgDQURtK

The a11y COM handler consists of two classes. AccessibleHandler is the one that
is actually interposed by COM between the client and the proxy. It implements
IAccessible2_3, IServiceProvider, and IProvideClassInfo. It is derived from
mscom::Handler which takes care of most of the COM boilerplate for handler
instantiation. AccessibleHandler must override a few virtual functions from
mscom::Handler:

* QueryHandlerInterface - mscom::Handler must implement the "real" QI. This is
  the method that mscom::Handler uses to delegate to the implementer.
* ReadHandlerPayload - deserializing the payload. This uses
  mscom::StructFromStream and the IA2Data_Decode function that was generated by
  midl. It should essentially be the inverse of the serialization code in the
  IHandlerProvider implementation inside Gecko.
* MarshalAs - identical to IHandlerProvider::MarshalAs
* GetHandlerPayloadSize and WriteHandlerPayload - it sucks that we have to
  include these, but they are neccessary for the scenario when COM wants to
  make a proxy of a proxy. When that happens, we need to get COM to serialize
  the payload again; it isn't smart enough to recognize payloads in existing
  proxies and copy them itself.

In order to reduce round trips, AccessibleHandler implements the most
sophisticated IA2 interface. This way the client has access to any of those
interfaces from IDispatch all the way down to IAccessible2_3 without needing to
incur additional round-trips to obtain them.

We also implement IServiceProvider so that a client may QueryService for an IA2
interface without needing to incur more round trips. In addition, we maintain
a list of service IDs that we definitely do not support, and handle those
locally instead of incurring an IPC round-trip.

We also implement IProvideClassInfo because NVDA's python code (and presumably
other ATs that use interpreted languages) supports using that interface to
assist its FFI library with resolution of our COM objects.

COM wraps each instance of an IAccessible* proxy with an AccessibleHandler
object. Proxies whose interfaces are not part of the IDispatch ... IAccessible2_3
hierarchy are not wrapped with handlers (though this might change in the future
if we need to expand coverage). AccessibleHandler implements IAccessible2_3 such
that, if we have cached data available for a particular IA2 method, we provide
that cached data to the client. Otherwise we pass on the request to the COM
proxy for retrieval via IPC.

The other class in the handler dll is AccessibleHandlerControl. This class
implements the IHandlerControl interface that is provided to IGeckoBackChannel.
Gecko dispatches cache invalidation events using this interface. This class
is a singleton within the handler dll and manages shared, handler-wide resources.

--HG--
extra : rebase_source : 4fc3910f789b0ed92c90655344ffb89f576ca5bd
2017-03-27 19:13:34 -06:00
Aaron Klotz
d8b6197f8b Bug 1303060: Build system changes for a11y to enable the serving of a COM handler; r=mshal
MozReview-Commit-ID: 51r9ezFwDGE

--HG--
extra : rebase_source : cdc96a1c5f2c021c407d7c634036dd8cae7c04c6
2017-03-27 19:13:07 -06:00
Aaron Klotz
b836337e81 Bug 1303060: Changes to a11y to enable the serving of a COM handler; r=tbsaunde
MozReview-Commit-ID: GTQF3x1pBtX

A general outline of the COM handler (a.k.a. the "smart proxy"):

COM handlers are pieces of code that are loaded by the COM runtime along with
a proxy and are layered above that proxy. This enables the COM handler to
interpose itself between the caller and the proxy, thus providing the
opportunity for the handler to manipulate an interface's method calls before
those calls reach the proxy.

Handlers are regular COM components that live in DLLs and are declared in the
Windows registry. In order to allow for the specifying of a handler (and an
optional payload to be sent with the proxy), the mscom library allows its
clients to specify an implementation of the IHandlerProvider interface.

IHandlerProvider consists of 5 functions:

* GetHandler returns the CLSID of the component that should be loaded into
  the COM client's process. If GetHandler returns a failure code, then no
  handler is loaded.
* GetHandlerPayloadSize and WriteHandlerPayload are for obtaining the payload
  data. These calls are made on a background thread but need to do their work
  on the main thread. We declare the payload struct in IDL. MIDL generates two
  functions, IA2Payload_Encode and IA2Payload_Decode, which are used by
  mscom::StructToStream to read and write that struct to and from buffers.
* The a11y payload struct also includes an interface, IGeckoBackChannel, that
  allows the handler to communicate directly with Gecko. IGeckoBackChannel
  currently provides two methods: one to allow the handler to request fresh
  cache information, and the other to provide Gecko with its IHandlerControl
  interface.
* MarshalAs accepts an IID that specifies the interface that is about to be
  proxied. We may want to send a more sophisticated proxy than the one that
  is requested. The desired IID is returned by this function. In the case of
  a11y interfaces, we should always return IAccessible2_3 if we are asked for
  one of its parent interfaces. This allows us to eliminate round trips to
  resolve more sophisticated interfaces later on.
* NewInstance, which is needed to ensure that all descendent proxies are also
  imbued with the same handler code.

The main focus of this patch is as follows:

1. Provide an implementation of the IHandlerProvider interface;
2. Populate the handler payload (ie, the cache) with data;
3. Modify CreateHolderFromAccessible to specify the HandlerPayload object;
4. Receive the IHandlerControl interface from the handler DLL and move it
   into the chrome process.

Some more information about IHandlerControl:

There is one IHandlerControl per handler DLL instance. It is the interface that
we call in Gecko when we need to dispatch an event to the handler. In order to
ensure that events are dispatched in the correct order, we need to dispatch
those events from the chrome main thread so that they occur in sequential order
with calls to NotifyWinEvent.

--HG--
extra : rebase_source : acb44dead7cc5488424720e1bf58862b7b30374f
2017-04-04 15:23:55 -06:00
David Parks
55dc6b7f68 Bug 1332690 - Assign Managers to DocAccessibleChilds. r=tbsaunde
The Manager is set by IPDL for remotely constructed objects but our DocAccessibleChilds are created on the child process side, so we need to assign a manager in the constructor so that we can find it when needed.

--HG--
extra : rebase_source : 8bf76534860ed73fbdc71df494130f6028400fa3
2017-03-27 10:03:43 -07:00
Trevor Saunders
502b0f327c bug 1332690 - don't try and bind child docs to a shutdown DocAccessibleParent r=yzen
a BindChildDoc message can race with the parent process shutting down a tab.
The result of that is that RecvBindChildDoc() can be called on a
DocAccessibleParent that has already been shut down by the destruction of the
owning TabParent.
2017-03-05 23:12:13 -05:00
Trevor Saunders
26401c70e6 bug 1340579 - fixup werror bustage landing on a CLOSED TREE 2017-03-01 17:45:04 -05:00
Trevor Saunders
e8562200c5 bug 1340579 - look up this DocAccessibleParent in live docs instead of using this in DocAccessibleParent::Destroy() r=davidb 2017-03-01 17:23:48 -05:00
Aaron Klotz
9e3522ce1d Bug 1310166: Register ISimpleDOMNode typelib in content process; r=tbsaunde
MozReview-Commit-ID: 2JcIHJbHDgT
2017-02-23 11:32:06 -07:00
Trevor Saunders
b7a422448c Bug 1341731 - fixup werror bustage. r=bustage-fix on a CLOSED TREE 2017-02-24 17:02:12 +01:00
Trevor Saunders
7e05a50676 bug 1341731 - propagate failures before working around them r=yzen 2017-02-24 10:26:27 -05:00
Sebastian Hengst
7bb022c060 Backed out changeset c1544abd34c2 (bug 1340903) for frequent failure of docshell/test/unit/test_setUsePrivateBrowsing.js on Linux opt and pgo. r=backout 2017-02-22 09:59:29 +01:00
Trevor Saunders
c886524f63 bug 1340579 - add another diagnostic assert r=davidb 2017-02-21 22:27:49 -05:00
Trevor Saunders
b2600d1cbe bug 1340903 - work around binding child docs to non outer DocAccessibles r=eeejay 2017-02-21 22:27:49 -05:00
Trevor Saunders
98b6c0804b bug 1332690 - work around non existant proxies 2017-02-21 11:19:51 -05:00
Eitan Isaacson
7f072468f4 Bug 1340733 - Fix attributes getter in win/ProxyAccessible. r=yzen
MozReview-Commit-ID: 7s3UrJlcsEQ

--HG--
extra : rebase_source : 8e9505a5d789088ba121b67be00c7f2b0aa332a8
2017-02-16 15:32:19 -08:00
Trevor Saunders
dd89edabac bug 1197184 - downgrade various MOZ_DIAGNOSTIC_ASSERTs 2017-02-17 10:15:26 -05:00
Trevor Saunders
8db37fbd19 bug 1338755 - split up SetCOMProxy() r=yzen 2017-02-17 09:06:26 -05:00
Trevor Saunders
053f200a0c bug 1338755 - split parts of SetCOMProxy() out to MaybeInitWindowEmulation() r=yzen 2017-02-17 09:06:26 -05:00
Trevor Saunders
43c3840ad1 bug 1197181 - downgrade diagnostic assert in RecvHideEvent() 2017-02-16 16:27:40 -05:00
Trevor Saunders
d758a5e011 bug 1338755 - split ParentCOMProxy message up r=yzen
sending the emulated window information is basically unrelated to sending the
parent COM proxy to the child process, and in the future it will be useful to
send these at different times.
2017-02-16 15:17:53 -05:00
Trevor Saunders
1f0c97f262 bug 1339472 - refer to child DocAccessibleParents by id r=yzen 2017-02-14 18:10:04 -05:00
Trevor Saunders
66243ccb3f bug 1339472 - make DocAccessibleParents refer to there parent document by id r=yzen
This saves a little space on x86_64 builds.
2017-02-14 18:10:03 -05:00
Trevor Saunders
9f62f9a5c1 bug 1339472 - keep a map from DocAccessibleParents to the actors themselves r=yzen 2017-02-14 18:10:03 -05:00
Trevor Saunders
2f8dccb36c bug 1339156 - add an assert to RemoveChildDoc() r=yzen 2017-02-14 11:10:47 -05:00
Trevor Saunders
570037515c bug 1339128 - reference parent proxy by id r=eeejay 2017-02-13 14:52:07 -05:00
Eitan Isaacson
5f324eb9dd Bug 1336637 - Support relation methods in xpc on windows. r=tbsaunde
MozReview-Commit-ID: BcyE0Vy1Fu4
2017-02-10 17:27:33 -08:00
Trevor Saunders
0525b774a0 bug 1337983 - remove incorrect assert r=aklotz
the outer doc of a top level content document does not necessarily exist when
we recieve the PDocAccessibleConstructor message for it.  So we shouldn't asser
there is an outer doc here.
2017-02-10 16:06:54 -05:00
Yura Zenevich
e04a84bbc8 Bug 1206711 - pass emulated window proxy to doc accessible child to be used as parent IAccessible for top level documents. r=tbsaunde
MozReview-Commit-ID: 4ejD6OmNgiR
2017-02-10 08:11:29 -05:00
Trevor Saunders
96fc2fb77a bug 1326084 - rework ProxyAccessible handling of outer docs 2017-02-10 00:41:29 -05:00
Wes Kocher
afcf40f3ea Backed out changeset 15d237d39fb8 (bug 1332690) for asserts in DocAccessibleParent.cpp a=backout
MozReview-Commit-ID: BwRMVLvOSde
2017-02-08 16:19:20 -08:00
Trevor Saunders
dbe8f2a177 bug 1332690 - remove diagnostic for nonexistant proxies 2017-02-08 14:22:14 -05:00
Trevor Saunders
83b95e091a bug 1336901 - remove incorrect assert r=yzen
There are cases where there is no good reason to shutdown the child document
actors before the parent.  For example when TabParent::DestroyInternal() is
about to send the Destroy message we might as well just shut down the top level
document and let that tear down the rest.
2017-02-06 13:21:30 -05:00
Trevor Saunders
a7e68b58ed bug 1337028 - add another diagnostic assert to DocAccessibleParent::Destroy() r=yzen 2017-02-06 13:21:30 -05:00
Wes Kocher
10fb637abf Merge m-c to inbound a=release CLOSED TREE
MozReview-Commit-ID: AwyW5DU4EMh
2017-02-03 17:21:29 -08:00
Trevor Saunders
47cd47695a backout bug 1326084 2017-02-03 12:47:51 -05:00
Eitan Isaacson
78e90909da Bug 1335825 - Provide full state bitfield to xpcom accessibles in Windows. r=yzen
MozReview-Commit-ID: H7lFB5khEJm
2017-02-03 15:22:09 -08:00
Trevor Saunders
820cf8dcf5 bug 1334673 - ignore some invalid Show event messages r=davidb 2017-02-02 11:37:16 -05:00
Trevor Saunders
8765a50df4 bug 1326084 - fixup shutting down a ProxyAccessible with no child doc 2017-02-02 11:37:16 -05:00
Eitan Isaacson
2725184bbf Bug 1335220 - Add minimumIncrement to windows ProxyAccessible. r=yzen
MozReview-Commit-ID: DY89qIALmrq
2017-02-01 12:37:13 -08:00
Trevor Saunders
8d2ecdbd5d bug 1326084 - ClearChildDoc() should leave the proxy marked as being an outerdoc r=aklotz
Since it can be called in strange orderings wrt SetChildDoc() it seems
reasonable to believe we can get an ordering where the proxy has a document as
a child but is not marked as having document children.
2017-02-01 14:37:01 -05:00
Trevor Saunders
5e44465e8d bug 1333514 - fix race between PDocAccessibleConstructor messages and PBrowser::Destroy messages r=billm 2017-01-26 10:01:43 -05:00
Yura Zenevich
299ef55172 Bug 1329697 - registering typelib for IGeckoCustom interface. r=aklotz
MozReview-Commit-ID: CIvoSrPrRVM
2017-01-25 13:40:17 -05:00
Yura Zenevich
26f2c60483 Bug 1206711 - add support for HWND emulation for content top level docs on Windows. r=tbsaunde
MozReview-Commit-ID: GQ1LxCwtv3j
2017-01-24 09:45:25 -05:00
Trevor Saunders
b09bcb000f bug 1324863 - paper over null parent proxy accessible r=davidb 2017-01-23 17:08:16 -05:00
Trevor Saunders
0d5925b408 bug 1332690 - return failure from DocAccessibleParent::RecvShow() when appropriate r=yzen 2017-01-23 11:09:39 -05:00
Trevor Saunders
71398a8500 bug 1331255 - annotate some IPC failure conditions r=eeejay 2017-01-18 16:09:45 -05:00
Trevor Saunders
3be357c7ba bug 1330730 - make sure mAccessibles and mChildDocs are cleared by DocAccessibleparent::Destroy() r=davidb
This shouldn't be necessary because shutting down all the proxies and child
  documents should already do it, but we might as well be sure.
2017-01-16 17:18:52 -05:00
Trevor Saunders
24d013e645 bug 1330730 - ignore events delivered to a destroyed DocAccessibleParent r=smaug
After bug 1329814 a DocAccessibleParent can be shutdown by the parent process
before a content process has started shutting down the document that
DocAccessibleParent represents.  That means the content processcan send an
event from a live document to a DocAccessibleParent that has already been
destroyed.
2017-01-16 17:18:52 -05:00
Trevor Saunders
235c3677ff bug 1329814 - fix race condition when shutting down a tab r=smaug
When TabChild recieves the Destroy message from its parent the doc accessibles
for that tab are shut down.  However if the Shutdown message sent by
DocAccessible::Shutdown() isn't recieved before the child process handles the
runnable that sends __delete__ to the tab parent actor the parent can send a
message to the already shut down doc accessible child actor.
2017-01-12 05:19:36 -05:00
Carsten "Tomcat" Book
58249e3bf0 Backed out changeset 18151dec259d (bug 1184217) for causing bug 1329644 2017-01-10 16:55:37 +01:00
Yura Zenevich
4a9e23d316 Bug 1269369 - add support for GetID XPCOM method on Windows with e10s. r=tbsaunde
MozReview-Commit-ID: KXhDeNW3Oaw
2017-01-09 14:52:51 -05:00
Trevor Saunders
971e419e21 bug 1184217 - make CheckDocTree check the entire document tree not just the subtree r=davidb 2017-01-08 17:30:54 -05:00
Trevor Saunders
2bc78b9768 bug 1301148 - implement anchor at for windows r=aklotz 2017-01-05 10:48:10 -05:00
Trevor Saunders
0ec84956f2 bug 1301148 - allow getting a proxy accessible from a com proxy r=aklotz 2017-01-05 10:48:10 -05:00
Trevor Saunders
70cc56383f bug 1301148 - implement anchor count for windows r=aklotz 2017-01-05 10:48:10 -05:00
Trevor Saunders
1cdf6bbf9b bug 1301148 - implement easy parts of nsIAccessibleHyperlink r=aklotz 2017-01-05 10:48:09 -05:00
Aaron Klotz
0f16e8d38d Bug 1323996: Make PDocAccessible.ipdl import IAccessibleHolder from IPCTypes.h to fix --disable-accessibility build failures; r=tbsaunde
MozReview-Commit-ID: JYD3lMmdlyc
2016-12-16 12:23:31 -07:00
Aaron Klotz
fd166cbe7a Bug 1314707: Replace PDocAccessible::SendCOMProxy with new parameter to PDocAccessibleConstructor and async RecvParentCOMProxy call in child. Sending of a11y events from child to parent is now deferred until DocAccessibleChild::RecvParentCOMProxy is called; r=tbsaunde
MozReview-Commit-ID: DjxSfLJQtTu

--HG--
extra : rebase_source : d0f1ff1d22df003bc87968e1991eb08eeb977d85
2016-12-01 16:28:54 -07:00
Aaron Klotz
2c794979ff Bug 1321935: Make ProxyAccessibleBase::SetChildDoc tolerate replacing one document with another, and add a new ClearChildDoc for removing that document; r=tbsaunde
MozReview-Commit-ID: 2GgiUPf4gi0
2016-12-02 14:50:00 -07:00
Kan-Ru Chen
c649cfaa98 Bug 1319271 - Use actor's manager in case actor is already deleted (r=billm)
MozReview-Commit-ID: 3Dr2POjqNft
2016-12-13 16:46:33 -08:00
Aaron Klotz
d2484c8f56 Bug 1320192: Ensure that we return a null native accessible if GetWindow(GW_CHILD) on a windowed plugin fails; r=tbsaunde
MozReview-Commit-ID: 1Fe8xwS3dWc
2016-12-07 09:37:36 -10:00
Aaron Klotz
0307053bdb Bug 1321622: Make DocAccessibleParent::Unbind delegate to DocAccessibleParent::RemoveChildDoc; r=tbsaunde
MozReview-Commit-ID: 4O3xJnPDpRB
2016-12-06 10:28:48 -10:00
Aaron Klotz
3358d07564 Bug 1319640: Make obtaining of plugin IAccessible go through Chrome process on Sandboxed builds; r=tbsaunde
MozReview-Commit-ID: DQnOwJ1VpYS
2016-12-03 16:07:24 -07:00
Trevor Saunders
ea6ea16d57 bug 1270916 - use accessible->IndexInParent() in DocAccessibleChildBase::ShowEvent() r=davidb
Since we will fire events in the correct order we can use the index of the
event target at the time the event is fired.  This protects from weird cases
where the target is inserted, and then children before the target are removed.
2016-11-16 23:47:01 -05:00
Wes Kocher
d8a0141e5f Backed out 12 changesets (bug 1270916) for a11y crashes a=backout CLOSED TREE
Backed out changeset 916cbaf21a63 (bug 1270916)
Backed out changeset 8ee47068d1fb (bug 1270916)
Backed out changeset 60189bf08272 (bug 1270916)
Backed out changeset 5ca49b5d1c51 (bug 1270916)
Backed out changeset b8ead1b86059 (bug 1270916)
Backed out changeset 034efc9a4408 (bug 1270916)
Backed out changeset a9d6410f068e (bug 1270916)
Backed out changeset eefa622b467a (bug 1270916)
Backed out changeset 91a8f65a69fe (bug 1270916)
Backed out changeset cd68b5fd88a6 (bug 1270916)
Backed out changeset 4c58195d6bcf (bug 1270916)
Backed out changeset 8e5f19f19b7f (bug 1270916)
2016-11-16 16:16:13 -08:00
Trevor Saunders
4e7e9203c9 bug 1270916 - use accessible->IndexInParent() in DocAccessibleChildBase::ShowEvent() r=davidb
Since we will fire events in the correct order we can use the index of the
event target at the time the event is fired.  This protects from weird cases
where the target is inserted, and then children before the target are removed.
2016-11-16 18:15:23 -05:00
Kan-Ru Chen
f8100451db Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm
We will use the new type for the generated IPDL message handler
prototype to make sure correct error handling method is called.

MozReview-Commit-ID: AzVbApxFGZ0
2016-11-15 04:26:00 +01:00
Aaron Klotz
31db1f008a Bug 1315638: Modify MainThreadHandoff::FixArrayElements to be able to distinguish between outparams with different levels of indirection; r=jimm
MozReview-Commit-ID: HZgED9JT16m

--HG--
extra : rebase_source : 3b147251d55229aa5722d9f9ec6a9ad832a83c87
2016-11-07 16:04:06 -07:00
Chris Manchester
61aedfd2ef Bug 1303533 - Don't traverse accessible/ipc/win/typelib during Artifact builds. r=mshal
MozReview-Commit-ID: Clxfj8h8ZRT

--HG--
extra : rebase_source : 4d197e629b942d749e9d47fc0bf186d666140f9e
2016-11-01 22:45:35 -07:00
Michael Li
fdb96b726d bug 1303447 - implement text interface methods for the windows ProxyAccessible r=aklotz 2016-10-27 18:11:55 -04:00
Michael Li
4560f258dd bug 1303133 - Implement ia2AccessibleValue methods in ProxyAccessible for Windows. r=aklotz 2016-10-27 18:11:54 -04:00
Aaron Klotz
e6b863ac53 Bug 1309236: Move setting of MSAA ID to PDocAccessibleConstructor; r=tbsaunde
MozReview-Commit-ID: D5iFud9DiEh

--HG--
extra : rebase_source : d1a1ec17258e9be8023dd730593745d32a96cc0f
2016-10-27 13:16:24 -06:00
Trevor Saunders
3bee0c9b28 bug 1305402 - add new IPC messages needed for AtkTableCell interface r=davidb
To implement the interface with 1 IPC message per method we need these new
messages.
2016-10-18 13:37:25 -04:00
Aaron Klotz
22d38ae56d Bug 1308397: Fix stack overflow by ensuring that ProxyAccessible::GetCOMInterface uses its real MSAA ID to lazily resolve its COM proxy, instead of using CHILDID_SELF; r=tbsaunde
MozReview-Commit-ID: 20xdOlcCXed
2016-10-17 12:39:16 -06:00
Sebastian Hengst
4fb838d8c5 Backed out changeset 28272f824ad0 (bug 1305402) 2016-10-13 23:15:09 +02:00
Sebastian Hengst
a6102946de Backed out changeset 27509f16a0f2 2016-10-13 23:15:03 +02:00
Trevor Saunders
7f873ac8c9 no bug - fixup unused value Werror bustage landed on a CLOSED TREEE 2016-10-13 17:00:15 -04:00
Trevor Saunders
743d490068 bug 1305402 - add new IPC messages needed for AtkTableCell interface r=davidb
To implement the interface with 1 IPC message per method we need these new
messages.
2016-10-13 16:18:27 -04:00
Aaron Klotz
6a79a0759a Bug 1301232: Re-enable jsat mochitests on Windows; r=yzen
MozReview-Commit-ID: Hsmg056d6js

--HG--
extra : rebase_source : 9832e77938f112460cac075391f4f68b0adf18b8
2016-10-12 12:34:57 -06:00
Phil Ringnalda
c26d9eb6e6 Backed out changeset 0257341f6b62 (bug 1301232) for WinXP permaorange in test_content_integration.html
MozReview-Commit-ID: Bz0VkhmpJL1
2016-10-11 18:42:46 -07:00
Aaron Klotz
08df7a0cf6 Bug 1301232: Re-enable jsat mochitests on Windows; r=yzen
MozReview-Commit-ID: CPIfvMDTLzv
2016-10-11 10:49:07 -06:00
Aaron Klotz
a90989b900 Bug 1304449: Part 4 - Change Windows a11y MSAA id generation to partition based on content process id; r=tbsaunde
MozReview-Commit-ID: 1IBkP20uc1f

--HG--
extra : rebase_source : d0861da3419534f04f2e9de66157b8cde57c1ccd
2016-10-05 15:56:20 -06:00
Bill McCloskey
f478d1188c Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
Bill McCloskey
b83db28a45 Revert "Bug 1306708 - Rename prio to nested in IPDL (r=dvander)" on a CLOSED TREE
This reverts commit b1460c626078afbb9290e7d9ecaf3af605d5e893.
2016-10-04 15:55:19 -07:00
Bill McCloskey
eddd80027c Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 15:28:14 -07:00
Michael Li
a29eef42cd Bug 1303040 - implement shared header for two ProxyAccessible classes. r=tbsaunde
MozReview-Commit-ID: 1cU71RljySc
2016-09-21 14:10:33 -04:00