1 /* clang-format off */
2 /* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
3 /* clang-format on */
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 
8 #ifndef mozilla_a11y_DocAccessibleWrap_h__
9 #define mozilla_a11y_DocAccessibleWrap_h__
10 
11 #include "DocAccessible.h"
12 #include "nsTHashSet.h"
13 
14 namespace mozilla {
15 
16 class PresShell;
17 
18 namespace a11y {
19 
20 class DocAccessibleWrap : public DocAccessible {
21  public:
22   DocAccessibleWrap(dom::Document* aDocument, PresShell* aPresShell);
23 
24   virtual ~DocAccessibleWrap();
25 
26   virtual void Shutdown() override;
27 
28   virtual void AttributeChanged(dom::Element* aElement, int32_t aNameSpaceID,
29                                 nsAtom* aAttribute, int32_t aModType,
30                                 const nsAttrValue* aOldValue) override;
31 
32   void QueueNewLiveRegion(LocalAccessible* aAccessible);
33 
34   void ProcessNewLiveRegions();
35 
36  protected:
37   virtual void DoInitialUpdate() override;
38 
39  private:
40   nsTHashSet<void*> mNewLiveRegions;
41 };
42 
43 }  // namespace a11y
44 }  // namespace mozilla
45 
46 #endif
47