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

Unified Diff: content/browser/accessibility/browser_accessibility_win.cc

Issue 10381010: Add initial GTK web accessibility framework (new with valgrind fix). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_win.cc
===================================================================
--- content/browser/accessibility/browser_accessibility_win.cc (revision 135549)
+++ content/browser/accessibility/browser_accessibility_win.cc (working copy)
@@ -135,7 +135,7 @@
return E_FAIL;
*target = static_cast<IAccessible*>(
- result->toBrowserAccessibilityWin()->NewReference());
+ result->ToBrowserAccessibilityWin()->NewReference());
return S_OK;
}
@@ -176,8 +176,8 @@
return instance->NewReference();
}
-BrowserAccessibilityWin* BrowserAccessibility::toBrowserAccessibilityWin() {
- return static_cast<BrowserAccessibilityWin*>(this);
+BrowserAccessibilityWin* BrowserAccessibilityWin::ToBrowserAccessibilityWin() {
+ return this;
}
BrowserAccessibilityWin::BrowserAccessibilityWin()
@@ -238,7 +238,7 @@
child->lVal = CHILDID_SELF;
} else {
child->vt = VT_DISPATCH;
- child->pdispVal = result->toBrowserAccessibilityWin()->NewReference();
+ child->pdispVal = result->ToBrowserAccessibilityWin()->NewReference();
}
return S_OK;
}
@@ -307,7 +307,7 @@
}
end->vt = VT_DISPATCH;
- end->pdispVal = result->toBrowserAccessibilityWin()->NewReference();
+ end->pdispVal = result->ToBrowserAccessibilityWin()->NewReference();
return S_OK;
}
@@ -465,11 +465,13 @@
if (!disp_parent)
return E_INVALIDARG;
- IAccessible* parent = parent_->toBrowserAccessibilityWin();
- if (parent == NULL) {
+ IAccessible* parent;
+ if (parent_) {
+ parent = parent_->ToBrowserAccessibilityWin();
+ } else {
// This happens if we're the root of the tree;
// return the IAccessible for the window.
- parent = manager_->toBrowserAccessibilityManagerWin()->
+ parent = manager_->ToBrowserAccessibilityManagerWin()->
GetParentWindowIAccessible();
}
@@ -566,7 +568,7 @@
if (children_[i]->HasState(WebAccessibility::STATE_SELECTED)) {
selected->vt = VT_DISPATCH;
selected->pdispVal =
- children_[i]->toBrowserAccessibilityWin()->NewReference();
+ children_[i]->ToBrowserAccessibilityWin()->NewReference();
return S_OK;
}
}
@@ -581,7 +583,7 @@
if (children_[i]->HasState(WebAccessibility::STATE_SELECTED)) {
enum_variant->ItemAt(index)->vt = VT_DISPATCH;
enum_variant->ItemAt(index)->pdispVal =
- children_[i]->toBrowserAccessibilityWin()->NewReference();
+ children_[i]->ToBrowserAccessibilityWin()->NewReference();
++index;
}
}
@@ -1072,8 +1074,7 @@
return S_FALSE;
int cell_id = unique_cell_ids_[cell_index];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
int col_index;
if (cell &&
cell->GetIntAttribute(
@@ -1179,15 +1180,14 @@
for (int i = 0; i < columns; ++i) {
int cell_id = cell_ids_[row * columns + i];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
- if (cell && cell->role_ == WebAccessibility::ROLE_ROW_HEADER) {
- if (cell->name_.size() > 0) {
- *description = SysAllocString(cell->name_.c_str());
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
+ if (cell && cell->role() == WebAccessibility::ROLE_ROW_HEADER) {
+ if (cell->name().size() > 0) {
+ *description = SysAllocString(cell->name().c_str());
return S_OK;
}
- return cell->GetStringAttributeAsBstr(
+ return cell->ToBrowserAccessibilityWin()->GetStringAttributeAsBstr(
WebAccessibility::ATTR_DESCRIPTION, description);
}
}
@@ -1218,8 +1218,7 @@
return E_INVALIDARG;
int cell_id = cell_ids_[row * columns + column];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
int rowspan;
if (cell &&
cell->GetIntAttribute(
@@ -1255,8 +1254,7 @@
return S_FALSE;
int cell_id = unique_cell_ids_[cell_index];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
int cell_row_index;
if (cell &&
cell->GetIntAttribute(
@@ -1388,8 +1386,7 @@
return S_FALSE;
int cell_id = unique_cell_ids_[index];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
int rowspan;
int colspan;
if (cell &&
@@ -1526,9 +1523,8 @@
for (int i = 0; i < rows; ++i) {
int cell_id = table->cell_ids()[i * columns + column];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
- if (cell && cell->role_ == WebAccessibility::ROLE_COLUMN_HEADER)
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
+ if (cell && cell->role() == WebAccessibility::ROLE_COLUMN_HEADER)
(*n_column_header_cells)++;
}
@@ -1537,11 +1533,11 @@
int index = 0;
for (int i = 0; i < rows; ++i) {
int cell_id = table->cell_ids()[i * columns + column];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
- if (cell && cell->role_ == WebAccessibility::ROLE_COLUMN_HEADER) {
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
+ if (cell && cell->role() == WebAccessibility::ROLE_COLUMN_HEADER) {
(*cell_accessibles)[index] =
- static_cast<IAccessible*>(cell->NewReference());
+ static_cast<IAccessible*>(
+ cell->ToBrowserAccessibilityWin()->NewReference());
++index;
}
}
@@ -1624,9 +1620,8 @@
for (int i = 0; i < columns; ++i) {
int cell_id = table->cell_ids()[row * columns + i];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
- if (cell && cell->role_ == WebAccessibility::ROLE_ROW_HEADER)
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
+ if (cell && cell->role() == WebAccessibility::ROLE_ROW_HEADER)
(*n_row_header_cells)++;
}
@@ -1635,11 +1630,11 @@
int index = 0;
for (int i = 0; i < columns; ++i) {
int cell_id = table->cell_ids()[row * columns + i];
- BrowserAccessibilityWin* cell =
- manager_->GetFromRendererID(cell_id)->toBrowserAccessibilityWin();
- if (cell && cell->role_ == WebAccessibility::ROLE_ROW_HEADER) {
+ BrowserAccessibility* cell = manager_->GetFromRendererID(cell_id);
+ if (cell && cell->role() == WebAccessibility::ROLE_ROW_HEADER) {
(*cell_accessibles)[index] =
- static_cast<IAccessible*>(cell->NewReference());
+ static_cast<IAccessible*>(
+ cell->ToBrowserAccessibilityWin()->NewReference());
++index;
}
}
@@ -1737,7 +1732,7 @@
}
*table = static_cast<IAccessibleTable*>(
- find_table->toBrowserAccessibilityWin()->NewReference());
+ find_table->ToBrowserAccessibilityWin()->NewReference());
return S_OK;
}
@@ -2095,7 +2090,7 @@
}
BrowserAccessibilityWin* child =
- children_[hyperlinks_[index]]->toBrowserAccessibilityWin();
+ children_[hyperlinks_[index]]->ToBrowserAccessibilityWin();
*hyperlink = static_cast<IAccessibleHyperlink*>(child->NewReference());
return S_OK;
}
@@ -2397,7 +2392,12 @@
if (!node)
return E_INVALIDARG;
- *node = parent_->toBrowserAccessibilityWin()->NewReference();
+ if (!parent_) {
+ *node = NULL;
+ return S_FALSE;
+ }
+
+ *node = parent_->ToBrowserAccessibilityWin()->NewReference();
return S_OK;
}
@@ -2409,7 +2409,7 @@
return E_INVALIDARG;
if (children_.size()) {
- *node = children_[0]->toBrowserAccessibilityWin()->NewReference();
+ *node = children_[0]->ToBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -2425,7 +2425,7 @@
return E_INVALIDARG;
if (children_.size()) {
- *node = children_[children_.size() - 1]->toBrowserAccessibilityWin()->
+ *node = children_[children_.size() - 1]->ToBrowserAccessibilityWin()->
NewReference();
return S_OK;
} else {
@@ -2444,7 +2444,7 @@
if (parent_ && index_in_parent_ > 0) {
*node = parent_->children()[index_in_parent_ - 1]->
- toBrowserAccessibilityWin()->NewReference();
+ ToBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -2463,7 +2463,7 @@
index_in_parent_ >= 0 &&
index_in_parent_ < static_cast<int>(parent_->children().size()) - 1) {
*node = parent_->children()[index_in_parent_ + 1]->
- toBrowserAccessibilityWin()->NewReference();
+ ToBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -2481,7 +2481,7 @@
return E_INVALIDARG;
if (child_index < children_.size()) {
- *node = children_[child_index]->toBrowserAccessibilityWin()->NewReference();
+ *node = children_[child_index]->ToBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -2848,9 +2848,9 @@
return this;
if (child_id >= 1 && child_id <= static_cast<LONG>(children_.size()))
- return children_[child_id - 1]->toBrowserAccessibilityWin();
+ return children_[child_id - 1]->ToBrowserAccessibilityWin();
- return manager_->GetFromChildID(child_id)->toBrowserAccessibilityWin();
+ return manager_->GetFromChildID(child_id)->ToBrowserAccessibilityWin();
}
HRESULT BrowserAccessibilityWin::GetStringAttributeAsBstr(
@@ -2944,7 +2944,8 @@
BrowserAccessibilityWin* BrowserAccessibilityWin::GetFromRendererID(
int32 renderer_id) {
- return manager_->GetFromRendererID(renderer_id)->toBrowserAccessibilityWin();
+ BrowserAccessibility* result = manager_->GetFromRendererID(renderer_id);
+ return result ? result->ToBrowserAccessibilityWin() : NULL;
}
void BrowserAccessibilityWin::InitRoleAndState() {

Powered by Google App Engine
This is Rietveld 408576698