diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-09 06:23:41 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-09 06:23:41 +0000 |
commit | 50d87875a336e6f35437bc53f260eb8f50d151c4 (patch) | |
tree | a307ec65613b7d5c3c9195498a6e60fb5259876f /content/renderer/renderer_accessibility.cc | |
parent | 04d6819baa3e8eaf5ca2ace61886b835f7a60afc (diff) | |
download | chromium_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.cc | 19 |
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); |