Bug 1603182: Add a test for target-switching of performance panel. r=julienw

Depends on D68537

Differential Revision: https://phabricator.services.mozilla.com/D69488

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Daisuke Akatsuka 2020-04-07 00:09:38 +00:00
parent deb44a7392
commit 818bca8761
3 changed files with 66 additions and 1 deletions

View File

@ -16,7 +16,7 @@ support-files =
[browser_aaa-run-first-leaktest.js]
[browser_perf-button-states.js]
[browser_perf-calltree-js-categories.js]
skip-if = (os == 'win' && os_version == '10.0' && bits == 64 && !asan) # Bug 1466377
skip-if = (os == 'win' && os_version == '10.0' && bits == 64 && !asan) # Bug 1466377
[browser_perf-calltree-js-columns.js]
[browser_perf-calltree-js-events.js]
[browser_perf-calltree-memory-columns.js]
@ -42,6 +42,7 @@ skip-if = (os == 'win' && os_version == '10.0' && bits == 64 && !asan) # Bug 146
[browser_perf-details-render-03-memory-calltree.js]
[browser_perf-details-render-04-memory-flamegraph.js]
[browser_perf-docload.js]
[browser_perf-fission-switch-target.js]
[browser_perf-highlighted.js]
[browser_perf-loading-01.js]
[browser_perf-loading-02.js]

View File

@ -0,0 +1,62 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Test behavior while target-switching.
*/
const {
MAIN_PROCESS_URL,
SIMPLE_URL: CONTENT_PROCESS_URL,
} = require("devtools/client/performance/test/helpers/urls");
const {
BrowserTestUtils,
} = require("resource://testing-common/BrowserTestUtils.jsm");
const {
addTab,
} = require("devtools/client/performance/test/helpers/tab-utils");
const {
initPerformanceInTab,
teardownToolboxAndRemoveTab,
} = require("devtools/client/performance/test/helpers/panel-utils");
const {
startRecording,
stopRecording,
} = require("devtools/client/performance/test/helpers/actions");
add_task(async function() {
await SpecialPowers.pushPrefEnv({
set: [["devtools.target-switching.enabled", true]],
});
info("Open a page running on content process");
const tab = await addTab({
url: CONTENT_PROCESS_URL,
win: window,
});
info("Open the performance panel");
const { panel } = await initPerformanceInTab({ tab });
const { PerformanceController, PerformanceView, EVENTS } = panel.panelWin;
info("Start recording");
await startRecording(panel);
await PerformanceView.once(EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED);
info("Navigate to a page running on main process");
await BrowserTestUtils.loadURI(tab.linkedBrowser, MAIN_PROCESS_URL);
await PerformanceView.once(EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED);
info("Return to a page running on content process again");
await BrowserTestUtils.loadURI(tab.linkedBrowser, CONTENT_PROCESS_URL);
await PerformanceView.once(EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED);
info("Stop recording");
await stopRecording(panel);
const recordings = PerformanceController.getRecordings();
is(recordings.length, 3, "Have a record for every target-switching");
await teardownToolboxAndRemoveTab(panel);
});

View File

@ -5,3 +5,5 @@
exports.EXAMPLE_URL =
"http://example.com/browser/devtools/client/performance/test";
exports.SIMPLE_URL = `${exports.EXAMPLE_URL}/doc_simple-test.html`;
// Used to test a page running on main process.
exports.MAIN_PROCESS_URL = "about:robots";