Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breach Alerts Feature #7136

Merged
merged 20 commits into from
Aug 17, 2020
Merged

Breach Alerts Feature #7136

merged 20 commits into from
Aug 17, 2020

Conversation

vphong
Copy link
Contributor

@vphong vphong commented Aug 14, 2020

Notifies the user if any of their saved logins have been involved in a breach according to Firefox Monitor. Related spikes: #6642 #6645

  • adds a red breach alert icon to affected logins.
  • on tapping an affected login, a detail view is shown explaining what a breach is and when it occurred, with links to Firefox Monitor's About page and a link to the affected website.
  • saves a local file of breaches and updates every 3 days if the Monitor data has been updated.
Preview -
Simulator Screen Shot - iPhone SE (2nd generation) - 2020-08-12 at 14 27 59 Simulator Screen Shot - iPhone SE (2nd generation) - 2020-08-12 at 14 24 39

vphong and others added 19 commits May 26, 2020 12:53
* master: (38 commits)
  Revert "Resolve two warnings that happen in debug or beta builds"
  Resolve two warnings that happen in debug or beta builds
  Fix #6692 - Moving most of the refactored leanplum A/B test changes from v26.0 to master (#6736)
  Fix #6802: onReady() not filling the Deferred in the error case (#6804)
  Fix searchbar hide issue (#6703)
  use new API UIGraphicsImageRenderer to replace UIGraphicsBeginImageContextWithOptions (#6805)
  bug 6795: rename whitelist to safelist in tests (#6803)
  [nobug, build] update Glean from 31.0.2 to 31.1.0 (#6784)
  Fix #6708 followup, missing display name for Beta builds (#6791)
  Fix #6796 - [XCUITests] TP tests failing after renaming an element ID (#6798)
  Updated lp event so it doesn't log settings data (#6799)
  [nobug, build] update glean output file name  (#6789)
  [nobug, build] update glean generated file path (#6787)
  Update README.md
  update xcode version 11.4 to 11.5
  Fix#6737 Incompatible Swift version - framework was built with 5.2.2 (#6738)
  Fix #6670: allow empty title for sendtab url (#6781)
  Fix #6590: pass deeplink _utm params to fxa webview (#6782)
  [nobug, cleanup] Rename blacklist to blocklist (#6783)
  Fix #6464: Search Options: Replace Yandex Market with Hotline for Ukrainian localization (#6681)
  ...
* Fix #6788: enable QR pairing for china edition (#6811)

* Fix #6723: telemetry lib out-of-space fatal exception (#6813)

Update the lib to v1.1.3 which has fix for this

* [nobug, build] remove duplicate carthage copy-frameworks objcexc. step (#6832)

* Bugzilla 1646756: close last priv tab clears the WKWebViewConfiguration (#6827)

* Bugzilla 1646756: close last priv tab clears the WKWebViewConfiguration

* use prefkey for blockpopups

* Try installing Carthage (#6836)

* Try installing Carthage

modify carthage_command file

add comment

* remove space

Co-authored-by: isabel rios <[email protected]>

* Update SnapshotHelper file (#6839)

Co-authored-by: isabel rios <[email protected]>

* Fix #4717 - Provide feedback when pinning a site (#6785)

* Fix #4717 - Provide feedback when pinning a site from inside the Library panel

Display toast notification on the Library panel
Display toast notification on the Bookmarks panel
Display toast notification on the Website tab

* Change to remove

Co-authored-by: Vlad Dramaretskyi <[email protected]>

* Fixed #6730: open apps preview should hide all screens in private browsing (#6757)

* Fixed #6730: open apps preview should hide all screens in private browsing

* #6730 changed color of backdropContainer and changed it edges to fill whole screen, added it TrayView as well

* Added new color #1D1133 for Ink90

* fixed the cut-off of copied link labels and the contrast of the color for light/dark mode

* bug fixes : widget constraints + color contrasts of labels in light/dark themes + added pdf button designs

* removed commented lines

* styling edits

* edit in constraint for widget button

* removed tab + edits to constraints for buttons

* fixed support for ios 112.4 colors

* removed extra tabs

* code styling

* edits to label color variables definetions

* code styling

* code styling

* code styling

* Push subscription expired handling (#6851)

* Use .afterFirstUnlock on all apnsToken instances

* Re-register push on subscriptionExpired

* Send dev in UA instead of 0.0.1 (#6849)

The durable sync servers 503 if major version == 0 to sidestep
a bug.

* Revert "Fix: #6764 #6763 #6766 #6765 String cutting off in widget after copying link and color contrast of the copied link label" (#6860)

* Revert "code styling"

This reverts commit b1af71b.

* Revert "code styling"

This reverts commit cd8a09b.

* Revert "code styling"

This reverts commit a552d58.

* Revert "edits to label color variables definetions"

This reverts commit 9c5da0a.

* Revert "code styling"

This reverts commit 911f098.

* Revert "removed extra tabs"

This reverts commit 9545675.

* Revert "fixed support for ios 112.4 colors"

This reverts commit 5dd6c0c.

* Revert "removed tab + edits to constraints for buttons"

This reverts commit 33f8d21.

* Revert "edit in constraint for widget button"

This reverts commit 48a429a.

* Revert "styling edits"

This reverts commit dd561ac.

* Revert "removed commented lines"

This reverts commit 4085267.

* Revert "bug fixes : widget constraints + color contrasts of labels in light/dark themes + added pdf button designs"

This reverts commit 981ead9.

* Revert "fixed the cut-off of copied link labels and the contrast of the color for light/dark mode"

This reverts commit 8ec8a75.

* Noorhashem/today widget fixes (#6861)

* fixed the cut-off of copied link labels and the contrast of the color for light/dark mode

* bug fixes : widget constraints + color contrasts of labels in light/dark themes + added pdf button designs

* removed commented lines

* styling edits

* edit in constraint for widget button

* removed tab + edits to constraints for buttons

* fixed support for ios 112.4 colors

* removed extra tabs

* code styling

* edits to label color variables definetions

* code styling

* code styling

* code styling

Co-authored-by: noorhashem <[email protected]>

* Fix #6862: UA test broken (#6863)

Co-authored-by: Garvan Keeley <[email protected]>
Co-authored-by: isabelrios <[email protected]>
Co-authored-by: isabel rios <[email protected]>
Co-authored-by: Daniela Arcese <[email protected]>
Co-authored-by: Vlad Dramaretskyi <[email protected]>
Co-authored-by: Haris Zaman <[email protected]>
Co-authored-by: noorhashem <[email protected]>
Co-authored-by: Edouard Oger <[email protected]>
* Refactor LoginListViewController to MVVM
* New PR made because previous changes were not merged correctly
* LoginsList test stubs

* fix test db deletion

* query test

* more view model tests

* test on properties set by setLogins

* open logins db

* LoginListSelectionHelper tests

* VM helper tests

* headers

* Delete LoginListDataSourceHelper.swift

* queue-ify loadLogins

* queue-ify tests

* computeSectionsFromLogin + revert queues

* remove tests requiring loadLogins to be called + cleanup

* review changes

* cleanup after renaming
…ached (#6992)

* basic BreachAlerts surfacing

* UI update for breaches

* record breach IndexPaths

* rewrite findUserBreaches

* findUserBreaches refinement

* reload table after breaches are loaded to update UI

* rework cell reload method

* review changes

* rudimentary asset display

* positioning using custom cell

* hide icon and show when needed

* refinement

* positioning, vector size, additional mock data

* cleanup

* bug cleanup/polish

* convert array to set for performance

* forEach reloadRows optimization

* margins + breach reload optimization

Co-authored-by: Garvan Keeley <[email protected]>
Co-authored-by: Nishant Bhasin <[email protected]>
* Update LoginListTableViewCell.swift and add custom stack views + containers
* stubbing

* stack views

* convert [BreachRecord] to set; basic view population

* formatting + string population

* UI polish

* commenting

* button implementation

* breach link malformation handling

* VoiceOver support

* more elegant url handling

* use delegate

* better delegation

* setup function for breach detail view

* re-add long login

* tests + comments + better accessibility support

* spacing + mock data redo
…Alerts (#7100)

* first pass

* etag & last accessed date integration

* test compatibility

* better completion handlingg

* cleanup

* review 1

* review 2

* Update BreachAlertsManager.swift

* formatting/test reformation

* fix logic errors

* Update BreachAlertsManager.swift

* fix logic

* remove mock data
@mozillamobilebot
Copy link

mozillamobilebot commented Aug 14, 2020

1 Warning
⚠️ NSLocalizedString should only be added to Strings.swift

SwiftLint found issues

Warnings

File Line Reason
AppSettingsOptions.swift 614 Force casts should be avoided. (force_cast)
AppSettingsOptions.swift 618 Force casts should be avoided. (force_cast)
AppSettingsOptions.swift 713 Force casts should be avoided. (force_cast)
AppSettingsOptions.swift 177 Setter value is not used. (unused_setter_value)
LoginListViewModel.swift 30 Prefer empty collection over optional collection. (discouraged_optional_collection)
LoginListViewModel.swift 101 Prefer empty collection over optional collection. (discouraged_optional_collection)

Sentry check list

  • I understand that only .fatal events will be reported on release

  • The message param contains a string that will not create multiple events

Generated by 🚫 Danger

@kaylagalway
Copy link
Contributor

This is a large PR, so just an FYI for those reviewing: this is to merge the breach alerts feature branch. All work in this branch was added through smaller previously reviewed and approved PRs :)

Copy link
Contributor

@kaylagalway kaylagalway left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So exciting! You did amazing work on this the last couple of months @vphong. Thanks for such high quality code and for the testing work you did as well. It will be a great addition to the code base :)

@@ -607,7 +607,7 @@ class VersionSetting: Setting {
}

override var title: NSAttributedString? {
return NSAttributedString(string: String(format: NSLocalizedString("Version %@ (%@)", comment: "Version number of Firefox shown in settings"), VersionSetting.appVersion, VersionSetting.appBuildNumber), attributes: [NSAttributedString.Key.foregroundColor: UIColor.theme.tableView.rowText])
return NSAttributedString(string: String(format: NSLocalizedString("Version %@ (%@)", comment: "Version number of Firefox shown in settings"), VersionSetting.appVersion, VersionSetting.appBuildNumber), attributes: [NSAttributedString.Key.foregroundColor: UIColor.theme.tableView.rowText])
Copy link
Contributor

@kaylagalway kaylagalway Aug 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this cause any issue with previously submitted strings @garvankeeley ? I don't think so because it's just a space change for the linter, but just want to confirm.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is ok, won't trigger an l10n change

@vphong
Copy link
Contributor Author

vphong commented Aug 14, 2020

FYI, Bitrise is failing due to an unrelated test:

Failing tests:
	XCUITests:
		DownloadFilesTests.testToastButtonToGoToDownloads()
** TEST FAILED **
If you can't find the reason of the error in the log, please check the raw-xcodebuild-output.log.
The log file is stored in $BITRISE_DEPLOY_DIR, and its full path
is available in the $BITRISE_XCODE_RAW_TEST_RESULT_TEXT_PATH environment variable.
You can check the full, unfiltered and unformatted Xcode output in the file:
/Users/vagrant/deploy/raw-xcodebuild-output.log
If you have the Deploy to Bitrise.io step (after this step),
that will attach the file to your build as an artifact!
Xcode Test command exit code: 65
Xcode Test command failed, error: exit status 65

This should not reflect on the work in this PR.

@vphong vphong merged commit 855dca8 into main Aug 17, 2020
vphong added a commit to vphong/firefox-ios that referenced this pull request Aug 26, 2020
* main: (25 commits)
  FXIOS-708 ⁃ [iOS14 Widgets] : iOS14 Quick Action Widgets (Medium/Small) Versions (mozilla-mobile#7051)
  FXIOS-805 ⁃ Default browser change, remove adjust, remove photopicker string (mozilla-mobile#7215)
  Revert "Bug 1608838: Include data sensitivity category (mozilla-mobile#7112)" (mozilla-mobile#7216)
  FXIOS-759 ⁃ Fix mozilla-mobile#7123: Empty logins view after switching to a different app (mozilla-mobile#7164)
  Bug 1608838: Include data sensitivity category (mozilla-mobile#7112)
  Fix mozilla-mobile#5937: Re-enable more XCUI tests (mozilla-mobile#7158)
  Update default browser strings (mozilla-mobile#7180)
  FXIOS-714 ⁃ [Today Widget] Adding Close Private tabs button to today widget (mozilla-mobile#6971)
  Refactored small size search in title to be more clear (mozilla-mobile#7168)
  For mozilla-mobile#7130 - XCUITest fix Downloads tests (mozilla-mobile#7153)
  Added comments to new line strings for translators (mozilla-mobile#7162)
  For mozilla-mobile#7154 - UITests fix compilation error (mozilla-mobile#7155)
  Refactored strings for Quick Action - Small Size widget (mozilla-mobile#7157)
  Fix mozilla-mobile#6847 new tab button (mozilla-mobile#7038)
  Refactored some strings for v29 (mozilla-mobile#7152)
  Breach Alerts Feature (mozilla-mobile#7136)
  Fix mozilla-mobile#7000: show about:blank for blank target popup windows (mozilla-mobile#7125)
  Fix mozilla-mobile#7053: Add prompt visible UI test for HTTP Basic Auth (mozilla-mobile#7124)
  String update: Added missing serial comma (mozilla-mobile#7132)
  Fix mozilla-mobile#7091 mozilla-mobile#7092 mozilla-mobile#7113 - String updates for Widgets, Default Browser and ETP changes (mozilla-mobile#7129)
  ...
@kaylagalway kaylagalway deleted the vphong/breachalerts branch September 10, 2020 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants