Closed Bug 2009017 Opened 3 months ago Closed 2 months ago

Add a capability that lets us set different defaults for top sites and top stories during the first 48 hours of the default profile's lifetime

Categories

(Firefox :: New Tab Page, task)

task

Tracking

()

VERIFIED FIXED
149 Branch
Tracking Status
firefox147 + verified
firefox148 + verified
firefox149 + verified

People

(Reporter: mconley, Assigned: mconley)

References

(Blocks 2 open bugs, )

Details

(Whiteboard: [hnt])

Attachments

(9 files, 2 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

During the first 48 hours of the default profile lifetime (so this shouldn't impact new selectable profiles), we want to be able to experiment with setting the default pref values for top sites and top stories enablement to false. Users should still be able to pref those on during that 48 hour period.

After the 48 hour period, we should change the defaults back (but ensure that if the user had expressed a preference to enable OR disable those sections during the 48 hour period, that we respect that).

The transition after 48 hours should not wait until the next restart - we should be checking every time the user opens a new tab if they were previously in the 48 hour window to see if we should transition out of that state.

This experimental capability will default to using 48 hours as our threshold, but we want to be able to adjust that if need be via Nimbus.

We also need the ability to show a message to users after having transitioned out of that state - for example "hey, we turned these things on now that you've had a chance to get used to the browser. Here's how you can control them".

Assignee: nobody → mconley
Attachment #9538197 - Attachment description: WIP: Bug 2009017 - Part 1: Block initializing ActivityStream on the newtabTrainhop Nimbus feature being ready. r?nbarret! → Bug 2009017 - Part 1: Block initializing ActivityStream on the newtabTrainhop Nimbus feature being ready. r?nbarrett!
Status: NEW → ASSIGNED
Attachment #9538198 - Attachment description: WIP: Bug 2009017 - Part 2: Compute instant of profile creation and have ActivityStream cache it. r?#home-newtab-reviewers! → Bug 2009017 - Part 2: Compute instant of profile creation and have ActivityStream cache it. r?#home-newtab-reviewers!

This is so that if there are any other feeds that want to emit actions on initialization
that the StartupCacheInit feed should hear about, it will be initialized and be able
to hear about them.

This is needed for the PrefsFeed activation window check, which might emit actions on
initialization that a cached page should hear about.

Attachment #9538199 - Attachment description: WIP: Bug 2009017 - Part 3: Add support for newtab activation window experiments → Bug 2009017 - Part 4: Add support for newtab activation window experiments. r?#home-newtab-reviewers!
Attachment #9538200 - Attachment description: WIP: Bug 2009017 - Part 4: Add support for showing high-priority newtab messages on activation window enter and exit. → Bug 2009017 - Part 5: Add prefs for showing high-priority newtab messages on activation window enter and exit. r?#home-newtab-reviewers!
Blocks: 2011293
No longer blocks: 2011293
Depends on: 2011293
Blocks: 2011449
No longer depends on: 2011293
Attachment #9538200 - Attachment is obsolete: true
Keywords: leave-open
Pushed by mconley@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/b9992564382d https://hg.mozilla.org/integration/autoland/rev/ded14db4160f Part 1: Block initializing ActivityStream on the newtabTrainhop Nimbus feature being ready. r=nbarrett,home-newtab-reviewers https://github.com/mozilla-firefox/firefox/commit/23c94dce1dbb https://hg.mozilla.org/integration/autoland/rev/7937837e71af Part 2: Compute instant of profile creation and have ActivityStream cache it. r=home-newtab-reviewers,nbarrett https://github.com/mozilla-firefox/firefox/commit/cdc9349c281d https://hg.mozilla.org/integration/autoland/rev/cf37297e8104 Part 3: Make StartupCacheInit feed start first amongst feeds. r=thecount,home-newtab-reviewers,nbarrett
Pushed by agoloman@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/3542fdd33761 https://hg.mozilla.org/integration/autoland/rev/949b8ea1daae Revert "Bug 2009017 - Part 3: Make StartupCacheInit feed start first amongst feeds. r=thecount,home-newtab-reviewers,nbarrett" for causing bcv failures.

Backed out for causing bcv failures.

Flags: needinfo?(mconley)
Pushed by mconley@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/93f37c668398 https://hg.mozilla.org/integration/autoland/rev/31e29444a62c Part 1: Block initializing ActivityStream on the newtabTrainhop Nimbus feature being ready. r=nbarrett,home-newtab-reviewers https://github.com/mozilla-firefox/firefox/commit/b739c8749170 https://hg.mozilla.org/integration/autoland/rev/bf903602e91e Part 2: Compute instant of profile creation and have ActivityStream cache it. r=home-newtab-reviewers,nbarrett,perftest-reviewers,kshampur https://github.com/mozilla-firefox/firefox/commit/bf311162df37 https://hg.mozilla.org/integration/autoland/rev/f4fa14d52777 Part 3: Make StartupCacheInit feed start first amongst feeds. r=thecount,home-newtab-reviewers,nbarrett
Pushed by abutkovits@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/26ebbdcfb933 https://hg.mozilla.org/integration/autoland/rev/d5945bcd5811 Revert "Bug 2009017 - Part 3: Make StartupCacheInit feed start first amongst feeds. r=thecount,home-newtab-reviewers,nbarrett" for causing Talos failures.
Pushed by mconley@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/5edf6de1d9bd https://hg.mozilla.org/integration/autoland/rev/dca5cc891ee4 Part 1: Block initializing ActivityStream on the newtabTrainhop Nimbus feature being ready. r=nbarrett,home-newtab-reviewers https://github.com/mozilla-firefox/firefox/commit/c6c2729d07d3 https://hg.mozilla.org/integration/autoland/rev/8367a0687d59 Part 2: Compute instant of profile creation and have ActivityStream cache it. r=home-newtab-reviewers,nbarrett,perftest-reviewers,kshampur https://github.com/mozilla-firefox/firefox/commit/5791aaacec84 https://hg.mozilla.org/integration/autoland/rev/d5e09e55847e Part 3: Make StartupCacheInit feed start first amongst feeds. r=thecount,home-newtab-reviewers,nbarrett
Attachment #9540641 - Flags: approval-mozilla-beta?
Attachment #9540642 - Flags: approval-mozilla-beta?

This is so that if there are any other feeds that want to emit actions on initialization
that the StartupCacheInit feed should hear about, it will be initialized and be able
to hear about them.

This is needed for the PrefsFeed activation window check, which might emit actions on
initialization that a cached page should hear about.

Original Revision: https://phabricator.services.mozilla.com/D279362

Attachment #9540643 - Flags: approval-mozilla-beta?

firefox-beta Uplift Approval Request

  • User impact if declined: None, but the growth team will be unable to do experiments related to the newtab 48 hour activation window on the release channel unless this foundational code lands.
  • Code covered by automated testing: yes
  • Fix verified in Nightly: no
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: This has been on Nightly for a few days now, and is mostly just plumbing the creation date of the profile down into the newtab code, so it's fairly well understood.
  • String changes made/needed: None.
  • Is Android affected?: no
Depends on: 1949513
Flags: needinfo?(mconley)

:mconley, could part 4 be tracked under a different bug?
I'll take part 1 - 3 for beta, but it's harder to track uplifts when a patch lands later under the same bug.

Flags: needinfo?(mconley)
Attachment #9540643 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9540642 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9540641 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Blocks: 2013372
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Keywords: leave-open
Resolution: --- → FIXED
Target Milestone: --- → 149 Branch

Having the 4th part kinda dangling out here is making things hard to track for RelMan, so I'm going to close this one out and do part 4 in a separate bug.

Blocks: 2013416

Comment on attachment 9538199 [details]
Bug 2009017 - Part 4: Add support for newtab activation window experiments. r?#home-newtab-reviewers!

Revision D279337 was moved to bug 2013416. Setting attachment 9538199 [details] to obsolete.

Attachment #9538199 - Attachment is obsolete: true
Attachment #9541272 - Flags: approval-mozilla-release?
Attachment #9541273 - Flags: approval-mozilla-release?

firefox-release Uplift Approval Request

  • User impact if declined: None, but the growth team will be unable to do experiments related to the newtab 48 hour activation window on the release channel unless this foundational code lands.
  • Code covered by automated testing: yes
  • Fix verified in Nightly: no
  • Needs manual QE test: yes
  • Steps to reproduce for manual QE testing: See https://gist.github.com/mikeconley/653f52f653a686c9bd8b9c83af8ec64d
  • Risk associated with taking this patch: low
  • Explanation of risk level: This has been on Nightly for a few days now, and is mostly just plumbing the creation date of the profile down into the newtab code, so it's fairly well understood.
  • String changes made/needed: None.
  • Is Android affected?: no
Attachment #9541274 - Flags: approval-mozilla-release?
Flags: qe-verify+

This is so that if there are any other feeds that want to emit actions on initialization
that the StartupCacheInit feed should hear about, it will be initialized and be able
to hear about them.

This is needed for the PrefsFeed activation window check, which might emit actions on
initialization that a cached page should hear about.

Original Revision: https://phabricator.services.mozilla.com/D279362

Flags: in-testsuite+
Attachment #9541272 - Flags: approval-mozilla-release? → approval-mozilla-release+
Attachment #9541273 - Flags: approval-mozilla-release? → approval-mozilla-release+
Attachment #9541274 - Flags: approval-mozilla-release? → approval-mozilla-release+
QA Whiteboard: [qa-triage-done-c149/b148]

(In reply to Pulsebot from comment #12)

Pushed by mconley@mozilla.com:
https://github.com/mozilla-firefox/firefox/commit/5edf6de1d9bd
https://hg.mozilla.org/integration/autoland/rev/dca5cc891ee4
Part 1: Block initializing ActivityStream on the newtabTrainhop Nimbus
feature being ready. r=nbarrett,home-newtab-reviewers
https://github.com/mozilla-firefox/firefox/commit/c6c2729d07d3
https://hg.mozilla.org/integration/autoland/rev/8367a0687d59
Part 2: Compute instant of profile creation and have ActivityStream cache
it. r=home-newtab-reviewers,nbarrett,perftest-reviewers,kshampur
https://github.com/mozilla-firefox/firefox/commit/5791aaacec84
https://hg.mozilla.org/integration/autoland/rev/d5e09e55847e
Part 3: Make StartupCacheInit feed start first amongst feeds.
r=thecount,home-newtab-reviewers,nbarrett

Perfherder has detected a talos performance change from push d5e09e55847ecc8323f0918c6f2500149f785078.

No action is required from the author; this comment is provided for informational purposes only.

Improvement Test Platform Options Absolute values [old vs new]
2% startup_about_home_paint_cached (doc) linux1804-64-shippable-qr e10s fission stylo webrender-sw 1,032.71 -> 1,009.50

Need Help or Information?

If you have any questions, please reach out to afinder@mozilla.com. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.

Blocks: 2015561
Flags: needinfo?(mconley)

I can confirm that the Topsites and Story cards behaviour (including prefs values) matches the one described here (Steps 16-26).

  • Tested versions:
    • Firefox Release 147.0.3 (Build ID: 20260203002554)
      • Used the builds and steps provided here
    • Firefox Devedition 148.0b15 (Build ID: 20260213095341)
      • Followed the steps provided here, using this addon
    • Firefox Nightly 149.0a1 (BuildID: 20260220092058)
  • Tested platforms:
    • Windows 10 x64
    • Windows 11
    • macOS 15.6.1
    • Linux Mint 22.2

Based on this, I am marking this issue as Verified - Fixed.

Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: