Bug 1422985. Send JSON encoded preferences via the details param. r=gijs
MozReview-Commit-ID: J2GGaehiYlH
--- a/browser/extensions/webcompat-reporter/content/WebCompatReporter.jsm
+++ b/browser/extensions/webcompat-reporter/content/WebCompatReporter.jsm
@@ -4,26 +4,28 @@
this.EXPORTED_SYMBOLS = ["WebCompatReporter"];
let { classes: Cc, interfaces: Ci, utils: Cu } = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-const PREF_STYLO_ENABLED = "layout.css.servo.enabled";
-
XPCOMUtils.defineLazyModuleGetter(this, "PageActions",
"resource:///modules/PageActions.jsm");
XPCOMUtils.defineLazyGetter(this, "wcStrings", function() {
return Services.strings.createBundle(
"chrome://webcompat-reporter/locale/webcompat.properties");
});
+// Gather values for prefs we want to appear in reports.
+let prefs = {};
+XPCOMUtils.defineLazyPreferenceGetter(prefs, "layout.css.servo.enabled", "layout.css.servo.enabled", false);
+
let WebCompatReporter = {
get endpoint() {
return Services.urlFormatter.formatURLPref(
"extensions.webcompat-reporter.newIssueEndpoint");
},
init() {
PageActions.addAction(new PageActions.Action({
@@ -74,24 +76,24 @@ let WebCompatReporter = {
// so it can show a preview to the user and include it in FormData
// Note: openWebCompatTab arguments are passed in as an array because they
// are the result of a promise resolution.
openWebCompatTab([gBrowser, tabData]) {
const SCREENSHOT_MESSAGE = "WebCompat:SendScreenshot";
const FRAMESCRIPT = "chrome://webcompat-reporter/content/wc-frame.js";
let win = Services.wm.getMostRecentWindow("navigator:browser");
const WEBCOMPAT_ORIGIN = new win.URL(WebCompatReporter.endpoint).origin;
- let styloEnabled = Services.prefs.getBoolPref(PREF_STYLO_ENABLED, false);
let params = new URLSearchParams();
params.append("url", `${tabData.url}`);
params.append("src", "desktop-reporter");
- if (styloEnabled) {
- params.append("details", "layout.css.servo.enabled: true");
- params.append("label", "type-stylo");
+ params.append("details", JSON.stringify(prefs));
+
+ if (prefs["layout.css.servo.enabled"]) {
+ params.append("label", "type-stylo");
}
let tab = gBrowser.loadOneTab(
`${WebCompatReporter.endpoint}?${params}`,
{inBackground: false, triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});
// If we successfully got a screenshot blob, add a listener to know when
// the new tab is loaded before sending it over.