mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-19 13:47:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
66
accessible/xpcom/xpcAccessibilityService.h
Normal file
66
accessible/xpcom/xpcAccessibilityService.h
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef mozilla_a11y_xpcAccessibilityService_h_
|
||||
#define mozilla_a11y_xpcAccessibilityService_h_
|
||||
|
||||
#include "nsIAccessibilityService.h"
|
||||
|
||||
class xpcAccessibilityService : public nsIAccessibleRetrieval
|
||||
{
|
||||
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIACCESSIBILITYSERVICE
|
||||
NS_DECL_NSIACCESSIBLERETRIEVAL
|
||||
|
||||
/**
|
||||
* Return true if xpc accessibility service is in use.
|
||||
*/
|
||||
static bool IsInUse() {
|
||||
// When ref count goes down to 1 (held internally as a static reference),
|
||||
// it means that there are no more external references and thus it is not in
|
||||
// use.
|
||||
return gXPCAccessibilityService ? gXPCAccessibilityService->mRefCnt > 1 : false;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual ~xpcAccessibilityService() {
|
||||
if (mShutdownTimer) {
|
||||
mShutdownTimer->Cancel();
|
||||
mShutdownTimer = nullptr;
|
||||
}
|
||||
gXPCAccessibilityService = nullptr;
|
||||
}
|
||||
|
||||
private:
|
||||
// xpcAccessibilityService creation is controlled by friend
|
||||
// NS_GetAccessibilityService, keep constructor private.
|
||||
xpcAccessibilityService() { };
|
||||
|
||||
nsCOMPtr<nsITimer> mShutdownTimer;
|
||||
|
||||
/**
|
||||
* Reference for xpc accessibility service instance.
|
||||
*/
|
||||
static xpcAccessibilityService* gXPCAccessibilityService;
|
||||
|
||||
/**
|
||||
* Used to shutdown nsAccessibilityService if xpcom accessible service is not
|
||||
* in use any more.
|
||||
*/
|
||||
static void ShutdownCallback(nsITimer* aTimer, void* aClosure);
|
||||
|
||||
friend nsresult NS_GetAccessibilityService(nsIAccessibilityService** aResult);
|
||||
};
|
||||
|
||||
// for component registration
|
||||
// {3b265b69-f813-48ff-880d-d88d101af404}
|
||||
#define NS_ACCESSIBILITY_SERVICE_CID \
|
||||
{ 0x3b265b69, 0xf813, 0x48ff, { 0x88, 0x0d, 0xd8, 0x8d, 0x10, 0x1a, 0xf4, 0x04 } }
|
||||
|
||||
extern nsresult
|
||||
NS_GetAccessibilityService(nsIAccessibilityService** aResult);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue