зеркало из https://github.com/mozilla/gecko-dev.git
Backing out fix for bug 548291 to fix test crash (b=550819)
This commit is contained in:
Родитель
b140f3f88e
Коммит
8ab2ed58c7
|
@ -138,18 +138,6 @@ nsHTMLAreaAccessible::GetBounds(PRInt32 *x, PRInt32 *y,
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsAccessible public implementation
|
||||
|
||||
nsresult
|
||||
nsHTMLAreaAccessible::GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState)
|
||||
{
|
||||
// Bypass the link states specialization for non links.
|
||||
if (mRoleMapEntry && mRoleMapEntry->role != nsIAccessibleRole::ROLE_NOTHING
|
||||
&& mRoleMapEntry->role != nsIAccessibleRole::ROLE_LINK) {
|
||||
return nsAccessible::GetStateInternal(aState,aExtraState);
|
||||
}
|
||||
|
||||
return nsHTMLLinkAccessible::GetStateInternal(aState,aExtraState);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLAreaAccessible::GetChildAtPoint(PRInt32 aX, PRInt32 aY,
|
||||
PRBool aDeepestChild,
|
||||
|
|
|
@ -58,7 +58,6 @@ public:
|
|||
|
||||
// nsAccessible
|
||||
virtual nsresult GetNameInternal(nsAString& aName);
|
||||
virtual nsresult GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState);
|
||||
virtual nsresult GetChildAtPoint(PRInt32 aX, PRInt32 aY,
|
||||
PRBool aDeepestChild,
|
||||
nsIAccessible **aChild);
|
||||
|
|
|
@ -165,15 +165,17 @@ nsHTMLImageAccessible::CacheChildren()
|
|||
PRUint32 areaCount = 0;
|
||||
mapAreas->GetLength(&areaCount);
|
||||
|
||||
nsRefPtr<nsAccessible> areaAccessible;
|
||||
nsCOMPtr<nsIAccessible> areaAccessible;
|
||||
nsRefPtr<nsAccessible> areaAcc;
|
||||
|
||||
for (PRUint32 areaIdx = 0; areaIdx < areaCount; areaIdx++) {
|
||||
areaAccessible = GetAreaAccessible(mapAreas, areaIdx);
|
||||
if (!areaAccessible)
|
||||
return;
|
||||
|
||||
mChildren.AppendElement(areaAccessible);
|
||||
areaAccessible->SetParent(this);
|
||||
areaAcc = nsAccUtils::QueryObject<nsAccessible>(areaAccessible);
|
||||
mChildren.AppendElement(areaAcc);
|
||||
areaAcc->SetParent(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -286,7 +288,8 @@ nsHTMLImageAccessible::GetAnchor(PRInt32 aIndex, nsIAccessible **aAccessible)
|
|||
|
||||
nsCOMPtr<nsIDOMHTMLCollection> mapAreas = GetAreaCollection();
|
||||
if (mapAreas) {
|
||||
nsRefPtr<nsAccessible> accessible = GetAreaAccessible(mapAreas, aIndex);
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
accessible = GetAreaAccessible(mapAreas, aIndex);
|
||||
if (!accessible)
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
|
||||
|
@ -371,7 +374,7 @@ nsHTMLImageAccessible::GetAreaCollection()
|
|||
return mapAreas;
|
||||
}
|
||||
|
||||
already_AddRefed<nsAccessible>
|
||||
already_AddRefed<nsIAccessible>
|
||||
nsHTMLImageAccessible::GetAreaAccessible(nsIDOMHTMLCollection *aAreaCollection,
|
||||
PRInt32 aAreaNum)
|
||||
{
|
||||
|
@ -384,28 +387,21 @@ nsHTMLImageAccessible::GetAreaAccessible(nsIDOMHTMLCollection *aAreaCollection,
|
|||
return nsnull;
|
||||
|
||||
void* key = reinterpret_cast<void*>(aAreaNum);
|
||||
nsRefPtr<nsAccessible> accessible =
|
||||
nsAccUtils::QueryObject<nsAccessible>(mAccessNodeCache->GetWeak(key));
|
||||
nsRefPtr<nsAccessNode> accessNode = mAccessNodeCache->GetWeak(key);
|
||||
|
||||
if (!accessible) {
|
||||
accessible = new nsHTMLAreaAccessible(domNode, this, mWeakShell);
|
||||
if (!accessible)
|
||||
if (!accessNode) {
|
||||
accessNode = new nsHTMLAreaAccessible(domNode, this, mWeakShell);
|
||||
if (!accessNode)
|
||||
return nsnull;
|
||||
|
||||
nsresult rv = accessible->Init();
|
||||
if (NS_FAILED(rv)) {
|
||||
accessible->Shutdown();
|
||||
nsresult rv = accessNode->Init();
|
||||
if (NS_FAILED(rv))
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
// We should respect ARIA on area elements (for the canvas map technique)
|
||||
accessible->SetRoleMapEntry(nsAccUtils::GetRoleMapEntry(domNode));
|
||||
|
||||
if (!mAccessNodeCache->Put(key, accessible)) {
|
||||
return nsnull;
|
||||
}
|
||||
mAccessNodeCache->Put(key, accessNode);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIAccessible> accessible = do_QueryInterface(accessNode);
|
||||
return accessible.forget();
|
||||
}
|
||||
|
||||
|
|
|
@ -85,11 +85,7 @@ protected:
|
|||
|
||||
// nsHTMLImageAccessible
|
||||
already_AddRefed<nsIDOMHTMLCollection> GetAreaCollection();
|
||||
|
||||
/*
|
||||
* Return the accessible for the area element.
|
||||
*/
|
||||
already_AddRefed<nsAccessible>
|
||||
already_AddRefed<nsIAccessible>
|
||||
GetAreaAccessible(nsIDOMHTMLCollection* aAreaNodes, PRInt32 aAreaNum);
|
||||
|
||||
// Reference on linked map element if any.
|
||||
|
|
|
@ -48,7 +48,6 @@ include $(DEPTH)/config/autoconf.mk
|
|||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES =\
|
||||
formimage.png \
|
||||
letters.gif \
|
||||
moz.png \
|
||||
$(topsrcdir)/content/media/test/bug461281.ogg \
|
||||
|
|
|
@ -47,7 +47,6 @@ include $(topsrcdir)/config/rules.mk
|
|||
|
||||
_TEST_FILES =\
|
||||
test_aria.html \
|
||||
test_aria_imagemap.html \
|
||||
test_doc.html \
|
||||
test_docarticle.html \
|
||||
test_editablebody.html \
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test usemap elements and ARIA</title>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/a11y/accessible/common.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/a11y/accessible/role.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/a11y/accessible/states.js"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
function doTest()
|
||||
{
|
||||
testStates("t1", 0, EXT_STATE_EDITABLE, STATE_LINKED);
|
||||
testStates("t2", 0, EXT_STATE_EDITABLE, STATE_LINKED);
|
||||
testStates("rb1", (STATE_CHECKABLE | STATE_CHECKED), 0, STATE_LINKED);
|
||||
testStates("rb2", STATE_CHECKABLE, 0, STATE_CHECKED, STATE_LINKED);
|
||||
testStates("cb1", (STATE_CHECKABLE | STATE_CHECKED), 0, STATE_LINKED);
|
||||
testStates("cbox",(STATE_HASPOPUP | STATE_COLLAPSED), EXT_STATE_EXPANDABLE
|
||||
, STATE_LINKED);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addA11yLoadEvent(doTest);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=548291"
|
||||
title="ARIA states on image maps">
|
||||
Mozilla Bug 548291
|
||||
</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
|
||||
<img id="imagemap" src="../formimage.png" width="219" height="229" border="0" usemap="#aMap">
|
||||
<map id="aMap" name="aMap">
|
||||
<area id="t1" role="textbox" shape="rect" tabindex="0" alt="" title="first name" coords="4,20,108,48" href="#" />
|
||||
<area id="t2" role="textbox" shape="rect" alt="" title="last name" coords="111,21,215,50" href="#" />
|
||||
<area id="rb1" role="radio" aria-checked="true" shape="circle" alt="" title="male" coords="60,75,11" href="#" />
|
||||
<area id="rb2" role="radio" shape="circle" alt="" title="female" coords="73,94,11" href="#" />
|
||||
<area id="cb1" role="checkbox" aria-checked="true" shape="rect" alt="" title="have bike" coords="95,123,118,145" href="#" />
|
||||
<area id="cbox" role="combobox" shape="rect" alt="" title="bike model" coords="120,124,184,146" href="#" />
|
||||
<area id="cb2" role="checkbox" shape="rect" alt="" title="have car" coords="90,145,114,164" href="#" />
|
||||
<area id="cb3" role="checkbox" shape="rect" alt="" title="have airplane" coords="130,163,152,184" href="#" />
|
||||
<area id="b1" role="button" shape="rect" alt="" title="submit" coords="4,198,67,224" href="#" />
|
||||
</map>
|
||||
</body>
|
||||
</html>
|
|
@ -46,7 +46,6 @@ include $(DEPTH)/config/autoconf.mk
|
|||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES =\
|
||||
test_aria_imagemap.html \
|
||||
test_button.xul \
|
||||
test_colorpicker.xul \
|
||||
test_combobox.xul \
|
||||
|
|
|
@ -1,99 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test usemap elements and ARIA</title>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/a11y/accessible/common.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/a11y/accessible/role.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/a11y/accessible/states.js"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
function doTest()
|
||||
{
|
||||
var accTree = {
|
||||
role: ROLE_IMAGE_MAP,
|
||||
children: [
|
||||
{
|
||||
role: ROLE_ENTRY,
|
||||
name: "first name"
|
||||
},
|
||||
{
|
||||
role: ROLE_ENTRY,
|
||||
name: "last name"
|
||||
},
|
||||
{
|
||||
role: ROLE_RADIOBUTTON,
|
||||
name: "male"
|
||||
},
|
||||
{
|
||||
role: ROLE_RADIOBUTTON,
|
||||
name: "female"
|
||||
},
|
||||
{
|
||||
role: ROLE_CHECKBUTTON,
|
||||
name: "have bike"
|
||||
},
|
||||
{
|
||||
role: ROLE_COMBOBOX,
|
||||
name: "bike model"
|
||||
},
|
||||
{
|
||||
role: ROLE_CHECKBUTTON,
|
||||
name: "have car"
|
||||
},
|
||||
{
|
||||
role: ROLE_CHECKBUTTON,
|
||||
name: "have airplane"
|
||||
},
|
||||
{
|
||||
role: ROLE_PUSHBUTTON,
|
||||
name: "submit"
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// Test image map tree structure, roles, and names.
|
||||
testAccessibleTree("imagemap", accTree);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addA11yLoadEvent(doTest);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=548291"
|
||||
title="Accessible tree of ARIA image maps">
|
||||
Mozilla Bug 548291
|
||||
</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
|
||||
<img id="imagemap" src="../formimage.png" width="219" height="229" border="0" usemap="#aMap">
|
||||
<map id="aMap" name="aMap">
|
||||
<area id="t1" role="textbox" shape="rect" tabindex="0" alt="" title="first name" coords="4,20,108,48" href="#" />
|
||||
<area id="t2" role="textbox" shape="rect" alt="" title="last name" coords="111,21,215,50" href="#" />
|
||||
<area id="rb1" role="radio" aria-checked="true" shape="circle" alt="" title="male" coords="60,75,11" href="#" />
|
||||
<area id="rb2" role="radio" shape="circle" alt="" title="female" coords="73,94,11" href="#" />
|
||||
<area id="cb1" role="checkbox" aria-checked="true" shape="rect" alt="" title="have bike" coords="95,123,118,145" href="#" />
|
||||
<area id="cbox" role="combobox" shape="rect" alt="" title="bike model" coords="120,124,184,146" href="#" />
|
||||
<area id="cb2" role="checkbox" shape="rect" alt="" title="have car" coords="90,145,114,164" href="#" />
|
||||
<area id="cb3" role="checkbox" shape="rect" alt="" title="have airplane" coords="130,163,152,184" href="#" />
|
||||
<area id="b1" role="button" shape="rect" alt="" title="submit" coords="4,198,67,224" href="#" />
|
||||
</map>
|
||||
</body>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче