Implement change password UI for Chrome on iOS.
The design for the UI for changing passwords will follow that of Android: https://folio.googleplex.com/chrome-ux/mocks/321-password-manager/password%20update/mobile#%2Fpassword%20update%20-%20mobile.png%3Fbg=dkgray&c=show In most locations in Chrome iOS, this UI is implemented using the InfoBar component. For consistency with saving passwords, changing passwords will follow the same implementation pattern. The one differentiator from the Android UI is that for the multiple credentials case, a UIPickerView will be used rather than a drop-down menu. This follows the pattern used for selecting languages in the translate infobar. Design Doc: https://docs.google.com/document/d/1MA0kkxf9f7egVByAztt4L0zdZ1pq1ggH_KHj0HZ-ct8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/34dc65757e2a50e8761f39e2811a4cd342a01970 commit 34dc65757e2a50e8761f39e2811a4cd342a01970 Author: jyquinn <jyquinn@chromium.org> Date: Tue Jun 28 13:34:58 2016 Create superclass for IOSChromeSavePasswordInfobarDelegate Splits out IOSChromePasswordManagerInfoBarDelegate from IOSChromeSavePasswordInfoBarDelegate to facilitate creation of an InfoBarDelegate for updating passwords. BUG= 622244 Review-Url: https://codereview.chromium.org/2108593002 Cr-Commit-Position: refs/heads/master@{#402453} [modify] https://crrev.com/34dc65757e2a50e8761f39e2811a4cd342a01970/ios/chrome/browser/BUILD.gn [add] https://crrev.com/34dc65757e2a50e8761f39e2811a4cd342a01970/ios/chrome/browser/passwords/ios_chrome_password_manager_infobar_delegate.h [add] https://crrev.com/34dc65757e2a50e8761f39e2811a4cd342a01970/ios/chrome/browser/passwords/ios_chrome_password_manager_infobar_delegate.mm [modify] https://crrev.com/34dc65757e2a50e8761f39e2811a4cd342a01970/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h [modify] https://crrev.com/34dc65757e2a50e8761f39e2811a4cd342a01970/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.mm [modify] https://crrev.com/34dc65757e2a50e8761f39e2811a4cd342a01970/ios/chrome/ios_chrome.gyp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3ed22f74673ed1e178ca2bd2ed5d3f5921ef9cb8 commit 3ed22f74673ed1e178ca2bd2ed5d3f5921ef9cb8 Author: jyquinn <jyquinn@chromium.org> Date: Tue Jun 28 15:01:04 2016 Add strings for use in iOS update password infobar Adds ios strings for the update password infobar, including strings for the buttons and strings for the label text. BUG= 622244 Review-Url: https://codereview.chromium.org/2104833002 Cr-Commit-Position: refs/heads/master@{#402468} [modify] https://crrev.com/3ed22f74673ed1e178ca2bd2ed5d3f5921ef9cb8/ios/chrome/app/strings/ios_chromium_strings.grd [modify] https://crrev.com/3ed22f74673ed1e178ca2bd2ed5d3f5921ef9cb8/ios/chrome/app/strings/ios_google_chrome_strings.grd [modify] https://crrev.com/3ed22f74673ed1e178ca2bd2ed5d3f5921ef9cb8/ios/chrome/app/strings/ios_strings.grd
The following revision refers to this bug: https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/a69de03971f2c66be938ecee5da090fb06217fdc commit a69de03971f2c66be938ecee5da090fb06217fdc Author: jyquinn <jyquinn@google.com> Date: Wed Jun 29 12:04:13 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7284bd53e2e861b5a6b718a9d8d4d05a7818b9d4 commit 7284bd53e2e861b5a6b718a9d8d4d05a7818b9d4 Author: jyquinn <jyquinn@chromium.org> Date: Wed Jun 29 17:16:03 2016 Add markedLabel property to InfoBarViewProtocol Add markedLabel property to InfoBarViewProtocol to allow subclasses of info bar controllers to modify labels with existing links. BUG= 622244 Review-Url: https://codereview.chromium.org/2102043002 Cr-Commit-Position: refs/heads/master@{#402844} [modify] https://crrev.com/7284bd53e2e861b5a6b718a9d8d4d05a7818b9d4/ios/public/provider/chrome/browser/ui/infobar_view_protocol.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aad66ecb0cfcee57820f640e859f96d8fe198125 commit aad66ecb0cfcee57820f640e859f96d8fe198125 Author: jyquinn <jyquinn@chromium.org> Date: Tue Jul 05 10:20:33 2016 IOSChromeUpdatePasswordInfoBarDelegate for update password UI Adds IOSChromeUpdatePasswordInfoBarDelegate to serve as infobar delegate for the update password infobar. This delegate provides account data to the controller, indicating which account to display and whether there are multiple accounts possible for the pending password update. The controller created in Create will be changed to a custom controller for update passwords when the controller is available. BUG= 622244 Review-Url: https://codereview.chromium.org/2108643002 Cr-Commit-Position: refs/heads/master@{#403762} [modify] https://crrev.com/aad66ecb0cfcee57820f640e859f96d8fe198125/ios/chrome/browser/BUILD.gn [add] https://crrev.com/aad66ecb0cfcee57820f640e859f96d8fe198125/ios/chrome/browser/passwords/ios_chrome_update_password_infobar_delegate.h [add] https://crrev.com/aad66ecb0cfcee57820f640e859f96d8fe198125/ios/chrome/browser/passwords/ios_chrome_update_password_infobar_delegate.mm [modify] https://crrev.com/aad66ecb0cfcee57820f640e859f96d8fe198125/ios/chrome/ios_chrome.gyp
The following revision refers to this bug: https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/cebfa715f7912adb6e802235164a968957f9f1c3 commit cebfa715f7912adb6e802235164a968957f9f1c3 Author: jyquinn <jyquinn@google.com> Date: Tue Jul 05 11:28:37 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/16245bede16eea10edd85949b1da70c4e033f798 commit 16245bede16eea10edd85949b1da70c4e033f798 Author: jyquinn <jyquinn@chromium.org> Date: Wed Jul 06 09:11:57 2016 UpdatePasswordInfoBarController for update password UI Adds UpdatePasswordInfoBarController as infobar controller for the update passwords infobar. UpdatePasswordInfoBarController subclasses ConfirmInfoBarController, adding an additional link to the label for choosing an account in the case where multiple accounts are possible for the password update. Tapping on this link presents a picker view for selecting the appropriate account. BUG= 622244 Review-Url: https://codereview.chromium.org/2106413003 Cr-Commit-Position: refs/heads/master@{#403872} [modify] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/BUILD.gn [add] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/infobars/confirm_infobar_controller+protected.h [modify] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/infobars/confirm_infobar_controller.h [modify] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/infobars/confirm_infobar_controller.mm [modify] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/passwords/ios_chrome_update_password_infobar_delegate.mm [add] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/passwords/update_password_infobar_controller.h [add] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/browser/passwords/update_password_infobar_controller.mm [modify] https://crrev.com/16245bede16eea10edd85949b1da70c4e033f798/ios/chrome/ios_chrome.gyp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cf96aefe1fe6512a6422a88e94d47dcc23e462a9 commit cf96aefe1fe6512a6422a88e94d47dcc23e462a9 Author: jyquinn <jyquinn@chromium.org> Date: Wed Jul 06 13:17:37 2016 Retain coordinator and update label in UpdatePasswordInfoBarController Fixes for UpdatePasswordInfoBarController. SelectorCoordinator is retained as a property so that it is not immediately dismissed, and the infobar label is updated in the SelectorCoordinatorDelegate callback. BUG= 622244 Review-Url: https://codereview.chromium.org/2127793002 Cr-Commit-Position: refs/heads/master@{#403892} [modify] https://crrev.com/cf96aefe1fe6512a6422a88e94d47dcc23e462a9/ios/chrome/browser/passwords/update_password_infobar_controller.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7 commit 3920fa079d497a524eeca5ff3eb6ef0a8981d3e7 Author: jyquinn <jyquinn@chromium.org> Date: Wed Jul 06 14:00:38 2016 Add custom UIPresentationController for picker selector Add custom UIPresentationController subclass for presenting the picker selector. The presentation controller sets the frame of the picker selector to be at the bottom of the screen, and adds a dimming view behind it. BUG= 622244 Review-Url: https://codereview.chromium.org/2125813002 Cr-Commit-Position: refs/heads/master@{#403902} [modify] https://crrev.com/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7/ios/chrome/browser/BUILD.gn [modify] https://crrev.com/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7/ios/chrome/browser/ui/elements/selector_coordinator.mm [add] https://crrev.com/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7/ios/chrome/browser/ui/elements/selector_picker_presentation_controller.h [add] https://crrev.com/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7/ios/chrome/browser/ui/elements/selector_picker_presentation_controller.mm [modify] https://crrev.com/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7/ios/chrome/browser/ui/elements/selector_picker_view_controller.mm [modify] https://crrev.com/3920fa079d497a524eeca5ff3eb6ef0a8981d3e7/ios/chrome/ios_chrome.gyp
Update password info bar is seen when password is changed for the saved passwords. Verified on iPhone 6+(10.0), iPad Air 2(9.3.1) in 54.0.2800.0 canary
Comment 1 by jyqu...@chromium.org
, Jun 22 2016