Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1196)

Side by Side Diff: content/browser/accessibility/browser_accessibility_win.cc

Issue 2101943004: content: Change auto to not deduce raw pointers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase/update Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/accessibility/browser_accessibility_win.h" 5 #include "content/browser/accessibility/browser_accessibility_win.h"
6 6
7 #include <UIAutomationClient.h> 7 #include <UIAutomationClient.h>
8 #include <UIAutomationCoreApi.h> 8 #include <UIAutomationCoreApi.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 2498 matching lines...) Expand 10 before | Expand all | Expand 10 after
2509 } 2509 }
2510 2510
2511 STDMETHODIMP BrowserAccessibilityWin::get_startIndex(long* index) { 2511 STDMETHODIMP BrowserAccessibilityWin::get_startIndex(long* index) {
2512 if (!instance_active() || !IsHyperlink()) 2512 if (!instance_active() || !IsHyperlink())
2513 return E_FAIL; 2513 return E_FAIL;
2514 2514
2515 if (!index) 2515 if (!index)
2516 return E_INVALIDARG; 2516 return E_INVALIDARG;
2517 2517
2518 int32_t hypertext_offset = 0; 2518 int32_t hypertext_offset = 0;
2519 const auto parent = GetParent(); 2519 auto* parent = GetParent();
2520 if (parent) { 2520 if (parent) {
2521 hypertext_offset = 2521 hypertext_offset =
2522 ToBrowserAccessibilityWin(parent)->GetHypertextOffsetFromChild(*this); 2522 ToBrowserAccessibilityWin(parent)->GetHypertextOffsetFromChild(*this);
2523 } 2523 }
2524 *index = static_cast<LONG>(hypertext_offset); 2524 *index = static_cast<LONG>(hypertext_offset);
2525 return S_OK; 2525 return S_OK;
2526 } 2526 }
2527 2527
2528 STDMETHODIMP BrowserAccessibilityWin::get_endIndex(long* index) { 2528 STDMETHODIMP BrowserAccessibilityWin::get_endIndex(long* index) {
2529 LONG start_index; 2529 LONG start_index;
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after
3302 ia_role != ROLE_SYSTEM_SLIDER) { 3302 ia_role != ROLE_SYSTEM_SLIDER) {
3303 *object = NULL; 3303 *object = NULL;
3304 return E_NOINTERFACE; 3304 return E_NOINTERFACE;
3305 } 3305 }
3306 } else if (iid == IID_ISimpleDOMDocument) { 3306 } else if (iid == IID_ISimpleDOMDocument) {
3307 if (ia_role != ROLE_SYSTEM_DOCUMENT) { 3307 if (ia_role != ROLE_SYSTEM_DOCUMENT) {
3308 *object = NULL; 3308 *object = NULL;
3309 return E_NOINTERFACE; 3309 return E_NOINTERFACE;
3310 } 3310 }
3311 } else if (iid == IID_IAccessibleHyperlink) { 3311 } else if (iid == IID_IAccessibleHyperlink) {
3312 auto ax_object = reinterpret_cast<const BrowserAccessibilityWin*>(this_ptr); 3312 auto* ax_object =
3313 reinterpret_cast<const BrowserAccessibilityWin*>(this_ptr);
3313 if (!ax_object || !ax_object->IsHyperlink()) { 3314 if (!ax_object || !ax_object->IsHyperlink()) {
3314 *object = nullptr; 3315 *object = nullptr;
3315 return E_NOINTERFACE; 3316 return E_NOINTERFACE;
3316 } 3317 }
3317 } 3318 }
3318 3319
3319 return CComObjectRootBase::InternalQueryInterface( 3320 return CComObjectRootBase::InternalQueryInterface(
3320 this_ptr, entries, iid, object); 3321 this_ptr, entries, iid, object);
3321 } 3322 }
3322 3323
(...skipping 27 matching lines...) Expand all
3350 spelling_attribute.second.begin(), 3351 spelling_attribute.second.begin(),
3351 spelling_attribute.second.end()); 3352 spelling_attribute.second.end());
3352 } 3353 }
3353 } 3354 }
3354 win_attributes_->offset_to_text_attributes.swap(attributes_map); 3355 win_attributes_->offset_to_text_attributes.swap(attributes_map);
3355 return; 3356 return;
3356 } 3357 }
3357 3358
3358 int start_offset = 0; 3359 int start_offset = 0;
3359 for (size_t i = 0; i < PlatformChildCount(); ++i) { 3360 for (size_t i = 0; i < PlatformChildCount(); ++i) {
3360 const auto child = ToBrowserAccessibilityWin(PlatformGetChild(i)); 3361 auto* child = ToBrowserAccessibilityWin(PlatformGetChild(i));
3361 DCHECK(child); 3362 DCHECK(child);
3362 std::vector<base::string16> attributes(child->ComputeTextAttributes()); 3363 std::vector<base::string16> attributes(child->ComputeTextAttributes());
3363 3364
3364 if (attributes_map.empty()) { 3365 if (attributes_map.empty()) {
3365 attributes_map[start_offset] = attributes; 3366 attributes_map[start_offset] = attributes;
3366 } else { 3367 } else {
3367 // Only add the attributes for this child if we are at the start of a new 3368 // Only add the attributes for this child if we are at the start of a new
3368 // style span. 3369 // style span.
3369 std::vector<base::string16> previous_attributes = 3370 std::vector<base::string16> previous_attributes =
3370 attributes_map.rbegin()->second; 3371 attributes_map.rbegin()->second;
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
3575 win_attributes_->hypertext = name(); 3576 win_attributes_->hypertext = name();
3576 return; 3577 return;
3577 } 3578 }
3578 3579
3579 // Construct the hypertext for this node, which contains the concatenation 3580 // Construct the hypertext for this node, which contains the concatenation
3580 // of all of the static text and widespace of this node's children and an 3581 // of all of the static text and widespace of this node's children and an
3581 // embedded object character for all the other children. Build up a map from 3582 // embedded object character for all the other children. Build up a map from
3582 // the character index of each embedded object character to the id of the 3583 // the character index of each embedded object character to the id of the
3583 // child object it points to. 3584 // child object it points to.
3584 for (unsigned int i = 0; i < PlatformChildCount(); ++i) { 3585 for (unsigned int i = 0; i < PlatformChildCount(); ++i) {
3585 const auto child = ToBrowserAccessibilityWin(PlatformGetChild(i)); 3586 auto* child = ToBrowserAccessibilityWin(PlatformGetChild(i));
3586 DCHECK(child); 3587 DCHECK(child);
3587 // Similar to Firefox, we don't expose text-only objects in IA2 hypertext. 3588 // Similar to Firefox, we don't expose text-only objects in IA2 hypertext.
3588 if (child->IsTextOnlyObject()) { 3589 if (child->IsTextOnlyObject()) {
3589 win_attributes_->hypertext += child->name(); 3590 win_attributes_->hypertext += child->name();
3590 } else { 3591 } else {
3591 int32_t char_offset = static_cast<int32_t>(GetText().size()); 3592 int32_t char_offset = static_cast<int32_t>(GetText().size());
3592 int32_t child_unique_id = child->unique_id(); 3593 int32_t child_unique_id = child->unique_id();
3593 int32_t index = hyperlinks().size(); 3594 int32_t index = hyperlinks().size();
3594 win_attributes_->hyperlink_offset_to_index[char_offset] = index; 3595 win_attributes_->hyperlink_offset_to_index[char_offset] = index;
3595 win_attributes_->hyperlinks.push_back(child_unique_id); 3596 win_attributes_->hyperlinks.push_back(child_unique_id);
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
3913 spelling_attributes[start_offset] = start_attributes; 3914 spelling_attributes[start_offset] = start_attributes;
3914 spelling_attributes[end_offset] = end_attributes; 3915 spelling_attributes[end_offset] = end_attributes;
3915 } 3916 }
3916 } 3917 }
3917 if (IsSimpleTextControl()) { 3918 if (IsSimpleTextControl()) {
3918 int start_offset = 0; 3919 int start_offset = 0;
3919 for (const BrowserAccessibility* static_text = 3920 for (const BrowserAccessibility* static_text =
3920 BrowserAccessibilityManager::NextTextOnlyObject( 3921 BrowserAccessibilityManager::NextTextOnlyObject(
3921 InternalGetChild(0)); 3922 InternalGetChild(0));
3922 static_text; static_text = static_text->GetNextSibling()) { 3923 static_text; static_text = static_text->GetNextSibling()) {
3923 auto text_win = ToBrowserAccessibilityWin(static_text); 3924 auto* text_win = ToBrowserAccessibilityWin(static_text);
3924 if (text_win) { 3925 if (text_win) {
3925 std::map<int, std::vector<base::string16>> text_spelling_attributes = 3926 std::map<int, std::vector<base::string16>> text_spelling_attributes =
3926 text_win->GetSpellingAttributes(); 3927 text_win->GetSpellingAttributes();
3927 for (auto& attribute : text_spelling_attributes) { 3928 for (auto& attribute : text_spelling_attributes) {
3928 spelling_attributes[start_offset + attribute.first] = 3929 spelling_attributes[start_offset + attribute.first] =
3929 std::move(attribute.second); 3930 std::move(attribute.second);
3930 } 3931 }
3931 start_offset += static_cast<int>(text_win->GetText().length()); 3932 start_offset += static_cast<int>(text_win->GetText().length());
3932 } 3933 }
3933 } 3934 }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
4015 int value; 4016 int value;
4016 if (GetIntAttribute(attribute, &value)) { 4017 if (GetIntAttribute(attribute, &value)) {
4017 win_attributes_->ia2_attributes.push_back( 4018 win_attributes_->ia2_attributes.push_back(
4018 base::ASCIIToUTF16(ia2_attr) + L":" + 4019 base::ASCIIToUTF16(ia2_attr) + L":" +
4019 base::IntToString16(value)); 4020 base::IntToString16(value));
4020 } 4021 }
4021 } 4022 }
4022 4023
4023 bool BrowserAccessibilityWin::IsHyperlink() const { 4024 bool BrowserAccessibilityWin::IsHyperlink() const {
4024 int32_t hyperlink_index = -1; 4025 int32_t hyperlink_index = -1;
4025 const auto parent = GetParent(); 4026 auto* parent = GetParent();
4026 if (parent) { 4027 if (parent) {
4027 hyperlink_index = 4028 hyperlink_index =
4028 ToBrowserAccessibilityWin(parent)->GetHyperlinkIndexFromChild(*this); 4029 ToBrowserAccessibilityWin(parent)->GetHyperlinkIndexFromChild(*this);
4029 } 4030 }
4030 4031
4031 if (hyperlink_index >= 0) 4032 if (hyperlink_index >= 0)
4032 return true; 4033 return true;
4033 return false; 4034 return false;
4034 } 4035 }
4035 4036
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
4102 4103
4103 int32_t hyperlink_index = GetHyperlinkIndexFromChild(child); 4104 int32_t hyperlink_index = GetHyperlinkIndexFromChild(child);
4104 if (hyperlink_index < 0) 4105 if (hyperlink_index < 0)
4105 return -1; 4106 return -1;
4106 4107
4107 return GetHypertextOffsetFromHyperlinkIndex(hyperlink_index); 4108 return GetHypertextOffsetFromHyperlinkIndex(hyperlink_index);
4108 } 4109 }
4109 4110
4110 int32_t BrowserAccessibilityWin::GetHypertextOffsetFromDescendant( 4111 int32_t BrowserAccessibilityWin::GetHypertextOffsetFromDescendant(
4111 const BrowserAccessibilityWin& descendant) const { 4112 const BrowserAccessibilityWin& descendant) const {
4112 auto parent_object = ToBrowserAccessibilityWin(descendant.GetParent()); 4113 auto* parent_object = ToBrowserAccessibilityWin(descendant.GetParent());
4113 auto current_object = const_cast<BrowserAccessibilityWin*>(&descendant); 4114 auto* current_object = const_cast<BrowserAccessibilityWin*>(&descendant);
4114 while (parent_object && parent_object != this) { 4115 while (parent_object && parent_object != this) {
4115 current_object = parent_object; 4116 current_object = parent_object;
4116 parent_object = ToBrowserAccessibilityWin(current_object->GetParent()); 4117 parent_object = ToBrowserAccessibilityWin(current_object->GetParent());
4117 } 4118 }
4118 if (!parent_object) 4119 if (!parent_object)
4119 return -1; 4120 return -1;
4120 4121
4121 return parent_object->GetHypertextOffsetFromChild(*current_object); 4122 return parent_object->GetHypertextOffsetFromChild(*current_object);
4122 } 4123 }
4123 4124
(...skipping 1075 matching lines...) Expand 10 before | Expand all | Expand 10 after
5199 return static_cast<BrowserAccessibilityWin*>(obj); 5200 return static_cast<BrowserAccessibilityWin*>(obj);
5200 } 5201 }
5201 5202
5202 const BrowserAccessibilityWin* 5203 const BrowserAccessibilityWin*
5203 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { 5204 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) {
5204 DCHECK(!obj || obj->IsNative()); 5205 DCHECK(!obj || obj->IsNative());
5205 return static_cast<const BrowserAccessibilityWin*>(obj); 5206 return static_cast<const BrowserAccessibilityWin*>(obj);
5206 } 5207 }
5207 5208
5208 } // namespace content 5209 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager.cc ('k') | content/browser/android/web_contents_observer_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698