Closed Bug 1152385 Opened 10 years ago Closed 9 years ago

Change sync entries points linking to about:accounts to link to about:preferences#sync

Categories

(Firefox :: Sync, enhancement, P1)

39 Branch
enhancement

Tracking

()

RESOLVED FIXED
Firefox 43
Iteration:
43.1 - Aug 24
Tracking Status
firefox43 --- fixed

People

(Reporter: rfeeley, Assigned: eoger)

References

Details

(Whiteboard: [fxsync])

Attachments

(1 file, 2 obsolete files)

With in-content preferences launching in release, and account:preferences#sync getting a small makeover, it makes sense that the sync experiences links to account:preferences#sync instead of about:accounts.

Let's discuss.
Depends on: 1146904
Ryan, can you upload your latest mocks to give a preview of what you are thinking?
Flags: needinfo?(rfeeley)
I don't this this bug has any bearing on what about:preferences#sync looks like, just that we change all pointers in the code to it from about:accounts.

Related, we are changing the styling of the page slightly though:
https://bugzilla.mozilla.org/show_bug.cgi?id=1149721
Flags: needinfo?(rfeeley)
Priority: -- → P1
Ryan, in content prefs are out. What pointers did you have in mind? There are lots of places that launch the login flow to Sync by opening about:accounts directly. Did you want them to visit the sync preferences pane instead?
Flags: needinfo?(rfeeley)
One point I identified in "Sign in to Sync" in the hamburger menu after you create an account and don't verify.
Yeah, the idea is that a restyled sync prefefences page (signed in or out) is a better starting point than about:accounts.

e.g. https://bug1149721.bmoattachments.org/attachment.cgi?id=8636338

Entry points include:

OS Menu Bar: Tools: Set Up Sync
Firefox Toolbar Menu:  Sign in to Sync
Marketing pages on the web

The restyled sync page is more inviting and helps the user understand where sync settings will live.
Flags: needinfo?(rfeeley)
I wrote the last comment in a rush. To clarify, if you sign up for sign and don't verify, and open the hamburger menu it says "Sign in to Sync". This is already not ideal because it should probably say something like "Verify your account". If you click on "Sign in to Sync", then it takes you to about:accounts, and it should probably take you to the Sync preferences page directly.
Ryan can you advise about my observation about the hamburger menu in my last comment around when you sign up and don't verify?
Flags: needinfo?(rfeeley)
Flags: firefox-backlog?
Flags: firefox-backlog? → firefox-backlog+
Summary: Change sync entries points linking to about:accounts to link to account:preferences#sync → Change sync entries points linking to about:accounts to link to about:preferences#sync
Attached patch bug-1152385.patch (obsolete) — Splinter Review
Mark, what do you think of this patch?
We lose the |entrypoint| metrics queryParam though: do we want to pass it to about:preferences#sync? (I think will look ugly, but we can).
Assignee: nobody → edouard.oger
Status: NEW → ASSIGNED
Attachment #8643276 - Flags: review?(markh)
Comment on attachment 8643276 [details] [diff] [review]
bug-1152385.patch

Review of attachment 8643276 [details] [diff] [review]:
-----------------------------------------------------------------

The changes look OK but the lack of metrics worries me - I'll needinfo Chris.

::: browser/base/content/browser-fxaccounts.js
@@ +431,5 @@
>        // than requesting migration start immediately.
>        this.openPreferences();
>        break;
>      default:
> +      this.openPreferences();

I think you will need to change the new browser_fxaccounts test (assuming that patch sticks :)
Attachment #8643276 - Flags: review?(markh) → feedback+
Chris, this patch would lose alot of metrics for how the user got to about:accounts (eg, via the UITour, or via the hamburger menu etc). I've forgotten who actually consumes that, but I think we should check how much of a problem that is and if we need to mitigate this some other way. Chris, do you know who that is, and if so, can you please needinfo them here?
Flags: needinfo?(ckarlof)
Yeah, we definitely want to keep that "entrypoint" information in the metrics. The FxA content server consumes this information and combines it with other metrics to help evaluate the effectiveness of different entrypoints.
Flags: needinfo?(ckarlof)
Iteration: --- → 43.1 - Aug 24
Flags: needinfo?(rfeeley)
Whiteboard: [fxsync]
> [11:54:11]  <rfeeley>	the build is great
> [11:54:16]  <rfeeley>	works as designed!

It was a build using patches from both bug 1189842 and bug 1152385.

