summaryrefslogtreecommitdiffstats
path: root/content/renderer/renderer_accessibility.cc
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-09 06:23:41 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-09 06:23:41 +0000
commit50d87875a336e6f35437bc53f260eb8f50d151c4 (patch)
treea307ec65613b7d5c3c9195498a6e60fb5259876f /content/renderer/renderer_accessibility.cc
parent04d6819baa3e8eaf5ca2ace61886b835f7a60afc (diff)
downloadchromium_src-50d87875a336e6f35437bc53f260eb8f50d151c4.zip
chromium_src-50d87875a336e6f35437bc53f260eb8f50d151c4.tar.gz
chromium_src-50d87875a336e6f35437bc53f260eb8f50d151c4.tar.bz2
Don't compute line breaks when accessibility is in editable text mode.
Line breaks can be very expensive to compute for some pages including cnn.com, and the code may be buggy and lead to a crash. We don't need them for Windows 8 right now. Switches from bool parameters to enums to enhance readability. BUG=124709,125879 TEST=manual testing on pages like cnn.com Review URL: https://chromiumcodereview.appspot.com/10380045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135992 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/renderer_accessibility.cc')
-rw-r--r--content/renderer/renderer_accessibility.cc19
1 files changed, 15 insertions, 4 deletions
diff --git a/content/renderer/renderer_accessibility.cc b/content/renderer/renderer_accessibility.cc
index 29986cb..fb8fb2d 100644
--- a/content/renderer/renderer_accessibility.cc
+++ b/content/renderer/renderer_accessibility.cc
@@ -595,7 +595,10 @@ void RendererAccessibility::RecursiveAddEditableTextNodesToTree(
const WebAccessibilityObject& src,
WebAccessibility* dst) {
if (IsEditableText(src)) {
- dst->children.push_back(WebAccessibility(src, false));
+ dst->children.push_back(
+ WebAccessibility(src,
+ WebAccessibility::NO_CHILDREN,
+ WebAccessibility::NO_LINE_BREAKS));
} else {
int child_count = src.childCount();
std::set<int32> child_ids;
@@ -613,7 +616,11 @@ void RendererAccessibility::BuildAccessibilityTree(
bool include_children,
WebAccessibility* dst) {
if (mode_ == AccessibilityModeComplete) {
- dst->Init(src, include_children);
+ dst->Init(src,
+ include_children ?
+ WebAccessibility::INCLUDE_CHILDREN :
+ WebAccessibility::NO_CHILDREN,
+ WebAccessibility::INCLUDE_LINE_BREAKS);
return;
}
@@ -621,7 +628,9 @@ void RendererAccessibility::BuildAccessibilityTree(
// text nodes as direct descendants of the root.
CHECK_EQ(mode_, AccessibilityModeEditableTextOnly);
if (IsEditableText(src)) {
- dst->Init(src, false);
+ dst->Init(src,
+ WebAccessibility::NO_CHILDREN,
+ WebAccessibility::NO_LINE_BREAKS);
return;
}
@@ -631,7 +640,9 @@ void RendererAccessibility::BuildAccessibilityTree(
DCHECK_EQ(src.axID(), GetMainDocument().accessibilityObject().axID());
// Initialize the main document node, but don't add any children.
- dst->Init(src, false);
+ dst->Init(src,
+ WebAccessibility::NO_CHILDREN,
+ WebAccessibility::NO_LINE_BREAKS);
// Find all editable text nodes and add them as children.
RecursiveAddEditableTextNodesToTree(src, dst);