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

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

Issue 8793001: Revert r112885 and follow-up r112886. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years 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
« no previous file with comments | « content/browser/accessibility/browser_accessibility_win.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/accessibility/browser_accessibility_win.cc
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
index 092a948ecd96a1a27d9d3389952be464a472917e..4e88ac09fceff405867d870dfe52a7b36cb87fb9 100644
--- a/content/browser/accessibility/browser_accessibility_win.cc
+++ b/content/browser/accessibility/browser_accessibility_win.cc
@@ -27,8 +27,6 @@ const GUID GUID_ISimpleDOM = {
0x0c539790, 0x12e4, 0x11cf,
0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8};
-const char16 BrowserAccessibilityWin::kEmbeddedCharacter[] = L"\xfffc";
-
//
// BrowserAccessibilityRelation
//
@@ -1754,7 +1752,13 @@ STDMETHODIMP BrowserAccessibilityWin::get_nCharacters(LONG* n_characters) {
if (!n_characters)
return E_INVALIDARG;
- *n_characters = TextForIAccessibleText().length();
+ if (role_ == WebAccessibility::ROLE_TEXT_FIELD ||
+ role_ == WebAccessibility::ROLE_TEXTAREA) {
+ *n_characters = value_.length();
+ } else {
+ *n_characters = name_.length();
+ }
+
return S_OK;
}
@@ -2069,62 +2073,6 @@ STDMETHODIMP BrowserAccessibilityWin::setSelection(LONG selection_index,
}
//
-// IAccessibleHypertext methods.
-//
-
-STDMETHODIMP BrowserAccessibilityWin::get_nHyperlinks(long* hyperlink_count) {
- if (!instance_active_)
- return E_FAIL;
-
- if (!hyperlink_count)
- return E_INVALIDARG;
-
- *hyperlink_count = hyperlink_offset_to_index_.size();
- return S_OK;
-}
-
-STDMETHODIMP BrowserAccessibilityWin::get_hyperlink(
- long index,
- IAccessibleHyperlink** hyperlink) {
- if (!instance_active_)
- return E_FAIL;
-
- if (!hyperlink ||
- index < 0 ||
- index >= static_cast<long>(hyperlinks_.size())) {
- return E_INVALIDARG;
- }
-
- BrowserAccessibilityWin* child =
- children_[hyperlinks_[index]]->toBrowserAccessibilityWin();
- *hyperlink = static_cast<IAccessibleHyperlink*>(child->NewReference());
- return S_OK;
-}
-
-STDMETHODIMP BrowserAccessibilityWin::get_hyperlinkIndex(
- long char_index,
- long* hyperlink_index) {
- if (!instance_active_)
- return E_FAIL;
-
- if (!hyperlink_index)
- return E_INVALIDARG;
-
- *hyperlink_index = -1;
-
- if (char_index < 0 || char_index >= static_cast<long>(hypertext_.size()))
- return E_INVALIDARG;
-
- std::map<int32, int32>::iterator it =
- hyperlink_offset_to_index_.find(char_index);
- if (it == hyperlink_offset_to_index_.end())
- return E_FAIL;
-
- *hyperlink_index = it->second;
- return S_OK;
-}
-
-//
// IAccessibleValue methods.
//
@@ -2520,9 +2468,6 @@ STDMETHODIMP BrowserAccessibilityWin::QueryService(
if (guidService == IID_IAccessible ||
guidService == IID_IAccessible2 ||
- guidService == IID_IAccessibleAction ||
- guidService == IID_IAccessibleHyperlink ||
- guidService == IID_IAccessibleHypertext ||
guidService == IID_IAccessibleImage ||
guidService == IID_IAccessibleTable ||
guidService == IID_IAccessibleTable2 ||
@@ -2549,7 +2494,12 @@ HRESULT WINAPI BrowserAccessibilityWin::InternalQueryInterface(
const _ATL_INTMAP_ENTRY* entries,
REFIID iid,
void** object) {
- if (iid == IID_IAccessibleImage) {
+ if (iid == IID_IAccessibleText) {
+ if (ia_role_ != ROLE_SYSTEM_LINK && ia_role_ != ROLE_SYSTEM_TEXT) {
+ *object = NULL;
+ return E_NOINTERFACE;
+ }
+ } else if (iid == IID_IAccessibleImage) {
if (ia_role_ != ROLE_SYSTEM_GRAPHIC) {
*object = NULL;
return E_NOINTERFACE;
@@ -2587,8 +2537,8 @@ HRESULT WINAPI BrowserAccessibilityWin::InternalQueryInterface(
//
// Initialize this object and mark it as active.
-void BrowserAccessibilityWin::PreInitialize() {
- BrowserAccessibility::PreInitialize();
+void BrowserAccessibilityWin::Initialize() {
+ BrowserAccessibility::Initialize();
InitRoleAndState();
@@ -2707,25 +2657,7 @@ void BrowserAccessibilityWin::PreInitialize() {
}
}
-void BrowserAccessibilityWin::PostInitialize() {
- BrowserAccessibility::PostInitialize();
-
- // Construct the hypertext for this node.
- hyperlink_offset_to_index_.clear();
- hyperlinks_.clear();
- hypertext_.clear();
- for (unsigned int i = 0; i < children().size(); ++i) {
- BrowserAccessibility* child = children()[i];
- if (child->role() == WebAccessibility::ROLE_STATIC_TEXT) {
- hypertext_ += child->name();
- } else {
- hyperlink_offset_to_index_[hypertext_.size()] = hyperlinks_.size();
- hypertext_ += kEmbeddedCharacter;
- hyperlinks_.push_back(i);
- }
- }
- DCHECK_EQ(hyperlink_offset_to_index_.size(), hyperlinks_.size());
-
+void BrowserAccessibilityWin::SendNodeUpdateEvents() {
// Fire an event when an alert first appears.
if (role_ == WebAccessibility::ROLE_ALERT && first_time_)
manager_->NotifyAccessibilityEvent(ViewHostMsg_AccEvent::ALERT, this);
@@ -2856,10 +2788,8 @@ string16 BrowserAccessibilityWin::Escape(const string16& str) {
const string16& BrowserAccessibilityWin::TextForIAccessibleText() {
if (IsEditableText()) {
return value_;
- } else if (role_ == WebAccessibility::ROLE_STATIC_TEXT) {
- return name_;
} else {
- return hypertext_;
+ return name_;
}
}
« no previous file with comments | « content/browser/accessibility/browser_accessibility_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698