Bug 1695116 part 11: When the cache is enabled, don't generate an MSAA id for each content process. r=morgan

This isn't used and thus isn't necessary.
Also, we can currently only support 127 content processes because of this id allocation, so avoiding this removes that restriction.

Differential Revision: https://phabricator.services.mozilla.com/D116206
This commit is contained in:
James Teh 2021-06-08 07:20:53 +00:00
parent 552af4f9de
commit 2aca9d3532
3 changed files with 9 additions and 2 deletions

View File

@ -48,6 +48,7 @@
#ifdef XP_WIN
# include "mozilla/a11y/Compatibility.h"
# include "mozilla/dom/ContentChild.h"
# include "mozilla/StaticPrefs_accessibility.h"
# include "mozilla/StaticPtr.h"
#endif
@ -1222,7 +1223,8 @@ bool nsAccessibilityService::Init() {
MOZ_ASSERT(contentChild);
// If we were instantiated by the chrome process, GetMsaaID() will return
// a non-zero value and we may safely continue with initialization.
if (!contentChild->GetMsaaID()) {
if (!StaticPrefs::accessibility_cache_enabled_AtStartup() &&
!contentChild->GetMsaaID()) {
// Since we were not instantiated by chrome, we need to synchronously
// obtain a MSAA content process id.
contentChild->SendGetA11yContentId();

View File

@ -169,6 +169,9 @@ int32_t MsaaAccessible::GetChildIDFor(Accessible* aAccessible) {
/* static */
uint32_t MsaaAccessible::GetContentProcessIdFor(
dom::ContentParentId aIPCContentId) {
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
return 0;
}
return sIDGen.GetContentProcessIDFor(aIPCContentId);
}

View File

@ -43,6 +43,7 @@
#include "mozilla/SharedStyleSheetCache.h"
#include "mozilla/SimpleEnumerator.h"
#include "mozilla/SpinEventLoopUntil.h"
#include "mozilla/StaticPrefs_accessibility.h"
#include "mozilla/StaticPrefs_dom.h"
#include "mozilla/StaticPrefs_fission.h"
#include "mozilla/StaticPrefs_media.h"
@ -2469,7 +2470,8 @@ mozilla::ipc::IPCResult ContentChild::RecvActivateA11y(
MOZ_ASSERT(aMainChromeTid != 0);
mMainChromeTid = aMainChromeTid;
MOZ_ASSERT(aMsaaID != 0);
MOZ_ASSERT(StaticPrefs::accessibility_cache_enabled_AtStartup() ? !aMsaaID
: aMsaaID);
mMsaaID = aMsaaID;
# endif // XP_WIN