Bug 1778754 - Send WDBA telemetry even when default browser or PDF telemetry fails. r=bytesized

Adds error enum and strings to WDBA telemetry.

Depends on D187069

Differential Revision: https://phabricator.services.mozilla.com/D185632
This commit is contained in:
Nicholas Rishel 2023-09-05 20:55:26 +00:00
parent e94f2cdeda
commit 43719bc4d5
3 changed files with 25 additions and 9 deletions

View File

@ -313,16 +313,21 @@ DefaultAgent::DoTask(const nsAString& aUniqueToken, const bool aForce) {
}
DefaultBrowserResult defaultBrowserResult = GetDefaultBrowserInfo();
if (defaultBrowserResult.isErr()) {
return NS_ERROR_FAILURE;
DefaultBrowserInfo browserInfo{};
if (defaultBrowserResult.isOk()) {
browserInfo = defaultBrowserResult.unwrap();
} else {
browserInfo.currentDefaultBrowser = Browser::Error;
browserInfo.previousDefaultBrowser = Browser::Error;
}
DefaultBrowserInfo browserInfo = defaultBrowserResult.unwrap();
DefaultPdfResult defaultPdfResult = GetDefaultPdfInfo();
if (defaultPdfResult.isErr()) {
return NS_ERROR_FAILURE;
DefaultPdfInfo pdfInfo{};
if (defaultPdfResult.isOk()) {
pdfInfo = defaultPdfResult.unwrap();
} else {
pdfInfo.currentDefaultPdf = "error";
}
DefaultPdfInfo pdfInfo = defaultPdfResult.unwrap();
NotificationActivities activitiesPerformed;
// We block while waiting for the notification which prevents STA thread

View File

@ -23,6 +23,7 @@ namespace mozilla::default_agent {
using BrowserResult = mozilla::WindowsErrorResult<Browser>;
constexpr std::pair<std::string_view, Browser> kStringBrowserMap[]{
{"error", Browser::Error},
{"", Browser::Unknown},
{"firefox", Browser::Firefox},
{"chrome", Browser::Chrome},
@ -115,6 +116,15 @@ static BrowserResult GetDefaultBrowser() {
{L"\u641c\u72d7\u9ad8\u901f\u6d4f\u89c8\u5668", Browser::Sogou},
};
// We should have one prefix for every browser we track, minus exceptions
// listed below.
// Error - not a real browser.
// Unknown - not a real browser.
// EdgeWithEdgeHTML - duplicate friendly name with EdgeWithBlink with special
// handling below.
static_assert(mozilla::ArrayLength(kFriendlyNamePrefixes) ==
kBrowserCount - 3);
for (const auto& [prefix, browser] : kFriendlyNamePrefixes) {
// Find matching Friendly Name prefix.
if (!wcsnicmp(friendlyName.data(), prefix.data(), prefix.length())) {

View File

@ -14,9 +14,10 @@
namespace mozilla::default_agent {
MOZ_DEFINE_ENUM_CLASS(Browser, (Unknown, Firefox, Chrome, EdgeWithEdgeHTML,
EdgeWithBlink, InternetExplorer, Opera, Brave,
Yandex, QQBrowser, _360Browser, Sogou));
MOZ_DEFINE_ENUM_CLASS(Browser,
(Error, Unknown, Firefox, Chrome, EdgeWithEdgeHTML,
EdgeWithBlink, InternetExplorer, Opera, Brave, Yandex,
QQBrowser, _360Browser, Sogou));
struct DefaultBrowserInfo {
Browser currentDefaultBrowser;