Closed Bug 863417 Opened 12 years ago Closed 12 years ago

need b2g pref to change default persona uri

Categories

(Firefox OS Graveyard :: Gaia, defect)

x86
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:tef+, firefox21 wontfix, firefox22 wontfix, firefox23 fixed, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 fixed)

RESOLVED FIXED
blocking-b2g tef+
Tracking Status
firefox21 --- wontfix
firefox22 --- wontfix
firefox23 --- fixed
b2g18 --- fixed
b2g18-v1.0.0 --- wontfix
b2g18-v1.0.1 --- fixed

People

(Reporter: edwong, Assigned: jedp)

References

Details

(Whiteboard: [qa+])

Attachments

(3 files, 4 obsolete files)

copied from: https://github.com/mozilla-b2g/gaia/issues/9254 Our goal is to test persona/browserid code on a b2g device as it moves to mainline browserid. To do this, we need a pref on a b2g device to use a specific browserid URL. steps: 1. on b2g device, attempt to use browserid / sign in using persona.org result: you can't it uses native.persona.org hard coded expected: i should be able to set a pref somehwhere to test this config.
I think we should make the persona urls preffable, so that we can push prefs for testing localhost, dev, staging, production, and whatever else.
Assignee: nobody → jparsons
(In reply to Jed Parsons [:jparsons] from comment #1) > I think we should make the persona urls preffable, so that we can push prefs > for testing localhost, dev, staging, production, and whatever else. Right. A simple pref modified by pushing custom prefs would work here.
Whiteboard: [qa+]
The attached patch will let you set toolkit.identity.uri to point to your persona service (e.g., http://127.0.0.1:10002 for local testing, or persona dev or stage, and, for now, https://login.native-persona.org for pre-merge integration testing). I've set the default uri to be https://login.persona.org, which will "just work" when the persona b2g code makes it to persona.org (May or June). In the interim weeks, users will have to set the pref to be "https://login.native-persona.org". I think this is reasonable, since we ultimately want the default to be persona.org, and we don't want to have to change this again. To set the pref, you would do this to your profile/user.js: pref("toolkit.identity.uri", "https://login.native-persona.org"); Ed, how does this sound? /cc :benadida
Flags: needinfo?(edwong)
Comment on attachment 743366 [details] [diff] [review] gecko part: a pref to set the persona uri Review of attachment 743366 [details] [diff] [review]: ----------------------------------------------------------------- Hi, Ben, This patch allows you to set the persona uri via a pref The purpose is to make it possible to test different persona deployments
Attachment #743366 - Flags: review?(benadida)
Attachment #743366 - Flags: review?(benadida) → review+
removed two unnecessary prefs from modules/libpref r=benadida
Attachment #743366 - Attachment is obsolete: true
r=benadida I revised the PR so that it's against gaia master (not v1-train), which is what leo uplift rules in https://wiki.mozilla.org/Release_Management/B2G_Landing ask for
Attachment #743368 - Attachment is obsolete: true
Spoke with jbonacci. Sounds like this approach will work for QA.
Flags: needinfo?(edwong)
Summary: need b2g pref to point to specific persona.org for testing → need b2g pref to change default persona uri
This patch will also improve performance for mobile users tremendously. If we do not merge it in, they will eventually be redirected from native-persona to persona.org, which will add at least 6 network requests.
Blocks: 827601
blocking-b2g: --- → tef?
(In reply to Jed Parsons [:jparsons] from comment #11) > This patch will also improve performance for mobile users tremendously. If > we do not merge it in, they will eventually be redirected from > native-persona to persona.org, which will add at least 6 network requests. This sounds like something that can resolved server-side to reduce the performance problems. In terms of blocking, I don't think this blocks. It's not a partner performance requirement. The original bug as cited as well is a benefit to QA testing, not an impact to users. We can track this though.
Ben's review is sufficient to land the gecko patch, but not the Gaia patch. You need a Gaia peer to give a r+ to land the gaia pieces. Removing checkin-needed since the review isn't sufficient to land.
Keywords: checkin-needed
(In reply to Jason Smith [:jsmith] from comment #13) > Ben's review is sufficient to land the gecko patch, but not the Gaia patch. > You need a Gaia peer to give a r+ to land the gaia pieces. > > Removing checkin-needed since the review isn't sufficient to land. Jason thank you for that catch.
Comment on attachment 743798 [details] gaia part: a pref to set the persona uri Thank you for looking, Fabrice!
Attachment #743798 - Flags: review?(fabrice)
Comment on attachment 743784 [details] [diff] [review] gecko part: a pref to set the persona uri Ben, can you take another look? I removed some needless cruft from the patch and forgot to ask for r again :(
Attachment #743784 - Flags: review?(benadida)
Comment on attachment 743784 [details] [diff] [review] gecko part: a pref to set the persona uri Review of attachment 743784 [details] [diff] [review]: ----------------------------------------------------------------- ::: b2g/components/SignInToWebsite.jsm @@ +93,5 @@ > +let kPersonaUri = "https://login.persona.org"; > +try { > + kPersonaUri = Cc["@mozilla.org/preferences-service;1"] > + .getService(Components.interfaces.nsIPrefService) > + .getCharPref("toolkit.identity.uri"); You should use Services.prefs.getCharPref(...)
Attachment #743798 - Flags: review?(fabrice) → review+
Use Services.prefs; lazy getter, less typing; one less import (Cc)
Attachment #743784 - Attachment is obsolete: true
Attachment #743784 - Flags: review?(benadida)
Attachment #744960 - Flags: review?(benadida)
(In reply to Fabrice Desré [:fabrice] from comment #17) > Comment on attachment 743784 [details] [diff] [review] > gecko part: a pref to set the persona uri > > Review of attachment 743784 [details] [diff] [review]: > ----------------------------------------------------------------- > > ::: b2g/components/SignInToWebsite.jsm > @@ +93,5 @@ > > +let kPersonaUri = "https://login.persona.org"; > > +try { > > + kPersonaUri = Cc["@mozilla.org/preferences-service;1"] > > + .getService(Components.interfaces.nsIPrefService) > > + .getCharPref("toolkit.identity.uri"); > > You should use Services.prefs.getCharPref(...) Thank you for pointing that out. This is much better, and takes half the lines out of the overall patch!
Attachment #744960 - Flags: review?(benadida) → review+
Based on comment 13, I don't think we should block on this
Whiteboard: [qa+] → [qa+] [tef-triage]
Having worked with Lloyd and Francois and Ben, we have decided that firefoxos.persona.org is a better default pref for the url.
Attachment #744960 - Attachment is obsolete: true
Attachment #745145 - Flags: review?(benadida)
Attachment #745145 - Flags: review?(benadida) → review+
(In reply to Daniel Coloma:dcoloma from comment #20) > Based on comment 13, I don't think we should block on this Hi, Daniel, Sorry about the mixup in the checkin protocol. My bad for not getting a gaia peer in there right away. So here's why we need this and why I think we should block on this: We need to retire the native-persona.org ephemeral instance and get phones hitting the real persona.org when they go to market. - If we simply turn native-persona into a proxy/redirect to persona.org: - Add 6+ network calls per transaction - that will undo months of speedup work - We would have to redeploy in localized regions - Way reduced reliability and visibility with ops - this was never a production deployment - If we don't add the pref: - we can't do proper testing of our deployment tiers - we can't accommodate the thousands of people who are about to get geeksphones - because they'll need to set the pref the other way! - the geeksphone launch ahead of the date we were given for launch is a big deal Adding the pref and the new default will ensure: - High availability - Proper speed on mobile - Better maintenance and testing for persona and marketplace going forward :benadida, :lloyd, please jump in if I missed anything or if you have additional concerns.
Keywords: checkin-needed
yeah - bottom line is firefoxos.persona.org is going to be at least triple DC redundant and where we want traffic from the next billion smartphone users. Further, we need a preference to toggle this url so that we can test identity changes and ensure there's no user impact. This 9 line patch let's us support the traffic that FirefoxOS will bring without needlessly redundant infrastructure, and lets us actually test changes before we ship then. I feel like the late merge is warranted given the minimal risk. This 9 line patch let's us support the traffic that FirefoxOS will bring without needlessly redundant infrastructure, and lets us actually test changes before we ship then.
Attachment #745145 - Flags: review+
(In reply to Jed Parsons [:jparsons] from comment #22) > (In reply to Daniel Coloma:dcoloma from comment #20) > > Based on comment 13, I don't think we should block on this > > Hi, Daniel, > > Sorry about the mixup in the checkin protocol. My bad for not getting a > gaia peer in there right away. > > So here's why we need this and why I think we should block on this: > > We need to retire the native-persona.org ephemeral instance and get phones > hitting the real persona.org when they go to market. > > - If we simply turn native-persona into a proxy/redirect to persona.org: > > - Add 6+ network calls per transaction > - that will undo months of speedup work That's a good idea, but not a partner performance requirement. > - We would have to redeploy in localized regions > - Way reduced reliability and visibility with ops > - this was never a production deployment There was a separate bug focusing on migrating to the main final persona server. Let's not convolute both concepts here. A decision was already made on that bug saying that we were not blocking on that because we could still function without it. Keep in mind there's risk to switching things around last minute, especially when it hasn't been tested effectively. > > - If we don't add the pref: > > - we can't do proper testing of our deployment tiers > - we can't accommodate the thousands of people who are about to get > geeksphones > - because they'll need to set the pref the other way! > - the geeksphone launch ahead of the date we were given for launch is a > big deal None of these arguments constitute blocking. Testing-based bugs we can take into 1.1 on an approval for uplift. The geeksphone argument has no relevance either. > > Adding the pref and the new default will ensure: > > - High availability > - Proper speed on mobile > - Better maintenance and testing for persona and marketplace going forward > > :benadida, :lloyd, please jump in if I missed anything or if you have > additional concerns. This is convoluting concepts of what actually blocks vs. not. High availability and proper speed on mobile can be resolved server side if need be. The testing piece is not necessary on a 1.01 branch at this time. I still disagree this is a blocker as a result.
I also think this should not block, but this bug is good candidate for approval-b2g18
(In reply to Jason Smith [:jsmith] from comment #24) > This is convoluting concepts of what actually blocks vs. not. High > availability and proper speed on mobile can be resolved server side if need > be. No, they cannot be resolved in the time we have without this change. I understand that the general approach here is to say no to all new requests, but this is not optional. This needs to land or we cannot guarantee uptime at phone launch.
You could land a patch that just switches to the new host in Gaia. That could be a blocker. But all the mechanism that makes it a pref from gecko, no. You'll get it in 1.1 if you ask for approval. And please stop saying that people "say no to all new requests", that's plain wrong.
(In reply to Fabrice Desré [:fabrice] from comment #27) > You could land a patch that just switches to the new host in Gaia. That > could be a blocker. But all the mechanism that makes it a pref from gecko, > no. You'll get it in 1.1 if you ask for approval. > > And please stop saying that people "say no to all new requests", that's > plain wrong. Correct. That's what bug 836928 was filed for originally. However - there was discussion on that bug that constituted saying this might not be a blocker, however. But let's take the discussion about over to that bug. As for this bug, this is still not a blocker.
See Also: → 868474
See Also: → 868467
:jsmith - I ask you to reconsider the decision on the pref. Bottom line: We screwed up and we need help. The full story: The way that Persona and marketplace are implemented on the phone, code is sent down from a server. For Persona, that code will be changing every 2 weeks. Every time we ship, we have a 2 week testing process where we will confirm on actual user devices that the new code won't break users ability to sign into websites or to buy applications at marketplace. So this code freeze for the device software doesn't freeze persona code. Without the ability to change a pref and vet changes, our QA team will need to create new builds every two weeks and reflash phones - this wastes time and is a real bug vector. This introduces real risk that can translate into user impact. So we have a choice here - We can accept nine lines of actual changes right now, and the risk that implies for the next week, OR we can incur equivalent risk every two weeks for the foreseeable future. Did we screw up? yes. Should we have thought this through sooner? yes. Is it better for Mozilla to block this pref change than to ship it? no. Please give this some thought - the team is willing to work the weekend to vet the pref change or hotfix if there's any stability introduced. We're willing to do whatever we have to to get it landed, because our QA team has said this is a requirement to ensure the ongoing stability of the authentication system on FirefoxOS.
ok.
blocking-b2g: tef? → tef+
Fair enough. I'll bend then so long as we're careful on this.
You guys rule. My cell is 720.209.2878, it's fully charged, and you can call me at any time if this decision causes us pain.
What Lloyd said. Except that my cell is 510 710.5539.
Whiteboard: [qa+] [tef-triage] → [qa+]
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Reopening to land gaia piece as well
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Whiteboard: [qa+] → [qa+][leave open]
(In reply to Jason Smith [:jsmith] from comment #38) > Reopening to land gaia piece as well Thanks, Jason. gaia part merged.
Okay. Now we can close.
Status: REOPENED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
Whiteboard: [qa+][leave open] → [qa+]
1. please put the gaia commit hash here 2. the gaia commit broke the linter, please fix it now or I'll backout today. thanks
(In reply to Julien Wajsberg [:julienw] from comment #41) > 1. please put the gaia commit hash here https://github.com/mozilla-b2g/gaia/commit/9dbb2d9ee919ea75d33be495ff710b7c3a3b24d9 > 2. the gaia commit broke the linter, please fix it now or I'll backout today. here's the fix: https://github.com/mozilla-b2g/gaia/pull/9592 Thanks, Julien.
Comment on attachment 746438 [details] gaia part 2: appease linter by fixing line too long r=me go for it :)
Attachment #746438 - Flags: review+
I squashed the commits for v1-train v1-train: 51798e3c610f57796cd73068bace8718d6f0d00c But this doesn't apply on v1.0.1 train. Can you please resolve the merge conflicts there? # both modified: apps/system/js/identity.js ++<<<<<<< HEAD +const kIdentityScreen = 'https://login.native-persona.org/sign_in#NATIVE'; +const kIdentityFrame = + 'https://login.native-persona.org/communication_iframe'; ++======= + const kIdentityScreen = '/sign_in#NATIVE'; + const kIdentityFrame = '/communication_iframe'; ++>>>>>>> 51798e3... Merge pull request #9490 from jedp/863417-prefs-for-persona-urls To get to this point, you could do: git checkout v1.0.1 git cherry-pick 51798e3c610f57796cd73068bace8718d6f0d00c <resolve conflict> git add apps/system/js/identity.js git commit
Flags: needinfo?(jhford) → needinfo?(jparsons)
John, thank you. Where do you want me to push the resolved merge?
Flags: needinfo?(jparsons) → needinfo?(jhford)
John, I opened a PR on v1.0.1 with merge resolved https://github.com/mozilla-b2g/gaia/pull/9625 The sha is: 9ee341a81e4c3c9020f5328b68467c318f44d4cd Is there anything more I should do? Thanks, j
v1.0.1: 90a731c
Flags: needinfo?(jhford)
Can you please provide more details to verify this fix - as Q Analysts can perform blackbox testing from the UI?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: