diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 21:49:04 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 21:49:04 +0200 |
commit | 39dac57259cff8b61db0b22cb2ad0a8adb02692e (patch) | |
tree | 52a026cc8c22793eb17fd0f5e22adce1ae08a1dd /toolkit/components/perfmonitoring/tests/browser/browser_webpagePerformanceAlerts.js | |
parent | a1cce3b2b00bbd9f4983013ddd8934a7bccb9e99 (diff) | |
parent | c2d9ab62f3d097c9e0e00184cab1f546554f5eaa (diff) | |
download | UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar.gz UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar.lz UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar.xz UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.zip |
Merge branch 'redwood' into 28.9-platform
Diffstat (limited to 'toolkit/components/perfmonitoring/tests/browser/browser_webpagePerformanceAlerts.js')
-rw-r--r-- | toolkit/components/perfmonitoring/tests/browser/browser_webpagePerformanceAlerts.js | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/toolkit/components/perfmonitoring/tests/browser/browser_webpagePerformanceAlerts.js b/toolkit/components/perfmonitoring/tests/browser/browser_webpagePerformanceAlerts.js deleted file mode 100644 index eb908c8db..000000000 --- a/toolkit/components/perfmonitoring/tests/browser/browser_webpagePerformanceAlerts.js +++ /dev/null @@ -1,111 +0,0 @@ -"use strict"; - -/** - * Tests for PerformanceWatcher watching slow web pages. - */ - - /** - * Simulate a slow webpage. - */ -function WebpageBurner() { - CPUBurner.call(this, "http://example.com/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.html?test=" + Math.random(), 300000); -} -WebpageBurner.prototype = Object.create(CPUBurner.prototype); -WebpageBurner.prototype.promiseBurnContentCPU = function() { - return promiseContentResponse(this._browser, "test-performance-watcher:burn-content-cpu", {}); -}; - -function WebpageListener(windowId, accept) { - info(`Creating WebpageListener for ${windowId}`); - AlertListener.call(this, accept, { - register: () => PerformanceWatcher.addPerformanceListener({windowId}, this.listener), - unregister: () => PerformanceWatcher.removePerformanceListener({windowId}, this.listener) - }); -} -WebpageListener.prototype = Object.create(AlertListener.prototype); - -add_task(function* init() { - // Get rid of buffering. - let service = Cc["@mozilla.org/toolkit/performance-stats-service;1"].getService( - Ci.nsIPerformanceStatsService); - let oldDelay = service.jankAlertBufferingDelay; - - service.jankAlertBufferingDelay = 0 /* ms */; - registerCleanupFunction(() => { - info("Cleanup"); - service.jankAlertBufferingDelay = oldDelay; - }); -}); - -add_task(function* test_open_window_then_watch_it() { - let burner = new WebpageBurner(); - yield burner.promiseInitialized; - yield burner.promiseBurnContentCPU(); - - info(`Check that burning CPU triggers the real listener, but not the fake listener`); - let realListener = new WebpageListener(burner.windowId, (group, details) => { - info(`test: realListener for ${burner.tab.linkedBrowser.outerWindowID}: ${group}, ${details}\n`); - Assert.equal(group.windowId, burner.windowId, "We should not receive data meant for another group"); - return details; - }); // This listener should be triggered. - - info(`Creating fake burner`); - let otherTab = gBrowser.addTab(); - yield BrowserTestUtils.browserLoaded(otherTab.linkedBrowser); - info(`Check that burning CPU triggers the real listener, but not the fake listener`); - let fakeListener = new WebpageListener(otherTab.linkedBrowser.outerWindowID, group => group.windowId == burner.windowId); // This listener should never be triggered. - let universalListener = new WebpageListener(0, alerts => - alerts.find(alert => alert.source.windowId == burner.windowId) - ); - - // Waiting a little – listeners are buffered. - yield new Promise(resolve => setTimeout(resolve, 100)); - - yield burner.run("promiseBurnContentCPU", 20, realListener); - Assert.ok(realListener.triggered, `1. The real listener was triggered`); - Assert.ok(universalListener.triggered, `1. The universal listener was triggered`); - Assert.ok(!fakeListener.triggered, `1. The fake listener was not triggered`); - - if (realListener.result) { - Assert.ok(realListener.result.highestJank >= 300, `1. jank is at least 300ms (${realListener.result.highestJank}ms)`); - } - - info(`Attempting to remove a performance listener incorrectly, check that this does not hurt our real listener`); - Assert.throws(() => PerformanceWatcher.removePerformanceListener({addonId: addon.addonId}, () => {})); - Assert.throws(() => PerformanceWatcher.removePerformanceListener({addonId: addon.addonId + "-unbound-id-" + Math.random()}, realListener.listener)); - - // Waiting a little – listeners are buffered. - yield new Promise(resolve => setTimeout(resolve, 100)); - yield burner.run("promiseBurnContentCPU", 20, realListener); - // Waiting a little – listeners are buffered. - yield new Promise(resolve => setTimeout(resolve, 100)); - - Assert.ok(realListener.triggered, `2. The real listener was triggered`); - Assert.ok(universalListener.triggered, `2. The universal listener was triggered`); - Assert.ok(!fakeListener.triggered, `2. The fake listener was not triggered`); - if (realListener.result) { - Assert.ok(realListener.result.highestJank >= 300, `2. jank is at least 300ms (${realListener.jank}ms)`); - } - - info(`Attempting to remove correctly, check if the listener is still triggered`); - // Waiting a little – listeners are buffered. - yield new Promise(resolve => setTimeout(resolve, 100)); - realListener.unregister(); - - // Waiting a little – listeners are buffered. - yield new Promise(resolve => setTimeout(resolve, 100)); - yield burner.run("promiseBurnContentCPU", 3, realListener); - Assert.ok(!realListener.triggered, `3. After being unregistered, the real listener was not triggered`); - Assert.ok(universalListener.triggered, `3. The universal listener is still triggered`); - - universalListener.unregister(); - - // Waiting a little – listeners are buffered. - yield new Promise(resolve => setTimeout(resolve, 100)); - yield burner.run("promiseBurnContentCPU", 3, realListener); - Assert.ok(!universalListener.triggered, `4. After being unregistered, the universal listener is not triggered`); - - fakeListener.unregister(); - burner.dispose(); - gBrowser.removeTab(otherTab); -}); |