Closed Bug 1876173 Opened 10 months ago Closed 8 months ago

Add the ability to disable split Spotlight RDM

Categories

(Firefox :: Messaging System, task, P1)

task
Points:
2

Tracking

()

VERIFIED FIXED
126 Branch
Iteration:
125.2 - Mar 4 - Mar 15
Tracking Status
firefox125 + verified
firefox126 --- verified
firefox127 --- verified

People

(Reporter: aminomancer, Assigned: jprickett)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

For the "Import- Embedded Modal - all users" experiment, we're using illustrations that take up the entire space of the illustration area. But when the window is too small to accommodate the full split Spotlight card, it shrinks to a half-width card, where the secondary section is displayed above the main section, as a tiny banner. The illustration is rendered in this banner area using a "fill" tiling approach rather than a "fit" approach, so most of these giant illustrations will be cut off, making them useless.

In the future, we may add the ability to provide 2 different illustrations: one for normal mode, and one for RDM. But right now, doubling the number of illustrations needed for this experiment is too much. So instead we will be okay with simply disabling RDM for these messages. So that means adding a property that will translate to an HTMl attribute that can be referenced in the RDM styles.

Investigate what happens when RDM is disabled. Does that change the window's minimum width? What if you set a min-width rule on the outer container of the .spotlightBox (i.e. the container of the browser the document is rendered in, styled in browser.css)? Otherwise, do scrollbars appear? This is really an open-ended assignment, since we don't have any preconceptions about how this should be handled. Try to produce the best result for cases where the window is sized really small, but don't sweat it too much, as there is no optimal solution — that's what RDM is ultimately for. In this case, we're making an informed tradeoff on the basis that most users' windows will be much bigger than this.

Note: we also considered adding a targeting attribute for "current window size." The problem is that window size can be changed after the message shows, so it doesn't really solve our problem — we'd still have to disable RDM for these messages. And if we're disabling RDM and it's still possible for the spotlight to render in too small a window, then it seems superfluous to exclude users with already-tiny windows.

Iteration: --- → 124.1 - Jan 22 - Feb 2
Priority: -- → P1
Points: --- → 2
Iteration: 124.1 - Jan 22 - Feb 2 → 124.2 - Feb 4 - Feb 16
Assignee: nobody → jprickett

There is a static width set on the content section of the split layout, and the image section is naturally responsive and will shrink to allow the entire container to fit the width of the screen if it is smaller than the current breakpoint at which it typically switches to RDM (800px).

The two most straightforward options are either to allow the split layout to remain at it's static width (800px) allowing overflow to scroll, or to let the container shrink to fit the screen, while allowing the image section to also shrink. The first option makes a bit more sense to me in this context considering the original concern was cutting off the image.

Yeah it seems quite difficult to dynamically shrink the entire container. That would require JS and it's probably not worth the effort, since this is really just a workaround anyway.

Iteration: 124.2 - Feb 4 - Feb 16 → 125.1 - Feb 19 - Mar 1
Iteration: 125.1 - Feb 19 - Mar 1 → 125.2 - Mar 4 - Mar 15
Pushed by jprickett@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d488b0a57d95 Add attribute to allow RDM to be disabled for aboutwelcome spotlight r=omc-reviewers,aminomancer

Backed out for causing fxms failures

[task 2024-03-13T19:09:39.861Z]     "MultiMessage": {
[task 2024-03-13T19:09:39.861Z]       "description": "An object containing an array of messages.",
[task 2024-03-13T19:09:39.861Z]       "type": "object",
[task 2024-03-13T19:09:39.861Z]       "properties": {
[task 2024-03-13T19:09:39.861Z]         "template": {
[task 2024-03-13T19:09:39.861Z]           "type": "string",
[task 2024-03-13T19:09:39.861Z]           "const": "multi"
[task 2024-03-13T19:09:39.861Z]         },
[task 2024-03-13T19:09:39.861Z]         "messages": {
[task 2024-03-13T19:09:39.861Z]           "type": "array",
[task 2024-03-13T19:09:39.861Z]           "description": "An array of messages.",
[task 2024-03-13T19:09:39.861Z]           "items": {
[task 2024-03-13T19:09:39.861Z]             "$ref": "chrome://browser/content/asrouter/schemas/MessagingExperiment.schema.json#/$defs/TemplatedMessage"
[task 2024-03-13T19:09:39.861Z]           }
[task 2024-03-13T19:09:39.861Z]         }
[task 2024-03-13T19:09:39.861Z]       },
[task 2024-03-13T19:09:39.861Z]       "required": [
[task 2024-03-13T19:09:39.861Z]         "template",
[task 2024-03-13T19:09:39.861Z]         "messages"
[task 2024-03-13T19:09:39.861Z]       ]
[task 2024-03-13T19:09:39.861Z]     }
[task 2024-03-13T19:09:39.861Z]   }
[task 2024-03-13T19:09:39.862Z] }
[task 2024-03-13T19:09:39.862Z] 
[task 2024-03-13T19:09:39.862Z] 
[task 2024-03-13T19:09:39.862Z] Traceback (most recent call last):
[task 2024-03-13T19:09:39.862Z]   File "make-schemas.py", line 472, in <module>
[task 2024-03-13T19:09:39.862Z]     main(args.check)
[task 2024-03-13T19:09:39.862Z]   File "make-schemas.py", line 453, in main
[task 2024-03-13T19:09:39.862Z]     check_diff(schema_def, schema)
[task 2024-03-13T19:09:39.862Z]   File "make-schemas.py", line 405, in check_diff
[task 2024-03-13T19:09:39.862Z]     raise ValueError("Schemas do not match!")
[task 2024-03-13T19:09:39.862Z] ValueError: Schemas do not match!
[task 2024-03-13T19:09:39.862Z] Creating default state directory: /builds/worker/.mozbuild
[task 2024-03-13T19:09:39.862Z] Creating local state directory: /builds/worker/.mozbuild/srcdirs/gecko-8a5b87fe5d69
[taskcluster 2024-03-13 19:09:40.212Z] === Task Finished ===
[taskcluster 2024-03-13 19:09:40.212Z] Unsuccessful task run with exit code: 1 completed in 32.055 seconds

