Bug 622246. Just get our target off the event instead of relying on the ESM, since the ESM doesn't actually do what we want here. r=smaug, a=blocker

This commit is contained in:
Boris Zbarsky 2011-01-03 20:46:19 -06:00
Родитель 8735d7f805
Коммит 01282934d7
3 изменённых файлов: 46 добавлений и 4 удалений

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

@ -5354,10 +5354,7 @@ nsGenericElement::PostHandleEventForLinks(nsEventChainPostVisitor& aVisitor)
case NS_UI_ACTIVATE:
{
nsCOMPtr<nsIContent> targetContent;
aVisitor.mPresContext->EventStateManager()->
GetEventTargetContent(aVisitor.mEvent, getter_AddRefs(targetContent));
if (targetContent == this) {
if (aVisitor.mEvent->originalTarget == this) {
nsAutoString target;
GetLinkTarget(target);
nsContentUtils::TriggerLink(this, aVisitor.mPresContext, absURI, target,

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

@ -454,6 +454,7 @@ _TEST_FILES2 = \
test_bug614058.html \
test_bug590771.html \
test_bug622117.html \
test_bug622246.html \
$(NULL)
# This test fails on the Mac for some reason

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

@ -0,0 +1,44 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=622246
-->
<head>
<title>Test for Bug 622246</title>
<script type="application/javascript" src="/MochiKit/packed.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=622246">Mozilla Bug 622246</a>
<p id="display">
<iframe id="testframe"
src="data:text/html,<span onclick='this.parentNode.removeChild(this)'><a href='data:text/plain,PASS'>Click me</a></span>">
</iframe>
</p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 622246 **/
SimpleTest.waitForExplicitFinish();
const PASSURL = "data:text/plain,PASS";
SimpleTest.waitForFocus(function() {
$("testframe").onload = function() {
is(this.contentDocument.documentElement.textContent, "PASS", "Should have loaded link");
SimpleTest.finish();
};
var win = $("testframe").contentWindow;
var a = win.document.getElementsByTagName("a")[0];
synthesizeMouseAtCenter(a, {}, win);
});
</script>
</pre>
</body>
</html>