var gTestRoot = getRootDirectory(gTestPath).replace("chrome://mochitests/content/", "http://127.0.0.1:8888/"); var gTestBrowser = null; var gNumPluginBindingsAttached = 0; function pluginBindingAttached() { gNumPluginBindingsAttached++; if (gNumPluginBindingsAttached != 1) { ok(false, "if we've gotten here, something is quite wrong"); } } add_task(async function() { registerCleanupFunction(function() { gTestBrowser.removeEventListener("PluginBindingAttached", pluginBindingAttached, true, true); clearAllPluginPermissions(); Services.prefs.clearUserPref("plugins.click_to_play"); setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in"); setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Second Test Plug-in"); gBrowser.removeCurrentTab(); window.focus(); gTestBrowser = null; }); }); add_task(async function() { gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); gTestBrowser = gBrowser.selectedBrowser; Services.prefs.setBoolPref("plugins.click_to_play", true); setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in"); BrowserTestUtils.addContentEventListener(gTestBrowser, "PluginBindingAttached", pluginBindingAttached, true, null, true); let testRoot = getRootDirectory(gTestPath).replace("chrome://mochitests/content/", "http://127.0.0.1:8888/"); await promiseTabLoadEvent(gBrowser.selectedTab, testRoot + "plugin_bug744745.html"); await promiseForCondition(function() { return gNumPluginBindingsAttached == 1; }); await ContentTask.spawn(gTestBrowser, {}, async function() { let plugin = content.document.getElementById("test"); if (!plugin) { Assert.ok(false, "plugin element not available."); return; } // We can't use MochiKit's routine let style = content.getComputedStyle(plugin); Assert.ok(("opacity" in style) && style.opacity == 1, "plugin style properly configured."); }); });