Bug 1741716 - Change the preset to Firefox when profiler popup is activated through web channel r=julienw

Differential Revision: https://phabricator.services.mozilla.com/D131436
This commit is contained in:
Nazım Can Altınova 2021-11-19 13:49:35 +00:00
Родитель d4f3d0994e
Коммит fea7d30107
3 изменённых файлов: 61 добавлений и 0 удалений

Просмотреть файл

@ -666,6 +666,13 @@ async function getResponseForMessage(request, browser) {
// Ensure the widget is enabled.
Services.prefs.setBoolPref(POPUP_FEATURE_FLAG_PREF, true);
// Force the preset to be "firefox-platform" if we enable the menu button
// via web channel. If user goes through profiler.firefox.com to enable
// it, it means that either user is a platform developer or filing a bug
// report for performance engineers to look at.
const supportedFeatures = Services.profiler.GetFeatures();
changePreset("aboutprofiling", "firefox-platform", supportedFeatures);
// Enable the profiler menu button.
const { ProfilerMenuButton } = lazy.ProfilerMenuButton();
ProfilerMenuButton.addToNavbar(ownerDocument);

Просмотреть файл

@ -31,6 +31,8 @@ https_first_disabled = true
[browser_devtools-record-discard.js]
[browser_webchannel-enable-menu-button.js]
https_first_disabled = true
[browser_webchannel-enable-menu-button-preset.js]
https_first_disabled = true
[browser_popup-profiler-states.js]
https_first_disabled = true
[browser_popup-record-capture.js]

Просмотреть файл

@ -0,0 +1,52 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* 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/. */
"use strict";
add_task(async function test() {
info(
"Test the WebChannel mechanism that it changes the preset to firefox-platform"
);
await makeSureProfilerPopupIsDisabled();
const supportedFeatures = Services.profiler.GetFeatures();
// This test assumes that the Web Developer preset is set by default, which is
// not the case on Nightly and custom builds.
BackgroundJSM.changePreset(
"aboutprofiling",
"web-developer",
supportedFeatures
);
await withAboutProfiling(async document => {
const webdevPreset = document.querySelector("input[value=web-developer]");
const firefoxPreset = await document.querySelector(
"input[value=firefox-platform]"
);
// Check the presets now to make sure web-developer is selected right now.
ok(webdevPreset.checked, "By default the Web Developer preset is checked.");
ok(
!firefoxPreset.checked,
"By default the Firefox Platform preset is not checked."
);
// Enable the profiler menu button with web channel.
await withWebChannelTestDocument(async browser => {
await waitForTabTitle("WebChannel Page Ready");
await waitForProfilerMenuButton();
ok(true, "The profiler menu button was enabled by the WebChannel.");
});
// firefox-platform preset should be selected now.
ok(
!webdevPreset.checked,
"Web Developer preset should not be checked anymore."
);
ok(
firefoxPreset.checked,
"Firefox Platform preset should now be checked after enabling the popup with web channel."
);
});
});