Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / accessibility / AXObjectCache.cpp
index a191a36..72c4d73 100644 (file)
@@ -57,6 +57,7 @@
 #include "core/accessibility/AXTableRow.h"
 #include "core/dom/Document.h"
 #include "core/frame/LocalFrame.h"
+#include "core/frame/Settings.h"
 #include "core/html/HTMLAreaElement.h"
 #include "core/html/HTMLImageElement.h"
 #include "core/html/HTMLInputElement.h"
@@ -104,9 +105,6 @@ void AXComputedObjectAttributeCache::clear()
     m_idMapping.clear();
 }
 
-bool AXObjectCache::gAccessibilityEnabled = false;
-bool AXObjectCache::gInlineTextBoxAccessibility = false;
-
 AXObjectCache::AXObjectCache(Document& document)
     : m_document(document)
     , m_notificationPostTimer(this, &AXObjectCache::notificationPostTimerFired)
@@ -158,7 +156,7 @@ AXObject* AXObjectCache::focusedImageMapUIElement(HTMLAreaElement* areaElement)
 
 AXObject* AXObjectCache::focusedUIElementForPage(const Page* page)
 {
-    if (!gAccessibilityEnabled)
+    if (!page->settings().accessibilityEnabled())
         return 0;
 
     // Cross-process accessibility is not yet implemented.
@@ -451,7 +449,7 @@ AXObject* AXObjectCache::getOrCreate(AbstractInlineTextBox* inlineTextBox)
 
 AXObject* AXObjectCache::rootObject()
 {
-    if (!gAccessibilityEnabled)
+    if (!accessibilityEnabled())
         return 0;
 
     return getOrCreate(m_document.view());
@@ -864,7 +862,7 @@ void AXObjectCache::handleAttributeChanged(const QualifiedName& attrName, Elemen
     else if (attrName == forAttr && isHTMLLabelElement(*element))
         labelChanged(element);
 
-    if (!attrName.localName().string().startsWith("aria-"))
+    if (!attrName.localName().startsWith("aria-"))
         return;
 
     if (attrName == aria_activedescendantAttr)
@@ -900,7 +898,7 @@ void AXObjectCache::recomputeIsIgnored(RenderObject* renderer)
 
 void AXObjectCache::inlineTextBoxesUpdated(RenderObject* renderer)
 {
-    if (!gInlineTextBoxAccessibility)
+    if (!inlineTextBoxAccessibilityEnabled())
         return;
 
     // Only update if the accessibility object already exists and it's
@@ -913,6 +911,27 @@ void AXObjectCache::inlineTextBoxesUpdated(RenderObject* renderer)
     }
 }
 
+Settings* AXObjectCache::settings()
+{
+    return m_document.settings();
+}
+
+bool AXObjectCache::accessibilityEnabled()
+{
+    Settings* settings = this->settings();
+    if (!settings)
+        return false;
+    return settings->accessibilityEnabled();
+}
+
+bool AXObjectCache::inlineTextBoxAccessibilityEnabled()
+{
+    Settings* settings = this->settings();
+    if (!settings)
+        return false;
+    return settings->inlineTextBoxAccessibilityEnabled();
+}
+
 const Element* AXObjectCache::rootAXEditableElement(const Node* node)
 {
     const Element* result = node->rootEditableElement();