Flags: needinfo?(jprickett)

The error was due to an improper schema change and update. Fixed and re-landing.

Flags: needinfo?(jprickett)
Pushed by jprickett@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4707e617d389 Add attribute to allow RDM to be disabled for aboutwelcome spotlight r=omc-reviewers,aminomancer

Backed out for causing newtab failures on aboutwelcome

[task 2024-03-13T22:20:25.354Z] TEST-START | karma /builds/worker/checkouts/gecko/browser/components/aboutwelcome
[task 2024-03-13T22:20:25.354Z] TEST-UNEXPECTED-FAIL | karma /builds/worker/checkouts/gecko/browser/components/aboutwelcome | Coverage for branches (78.74%) in file /builds/worker/checkouts/gecko/browser/components/aboutwelcome/content-src/components/MultiStageProtonScreen.jsx does not meet per file threshold (79.07%)
[task 2024-03-13T22:20:25.354Z] -----karma stdout below this line---
[task 2024-03-13T22:20:25.354Z] 
[task 2024-03-13T22:20:25.354Z] > about-welcome@1.0.0 testmc:unit
[task 2024-03-13T22:20:25.354Z] > karma start karma.mc.config.js
[task 2024-03-13T22:20:25.354Z] 
[task 2024-03-13T22:20:25.354Z] 

Also Test-Verify failures: TEST-UNEXPECTED-FAIL | browser/components/aboutwelcome/tests/browser/browser_aboutwelcome_configurable_ui.js | Uncaught exception in test bound test_aboutwelcome_logo_selection - undefined - timed out after 50 tries.

Flags: needinfo?(jprickett)

[Tracking Requested - why for this release]: This is necessary for embedded migration wizard spotlight experiment

Flags: needinfo?(jprickett)
Pushed by jprickett@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/def04dad368f Add attribute to allow RDM to be disabled for aboutwelcome spotlight r=omc-reviewers,aminomancer
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → 126 Branch
Attachment #9393400 - Flags: approval-mozilla-beta?

Uplift Approval Request

  • Is Android affected?: no
  • Needs manual QE test: yes
  • User impact if declined: None. Embedded migration wizard experiment will not run in 125.
  • Risk associated with taking this patch: Low.
  • Fix verified in Nightly: no
  • String changes made/needed: none
  • Explanation of risk level: No logic changes. Just the addition of an option attribute that is targeting via CSS.
  • Steps to reproduce for manual QE testing: Test steps available in original phab patch D201902
  • Code covered by automated testing: yes
Flags: qe-verify+

Uplift Approval Request

  • Risk associated with taking this patch: Low.
  • Fix verified in Nightly: no
  • User impact if declined: None. Embedded migration wizard experiment will not run in 125.
  • Steps to reproduce for manual QE testing: Test steps available in original phab patch D201902
  • Code covered by automated testing: yes
  • Explanation of risk level: No logic changes. Just the addition of an option attribute that is targeting via CSS.
  • String changes made/needed: none
  • Is Android affected?: no
  • Needs manual QE test: yes
QA Whiteboard: [qa-triaged]
Attachment #9393400 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Regressions: 1889885

I have verified this task using the steps from here and I can confirm the following:

  • The spotlight does not change in size if the browser is horizontally resized under 800px.
  • A horizontal scrollbar is displayed.

Verified using the latest Firefox Release 125.0.1 (Build ID: 20240416043247), latest Firefox Beta 126.0b3 (Build ID: 20240419092609), and the latest Firefox Nightly 127.0a1 (Build ID: 20240421091131) installed on Windows 10 x64, macOS 14.1.1, and Ubuntu 22.04 x64.

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

Attachment

General

Creator:
Created:
Updated:
Size: