I recently opened a firefox profile that I have not used in a number of weeks or months. I noticed a large amount of CPU being used by the parent process. It appears this was due to firefox accounts sync running. I definitely wanted to sync this profile, so running sync is a good thing. I do worry, though, that triggering a large sync right after re-opening an old profile could interfere with the user. In particular, this could be presenting a less than ideal user experience just as we have an opportunity to impress the user after a long periof of inactivity. Could we run accounts sync work from an idle dispatch? This would reduce the chance it will cause any latency for active user work.
Is the work sync does incremental? If not, idle dispatch might not help too much. Though, there tends to be often 50ms idle periods in parent process. If sync is incremental, then this would be a really good candidate for idle dispatch.
Considering sync takes on the order of minutes (sometimes > 5 minutes), I think it must be incremental.
I guess it depends on how you define "incremental", but I think what we really want is captured in the dev.platform thread "Avoiding jank in async functions and promises" (https://groups.google.com/forum/#!topic/mozilla.dev.platform/A6aRmSgExb0)
You need to log in before you can comment on or make changes to this bug.