зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1731003: RemoteAccessible: Don't try to use the COM proxy at all if the cache is enabled, even if mCachedFields is null. r=eeejay
If the cache is enabled, we don't have COM proxies from the content process. Differential Revision: https://phabricator.services.mozilla.com/D125786
This commit is contained in:
Родитель
0bb7a057b2
Коммит
3f364558d3
|
@ -18,6 +18,7 @@
|
|||
#include "mozilla/a11y/Platform.h"
|
||||
#include "RelationType.h"
|
||||
#include "mozilla/a11y/Role.h"
|
||||
#include "mozilla/StaticPrefs_accessibility.h"
|
||||
|
||||
#include <comutil.h>
|
||||
|
||||
|
@ -31,6 +32,11 @@ bool RemoteAccessible::GetCOMInterface(void** aOutAccessible) const {
|
|||
return false;
|
||||
}
|
||||
|
||||
// This should never be called if the cache is enabled. We can't get a COM
|
||||
// proxy from the content process in that case. Instead, the code below would
|
||||
// return an MsaaAccessible from our process which would end up calling
|
||||
// methods here in RemoteAccessible, causing infinite recursion.
|
||||
MOZ_ASSERT(!StaticPrefs::accessibility_cache_enabled_AtStartup());
|
||||
if (!mCOMProxy && mSafeToRecurse) {
|
||||
RemoteAccessible* thisPtr = const_cast<RemoteAccessible*>(this);
|
||||
// See if we can lazily obtain a COM proxy
|
||||
|
@ -119,7 +125,7 @@ static RemoteAccessible* GetProxyFor(DocAccessibleParent* aDoc,
|
|||
}
|
||||
|
||||
ENameValueFlag RemoteAccessible::Name(nsString& aName) const {
|
||||
if (mCachedFields) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return RemoteAccessibleBase<RemoteAccessible>::Name(aName);
|
||||
}
|
||||
|
||||
|
@ -161,7 +167,7 @@ void RemoteAccessible::Value(nsString& aValue) const {
|
|||
}
|
||||
|
||||
double RemoteAccessible::Step() const {
|
||||
if (mCachedFields) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return RemoteAccessibleBase<RemoteAccessible>::Step();
|
||||
}
|
||||
|
||||
|
@ -180,7 +186,7 @@ double RemoteAccessible::Step() const {
|
|||
}
|
||||
|
||||
void RemoteAccessible::Description(nsString& aDesc) const {
|
||||
if (mCachedFields) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return RemoteAccessibleBase<RemoteAccessible>::Description(aDesc);
|
||||
}
|
||||
|
||||
|
@ -403,7 +409,7 @@ nsTArray<RemoteAccessible*> RemoteAccessible::RelationByType(
|
|||
}
|
||||
|
||||
double RemoteAccessible::CurValue() const {
|
||||
if (mCachedFields) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return RemoteAccessibleBase<RemoteAccessible>::CurValue();
|
||||
}
|
||||
|
||||
|
@ -436,7 +442,7 @@ bool RemoteAccessible::SetCurValue(double aValue) {
|
|||
}
|
||||
|
||||
double RemoteAccessible::MinValue() const {
|
||||
if (mCachedFields) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return RemoteAccessibleBase<RemoteAccessible>::MinValue();
|
||||
}
|
||||
|
||||
|
@ -455,7 +461,7 @@ double RemoteAccessible::MinValue() const {
|
|||
}
|
||||
|
||||
double RemoteAccessible::MaxValue() const {
|
||||
if (mCachedFields) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return RemoteAccessibleBase<RemoteAccessible>::MaxValue();
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче