diff options
Diffstat (limited to 'browser/components/reportbrokensite/test/browser/send_more_info.js')
-rw-r--r-- | browser/components/reportbrokensite/test/browser/send_more_info.js | 52 |
1 files changed, 45 insertions, 7 deletions
diff --git a/browser/components/reportbrokensite/test/browser/send_more_info.js b/browser/components/reportbrokensite/test/browser/send_more_info.js index 6803403f63..83b6b00405 100644 --- a/browser/components/reportbrokensite/test/browser/send_more_info.js +++ b/browser/components/reportbrokensite/test/browser/send_more_info.js @@ -79,6 +79,7 @@ async function reformatExpectedWebCompatInfo(tab, overrides) { additionalData: { applicationName, blockList, + buildId: snapshot.application.buildID, devicePixelRatio: parseInt(devicePixelRatio), finalUserAgent: useragentString, fissionEnabled, @@ -97,10 +98,6 @@ async function reformatExpectedWebCompatInfo(tab, overrides) { }, hasTouchScreen, monitors(actual) { - // We don't care about monitor data on Android right now. - if (AppConstants.platform === "android") { - return actual == undefined; - } return areObjectsEqual(actual, gfxInfo.getMonitors()); }, }, @@ -109,16 +106,18 @@ async function reformatExpectedWebCompatInfo(tab, overrides) { hasTrackingContentBlocked, isPB: isPrivateBrowsing, languages, + locales: snapshot.intl.localeService.available, + memoryMB: browserInfo.system.memory, osArchitecture, osName, osVersion, prefs: finalPrefs, - updateChannel, - userAgent: defaultUseragentString, version, }, blockList, + channel: updateChannel, consoleLog, + defaultUserAgent: defaultUseragentString, frameworks, hasTouchScreen, "gfx.webrender.software": prefs.softwareWebrender, @@ -134,6 +133,19 @@ async function reformatExpectedWebCompatInfo(tab, overrides) { utm_source: "desktop-reporter", }; + const { gfxData } = reformatted.details.additionalData; + for (const optional of [ + "direct2DEnabled", + "directWriteEnabled", + "directWriteVersion", + "clearTypeParameters", + "targetFrameRate", + ]) { + if (optional in snapshot.graphics) { + gfxData[optional] = snapshot.graphics[optional]; + } + } + // We only care about this pref on Linux right now on webcompat.com. if (AppConstants.platform != "linux") { delete finalPrefs["layers.acceleration.force-enabled"]; @@ -206,7 +218,33 @@ async function testSendMoreInfo(tab, menu, expectedOverrides = {}) { expected.url = url; expected.description = description; - ok(areObjectsEqual(message, expected), "ping matches expectations"); + // sanity checks + const { details } = message; + const { additionalData } = details; + ok(message.url?.length, "Got a URL"); + ok(["basic", "strict"].includes(details.blockList), "Got a blockList"); + ok(additionalData.applicationName?.length, "Got an app name"); + ok(additionalData.osArchitecture?.length, "Got an OS arch"); + ok(additionalData.osName?.length, "Got an OS name"); + ok(additionalData.osVersion?.length, "Got an OS version"); + ok(additionalData.version?.length, "Got an app version"); + ok(details.channel?.length, "Got an app channel"); + ok(details.defaultUserAgent?.length, "Got a default UA string"); + ok(additionalData.finalUserAgent?.length, "Got a final UA string"); + + // If we're sending any tab-specific data (which includes console logs), + // check that there is also a valid screenshot. + if ("consoleLog" in details) { + const isScreenshotValid = await new Promise(done => { + var image = new Image(); + image.onload = () => done(image.width > 0); + image.onerror = () => done(false); + image.src = receivedData.screenshot; + }); + ok(isScreenshotValid, "Got a valid screenshot"); + } + + ok(areObjectsEqual(message, expected), "sent info matches expectations"); // re-opening the panel, the url and description should be reset rbs = await menu.openReportBrokenSite(); |