зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1159327 - Enable accessibility more broadly with e10s and add an e10s a11y blacklist for clients with known issues. r=tbsaunde
This commit is contained in:
Родитель
012228fe16
Коммит
588accccdc
|
@ -39,6 +39,26 @@ public:
|
|||
*/
|
||||
static bool IsDolphin() { return !!(sConsumers & DOLPHIN); }
|
||||
|
||||
/**
|
||||
* Return true if we should disable e10s due to a detected
|
||||
* accessibility client.
|
||||
*/
|
||||
static bool IsBlacklistedForE10S()
|
||||
{
|
||||
// We currently blacklist everything except UNKNOWN and UIAUTOMATION
|
||||
return !!(sConsumers &
|
||||
(NVDA |
|
||||
JAWS |
|
||||
OLDJAWS |
|
||||
WE |
|
||||
DOLPHIN |
|
||||
SEROTEK |
|
||||
COBRA |
|
||||
ZOOMTEXT |
|
||||
KAZAGURU |
|
||||
YOUDAO));
|
||||
}
|
||||
|
||||
private:
|
||||
Compatibility();
|
||||
Compatibility(const Compatibility&);
|
||||
|
|
|
@ -2811,8 +2811,7 @@ let E10SUINotification = {
|
|||
// e10s doesn't work with accessibility, so we prompt to disable
|
||||
// e10s if a11y is enabled, now or in the future.
|
||||
Services.obs.addObserver(this, "a11y-init-or-shutdown", true);
|
||||
if (Services.appinfo.accessibilityEnabled &&
|
||||
!Services.appinfo.accessibilityIsUIA) {
|
||||
if (Services.appinfo.accessibilityIsBlacklistedForE10S) {
|
||||
this._showE10sAccessibilityWarning();
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -105,6 +105,7 @@
|
|||
|
||||
#ifdef ACCESSIBILITY
|
||||
#include "nsAccessibilityService.h"
|
||||
#include "mozilla/a11y/Compatibility.h"
|
||||
#endif
|
||||
|
||||
#include "nsCRT.h"
|
||||
|
@ -859,17 +860,20 @@ nsXULAppInfo::GetAccessibilityEnabled(bool* aResult)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsXULAppInfo::GetAccessibilityIsUIA(bool* aResult)
|
||||
nsXULAppInfo::GetAccessibilityIsBlacklistedForE10S(bool* aResult)
|
||||
{
|
||||
*aResult = false;
|
||||
#if defined(ACCESSIBILITY) && defined(XP_WIN)
|
||||
// This is the same check the a11y service does to identify uia clients.
|
||||
if (GetAccService() != nullptr &&
|
||||
(::GetModuleHandleW(L"uiautomation") ||
|
||||
::GetModuleHandleW(L"uiautomationcore"))) {
|
||||
#if defined(ACCESSIBILITY)
|
||||
#if defined(XP_WIN)
|
||||
if (GetAccService() && mozilla::a11y::Compatibility::IsBlacklistedForE10S()) {
|
||||
*aResult = true;
|
||||
}
|
||||
#elif defined(XP_MACOSX)
|
||||
if (GetAccService()) {
|
||||
*aResult = true;
|
||||
}
|
||||
#endif
|
||||
#endif // defined(ACCESSIBILITY)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ bool BrowserTabsRemoteAutostart();
|
|||
* stable/frozen, please contact Benjamin Smedberg.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(c4cd11c4-6e8e-49da-85a8-dad3b7605bc3)]
|
||||
[scriptable, uuid(ce9d05f4-0c20-4f52-87e1-3a425e61e2f3)]
|
||||
interface nsIXULRuntime : nsISupports
|
||||
{
|
||||
/**
|
||||
|
@ -97,10 +97,10 @@ interface nsIXULRuntime : nsISupports
|
|||
readonly attribute boolean accessibilityEnabled;
|
||||
|
||||
/**
|
||||
* Indicates if the active accessibility client is UIA.
|
||||
* Indicates if the active accessibility client is blacklisted for e10s.
|
||||
* DO NOT USE! This is temporary and will be removed.
|
||||
*/
|
||||
readonly attribute boolean accessibilityIsUIA;
|
||||
readonly attribute boolean accessibilityIsBlacklistedForE10S;
|
||||
|
||||
/**
|
||||
* Indicates whether the current Firefox build is 64-bit.
|
||||
|
|
Загрузка…
Ссылка в новой задаче