Files
tubestation/accessible/windows/msaa/MsaaIdGenerator.h
James Teh 4a4509a537 Bug 1954418 part 1: Remove ISimpleDOM code that only works for LocalAccessible. r=morgan
We have a lot of ISimpleDOM code which only works for LocalAccessible.
Because all web content uses RemoteAccessible now, practically, the only usable ISimpleDOM functionality is that which works for RemoteAccessible.
Therefore, remove all code that only works for LocalAccessible.

Differential Revision: https://phabricator.services.mozilla.com/D241805
2025-03-18 07:10:39 +00:00

46 lines
1.1 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* 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_MsaaIdGenerator_h
#define mozilla_a11y_MsaaIdGenerator_h
#include "mozilla/a11y/IDSet.h"
#include "mozilla/NotNull.h"
#include "nsITimer.h"
namespace mozilla {
namespace a11y {
class MsaaAccessible;
/**
* This class is responsible for generating child IDs used by our MSAA
* implementation.
*/
class MsaaIdGenerator {
public:
uint32_t GetID();
void ReleaseID(NotNull<MsaaAccessible*> aMsaaAcc);
private:
bool ReleaseID(uint32_t aID);
void ReleasePendingIDs();
private:
static constexpr uint32_t kNumFullIDBits = 31UL;
IDSet mIDSet{kNumFullIDBits};
nsTArray<uint32_t> mIDsToRelease;
nsCOMPtr<nsITimer> mReleaseIDTimer;
// Whether GetID has been called yet this session.
bool mGetIDCalled = false;
};
} // namespace a11y
} // namespace mozilla
#endif // mozilla_a11y_MsaaIdGenerator_h