fune/dom/plugins/test/mochitest/browser_bug1196539.js
Bogdan Tara 56346a0425 Backed out 19 changesets (bug 1675349) for lint failures on browser_ext_browsingData_pluginData and test_archive CLOSED TREE
Backed out changeset 244e0f2b410c (bug 1675349)
Backed out changeset ba5724069dd4 (bug 1675349)
Backed out changeset 37fca259c7e9 (bug 1675349)
Backed out changeset f2b16caca1fc (bug 1675349)
Backed out changeset 28835d4935be (bug 1675349)
Backed out changeset eb913f58953a (bug 1675349)
Backed out changeset 19e3cb80f469 (bug 1675349)
Backed out changeset d9723f3a3a7e (bug 1675349)
Backed out changeset c888dfcdf70e (bug 1675349)
Backed out changeset 48f153341af6 (bug 1675349)
Backed out changeset 7fc67a9b2932 (bug 1675349)
Backed out changeset 1cee4d97f801 (bug 1675349)
Backed out changeset 59a0cb79c7c1 (bug 1675349)
Backed out changeset 43d349fa37b1 (bug 1675349)
Backed out changeset c84bfb6eae59 (bug 1675349)
Backed out changeset 38e9af69ae57 (bug 1675349)
Backed out changeset 3255c1ab3059 (bug 1675349)
Backed out changeset 2f3eaf9c342c (bug 1675349)
Backed out changeset 769e5c0db4c2 (bug 1675349)
2020-11-18 06:06:36 +02:00

167 lines
4.6 KiB
JavaScript

var gTestRoot = getRootDirectory(gTestPath).replace(
"chrome://mochitests/content/",
"http://127.0.0.1:8888/"
);
function checkPaintCount(aCount) {
ok(
aCount != 0,
"paint count can't be greater than zero, count was " + aCount
);
ok(
aCount < kMaxPaints,
"paint count should be within limits, count was " + aCount
);
}
// maximum number of paints we allow before failing. The test plugin doesn't
// animate so this should really be just 1, but operating systems can
// occasionally fire a few of these so we give these tests a fudge factor.
// A bad regression would either be 0, or 100+.
const kMaxPaints = 10;
add_task(async function() {
let result, tabSwitchedPromise;
// We want to make sure that we will paint in cases where we need to. The
// tab layer cache just gets in the way of measuring that.
await SpecialPowers.pushPrefEnv({
set: [["browser.tabs.remote.tabCacheSize", 0]],
});
setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
let pluginTab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
gTestRoot + "plugin_test.html"
);
let homeTab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"about:home"
);
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return !!plugin;
}
);
is(result, true, "plugin is loaded");
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return !XPCNativeWrapper.unwrap(plugin).nativeWidgetIsVisible();
}
);
is(result, true, "plugin is hidden");
// reset plugin paint count
await SpecialPowers.spawn(pluginTab.linkedBrowser, [], async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
XPCNativeWrapper.unwrap(plugin).resetPaintCount();
});
// select plugin tab
tabSwitchedPromise = waitTabSwitched();
gBrowser.selectedTab = pluginTab;
await tabSwitchedPromise;
// wait a bit for spurious paints
await waitForMs(100);
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return XPCNativeWrapper.unwrap(plugin).nativeWidgetIsVisible();
}
);
is(result, true, "plugin is visible");
// check for good paint count
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return XPCNativeWrapper.unwrap(plugin).getPaintCount();
}
);
checkPaintCount(result);
// select home tab
tabSwitchedPromise = waitTabSwitched();
gBrowser.selectedTab = homeTab;
await tabSwitchedPromise;
// reset paint count
await SpecialPowers.spawn(pluginTab.linkedBrowser, [], async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
XPCNativeWrapper.unwrap(plugin).resetPaintCount();
});
// wait a bit for spurious paints
await waitForMs(100);
// check for no paint count
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return XPCNativeWrapper.unwrap(plugin).getPaintCount();
}
);
is(result, 0, "no paints, this is correct.");
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return !XPCNativeWrapper.unwrap(plugin).nativeWidgetIsVisible();
}
);
is(result, true, "plugin is hidden");
// reset paint count
await SpecialPowers.spawn(pluginTab.linkedBrowser, [], async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
XPCNativeWrapper.unwrap(plugin).resetPaintCount();
});
// select plugin tab
tabSwitchedPromise = waitTabSwitched();
gBrowser.selectedTab = pluginTab;
await tabSwitchedPromise;
// check paint count
result = await SpecialPowers.spawn(
pluginTab.linkedBrowser,
[],
async function() {
let doc = content.document;
let plugin = doc.getElementById("testplugin");
return XPCNativeWrapper.unwrap(plugin).getPaintCount();
}
);
checkPaintCount(result);
gBrowser.removeTab(homeTab);
gBrowser.removeTab(pluginTab);
});