Closed Bug 943539 Opened 12 years ago Closed 12 years ago

Store region in a sensible way

Categories

(Marketplace Graveyard :: Consumer Pages, defect, P1)

Avenir
x86_64
Windows 7
defect

Tracking

(Not tracked)

VERIFIED FIXED
2013-12-10

People

(Reporter: basta, Assigned: basta)

References

Details

(Whiteboard: [qa+])

- Store region from SIM, region from geoip, and debug override region in their own settings. - mobilenetwork.js only touches its own region values and only uses GET.mcc and GET.mnc - Region is queried with a new method, placed somewhere in helpers or the user module or something. Since it's fireplace-only, we can monkeypatch the user module in marketplace.js. - Overridden region is considered any region setting made in the debug page. - The new region method uses the following data to decide on the user's current region: 1. Initial marketplace URL (?region=) 2. Overridden region (from debug page) 3. Region set via mcc/mnc (mobilenetwork.js) 4. Geoip (the last value received from geoip) 5. Worldwide (if we've never received a value from geoip) - Add a new control on the debug page to clear overridden region if set. - Add a section to the debug page to explain how region was decided - Add region decision information to the ashes logs - Add a section to ashes to display this data - Carrier is decided in the following way: 1. Initial URL: ?carrier= 2. MCC/MNC: SIM card or ?mcc=&mnc= 3. None This will fix all of our crazy region/carrier issues.
We also need to be careful about changing the `storage_version` because I don't want everyone's newsletter settings, etc. to get reset when we change it from '0' to '1'.
basta and I chatted. we agreed to remove the region prompt (when a region from the SIM changes) and the logic becomes as follows: if SIM use that region: save region_sim if no SIM use geoip's region: clear region_sim save region_geoip if no SIM and no geoip use worldwide region: clear region_sim if QA overrides the region: save region_override region = region_override or region_sim or region_geoip add these actions to debug page add console.log statements too
Blocks: 941666
There's a PR up now, but some food for thought: If we're at a point where we are willing to trust GeoIP, do we really want to send the most recent geoip value to the server? That'll mean we never fetch a new GeoIP value (the server always trusts what we send). I'll talk about this more tomorrow.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Basta: can you provide STR for QA?
Assignee: nobody → mattbasta
Target Milestone: --- → 2013-12-10
1. Add a SIM card and restart the phone 2. Your region should reflect the region of the SIM card 3. Remove the SIM card and restart your phone 4. Your region should be determined by GeoIP 1. Set your region via the override in the debug page 2. Add a SIM card for a different region than you selected and restart your phone 3. Your region should reflect the region you selected the override for 4. Go back to the debug page and remove the override (set to `---`) 5. Restart your phone 6. The region should match the region of the SIM card 1. Remove any SIM card or region overrides 2. Restart your phone. Your location should be set by GeoIP. 3. Turn off the phone 4. Fly to a different region 5. Restart your phone. Your location should be set by GeoIP to your new region. 1. Set a region override in the debug page in the desktop 2. In the address bar, add ?region=XYZ where `XYZ` is a different region. 3. Your region should reflect what is in the URL 4. Visit the Marketplace again without the region parameter in the URL 5. Your region should reflect the region override set in step #1
Whiteboard: [qa+]
Other than the third scenario, i tried the rest of them and they work. I filed https://bugzilla.mozilla.org/show_bug.cgi?id=948270
based on comment 7, moving this to verified
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.