Talos causes accessibility to be instantiated only in the content
process. That means PDocAccessibleConstructor messages can be recieved
by the parent when GetAccService() returns null. The easiest way of
dealing with this is moving DocManager::mRemoteDocuments from a member
of the acc service singleton to its own global. That means the parent
process can track accessible documents in child processes without
instantiating a11y in the parent process.
AccEventGen.py was using an old, one-off Python module for writing make
dependency files. We have a more appropriate API now. So we use it.
While we were here, we modified file writing to use FileAvoidWrite to
avoid always writing the output files and bumping mtimes.
--HG--
extra : rebase_source : 34ef9badacceb4791f27816c756ad9c95bf4069c
There is only 1 caller to AccEventGen.py in the tree. We don't need
optional arguments. Convert them to positional.
Since the arguments are no longer optional, branches related to their
presence have been removed.
--HG--
extra : rebase_source : 35d51852dee031011ad9f079f3aba56b67948d7e
I/O handling in AccEventGen.py is old school. Let's use context
managers. Let's also fix some minor style foo.
--HG--
extra : rebase_source : 70a2a7c344042e1ac187282fdda32cea194aa51b
Talos causes accessibility to be instantiated only in the content
process. That means PDocAccessibleConstructor messages can be recieved
by the parent when GetAccService() returns null. The easiest way of
dealing with this is moving DocManager::mRemoteDocuments from a member
of the acc service singleton to its own global. That means the parent
process can track accessible documents in child processes without
instantiating a11y in the parent process.
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.
Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.
Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
If we notify the parent process about new child documents before we
notify it of events it is possible the parent process's tree is out of
sync with ours, and doesn't contain the outer doc accessible for the new
document. SO we need to first notify the parent of changes in the
accessible tree for the document, and then we can notify it of new child
documents. We must also make sure when we serialize a subtree that is
being created to not include the sub document or its accessible tree.