Files
palemoon27/widget/tests/window_bug478536.xul
roytam1 fc21d5d094 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1140148 - Update reftest manifests for Android 4.3 emulator; r=dminor (69b7ed099)
- Bug 742176 - Remove/reduce fuzz annotations for tests that no longer appear to be affected by bad overflow areas. r=ehsan (8fac68e26)
- pieces of older patches (6d4b30aed)
- Bug 1153574 - Re-enable Mulet reftests taskcluster-specific disables. r=ahal, a=test-only (72ed7dbc2)
- part of Bug 1138442 - Disable reftests on Mulet in parity with B2G/B2G (8baf07b3c)
- Bug 1073209 - Eliminate usage of CreateSamplingRestrictedDrawable on OS X. r=jrmuizel (86bee3fbc)
- Bug 1148889 - Fuzz some android tests. r=mstange (f63be045e)
- Mark unaccelerated antialiasing reftest failures with APZ as fuzzy. (bug 1157716, r=mstange) (4c0c0f034)
- Bug 1156197. Just use the return value of the cols DOM property for determining the default number of rendered columns for a textarea. r=ms2ger (16ab3064f)
- uniform emoji tests here (5a1e9802c)
- mulet was missing (433a50d93)
- Bug 1141511 - Disable some gtk2Widget-dependant reftests on Mulet. r=ahal (80d3cef05)
- Bug 1141607. Fix the initial value of outline-color to actually be correct. r=dbaron (309275f24)
- part of Bug 1138442 - Disable reftests on Mulet in parity with B2G/B2G (b7a3bb189)
- Bug 1141511 - Disable some gtk2Widget-dependant reftests on Mulet. r=ahal (1afac0742)
- Bug 1153845 - For CSS filters, make the primitive subregions big enough to contain the whole pre-filter visual overflow rect. r=roc (6d56dd6f9)
- annotate (090064379)
- boh (39f7c5aba)
- Bug 1170158 - Apply GTK2 reftest exceptions to GTK3. r=karlt (1f1299503)
- Bug 1165185 - Try to avoid invalidations when scrolling transformed elements. r=roc (d4693eb11)
- Bug 1165185 - Nudge layer prescale to integers. r=roc (2ac6881fc)
- remove spurious file (58fc9059b)
- Bug 1145730 - Restrict the async transforms applied to mask layers to those caused by fixed-position adjustment. r=kats (ebdcc1223)
- Bug 1146024 - Fix up input routing for APZ on Fennec. r=kats (85e8b249b)
- Bug 1146024 - Followup to fix non-android bustage on a CLOSED TREE. r=bustage (1ccd4a58f)
- Bug 1133905. Add some reftests. (89c9f9c8c)
- Bug 1133905. Make layout place scrollbars at the scroll position clamping scrollport size when one is set so that scrollbars are positioned properly on b2g. r=mstange (841279606)
- Bug 1155359 - Add a reftest; r=gw280 (a6e7aeb78)
- Bug 1155359 follow-up: Disable the test on B2G and Mulet (d709b7c54)
- Bug 1157726: Updated algorithm to match ICU implementation of support for bidi isolates. r=smontagu (96d9801e1)
- Bug 1154892 - mozinstall fails to install on Mac with paths which contain white spaces. r=chmanchester (1bddadcdd)
- Bug 1151908 - Updating our character property data with new Bidi info from Unicode 6.3. r=smontagu (c34f88172)
- Bug 817406 part 2 - Tests for propagating 'direction' to the viewport. (3bc7bfa40)
- Bug 1139306. Adjust heights of scrollable area so scrollbar sizes almost match in reftests now that RTL scrollbars correctly show in these reftests. r=smontagu (9c77c96ed)
- Bug 817406 part 3 - Increase the fuzz factors slightly on a few tests for bug 1133905. (22d8a4cbc)
- Bug 1148582. Part 3 follow up. Properly test if a scroll frame uses async scrolling when determining if it needs its clip put on its layer. r=mstange (13beb6a24)
- Fix tests that depend on synchronous scrolling. (bug 1140293, r=mstange,masayuki,kgilbert) (578d2ff1e)
- fix order because of mispatch (75279e185)
- Bug 1162009 - Add TOUCH_CANCEL sending on e10s. r=kats (0fc5574ac)
- Bug 1162179 - Don't create APZCTreeManagers for windows which aren't multiprocess. r=dvander (135d115e0)
- Enable APZ for all Desktop windows if E10s is enabled. (bug 1163115, r=kats) (354729297)
- Fix wheel events not applying root scroll delta overrides. (bug 1147223 part 1, r=kats) (6d650c449)
- fix patch order (08b9ad9bd)
- Improve bad APZ wheel pref detection in about:support. (bug 1147223 part 2, r=kats) (292fa3634)
- Bug 1151890 - Explicitly set a null MessageLoop for the APZ controller thread on OS X. r=mstange (a4fe37d78)
- Bug 1148868 - Put the APZ event thread on Mac behind a pref layers.async-pan-zoom.separate-event-thread that defaults to false. r=dvander (827a7cca7)
- Backed out changeset c5af69669855 (bug 1124084) for various regressions. (28d328c8d)
- Bug 1141819 - Don't implicitly dispatch a runnable to the main thread in RasterImage::StartDecoding. r=baku (1d1233319)
- Bug 1124088 - Rename decode-on-draw to decode-only-on-draw. r=tn (83c24cdb7)
- Bug 1149893 - Add a pref that makes us decode all images immediately. r=baku (6432ae587)
- Bug 1156401 - Fix ContextMenu handling when building Fennec with C++ APZ. r=kats, r=botond (dd784945c)
- Bug 1168629. Always make sure that there is at least one layer with the metrics for the root scroll frame/root element. r=botond,kats (06f19aef3)
- Bug 1154478 - Rename gfxPrefs::LayoutEventRegionsEnabled to LayoutEventRegionsEnabledDoNotUseDirectly. r=kats (68790b756)
- Don't expand displayports beyond the maximum texture size. (bug 1135907, r=kats) (805866f66)
- Bug 1138444 - Add Mulet detection for reftests. r=jgriffin (cc9378556)
- Use widgets for APZ checks, rather than gfxPrefs. (bug 1162064, r=kats,mstange) (40d2823a5)
- Bug 1151993 - Apply shrink-wrapping to block frames that are orthogonal to their containing block. r=smontagu (9fdd76008)
- Bug 1156021 - Use containing block inline-size (as appropriate for writing mode) to compute text-indent when specified as percentage. r=dbaron (c7fcb4193)
- Bug 1152941 - Always use unconstrained block-size when reflowing an orthogonal child block, to avoid incomplete reflow across orthogonal boundary. r=dbaron (5f4748c5a)
- Bug 1163238 - Don't set available block-size to unconstrained for orthogonal-block reflow state until after InitConstraints etc. r=dholbert (07ca784bf)
- Bug 1155798: Drop end-of-line whitespace from C++ files in layout/tables. (whitespace-only, no review, DONTBUILD) (6ad9c50d8)
- Bug 1155880 part 1: Rename nsITableLayoutStrategy::ComputeColumnWidths and associated comments to use "ISize" instead of "Width". r=jfkthame (c3bec937b)
- Bug 1155880 part 2: Rename nsTableColFrame Get/Set/ResetFinalWidth methods to use ISize instead of Width. r=jfkthame (1d2bfd990)
- Bug 1155880 part 3: Rename nsTableFrame::GetColumnWidth to use "ISize" instead of "Width". r=jfkthame (8a0d7a3c8)
- Bug 1159101 part 1 - Alter dependencies among headers of table struct frames. r=roc (b943ee1c3)
- Bug 1159101 part 2 - Add GetTableFrame() for table inner frames. r=roc (6641affa7)
- Bug 1145036 part 1 - Rename mBorderSpacingX/Y to mBorderSpacingCol/Row. r=heycam (7e91504af)
- Bug 1145036 part 2 - Rename nsTableFrame::GetCellSpacingX/Y to GetCol/RowSpacing. r=roc (b439569de)
- Bug 1159101 part 3 - Replace most of nsTableFrame::GetTableFrame() usage with new GetTableFrame() methods. r=roc (4bdf27d00)
- Bug 1159990 - Add TableArea struct and replace nsIntRect with it for table damage area. r=roc (ebca44c12)
2020-12-21 13:33:23 +08:00

