gecko-dev/toolkit
Dave Townsend 5537b5c159 Bug 1237820: Track whether a user has been offered a sideloaded add-on or not. r=rhelmer
Previously we just checked every newly sideloaded add-on to decide whether to
offer it to the user for opt-in. This adds a new "seen" property (naming could
be better if you have other suggestions) which tracks whether we've ever shown
the opt-in UI for the add-on. It defaults to true for all add-ons and is only
set to false for sideloaded add-ons that default to being disabled on install.
The seen flag can be set to true through the API but cannot be reset to false
as that would allow add-ons to forcibly re-present themselves to the user when
disabled.

The opt-in UI sets the seen flag to true only when it has focus which fixes a
long-standing bug where if you accept the first add-on you see and restart the
other tabs might not show up.

The one slight downside of this approach is that it now requires loading the
full add-ons database on every startup in order to check the seen flag for all
installed add-ons. There are hacky ways we might get around this but they all
involve overloading prefs with even more object data. The good thing is that
we do the load and check asynchronously after most of startup is complete and
the UI is fully loaded so there shouldn't be any percieved impact to startup
time. I've run multiple talos runs to verify that none of the numbers appear to
regress.

--HG--
extra : commitid : AG6pELCYJDa
extra : rebase_source : b824c1626d0c5a77416fa4349ed3dd4d0e96418b
2016-01-26 14:31:33 -08:00
..
components Bug 1233497 - Fix infrastructure for disallowing unsafe CPOWs in browser code. r=mrbkap 2016-01-05 19:28:27 -05:00
content Bug 1233497 - Disable tests that use fillInPageTooltip for e10s. r=Enn 2016-01-05 13:52:38 -05:00
crashreporter Bug 1218816 - Remove useless semicolons. Found by coccinelle. r=Ehsan 2016-01-22 16:58:49 +01:00
forgetaboutsite Bug 1189998, Part 2 - Migrate Push service callers. r=mt 2015-12-08 15:41:48 -05:00
identity Backed out 5161ded671e0 for causing Mulet failures 2015-12-03 20:01:43 -08:00
library Bug 1234092: P1. Remove GStreamer support. r=kentuckyfriedtakahe 2015-12-23 01:14:22 +11:00
locales Merge m-c to m-i 2016-01-23 18:18:48 -08:00
modules Bug 1233497 - Temporarily allow unsafe CPOWs in Promise-backend.js and Task.jsm. r=billm 2016-01-18 12:44:37 -05:00
mozapps Bug 1237820: Track whether a user has been offered a sideloaded add-on or not. r=rhelmer 2016-01-26 14:31:33 -08:00
obsolete Bug 1240660 - Remove "+" prefixes in jar manifests. r=gps 2016-01-20 07:24:40 +09:00
pluginproblem Bug 1195162 - Move mozapps/plugins into pluginproblem (r=sicking,bsmedberg) 2015-09-14 19:08:06 -07:00
profile Bug 1239848 - Revert ProfileManager changes until a better UX/UI is ready, r=ehsan 2016-01-20 09:16:49 +00:00
system Backed out 2 changesets (bug 1224374) for Windows bustage. r=bustage on a CLOSED TREE 2016-01-19 21:30:41 +01:00
themes Merge f-t to m-c, a=merge 2016-01-23 18:11:37 -08:00
webapps Bug 1220564 - Update chrome code uses of genexprs and legacy comprehensions. (r=billm) 2016-01-06 16:02:16 -08:00
xre Merge m-i to m-c, a=merge 2016-01-23 17:42:50 -08:00
.eslintrc Bug 1235023 - Relax no-multi-spaces Eslint rule with ObjectExpression. r=Gijs 2015-12-30 16:12:17 +01:00
moz.build Bug 912121 - Adjust build configs and test manifests. r=glandium 2015-09-17 14:35:36 -05:00
toolkit.mozbuild Bug 1239866 - Remove signaling standalone tests. r=bwc 2016-01-15 12:18:39 -08:00