accessible/src/xul/XULMenuAccessible.h

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #ifndef mozilla_a11y_XULMenuAccessible_h__
     7 #define mozilla_a11y_XULMenuAccessible_h__
     9 #include "AccessibleWrap.h"
    10 #include "nsIDOMXULSelectCntrlEl.h"
    11 #include "XULSelectControlAccessible.h"
    13 namespace mozilla {
    14 namespace a11y {
    16 /**
    17  * Used for XUL menu, menuitem elements.
    18  */
    19 class XULMenuitemAccessible : public AccessibleWrap
    20 {
    21 public:
    22   enum { eAction_Click = 0 };
    24   XULMenuitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
    26   // nsIAccessible
    27   NS_IMETHOD DoAction(uint8_t index);
    28   NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
    30   // Accessible
    31   virtual void Description(nsString& aDescription);
    32   virtual a11y::role NativeRole();
    33   virtual uint64_t NativeState();
    34   virtual uint64_t NativeInteractiveState() const;
    35   virtual int32_t GetLevelInternal();
    37   virtual bool CanHaveAnonChildren();
    39   // ActionAccessible
    40   virtual uint8_t ActionCount();
    41   virtual KeyBinding AccessKey() const;
    42   virtual KeyBinding KeyboardShortcut() const;
    44   // Widgets
    45   virtual bool IsActiveWidget() const;
    46   virtual bool AreItemsOperable() const;
    47   virtual Accessible* ContainerWidget() const;
    49 protected:
    50   // Accessible
    51   virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
    52 };
    54 /**
    55  * Used for XUL menuseparator element.
    56  */
    57 class XULMenuSeparatorAccessible : public XULMenuitemAccessible
    58 {
    59 public:
    60   XULMenuSeparatorAccessible(nsIContent* aContent, DocAccessible* aDoc);
    62   // nsIAccessible
    63   NS_IMETHOD DoAction(uint8_t index);
    64   NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
    66   // Accessible
    67   virtual a11y::role NativeRole();
    68   virtual uint64_t NativeState();
    70   // ActionAccessible
    71   virtual uint8_t ActionCount();
    73 protected:
    74   // Accessible
    75   virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
    76 };
    79 /**
    80  * Used for XUL menupopup and panel.
    81  */
    82 class XULMenupopupAccessible : public XULSelectControlAccessible
    83 {
    84 public:
    85   XULMenupopupAccessible(nsIContent* aContent, DocAccessible* aDoc);
    87   // Accessible
    88   virtual a11y::role NativeRole();
    89   virtual uint64_t NativeState();
    91   // Widgets
    92   virtual bool IsWidget() const;
    93   virtual bool IsActiveWidget() const;
    94   virtual bool AreItemsOperable() const;
    96   virtual Accessible* ContainerWidget() const;
    98 protected:
    99   // Accessible
   100   virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
   101 };
   103 /**
   104  * Used for XUL menubar element.
   105  */
   106 class XULMenubarAccessible : public AccessibleWrap
   107 {
   108 public:
   109   XULMenubarAccessible(nsIContent* aContent, DocAccessible* aDoc);
   111   // Accessible
   112   virtual a11y::role NativeRole();
   114   // Widget
   115   virtual bool IsActiveWidget() const;
   116   virtual bool AreItemsOperable() const;
   117   virtual Accessible* CurrentItem();
   118   virtual void SetCurrentItem(Accessible* aItem);
   120 protected:
   121   // Accessible
   122   virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
   123 };
   125 } // namespace a11y
   126 } // namespace mozilla
   128 #endif

mercurial