Backing out fix for bug 548291 to fix test crash (b=550819)

This commit is contained in:
David Bolter 2010-03-08 12:24:35 -05:00
Родитель b140f3f88e
Коммит 8ab2ed58c7
9 изменённых файлов: 17 добавлений и 202 удалений

Просмотреть файл

@ -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>