Bug 678965 - telemetry for injected screen reader dll's. r=nfroyd,tbsaunde,marcoz

Telemetry for NVDA, JAWS, OLDJAWS, WE, DOLPHIN, SEROTEK, COBRA
This commit is contained in:
David Bolter 2012-01-20 12:26:22 -05:00
Родитель 3c2e185988
Коммит c38b23d383
4 изменённых файлов: 40 добавлений и 3 удалений

Просмотреть файл

@ -49,6 +49,9 @@ namespace statistics {
inline void A11yInitialized()
{ Telemetry::Accumulate(Telemetry::A11Y_INSTANTIATED, true); }
inline void A11yConsumers(PRUint32 aConsumer)
{ Telemetry::Accumulate(Telemetry::A11Y_CONSUMERS, aConsumer); }
/**
* Report that ISimpleDOM* has been used.
*/

Просмотреть файл

@ -40,6 +40,7 @@
#include "Compatibility.h"
#include "nsWinUtils.h"
#include "Statistics.h"
#include "mozilla/Preferences.h"
@ -84,18 +85,37 @@ PRUint32 Compatibility::sMode = Compatibility::NoCompatibilityMode;
void
Compatibility::Init()
{
// Note we collect some AT statistics/telemetry here for convenience.
HMODULE jawsHandle = ::GetModuleHandleW(L"jhook");
if (jawsHandle) {
sMode |= JAWSMode;
// IA2 off mode for JAWS versions below 8.0.2173.
if (IsModuleVersionLessThan(jawsHandle, 8, 2173))
if (IsModuleVersionLessThan(jawsHandle, 8, 2173)) {
sMode |= IA2OffMode;
statistics::A11yConsumers(OLDJAWS);
} else {
statistics::A11yConsumers(JAWS);
}
}
if (::GetModuleHandleW(L"gwm32inc"))
if (::GetModuleHandleW(L"gwm32inc")) {
sMode |= WEMode;
if (::GetModuleHandleW(L"dolwinhk"))
statistics::A11yConsumers(WE);
}
if (::GetModuleHandleW(L"dolwinhk")) {
sMode |= DolphinMode;
statistics::A11yConsumers(DOLPHIN);
}
if (::GetModuleHandleW(L"STSA32"))
statistics::A11yConsumers(SEROTEK);
if (::GetModuleHandleW(L"nvdaHelperRemote"))
statistics::A11yConsumers(NVDA);
if (::GetModuleHandleW(L"OsmHooks"))
statistics::A11yConsumers(COBRA);
// Turn off new tab switching for Jaws and WE.
if (sMode & JAWSMode || sMode & WEMode) {

Просмотреть файл

@ -97,6 +97,19 @@ private:
IA2OffMode = 1 << 3
};
/**
* List of detected consumers of a11y (used for statistics/telemetry)
*/
enum {
NVDA = 0,
JAWS = 1,
OLDJAWS = 2,
WE = 3,
DOLPHIN = 4,
SEROTEK = 5,
COBRA = 6
};
private:
static PRUint32 sMode;
};

Просмотреть файл

@ -56,6 +56,7 @@
* a11y telemetry
*/
HISTOGRAM_BOOLEAN(A11Y_INSTANTIATED, "has accessibility support been instantiated")
HISTOGRAM(A11Y_CONSUMERS, 1, 6, 7, LINEAR, "Accessibility client by enum id")
HISTOGRAM_BOOLEAN(ISIMPLE_DOM_USAGE, "have the ISimpleDOM* accessibility interfaces been used")
HISTOGRAM_BOOLEAN(IACCESSIBLE_TABLE_USAGE, "has the IAccessibleTable accessibility interface been used")