Backed out changeset c6731046b796 (bug 921928) for mochitest-4 timeouts in test_event_target_iframe_apps_oop.html

This commit is contained in:
Ed Morley 2013-10-25 15:59:25 +01:00
parent f003bef988
commit 069d61e217
4 changed files with 0 additions and 195 deletions

View File

@ -174,16 +174,6 @@ IsElementClickable(nsIFrame* aFrame, nsIAtom* stopAt = nullptr)
tag == nsGkAtoms::label) { tag == nsGkAtoms::label) {
return true; return true;
} }
// Bug 921928: we don't have access to the content of remote iframe.
// So fluffing won't go there. We do an optimistic assumption here:
// that the content of the remote iframe needs to be a target.
if (tag == nsGkAtoms::iframe &&
content->AttrValueIs(kNameSpaceID_None, nsGkAtoms::mozbrowser,
nsGkAtoms::_true, eIgnoreCase) &&
content->AttrValueIs(kNameSpaceID_None, nsGkAtoms::Remote,
nsGkAtoms::_true, eIgnoreCase)) {
return true;
}
} else if (content->IsXUL()) { } else if (content->IsXUL()) {
nsIAtom* tag = content->Tag(); nsIAtom* tag = content->Tag();
// See nsCSSFrameConstructor::FindXULTagData. This code is not // See nsCSSFrameConstructor::FindXULTagData. This code is not

View File

@ -115,8 +115,6 @@ MOCHITEST_FILES = \
test_bug677878.html \ test_bug677878.html \
test_bug696020.html \ test_bug696020.html \
test_event_target_radius.html \ test_event_target_radius.html \
test_event_target_iframe_oop.html \
test_event_target_iframe_apps_oop.html \
test_mozPaintCount.html \ test_mozPaintCount.html \
test_scroll_event_ordering.html \ test_scroll_event_ordering.html \
test_scroll_selection_into_view.html \ test_scroll_selection_into_view.html \

View File

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Test companion for bug 921928</title>
</head>
<body>
</body>
</html>

View File

@ -1,175 +0,0 @@
<!DOCTYPE HTML>
<html id="html" style="height:100%">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=921928
-->
<head>
<title>Test for bug 921928</title>
<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"/>
<style>
#dialer {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 50px;
background: green;
}
#apps {
position: absolute;
left: 0;
top: 51px;
width: 100%;
height: 100px;
background: blue;
}
.hit {
position: absolute;
width: 3px;
height: 3px;
z-index: 20;
background: red;
border: 1px solid red;
}
</style>
</head>
<body id="body" style="margin:0; width:100%; height:100%">
<script type="application/javascript">
SimpleTest.waitForExplicitFinish();
var prefs = [
["ui.mouse.radius.enabled", true],
["ui.mouse.radius.inputSource.touchOnly", false],
["ui.mouse.radius.leftmm", 12],
["ui.mouse.radius.topmm", 8],
["ui.mouse.radius.rightmm", 4],
["ui.mouse.radius.bottommm", 4],
["ui.mouse.radius.visitedweight", 50],
["dom.mozBrowserFramesEnabled", true]
];
var eventTarget;
var debugHit = [];
function endTest() {
SimpleTest.finish();
SpecialPowers.removePermission("browser", location.href);
for (var pref in prefs) {
SpecialPowers.pushPrefEnv({"clear": pref[0]}, function() {});
}
}
function testMouseClick(idPosition, dx, dy, idTarget, msg, options) {
eventTarget = null;
synthesizeMouse(document.getElementById(idPosition), dx, dy, options || {});
try {
is(eventTarget.id, idTarget,
"checking '" + idPosition + "' offset " + dx + "," + dy + " [" + msg + "]");
} catch (ex) {
ok(false, "checking '" + idPosition + "' offset " + dx + "," + dy + " [" + msg + "]; got " + eventTarget);
}
}
function showDebug() {
for (var i = 0; i < debugHit.length; i++) {
document.body.appendChild(debugHit[i]);
}
}
/*
Setup the test environment: enabling event fluffing (all ui.* preferences),
and enabling remote process.
*/
function setupTest(cont) {
SpecialPowers.pushPrefEnv({"set": prefs}, cont);
SpecialPowers.addPermission("browser", true, document);
}
function execTest() {
/*
Creating two iframes that mimics the attention screen behavior on the
device:
- the 'dialer' iframe is the attention screen you have when a call is
in place. it is a green bar, so we copy it as green here too
- the 'apps' iframe mimics another application that is being run, be it
dialer, sms, ..., anything that the user might want to trigger during
a call
The bug we intent to reproduce here is that in this case, if the user taps
onto the top of the 'apps', the event fluffing code will in fact redirect
the event to the 'dialer' iframe. In practice, this is bug 921928 where
during a call the user wants to place a second call, and while typing the
phone number, wants to tap onto the 'delete' key to erase a digit, but ends
tapping and activating the dialer.
*/
var dialer = document.createElement('iframe');
dialer.id = 'dialer';
dialer.src = '';
// Force OOP
dialer.setAttribute('mozbrowser', 'true');
dialer.setAttribute('remote', 'true');
document.body.appendChild(dialer);
var apps = document.createElement('iframe');
apps.id = 'apps';
apps.src = 'test_event_target_iframe_oop_apps.html';
// Force OOP
apps.setAttribute('mozbrowser', 'true');
apps.setAttribute('remote', 'true');
document.body.appendChild(apps);
var handleEvent = function(event) {
eventTarget = event.target;
// We draw a small red div to show where the event has tapped
var hit = document.createElement('div');
hit.style.left = (event.clientX - 1.5) + 'px';
hit.style.top = (event.clientY - 1.5) + 'px';
hit.classList.add('hit');
debugHit.push(hit);
};
// In real life, the 'dialer' has a 'mousedown', so we mimic one too,
// to reproduce the same behavior
dialer.addEventListener('mousedown', function(e) {});
// This event listener is just here to record what iframe has been hit,
// and sets the 'eventTarget' to the iframe's id value so that the
// testMouseClick() code can correctly check. We cannot add it on the
// 'apps' otherwise it will alter the behavior of the test.
document.addEventListener('mousedown', handleEvent);
// In the following, the coordinates are relative to the iframe
// First, we check that tapping onto the 'dialer' correctly triggers the
// dialer.
testMouseClick("dialer", 20, 15, "dialer", "correct hit on dialer with mouse input");
testMouseClick("dialer", 20, 15, "dialer", "correct hit on dialer with touch input", {
inputSource: SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH
});
// Now this is it: we tap inside 'apps', but very close to the border between
// 'apps' and 'dialer'. Without the fix from this bug, this test will fail.
testMouseClick("apps", 20, 1, "apps", "apps <iframe mozbrowser remote> hit for mouse input");
testMouseClick("apps", 20, 1, "apps", "apps <iframe mozbrowser remote> hit for touch input", {
inputSource: SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH
});
// Show small red spots of where the click happened
// showDebug();
endTest();
}
function runTest() {
setupTest(execTest);
}
addEventListener('load', function() { SimpleTest.executeSoon(runTest); });
</script>
</body>
</html>