diff --git a/browser/base/content/test/plugins/browser_globalplugin_crashinfobar.js b/browser/base/content/test/plugins/browser_globalplugin_crashinfobar.js index 49e11cd86cdc..10c90d69c38f 100644 --- a/browser/base/content/test/plugins/browser_globalplugin_crashinfobar.js +++ b/browser/base/content/test/plugins/browser_globalplugin_crashinfobar.js @@ -2,61 +2,39 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -let gTestBrowser = null; +/** + * Test that plugin crash submissions still work properly after + * click-to-play activation. + */ +add_task(function*() { + yield BrowserTestUtils.withNewTab({ + gBrowser, + url: "about:blank", + }, function* (browser) { + yield ContentTask.spawn(browser, null, function* () { + const GMP_CRASH_EVENT = { + pluginName: "GlobalTestPlugin", + pluginDumpID: "1234", + browserDumpID: "5678", + submittedCrashReport: false, + bubbles: true, + cancelable: true, + gmpPlugin: true, + }; -let crashedEventProperties = { - pluginName: "GlobalTestPlugin", - pluginDumpID: "1234", - browserDumpID: "5678", - submittedCrashReport: false, - bubbles: true, - cancelable: true -} + let crashEvent = new content.PluginCrashedEvent("PluginCrashed", + GMP_CRASH_EVENT); + content.dispatchEvent(crashEvent); + }); -// Test that plugin crash submissions still work properly after -// click-to-play activation. + let notification = yield waitForNotificationBar("plugin-crashed", browser); -function test() { - waitForExplicitFinish(); - let tab = gBrowser.loadOneTab("about:blank", { inBackground: false }); - gTestBrowser = gBrowser.getBrowserForTab(tab); - gTestBrowser.addEventListener("PluginCrashed", onCrash, false); - gTestBrowser.addEventListener("load", onPageLoad, true); - - registerCleanupFunction(function cleanUp() { - gTestBrowser.removeEventListener("PluginCrashed", onCrash, false); - gTestBrowser.removeEventListener("load", onPageLoad, true); - gBrowser.removeTab(tab); - }); -} - -function onPageLoad() { - executeSoon(generateCrashEvent); -} - -function generateCrashEvent() { - let window = gTestBrowser.contentWindow; - let crashedEvent = new window.PluginCrashedEvent("PluginCrashed", crashedEventProperties); - - window.dispatchEvent(crashedEvent); -} - - -function onCrash(event) { - let target = event.target; - is (target, gTestBrowser.contentWindow, "Event target is the window."); - - for (let [name, val] of Iterator(crashedEventProperties)) { - let propVal = event[name]; - - is (propVal, val, "Correct property: " + name + "."); - } - - waitForNotificationBar("plugin-crashed", gTestBrowser, (notification) => { - let notificationBox = gBrowser.getNotificationBox(gTestBrowser); + let notificationBox = gBrowser.getNotificationBox(browser); ok(notification, "Infobar was shown."); - is(notification.priority, notificationBox.PRIORITY_WARNING_MEDIUM, "Correct priority."); - is(notification.getAttribute("label"), "The GlobalTestPlugin plugin has crashed.", "Correct message."); - finish(); + is(notification.priority, notificationBox.PRIORITY_WARNING_MEDIUM, + "Correct priority."); + is(notification.getAttribute("label"), + "The GlobalTestPlugin plugin has crashed.", + "Correct message."); }); -} +});