What do we do about the metrics?
(In reply to Edouard Oger [:eoger] from comment #12)
> > [11:54:11]  <rfeeley>	the build is great
> > [11:54:16]  <rfeeley>	works as designed!
> 
> It was a build using patches from both bug 1189842 and bug 1152385.
> 
> What do we do about the metrics?

The best idea I have is to dispatch a custom event at the newly opened (or switched to) pref pane and store that in memory. What is likely to be tricky is that the prefs pane may not be loaded yet (and thus will not have the event listener yet) meaning a messy check of .readyState and an extra load listener or something.

Another option may be to change openPreferences() so the extraArgs param could have an onOpened or similar callback that is called with the browser element - this would be called in the observer notification for the "new tab" case, or immediately on the "existing tab" case.

Jaws: any thoughts here? The problem we are trying to solve is to pass some data to the "Sync" prefs pane whenever our Sync code calls openPreferences("paneSync"); - the data we want to pass is for metrics when the user clicks a button in Sync prefs to take then to about:accounts. We're happy to accept that this data may be stale or not exist in edge-cases (eg, after session restore)
Flags: needinfo?(jaws)
OS: Mac OS X → All
Depends on: 1196153
Blocks: 1182288
Jaws, any chance you can get to this soonish?
(In reply to Mark Hammond [:markh] from comment #13)
> Jaws: any thoughts here? The problem we are trying to solve is to pass some
> data to the "Sync" prefs pane whenever our Sync code calls
> openPreferences("paneSync"); - the data we want to pass is for metrics when
> the user clicks a button in Sync prefs to take then to about:accounts. We're
> happy to accept that this data may be stale or not exist in edge-cases (eg,
> after session restore)

Sorry for the slow response. We should just add the entrypoint to the URL like we were doing for about:accounts. I don't think it is particularly ugly and it matches the direction we are taking with in-content UI and being able to take advantage of how in-content/web-pages work better for things like this. The entrypoint query string will stick around when changing categories within the in-content preferences, but it will cause no harm.
Flags: needinfo?(jaws)
Attached patch bug-1152385.patch (obsolete) — Splinter Review
Thanks jaws!
Attachment #8643276 - Attachment is obsolete: true
Attachment #8651897 - Flags: review?(markh)
Comment on attachment 8651897 [details] [diff] [review]
bug-1152385.patch

Review of attachment 8651897 [details] [diff] [review]:
-----------------------------------------------------------------

> New Binary File: python/psutil/psutil/_psutil_osx.so
> New Binary File: python/psutil/psutil/_psutil_posix.so

I'm pretty sure you don't want them!

so r=me with those removed and the test changed to check the url.

::: browser/base/content/browser-syncui.js
@@ +300,5 @@
>        window.openDialog("chrome://browser/content/sync/addDevice.xul",
>                          "syncAddDevice", "centerscreen,chrome,resizable=no");
>    },
>  
> +  openPrefs: function SUI_openPrefs(entryPoint) {

kill the explicit function name here while we are at it.

::: browser/base/content/test/general/browser_fxaccounts.js
@@ +88,2 @@
>    panelUIStatus.click();
> +  yield promisePreferencesOpened;

I think we should check what the args are here - so the code sending that test:... message should include those url params and this code should check it. It's probably OK to just check the full URL (ie, no need to parse the query string)
Attachment #8651897 - Flags: review?(markh) → review+
(In reply to Mark Hammond [:markh] from comment #17)
> ::: browser/base/content/test/general/browser_fxaccounts.js
> @@ +88,2 @@
> >    panelUIStatus.click();
> > +  yield promisePreferencesOpened;
> 
> I think we should check what the args are here - so the code sending that
> test:... message should include those url params and this code should check
> it. It's probably OK to just check the full URL (ie, no need to parse the
> query string)

Actually, I don't think that comment makes sense, so ignore it.
Thanks Mark!
Attachment #8651897 - Attachment is obsolete: true
Attachment #8652123 - Flags: review-
Try is ok.
Keywords: checkin-needed
Comment on attachment 8652123 [details] [diff] [review]
bug-1152385.patch

Review of attachment 8652123 [details] [diff] [review]:
-----------------------------------------------------------------

Messed up the r+ carry on!
Attachment #8652123 - Flags: review- → review+
https://hg.mozilla.org/mozilla-central/rev/d9cef1841ccf
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 43
Depends on: 1228217
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: