Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / browser / accessibility / browser_accessibility_state_impl.h
index 3098341..4c88843 100644 (file)
@@ -10,7 +10,7 @@
 #include "base/basictypes.h"
 #include "base/compiler_specific.h"
 #include "base/memory/singleton.h"
-#include "content/common/view_message_enums.h"
+#include "content/common/accessibility_mode_enums.h"
 #include "content/public/browser/browser_accessibility_state.h"
 
 namespace content {
@@ -40,30 +40,46 @@ class CONTENT_EXPORT BrowserAccessibilityStateImpl
 
   static BrowserAccessibilityStateImpl* GetInstance();
 
-  virtual void EnableAccessibility() OVERRIDE;
-  virtual void DisableAccessibility() OVERRIDE;
-  virtual void OnScreenReaderDetected() OVERRIDE;
-  virtual bool IsAccessibleBrowser() OVERRIDE;
-  virtual void AddHistogramCallback(base::Closure callback) OVERRIDE;
+  void EnableAccessibility() override;
+  void DisableAccessibility() override;
+  void ResetAccessibilityMode() override;
+  void OnScreenReaderDetected() override;
+  bool IsAccessibleBrowser() override;
+  void AddHistogramCallback(base::Closure callback) override;
 
-  virtual void UpdateHistogramsForTesting() OVERRIDE;
+  void UpdateHistogramsForTesting() override;
 
   AccessibilityMode accessibility_mode() const { return accessibility_mode_; };
-  void SetAccessibilityMode(AccessibilityMode mode);
+
+  // Adds the given accessibility mode to the current accessibility mode bitmap.
+  void AddAccessibilityMode(AccessibilityMode mode);
+
+  // Removes the given accessibility mode from the current accessibility mode
+  // bitmap, managing the bits that are shared with other modes such that a
+  // bit will only be turned off when all modes that depend on it have been
+  // removed.
+  void RemoveAccessibilityMode(AccessibilityMode mode);
 
  private:
   friend class base::RefCountedThreadSafe<BrowserAccessibilityStateImpl>;
   friend struct DefaultSingletonTraits<BrowserAccessibilityStateImpl>;
 
+  // Resets accessibility_mode_ to the default value.
+  void ResetAccessibilityModeValue();
+
   // Called a short while after startup to allow time for the accessibility
   // state to be determined. Updates histograms with the current state.
   void UpdateHistograms();
 
   // Leaky singleton, destructor generally won't be called.
-  virtual ~BrowserAccessibilityStateImpl();
+  ~BrowserAccessibilityStateImpl() override;
 
   void UpdatePlatformSpecificHistograms();
 
+  // Updates the accessibility mode of all web contents, including swapped out
+  // ones. |add| specifies whether the mode should be added or removed.
+  void AddOrRemoveFromAllWebContents(AccessibilityMode mode, bool add);
+
   AccessibilityMode accessibility_mode_;
 
   std::vector<base::Closure> histogram_callbacks_;