Bug 1260496 - get rid of CacheChildren for application accessible, r=marcoz

This commit is contained in:
Alexander Surkov
2016-04-01 10:57:06 -04:00
parent f593fda2fd
commit af635b1433
4 changed files with 6 additions and 14 deletions

View File

@@ -60,9 +60,6 @@ DocManager::GetDocAccessible(nsIDocument* aDocument)
if (!aDocument) if (!aDocument)
return nullptr; return nullptr;
// Ensure CacheChildren is called before we query cache.
ApplicationAcc()->EnsureChildren();
DocAccessible* docAcc = GetExistingDocAccessible(aDocument); DocAccessible* docAcc = GetExistingDocAccessible(aDocument);
if (docAcc) if (docAcc)
return docAcc; return docAcc;

View File

@@ -1327,12 +1327,15 @@ nsAccessibilityService::Init()
logging::CheckEnv(); logging::CheckEnv();
#endif #endif
gAccessibilityService = this;
if (XRE_IsParentProcess()) if (XRE_IsParentProcess())
gApplicationAccessible = new ApplicationAccessibleWrap(); gApplicationAccessible = new ApplicationAccessibleWrap();
else else
gApplicationAccessible = new ApplicationAccessible(); gApplicationAccessible = new ApplicationAccessible();
NS_ADDREF(gApplicationAccessible); // will release in Shutdown() NS_ADDREF(gApplicationAccessible); // will release in Shutdown()
gApplicationAccessible->Init();
#ifdef MOZ_CRASHREPORTER #ifdef MOZ_CRASHREPORTER
CrashReporter:: CrashReporter::
@@ -1828,9 +1831,7 @@ NS_GetAccessibilityService(nsIAccessibilityService** aResult)
statistics::A11yInitialized(); statistics::A11yInitialized();
nsAccessibilityService::gAccessibilityService = service;
NS_ADDREF(*aResult = service); NS_ADDREF(*aResult = service);
return NS_OK; return NS_OK;
} }

View File

@@ -155,16 +155,9 @@ ApplicationAccessible::AccessKey() const
return KeyBinding(); return KeyBinding();
} }
////////////////////////////////////////////////////////////////////////////////
// Accessible protected methods
void void
ApplicationAccessible::CacheChildren() ApplicationAccessible::Init()
{ {
// CacheChildren is called only once for application accessible when its
// children are requested because empty InvalidateChldren() prevents its
// repeated calls.
// Basically children are kept updated by Append/RemoveChild method calls. // Basically children are kept updated by Append/RemoveChild method calls.
// However if there are open windows before accessibility was started // However if there are open windows before accessibility was started
// then we need to make sure root accessibles for open windows are created so // then we need to make sure root accessibles for open windows are created so

View File

@@ -56,6 +56,8 @@ public:
virtual KeyBinding AccessKey() const override; virtual KeyBinding AccessKey() const override;
// ApplicationAccessible // ApplicationAccessible
void Init();
void AppName(nsAString& aName) const void AppName(nsAString& aName) const
{ {
nsAutoCString cname; nsAutoCString cname;
@@ -86,7 +88,6 @@ protected:
virtual ~ApplicationAccessible() {} virtual ~ApplicationAccessible() {}
// Accessible // Accessible
virtual void CacheChildren() override;
virtual Accessible* GetSiblingAtOffset(int32_t aOffset, virtual Accessible* GetSiblingAtOffset(int32_t aOffset,
nsresult *aError = nullptr) const override; nsresult *aError = nullptr) const override;