[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.20-204-g221d8e8
alice.liu at apple.com
alice.liu at apple.com
Wed Feb 10 22:14:55 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit ce7ab653f535340a22f02bb91f98027dc97dc391
Author: alice.liu at apple.com <alice.liu at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Feb 4 23:29:19 2010 +0000
https://bugs.webkit.org/show_bug.cgi?id=34612 " MSAA: accSelect returns error
codes for most elements that arent listbox or menupopup related"
<rdar://problem/7436861>
Reviewed by Jon Honeycutt.
* AccessibleBase.cpp:
(AccessibleBase::accSelect):
- Stop sending E_INVALIDARG for elements that request TAKE_SELECTION that
aren't beneath listboxes or menupopups. This was too restrictive since
any element can be selectable.
- Correct the misinterpretation of MSDN's stipulation of situations involving
adding, removing, and extending selection on single-select elements
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/win/AccessibleBase.cpp b/WebKit/win/AccessibleBase.cpp
index 0704771..3e8306f 100644
--- a/WebKit/win/AccessibleBase.cpp
+++ b/WebKit/win/AccessibleBase.cpp
@@ -382,10 +382,10 @@ HRESULT STDMETHODCALLTYPE AccessibleBase::get_accKeyboardShortcut(VARIANT vChild
HRESULT STDMETHODCALLTYPE AccessibleBase::accSelect(long selectionFlags, VARIANT vChild)
{
// According to MSDN, these combinations are invalid.
- if (((selectionFlags & (SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION)) == (SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION)) ||
- ((selectionFlags & (SELFLAG_ADDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_ADDSELECTION | SELFLAG_TAKESELECTION)) ||
- ((selectionFlags & (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)) ||
- ((selectionFlags & (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)))
+ if (((selectionFlags & (SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION)) == (SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION))
+ || ((selectionFlags & (SELFLAG_ADDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_ADDSELECTION | SELFLAG_TAKESELECTION))
+ || ((selectionFlags & (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION))
+ || ((selectionFlags & (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)))
return E_INVALIDARG;
AccessibilityObject* childObject;
@@ -406,15 +406,19 @@ HRESULT STDMETHODCALLTYPE AccessibleBase::accSelect(long selectionFlags, VARIANT
Vector<RefPtr<AccessibilityObject> > selectedChildren(1);
selectedChildren[0] = childObject;
static_cast<AccessibilityListBox*>(parentObject)->setSelectedChildren(selectedChildren);
- } else if (parentObject->isMenuListPopup())
+ } else { // any element may be selectable by virtue of it having the aria-selected property
+ ASSERT(!parentObject->isMultiSelectable());
childObject->setSelected(true);
- else
- return E_INVALIDARG;
+ }
}
- // MSDN says that ADD, REMOVE, and EXTENDSELECTION are invalid for
+ // MSDN says that ADD, REMOVE, and EXTENDSELECTION with no other flags are invalid for
// single-select.
- if (!parentObject->isMultiSelectable())
+ const long allSELFLAGs = SELFLAG_TAKEFOCUS | SELFLAG_TAKESELECTION | SELFLAG_EXTENDSELECTION | SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION;
+ if (!parentObject->isMultiSelectable()
+ && (((selectionFlags & allSELFLAGs) == SELFLAG_ADDSELECTION)
+ || ((selectionFlags & allSELFLAGs) == SELFLAG_REMOVESELECTION)
+ || ((selectionFlags & allSELFLAGs) == SELFLAG_EXTENDSELECTION)))
return E_INVALIDARG;
if (selectionFlags & SELFLAG_ADDSELECTION)
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index d9eeff2..da1ab05 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,19 @@
+2010-02-04 Alice Liu <alice.liu at apple.com>
+
+ Reviewed by Jon Honeycutt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=34612 " MSAA: accSelect returns error
+ codes for most elements that arent listbox or menupopup related"
+ <rdar://problem/7436861>
+
+ * AccessibleBase.cpp:
+ (AccessibleBase::accSelect):
+ - Stop sending E_INVALIDARG for elements that request TAKE_SELECTION that
+ aren't beneath listboxes or menupopups. This was too restrictive since
+ any element can be selectable.
+ - Correct the misinterpretation of MSDN's stipulation of situations involving
+ adding, removing, and extending selection on single-select elements
+
2010-02-04 Brent Fulgham <bfulgham at webkit.org>
Reviewed by Adam Roben.
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list