mozilla.com, mozilla.org, softvision.ro and softvision.com are test emails.
We had tests for those emails in several locations and more will add more.
Extraction from #6273
clearTimeout did not check whether `timeout` was defined
before trying to clear the timer and update the list of timers.
The fix is to check for a `timeout` reference in clearTimeout
before updating `this._timers`
fixes#6291
There were two problems, the first is that the assertion needed to be wrapped to ensure
failures were always surfaced. The second problem was TestHelpers.wrapAssertion would
call `done` twice if a test failed.
fixes#6290
* fix(authorization): Minor updates for /authorization endpoint (#6252) r=@vladikoff
The test to see whether /authorization correctly redirects the user
to /signup did not pass an email address and looked for the wrong
selector. The test was fixed by specifying an email address and
updating the selector.
Calling /authorization w/o an `action` query parameter should
default to send users to `/oauth` and allowing the content
server to decide the next step based on whether a user is signed in.
fixes#6250
* Release v1.113.2
If users are in the email-first flow via `action=email` instead
of being in the experiment and they refreshed on /signin or
/signup, the legacy /signin or /signup pages would be displayed.
In beforeRender, if `action=email`, redirect back to `/`
fixes#6243
`.links` uses flexbox to center elements by default, and a margin
to push right links to the far side of the content.
The focusrings are more consistent now, they always show.
Also removes the list item bullets on /confirm_reset_password
fxies #6204
* Remove the bottom-margin of the headings in settings-panels.
* Ensure the error message clears the heading floated content.
* Remove the padding on the error content, that's handled universally.
fixes#6206
Tooltips can be obscured by a phone's virtual keyboard.
To avoid hidden tooltips, show tooltips above the
input element on mobile phones.
The check for mobile is rudimentary, the screen
size is checked. If it's width or height is smaller
than the breakpoints used in the CSS, consider
the user on a mobile device.
fixes#6188
I only added this to the email-first flow because it was tricky
to get this to work for the legacy signin flow and I want to
get this merged before the train cut.
I'll open a follow-on PR to add this behavior to the legacy flow.
issue #6083fixes#6052fixes#6126
The button needed a width to fix the core problem.
While I was in there, I changed all 3 controls
to buttons to be more semantic, and added some mouse
states.
fixes#6166
This is a general update to more closely align
FxA's styles to the Photon styles specified
in https://app.zeplin.io/project/5ad79b0f8964ebca1c06cab8/dashboard
* Email opt-in text on email-first sign up page uses the same text as the legacy sign up page.
* Firefox logo is 56x56px on mobile
* Show the user's email address in bold and on its own line in the confirm page.
* Simplify the .graphic CSS, styling
* Headers follow Photon guidelines
* Spacing around bottom links follow Ryan Gaddis' guidelines
* Simplify tos-pp CSS, styling.
issue #6083
As a first step to GDPR compliance, this change improves the messaging
around account deletion so that the user knows to separately delete
their pocket/AMO/whatever account first.
https://github.com/mozilla/fxa-content-server/pull/6178
r=shane-tomlinson
The experiment has been marked `deprecated`. The experiment
grouping rule is left in tree for a train so that metrics
with the q3FormChanges experiment still pass. This handles
users that loaded FxA before the train was updated but
report metrics after the update.
fixes#5872
* fix(basket): Match the expected basket subscribe & lookup-user API
* POST to `/subscribe/`
* Set `content-type: application/x-www-form-urlencoded' header
* Send `X-Requested-With: XMLHttpRequest` header
* GET /lookup-user with a new query parameter, email
fixes#6076
For whatever reason, iOS will display the entire keyboard on an
`<input type="number" />` element. Adding `pattern="\d*"` fixes
the problem.
fixes#6132
This feature has not been used by Firefox release for quite
some time.
The query parameter value is still considered valid because
there are a few dozen people that go through the flow every
month, but the value is dropped on the ground.
fixes#6122
A node.js script can access an always up-to-date experiment list
using:
```js
const experimentNames = require('app/scripts/lib/experiment/grouping-rules').EXPERIMENT_NAMES;
```
Do do this, all grouping-rules modules needed to have their AMD
wrappers removed and instead use normal CommonJS syntax.
issue mozilla/fxa-amplitude-send#61
If a relier specified an email for the email-first flow, users
that clicked on "Mistyped email" saw no visible change in the
screen.
In reality, there was a subtle change, the user was redirected
to `/`, but the redirected back to `/signin` or `/signup`.
This happened because on the 2nd render, the index page saw
that the relier model contained an email address and redirected
back to where the user just was.
To get around this, before checking the email and redirecting,
clear the email from the relier model. The email is saved
into the formPrefill model and that will be used to
prefill the email when the user comes back.
A small change to the router was needed to. In the "email-first"
flow, ensure the user can go back.
fixes#6033
Previously, amplitude click events were being triggered from the
verification.success front-end events. As the name suggests, those
events don't occur until after verification has succeeded. This change
ensures they happen as early as possible after the user has clicked.
https://github.com/mozilla/fxa-content-server/pull/5880
r=vbudhram
Using `require('/i18n/clients.json');` works perfectly
in RequireJS because it makes a network request for the
resource, but not in Webpack where the bundler
attempts to read that file from disk.
Instead of leaning on RequireJS to fetch the resource
using an XHR request, use an XHR request directly.
Note: this only affects dev mode, translations
are still built into the final bundle in prod mode.
Noticed that on a low-resolution screen that these images were being scaled and were not pixel snapped (a + should render with no anti-aliasing on right angles). I hope this fixes it, give it a try before accepting please.
The min-height forced the iframe to be too large on the firstrun page
in the email-first flow. In chromeless, it doesn't really matter
how big the #main-content is, there's no shadow, etc, to display.
Remove the min-height: 300 declaration for chromeless
Webpack chockes on `define((require, exports, module) => {`.
Instead, it needs `define(function(require, exports, module) {`
Part of the drive to replace RequireJS with Webpack.
I forgot to add a `rolloutRate` to Luxembourg (LU) which meant
it was being shipped fully rolled out. This is an easy mistake
to make. Instead of setting the default rolloutRate to 1, this
PR changes that to be 0 to avoid this problem. If a country is
fully rolled out, it's rolloutRate must be set to 1.
fixes#5727
Monaco is not yet enabled, I have not found a phone
number that validates.
I was being too clever with the phone number validation and
was looking for mobile prefixes. At the same time, I had
the validation logic wrong. For many European countries
a trunk line prefix of `0` can be specified IFF the
country code prefix is not specified. For BE,
FR, and GB, I erroneously allowed the user to delete
the country code prefix, but did not force the trunk
prefix. This is fixed.
@philbooth also noticed that the unit tests for the module
were exploding as more countries are added. He suggested
that I convert the tests to be table driven, which condenses
the tests quite a bit.
issue #5573
The back-mixin erroneously passed the back button click event
as `nextViewData` when it invoked the `back` method.
The fix is to use a delegate method that invoked `back`
without the event.
fixes#5515
We know that SMS with signinCodes perform better than SMS w/o signinCodes.
Always use a signinCode if SMS is enabled.
The second half of the fix for #5685
issue #5685
In `_areSmsRequirementsMet`, `isInExperiment` was called
w/o a `country`. The experiment itself requires a country,
so it returned that the user was not a member of the experiment.
Because of this, all users were sent to /connect_another_device,
even if in a country where SMS is was supported.
This fixes that by *not* calling `isInExperiment` in
`_areSmsRequirementsMet` and instead depends on the
call to `getExperimentGroup` in
`navigateToConnectAnotherDeviceScreen` to determine whether
the user is in an experiment group. The user's country is
known at this point and the correct answer will be returned.
If the user is not a member of the experiment, log
it there instead of in `_areSmsRequirementsMet`
Note, there are no functional test updates for this. We
are in a bit of a pickle here because the user is not
enrolled in any experiments within the functional tests
unless the `forceExperiment` query parameter is specified.
fixes#5685
Spotted by @ryanfeeley, starting with train-97.
The problem is the submit handler of CWTS finishes by calling `onSubmitComplete` and
propagating that functions return value. `this.onSubmitComplete` is set in the SignupMixin.
`onSignUpSuccess` will delegate to the `afterSignUp` method in the broker, which returns a
`NavigateBehavior` to `/confirm`. A `NavigateBehavior` returns a promise which never resolves,
causing `working` to be logged.
`signup`, `choose_what_to_sync`, and `signup_permissions` should all have the same
increase in "working" errors.
fixes#5655
Restrict line height to 1.2 to account for emoji in device names.
Previously, the device information line height got out of alignment
with emoji in device names.
Closes#5516
Restrict line height to 1.2 to account for emoji in device names.
Previously, the device information line height got out of alignment
with emoji in device names.
Closes#5516
Simplify the SMS experiment logic by consolidating into a single
experiment, send-sms-install-link. send-sms-enabled-for-country
is removed.
This also consolidates logic to enable/roll out new countries. New
countries only need to be defined in `lib/country-telephone-info.js`.
If a country's entry contains `rolloutRate`, the experiment will
be rolled out at that rate. If a country is in the process of being
rolled out, it uses the `control` group so we can better compare
against CAD phase 1. Countries that are fully rolled out
use only `treatment` and `signinCodes`.
The plus side of this work is that the tests are far simpler
and a lot of code was able to be removed!
fixes#5611
The settings pane within Fx for iOS cannot open external links,
so users would be unable to manage their communication preferences.
Instead of showing a bad experience, disable the feature for
Fx for iOS until we have a better solution.
The `opt-in from settings after signin` is more or less
equivalent to `opt-in from settings after signup`. Only
one tests is needed.
Fixes#5465
We believe the editible email fields may be causing user dropoff.
The editible looking email fields are replaced with readonly
fields like /force_auth's.
fixes#5582
A combined effort of @vladikoff and @shane-tomlinson.
This removed the "disabled form state" from all
forms except /settings/display_name.
Things that are removed:
* Experiment code.
* Notifications to the firstrun iframe parent.
* Code that disables/enables forms in form.js.
A small mixin was created to allow individual
forms to re-add "disabled" state if needed.
`control` performs worse than either `treatment` or `sendSms`. We
are continuing with the experiment pushing all users through
`treatment` and `sendSms`. This should boost the # of users in
each of the remaining groups.
fixes#5561
The patch to let FxA transition after email-verification
from within about:accounts landed in Firefox 58, not 57.
This updates the check/tests to use 58 instead.
fixes#5556
Fx Desktop <= 58 takes control of about:accounts to redirect the user
to about:preferences#sync once it detects a user has verified their email.
We originally used this to reduce polling load on the server. Since
the browser was polling and would redirect once it detected the user
had verified their email, FxA did not poll. The problem is that
we added bounce detection, and we cannot detect bounces within
FxA w/o polling.
This change has FxA poll within about:accounts, but lets the browser
perform the screen transition once verification has been detected.
fixes#5566
If a user verifies at CWTS, no verification data has been
written to localStorage, nor has the browser been informed
of the user's intent to signup/in. When the verification page
is opened, it looks like no user is signed in, so the user
was being asked to sign in again.
This PR fixes the problem by writing the "SameBrowserVerificationInfo"
to localStorage when the user first views CWTS. When the user verifies,
we look for the SameBrowserVerificationInfo, if it's available and
the user has made it as far as CAD, we know the account has been verified
in the same browser and the user will be fully signed in momentarily.
fixes#5554