From 91c6564f53690c932f9464680f4409f25683ca0e Mon Sep 17 00:00:00 2001
From: Barret Rennie <barret@brennie.ca>
Date: Tue, 30 Aug 2022 05:07:45 +0000
Subject: [PATCH] Bug 1787290 - Cache isDefaultBrowser in ASRouter targeting
 r=Mardak

Differential Revision: https://phabricator.services.mozilla.com/D155646
---
 browser/components/newtab/lib/ASRouterTargeting.jsm   | 11 +++++++----
 .../newtab/test/browser/browser_asrouter_targeting.js |  2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/browser/components/newtab/lib/ASRouterTargeting.jsm b/browser/components/newtab/lib/ASRouterTargeting.jsm
index 7e33aa58c3bc2..24e2a035fdae1 100644
--- a/browser/components/newtab/lib/ASRouterTargeting.jsm
+++ b/browser/components/newtab/lib/ASRouterTargeting.jsm
@@ -277,6 +277,12 @@ const QueryCache = {
       FRECENT_SITES_UPDATE_INTERVAL,
       ShellService
     ),
+    isDefaultBrowser: new CachedTargetingGetter(
+      "isDefaultBrowser",
+      null,
+      FRECENT_SITES_UPDATE_INTERVAL,
+      ShellService
+    ),
     currentThemes: new CachedTargetingGetter(
       "getAddonsByTypes",
       ["theme"],
@@ -506,10 +512,7 @@ const TargetingGetters = {
     });
   },
   get isDefaultBrowser() {
-    try {
-      return ShellService.isDefaultBrowser();
-    } catch (e) {}
-    return null;
+    return QueryCache.getters.isDefaultBrowser.get().catch(() => null);
   },
   get devToolsOpenedCount() {
     return lazy.devtoolsSelfXSSCount;
diff --git a/browser/components/newtab/test/browser/browser_asrouter_targeting.js b/browser/components/newtab/test/browser/browser_asrouter_targeting.js
index 53cff5e587924..918ae68c79f79 100644
--- a/browser/components/newtab/test/browser/browser_asrouter_targeting.js
+++ b/browser/components/newtab/test/browser/browser_asrouter_targeting.js
@@ -355,7 +355,7 @@ add_task(async function checksearchEngines() {
 
 add_task(async function checkisDefaultBrowser() {
   const expected = ShellService.isDefaultBrowser();
-  const result = ASRouterTargeting.Environment.isDefaultBrowser;
+  const result = await ASRouterTargeting.Environment.isDefaultBrowser;
   is(typeof result, "boolean", "isDefaultBrowser should be a boolean value");
   is(
     result,
-- 
GitLab