216 lines
5.6 KiB
XML

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window title="Mozilla Bug 478536"
width="600" height="600"
onload="onload();"
onunload="onunload();"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js" />
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js" />
<body xmlns="http://www.w3.org/1999/xhtml" id="body">
<style type="text/css">
#view {
overflow: auto;
width: 100px;
height: 100px;
border: 1px solid;
margin: 0;
}
</style>
<pre id="view" onscroll="onScrollView(event);">
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
</pre>
</body>
<script class="testbody" type="application/javascript">
<![CDATA[
function ok(aCondition, aMessage)
{
window.opener.wrappedJSObject.SimpleTest.ok(aCondition, aMessage);
}
function is(aLeft, aRight, aMessage)
{
window.opener.wrappedJSObject.SimpleTest.is(aLeft, aRight, aMessage);
}
function isnot(aLeft, aRight, aMessage)
{
window.opener.wrappedJSObject.SimpleTest.isnot(aLeft, aRight, aMessage);
}
var gBody = document.getElementById("body");
var gView = document.getElementById("view");
/**
* Description:
*
* First, lock the wheel scrolling target to "view" at first step.
* Next, scroll back to top most of the "view" at second step.
* Finally, scroll back again at third step. This fails to scroll the "view",
* then, |onMouseScrollFailed| event should be fired. And at that time, we
* can remove the "view". So, in post processing of the event firere, the
* "view" should not be referred.
*
* For suppressing random test failure, all tests will be retried if we handle
* unexpected timeout event.
*/
var gTests = [
{ scrollToForward: true, shouldScroll: true },
{ scrollToForward: false, shouldScroll: true },
{ scrollToForward: false, shouldScroll: false }
];
var gCurrentTestIndex = -1;
var gIgnoreScrollEvent = true;
var gPrefSvc = Components.classes["@mozilla.org/preferences-service;1"].
getService(Components.interfaces.nsIPrefBranch);
const kPrefSmoothScroll = "general.smoothScroll";
const kPrefNameTimeout = "mousewheel.transaction.timeout";
const kDefaultTimeout = gPrefSvc.getIntPref(kPrefNameTimeout);
gPrefSvc.setBoolPref(kPrefSmoothScroll, false);
var gTimeout = kDefaultTimeout;
gBody.addEventListener("MozMouseScrollFailed", onMouseScrollFailed, false);
gBody.addEventListener("MozMouseScrollTransactionTimeout",
onTransactionTimeout, false);
function setTimeoutPrefs(aTimeout)
{
gPrefSvc.setIntPref(kPrefNameTimeout, aTimeout);
gTimeout = aTimeout;
}
function resetTimeoutPrefs()
{
if (gTimeout == kDefaultTimeout)
return;
setTimeoutPrefs(kDefaultTimeout);
}
function growUpTimeoutPrefs()
{
if (gTimeout != kDefaultTimeout)
return;
setTimeoutPrefs(5000);
}
function onload()
{
disableNonTestMouseEvents(true);
setTimeout(runNextTest, 0);
}
function onunload()
{
resetTimeoutPrefs();
disableNonTestMouseEvents(false);
gPrefSvc.clearUserPref(kPrefSmoothScroll);
SpecialPowers.DOMWindowUtils.restoreNormalRefresh();
window.opener.wrappedJSObject.SimpleTest.finish();
}
function finish()
{
window.close();
}
// testing code
var gTimer;
function clearTimer()
{
clearTimeout(gTimer);
gTimer = 0;
}
function runNextTest()
{
clearTimer();
if (++gCurrentTestIndex >= gTests.length) {
ok(true, "didn't crash, succeeded");
finish();
return;
}
fireWheelScrollEvent(gTests[gCurrentTestIndex].scrollToForward);
}
var gRetryCount = 5;
function retryAllTests()
{
clearTimer();
if (--gRetryCount >= 0) {
gView.scrollTop = 0;
gView.scrollLeft = 0;
gCurrentTestIndex = -1;
growUpTimeoutPrefs();
ok(true, "WARNING: retry current test-list...");
gTimer = setTimeout(runNextTest, 0);
} else {
ok(false, "Failed by unexpected timeout");
finish();
}
}
function fireWheelScrollEvent(aForward)
{
gIgnoreScrollEvent = false;
var event = { deltaY: aForward ? 4.0 : -4.0,
deltaMode: WheelEvent.DOM_DELTA_LINE };
sendWheelAndPaint(gView, 5, 5, event, function() {
// No callback - we're just forcing the refresh driver to tick.
}, window);
}
function onScrollView(aEvent)
{
if (gIgnoreScrollEvent)
return;
gIgnoreScrollEvent = true;
clearTimer();
ok(gTests[gCurrentTestIndex].shouldScroll, "The view is scrolled");
gTimer = setTimeout(runNextTest, 0);
}
function onMouseScrollFailed(aEvent)
{
clearTimer();
gIgnoreScrollEvent = true;
ok(!gTests[gCurrentTestIndex].shouldScroll, "The view is not scrolled");
if (!gTests[gCurrentTestIndex].shouldScroll)
gBody.removeChild(gView);
runNextTest();
}
function onTransactionTimeout(aEvent)
{
if (!gTimer)
return;
gIgnoreScrollEvent = true;
retryAllTests();
}
]]>
</script>
</window>