Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | |
| 6 | |
| 7 #include "AccessibilityObject.h" | |
| 8 | |
| 9 #undef LOG | |
| 10 | |
| 11 #include "webkit/api/public/WebAccessibilityObject.h" | 5 #include "webkit/api/public/WebAccessibilityObject.h" |
| 6 #include "webkit/api/public/WebCString.h" | |
| 7 #include "webkit/api/public/WebString.h" | |
| 12 #include "webkit/glue/glue_util.h" | 8 #include "webkit/glue/glue_util.h" |
| 13 #include "webkit/tools/test_shell/accessibility_ui_element.h" | 9 #include "webkit/tools/test_shell/accessibility_ui_element.h" |
| 14 | 10 |
| 15 using namespace WebCore; | 11 using WebKit::WebString; |
| 16 | 12 using WebKit::WebCString; |
|
darin (slow to review)
2009/10/30 19:37:58
sort
| |
| 17 using WebKit::WebAccessibilityObject; | 13 using WebKit::WebAccessibilityObject; |
| 18 | 14 using WebKit::WebAccessibilityRole; |
| 19 using webkit_glue::StringToStdString; | |
| 20 using webkit_glue::AccessibilityObjectToWebAccessibilityObject; | |
| 21 using webkit_glue::WebAccessibilityObjectToAccessibilityObject; | |
| 22 | 15 |
| 23 namespace { | 16 namespace { |
| 24 | 17 |
| 25 static PassRefPtr<AccessibilityObject> AXObject( | |
| 26 const WebAccessibilityObject& object) { | |
| 27 RefPtr<AccessibilityObject> o = | |
| 28 WebAccessibilityObjectToAccessibilityObject(object); | |
| 29 // Always ask to update the render tree before querying accessibility object. | |
| 30 o->updateBackingStore(); | |
| 31 return o; | |
| 32 } | |
| 33 | |
| 34 // Map role value to string, matching Safari/Mac platform implementation to | 18 // Map role value to string, matching Safari/Mac platform implementation to |
| 35 // avoid rebaselining layout tests. | 19 // avoid rebaselining layout tests. |
| 36 static std::string RoleToString(AccessibilityRole role) { | 20 static std::string RoleToString(WebAccessibilityRole role) { |
| 37 std::string result = "AXRole: AX"; | 21 std::string result = "AXRole: AX"; |
| 38 switch (role) { | 22 switch (role) { |
| 39 case ButtonRole: | 23 case WebKit::WebAccessibilityRoleButton: |
| 40 return result.append("Button"); | 24 return result.append("Button"); |
| 41 case RadioButtonRole: | 25 case WebKit::WebAccessibilityRoleRadioButton: |
| 42 return result.append("RadioButton"); | 26 return result.append("RadioButton"); |
| 43 case CheckBoxRole: | 27 case WebKit::WebAccessibilityRoleCheckBox: |
| 44 return result.append("CheckBox"); | 28 return result.append("CheckBox"); |
| 45 case SliderRole: | 29 case WebKit::WebAccessibilityRoleSlider: |
| 46 return result.append("Slider"); | 30 return result.append("Slider"); |
| 47 case TabGroupRole: | 31 case WebKit::WebAccessibilityRoleTabGroup: |
| 48 return result.append("TabGroup"); | 32 return result.append("TabGroup"); |
| 49 case TextFieldRole: | 33 case WebKit::WebAccessibilityRoleTextField: |
| 50 return result.append("TextField"); | 34 return result.append("TextField"); |
| 51 case StaticTextRole: | 35 case WebKit::WebAccessibilityRoleStaticText: |
| 52 return result.append("StaticText"); | 36 return result.append("StaticText"); |
| 53 case TextAreaRole: | 37 case WebKit::WebAccessibilityRoleTextArea: |
| 54 return result.append("TextArea"); | 38 return result.append("TextArea"); |
| 55 case ScrollAreaRole: | 39 case WebKit::WebAccessibilityRoleScrollArea: |
| 56 return result.append("ScrollArea"); | 40 return result.append("ScrollArea"); |
| 57 case PopUpButtonRole: | 41 case WebKit::WebAccessibilityRolePopUpButton: |
| 58 return result.append("PopUpButton"); | 42 return result.append("PopUpButton"); |
| 59 case MenuButtonRole: | 43 case WebKit::WebAccessibilityRoleMenuButton: |
| 60 return result.append("MenuButton"); | 44 return result.append("MenuButton"); |
| 61 case TableRole: | 45 case WebKit::WebAccessibilityRoleTable: |
| 62 return result.append("Table"); | 46 return result.append("Table"); |
| 63 case ApplicationRole: | 47 case WebKit::WebAccessibilityRoleApplication: |
| 64 return result.append("Application"); | 48 return result.append("Application"); |
| 65 case GroupRole: | 49 case WebKit::WebAccessibilityRoleGroup: |
| 66 return result.append("Group"); | 50 return result.append("Group"); |
| 67 case RadioGroupRole: | 51 case WebKit::WebAccessibilityRoleRadioGroup: |
| 68 return result.append("RadioGroup"); | 52 return result.append("RadioGroup"); |
| 69 case ListRole: | 53 case WebKit::WebAccessibilityRoleList: |
| 70 return result.append("List"); | 54 return result.append("List"); |
| 71 case ScrollBarRole: | 55 case WebKit::WebAccessibilityRoleScrollBar: |
| 72 return result.append("ScrollBar"); | 56 return result.append("ScrollBar"); |
| 73 case ValueIndicatorRole: | 57 case WebKit::WebAccessibilityRoleValueIndicator: |
| 74 return result.append("ValueIndicator"); | 58 return result.append("ValueIndicator"); |
| 75 case ImageRole: | 59 case WebKit::WebAccessibilityRoleImage: |
| 76 return result.append("Image"); | 60 return result.append("Image"); |
| 77 case MenuBarRole: | 61 case WebKit::WebAccessibilityRoleMenuBar: |
| 78 return result.append("MenuBar"); | 62 return result.append("MenuBar"); |
| 79 case MenuRole: | 63 case WebKit::WebAccessibilityRoleMenu: |
| 80 return result.append("Menu"); | 64 return result.append("Menu"); |
| 81 case MenuItemRole: | 65 case WebKit::WebAccessibilityRoleMenuItem: |
| 82 return result.append("MenuItem"); | 66 return result.append("MenuItem"); |
| 83 case ColumnRole: | 67 case WebKit::WebAccessibilityRoleColumn: |
| 84 return result.append("Column"); | 68 return result.append("Column"); |
| 85 case RowRole: | 69 case WebKit::WebAccessibilityRoleRow: |
| 86 return result.append("Row"); | 70 return result.append("Row"); |
| 87 case ToolbarRole: | 71 case WebKit::WebAccessibilityRoleToolbar: |
| 88 return result.append("Toolbar"); | 72 return result.append("Toolbar"); |
| 89 case BusyIndicatorRole: | 73 case WebKit::WebAccessibilityRoleBusyIndicator: |
| 90 return result.append("BusyIndicator"); | 74 return result.append("BusyIndicator"); |
| 91 case ProgressIndicatorRole: | 75 case WebKit::WebAccessibilityRoleProgressIndicator: |
| 92 return result.append("ProgressIndicator"); | 76 return result.append("ProgressIndicator"); |
| 93 case WindowRole: | 77 case WebKit::WebAccessibilityRoleWindow: |
| 94 return result.append("Window"); | 78 return result.append("Window"); |
| 95 case DrawerRole: | 79 case WebKit::WebAccessibilityRoleDrawer: |
| 96 return result.append("Drawer"); | 80 return result.append("Drawer"); |
| 97 case SystemWideRole: | 81 case WebKit::WebAccessibilityRoleSystemWide: |
| 98 return result.append("SystemWide"); | 82 return result.append("SystemWide"); |
| 99 case OutlineRole: | 83 case WebKit::WebAccessibilityRoleOutline: |
| 100 return result.append("Outline"); | 84 return result.append("Outline"); |
| 101 case IncrementorRole: | 85 case WebKit::WebAccessibilityRoleIncrementor: |
| 102 return result.append("Incrementor"); | 86 return result.append("Incrementor"); |
| 103 case BrowserRole: | 87 case WebKit::WebAccessibilityRoleBrowser: |
| 104 return result.append("Browser"); | 88 return result.append("Browser"); |
| 105 case ComboBoxRole: | 89 case WebKit::WebAccessibilityRoleComboBox: |
| 106 return result.append("ComboBox"); | 90 return result.append("ComboBox"); |
| 107 case SplitGroupRole: | 91 case WebKit::WebAccessibilityRoleSplitGroup: |
| 108 return result.append("SplitGroup"); | 92 return result.append("SplitGroup"); |
| 109 case SplitterRole: | 93 case WebKit::WebAccessibilityRoleSplitter: |
| 110 return result.append("Splitter"); | 94 return result.append("Splitter"); |
| 111 case ColorWellRole: | 95 case WebKit::WebAccessibilityRoleColorWell: |
| 112 return result.append("ColorWell"); | 96 return result.append("ColorWell"); |
| 113 case GrowAreaRole: | 97 case WebKit::WebAccessibilityRoleGrowArea: |
| 114 return result.append("GrowArea"); | 98 return result.append("GrowArea"); |
| 115 case SheetRole: | 99 case WebKit::WebAccessibilityRoleSheet: |
| 116 return result.append("Sheet"); | 100 return result.append("Sheet"); |
| 117 case HelpTagRole: | 101 case WebKit::WebAccessibilityRoleHelpTag: |
| 118 return result.append("HelpTag"); | 102 return result.append("HelpTag"); |
| 119 case MatteRole: | 103 case WebKit::WebAccessibilityRoleMatte: |
| 120 return result.append("Matte"); | 104 return result.append("Matte"); |
| 121 case RulerRole: | 105 case WebKit::WebAccessibilityRoleRuler: |
| 122 return result.append("Ruler"); | 106 return result.append("Ruler"); |
| 123 case RulerMarkerRole: | 107 case WebKit::WebAccessibilityRoleRulerMarker: |
| 124 return result.append("RulerMarker"); | 108 return result.append("RulerMarker"); |
| 125 case LinkRole: | 109 case WebKit::WebAccessibilityRoleLink: |
| 126 return result.append("Link"); | 110 return result.append("Link"); |
| 127 case DisclosureTriangleRole: | 111 case WebKit::WebAccessibilityRoleDisclosureTriangle: |
| 128 return result.append("DisclosureTriangle"); | 112 return result.append("DisclosureTriangle"); |
| 129 case GridRole: | 113 case WebKit::WebAccessibilityRoleGrid: |
| 130 return result.append("Grid"); | 114 return result.append("Grid"); |
| 131 case CellRole: | 115 case WebKit::WebAccessibilityRoleCell: |
| 132 return result.append("Cell"); | 116 return result.append("Cell"); |
| 133 case ColumnHeaderRole: | 117 case WebKit::WebAccessibilityRoleColumnHeader: |
| 134 return result.append("ColumnHeader"); | 118 return result.append("ColumnHeader"); |
| 135 case RowHeaderRole: | 119 case WebKit::WebAccessibilityRoleRowHeader: |
| 136 return result.append("RowHeader"); | 120 return result.append("RowHeader"); |
| 137 case WebCoreLinkRole: | 121 case WebKit::WebAccessibilityRoleWebCoreLink: |
| 138 // Maps to Link role. | 122 // Maps to Link role. |
| 139 return result.append("Link"); | 123 return result.append("Link"); |
| 140 case ImageMapLinkRole: | 124 case WebKit::WebAccessibilityRoleImageMapLink: |
| 141 return result.append("ImageMapLink"); | 125 return result.append("ImageMapLink"); |
| 142 case ImageMapRole: | 126 case WebKit::WebAccessibilityRoleImageMap: |
| 143 return result.append("ImageMap"); | 127 return result.append("ImageMap"); |
| 144 case ListMarkerRole: | 128 case WebKit::WebAccessibilityRoleListMarker: |
| 145 return result.append("ListMarker"); | 129 return result.append("ListMarker"); |
| 146 case WebAreaRole: | 130 case WebKit::WebAccessibilityRoleWebArea: |
| 147 return result.append("WebArea"); | 131 return result.append("WebArea"); |
| 148 case HeadingRole: | 132 case WebKit::WebAccessibilityRoleHeading: |
| 149 return result.append("Heading"); | 133 return result.append("Heading"); |
| 150 case ListBoxRole: | 134 case WebKit::WebAccessibilityRoleListBox: |
| 151 return result.append("ListBox"); | 135 return result.append("ListBox"); |
| 152 case ListBoxOptionRole: | 136 case WebKit::WebAccessibilityRoleListBoxOption: |
| 153 return result.append("ListBoxOption"); | 137 return result.append("ListBoxOption"); |
| 154 case TableHeaderContainerRole: | 138 case WebKit::WebAccessibilityRoleTableHeaderContainer: |
| 155 return result.append("TableHeaderContainer"); | 139 return result.append("TableHeaderContainer"); |
| 156 case DefinitionListTermRole: | 140 case WebKit::WebAccessibilityRoleDefinitionListTerm: |
| 157 return result.append("DefinitionListTerm"); | 141 return result.append("DefinitionListTerm"); |
| 158 case DefinitionListDefinitionRole: | 142 case WebKit::WebAccessibilityRoleDefinitionListDefinition: |
| 159 return result.append("DefinitionListDefinition"); | 143 return result.append("DefinitionListDefinition"); |
| 160 case AnnotationRole: | 144 case WebKit::WebAccessibilityRoleAnnotation: |
| 161 return result.append("Annotation"); | 145 return result.append("Annotation"); |
| 162 case SliderThumbRole: | 146 case WebKit::WebAccessibilityRoleSliderThumb: |
| 163 return result.append("SliderThumb"); | 147 return result.append("SliderThumb"); |
| 164 case LandmarkApplicationRole: | 148 case WebKit::WebAccessibilityRoleLandmarkApplication: |
| 165 return result.append("LandmarkApplication"); | 149 return result.append("LandmarkApplication"); |
| 166 case LandmarkBannerRole: | 150 case WebKit::WebAccessibilityRoleLandmarkBanner: |
| 167 return result.append("LandmarkBanner"); | 151 return result.append("LandmarkBanner"); |
| 168 case LandmarkComplementaryRole: | 152 case WebKit::WebAccessibilityRoleLandmarkComplementary: |
| 169 return result.append("LandmarkComplementary"); | 153 return result.append("LandmarkComplementary"); |
| 170 case LandmarkContentInfoRole: | 154 case WebKit::WebAccessibilityRoleLandmarkContentInfo: |
| 171 return result.append("LandmarkContentInfo"); | 155 return result.append("LandmarkContentInfo"); |
| 172 case LandmarkMainRole: | 156 case WebKit::WebAccessibilityRoleLandmarkMain: |
| 173 return result.append("LandmarkMain"); | 157 return result.append("LandmarkMain"); |
| 174 case LandmarkNavigationRole: | 158 case WebKit::WebAccessibilityRoleLandmarkNavigation: |
| 175 return result.append("LandmarkNavigation"); | 159 return result.append("LandmarkNavigation"); |
| 176 case LandmarkSearchRole: | 160 case WebKit::WebAccessibilityRoleLandmarkSearch: |
| 177 return result.append("LandmarkSearch"); | 161 return result.append("LandmarkSearch"); |
| 178 case ApplicationLogRole: | 162 case WebKit::WebAccessibilityRoleApplicationLog: |
| 179 return result.append("ApplicationLog"); | 163 return result.append("ApplicationLog"); |
| 180 case ApplicationMarqueeRole: | 164 case WebKit::WebAccessibilityRoleApplicationMarquee: |
| 181 return result.append("ApplicationMarquee"); | 165 return result.append("ApplicationMarquee"); |
| 182 case ApplicationStatusRole: | 166 case WebKit::WebAccessibilityRoleApplicationStatus: |
| 183 return result.append("ApplicationStatus"); | 167 return result.append("ApplicationStatus"); |
| 184 case ApplicationTimerRole: | 168 case WebKit::WebAccessibilityRoleApplicationTimer: |
| 185 return result.append("ApplicationTimer"); | 169 return result.append("ApplicationTimer"); |
| 186 case DocumentRole: | 170 case WebKit::WebAccessibilityRoleDocument: |
| 187 return result.append("Document"); | 171 return result.append("Document"); |
| 188 case DocumentArticleRole: | 172 case WebKit::WebAccessibilityRoleDocumentArticle: |
| 189 return result.append("DocumentArticle"); | 173 return result.append("DocumentArticle"); |
| 190 case DocumentNoteRole: | 174 case WebKit::WebAccessibilityRoleDocumentNote: |
| 191 return result.append("DocumentNote"); | 175 return result.append("DocumentNote"); |
| 192 case DocumentRegionRole: | 176 case WebKit::WebAccessibilityRoleDocumentRegion: |
| 193 return result.append("DocumentRegion"); | 177 return result.append("DocumentRegion"); |
| 194 case UserInterfaceTooltipRole: | 178 case WebKit::WebAccessibilityRoleUserInterfaceTooltip: |
| 195 return result.append("UserInterfaceTooltip"); | 179 return result.append("UserInterfaceTooltip"); |
| 196 default: | 180 default: |
| 197 // Also matches UnknownRole. | 181 // Also matches WebAccessibilityRoleUnknown. |
| 198 return result.append("Unknown"); | 182 return result.append("Unknown"); |
| 199 } | 183 } |
| 200 } | 184 } |
| 201 | 185 |
| 202 } // namespace | 186 } // namespace |
| 203 | 187 |
| 204 AccessibilityUIElement::AccessibilityUIElement( | 188 AccessibilityUIElement::AccessibilityUIElement( |
| 205 const WebKit::WebAccessibilityObject& object, | 189 const WebKit::WebAccessibilityObject& object, |
| 206 Factory* factory) | 190 Factory* factory) |
| 207 : accessibility_object_(object), | 191 : accessibility_object_(object), |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 274 BindProperty("selectedTextRange", &selected_text_range); | 258 BindProperty("selectedTextRange", &selected_text_range); |
| 275 BindProperty("isEnabled", &AccessibilityUIElement::IsEnabledGetterCallback); | 259 BindProperty("isEnabled", &AccessibilityUIElement::IsEnabledGetterCallback); |
| 276 BindProperty("isRequired", &is_required_); | 260 BindProperty("isRequired", &is_required_); |
| 277 BindProperty("valueDescription", &value_description_); | 261 BindProperty("valueDescription", &value_description_); |
| 278 | 262 |
| 279 BindFallbackMethod(&AccessibilityUIElement::FallbackCallback); | 263 BindFallbackMethod(&AccessibilityUIElement::FallbackCallback); |
| 280 } | 264 } |
| 281 | 265 |
| 282 AccessibilityUIElement* AccessibilityUIElement::GetChildAtIndex( | 266 AccessibilityUIElement* AccessibilityUIElement::GetChildAtIndex( |
| 283 unsigned index) { | 267 unsigned index) { |
| 284 RefPtr<AccessibilityObject> object = AXObject(accessibility_object()); | 268 return factory_->Create(accessibility_object().childAt(index)); |
| 285 if (object->children().size() <= index) | |
| 286 return NULL; | |
| 287 | |
| 288 WebAccessibilityObject child = | |
| 289 AccessibilityObjectToWebAccessibilityObject(object->children()[index]); | |
| 290 return factory_->Create(child); | |
| 291 } | 269 } |
| 292 | 270 |
| 293 std::string AccessibilityUIElement::GetTitle() { | 271 std::string AccessibilityUIElement::GetTitle() { |
| 294 std::string title = StringToStdString(AXObject( | 272 std::string title = accessibility_object().title().utf8(); |
| 295 accessibility_object())->title()); | |
| 296 return title.insert(0, "AXTitle: "); | 273 return title.insert(0, "AXTitle: "); |
| 297 } | 274 } |
| 298 | 275 |
| 299 std::string AccessibilityUIElement::GetDescription() { | 276 std::string AccessibilityUIElement::GetDescription() { |
| 300 std::string description = StringToStdString(AXObject( | 277 std::string description = |
| 301 accessibility_object())->accessibilityDescription()); | 278 accessibility_object().accessibilityDescription().utf8(); |
| 302 return description.insert(0, "AXDescription: "); | 279 return description.insert(0, "AXDescription: "); |
| 303 } | 280 } |
| 304 | 281 |
| 305 void AccessibilityUIElement::AllAttributesCallback( | 282 void AccessibilityUIElement::AllAttributesCallback( |
| 306 const CppArgumentList& args, CppVariant* result) { | 283 const CppArgumentList& args, CppVariant* result) { |
| 307 // TODO(dglazkov): Concatenate all attributes of the AccessibilityObject. | 284 // TODO(dglazkov): Concatenate all attributes of the AccessibilityObject. |
| 308 std::string attributes(GetTitle()); | 285 std::string attributes(GetTitle()); |
| 309 result->Set(attributes); | 286 result->Set(attributes); |
| 310 } | 287 } |
| 311 | 288 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 459 | 436 |
| 460 void AccessibilityUIElement::FallbackCallback(const CppArgumentList &args, | 437 void AccessibilityUIElement::FallbackCallback(const CppArgumentList &args, |
| 461 CppVariant *result) { | 438 CppVariant *result) { |
| 462 // TODO(dglazkov): Implement this. | 439 // TODO(dglazkov): Implement this. |
| 463 result->SetNull(); | 440 result->SetNull(); |
| 464 } | 441 } |
| 465 | 442 |
| 466 void AccessibilityUIElement::ChildrenCountGetterCallback(CppVariant* result) { | 443 void AccessibilityUIElement::ChildrenCountGetterCallback(CppVariant* result) { |
| 467 int count = 1; // Root object always has only one child, the WebView. | 444 int count = 1; // Root object always has only one child, the WebView. |
| 468 if (!IsRoot()) | 445 if (!IsRoot()) |
| 469 count = AXObject(accessibility_object())->children().size(); | 446 count = accessibility_object().childCount(); |
| 470 result->Set(count); | 447 result->Set(count); |
| 471 } | 448 } |
| 472 | 449 |
| 473 void AccessibilityUIElement::DescriptionGetterCallback(CppVariant *result) { | 450 void AccessibilityUIElement::DescriptionGetterCallback(CppVariant *result) { |
| 474 result->Set(GetDescription()); | 451 result->Set(GetDescription()); |
| 475 } | 452 } |
| 476 | 453 |
| 477 void AccessibilityUIElement::IsEnabledGetterCallback(CppVariant* result) { | 454 void AccessibilityUIElement::IsEnabledGetterCallback(CppVariant* result) { |
| 478 result->Set(AXObject(accessibility_object())->isEnabled()); | 455 result->Set(accessibility_object().isEnabled()); |
| 479 } | 456 } |
| 480 | 457 |
| 481 void AccessibilityUIElement::RoleGetterCallback(CppVariant* result) { | 458 void AccessibilityUIElement::RoleGetterCallback(CppVariant* result) { |
| 482 result->Set(RoleToString(AXObject(accessibility_object())->roleValue())); | 459 result->Set(RoleToString(accessibility_object().roleValue())); |
| 483 } | 460 } |
| 484 | 461 |
| 485 void AccessibilityUIElement::TitleGetterCallback(CppVariant* result) { | 462 void AccessibilityUIElement::TitleGetterCallback(CppVariant* result) { |
| 486 result->Set(GetTitle()); | 463 result->Set(GetTitle()); |
| 487 } | 464 } |
| 488 | 465 |
| 489 | 466 |
| 490 RootAccessibilityUIElement::RootAccessibilityUIElement( | 467 RootAccessibilityUIElement::RootAccessibilityUIElement( |
| 491 const WebKit::WebAccessibilityObject &object, | 468 const WebKit::WebAccessibilityObject &object, |
| 492 Factory *factory) : AccessibilityUIElement(object, factory) { } | 469 Factory *factory) : AccessibilityUIElement(object, factory) { } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 505 } | 482 } |
| 506 | 483 |
| 507 void AccessibilityUIElementList::Clear() { | 484 void AccessibilityUIElementList::Clear() { |
| 508 for (ElementList::iterator i = elements_.begin(); i != elements_.end(); ++i) | 485 for (ElementList::iterator i = elements_.begin(); i != elements_.end(); ++i) |
| 509 delete (*i); | 486 delete (*i); |
| 510 elements_.clear(); | 487 elements_.clear(); |
| 511 } | 488 } |
| 512 | 489 |
| 513 AccessibilityUIElement* AccessibilityUIElementList::Create( | 490 AccessibilityUIElement* AccessibilityUIElementList::Create( |
| 514 const WebAccessibilityObject& object) { | 491 const WebAccessibilityObject& object) { |
| 492 if (object.isNull()) | |
| 493 return NULL; | |
| 494 | |
| 515 AccessibilityUIElement* element = new AccessibilityUIElement(object, this); | 495 AccessibilityUIElement* element = new AccessibilityUIElement(object, this); |
| 516 elements_.push_back(element); | 496 elements_.push_back(element); |
| 517 return element; | 497 return element; |
| 518 } | 498 } |
| 519 | 499 |
| 520 AccessibilityUIElement* AccessibilityUIElementList::CreateRoot( | 500 AccessibilityUIElement* AccessibilityUIElementList::CreateRoot( |
| 521 const WebAccessibilityObject& object) { | 501 const WebAccessibilityObject& object) { |
| 522 AccessibilityUIElement* element = | 502 AccessibilityUIElement* element = |
| 523 new RootAccessibilityUIElement(object, this); | 503 new RootAccessibilityUIElement(object, this); |
| 524 elements_.push_back(element); | 504 elements_.push_back(element); |
| 525 return element; | 505 return element; |
| 526 } | 506 } |
| OLD | NEW |