Implement BubbleView and BubbleViewController, and integrate with Showcase. This is for the User Education project.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b commit 5d0b9fa8555eb3a5b4ebada265794d04ac33c49b Author: helenlyang <helenlyang@google.com> Date: Wed Jul 12 00:06:30 2017 [ios] BubbleViewController and BubbleView stubs. Added bubble_view_controller interface and implementation stubs, bubble_view interface and implementation stubs, and unit test stubs. These files live in the bubble_promo directory. For context, they are being used for the User Education project. BUG= 740145 . Review-Url: https://codereview.chromium.org/2964233002 Cr-Commit-Position: refs/heads/master@{#485735} [modify] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/BUILD.gn [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/BUILD.gn [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/OWNERS [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/bubble_view.h [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/bubble_view.mm [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/bubble_view_controller.h [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/bubble_view_controller.mm [add] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/browser/ui/bubble/bubble_view_controller_unittest.mm [modify] https://crrev.com/5d0b9fa8555eb3a5b4ebada265794d04ac33c49b/ios/chrome/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f commit c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f Author: Helen Yang <helenlyang@google.com> Date: Thu Jul 27 23:13:03 2017 [ios showcase] Integrate bubble with Showcase and add util methods This CL integrates the BubbleViewController with Showcase and adds util methods needed to properly configure the bubble. Additionally, this CL adds unit tests stubs for bubble_util methods. Bug: 740145 Change-Id: Ib6fe5ee258bedcd94d0cca6fd1c6ee86ecb0dd93 Reviewed-on: https://chromium-review.googlesource.com/574631 Commit-Queue: Helen Yang <helenlyang@google.com> Reviewed-by: Ed Chin <edchin@chromium.org> Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#490074} [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/BUILD.gn [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_util.h [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_util.mm [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_util_unittest.mm [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_view.h [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_view.mm [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_view_controller.h [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/chrome/browser/ui/bubble/bubble_view_controller.mm [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/showcase/BUILD.gn [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/showcase/bubble/BUILD.gn [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/showcase/bubble/sc_bubble_coordinator.h [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/showcase/bubble/sc_bubble_coordinator.mm [add] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/showcase/bubble/sc_bubble_egtest.mm [modify] https://crrev.com/c5de9d980b7e4ee346097a5cd4e5ec415a3ad05f/ios/showcase/core/showcase_model.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0903eeca7ba94a61b7658db77e390877481c297d commit 0903eeca7ba94a61b7658db77e390877481c297d Author: Helen Yang <helenlyang@google.com> Date: Wed Aug 09 06:00:50 2017 [ios] Implement BubbleView and BubbleViewController This CL implements BubbleView and BubbleViewController. It adds logic to BubbleView to properly layout subviews and calculate its optimal size. Additionally, it adds animation logic to BubbleViewController's display and dismissal methods. This CL also adds unit tests for BubbleView, modifies the Showcase implementation to display the bubble, and changes the alignment offset value in bubble_util_unittest.mm to be consistent with the offset value defined in BubbleView. Screenshots and video of the animation can be found in this folder: https://drive.google.com/drive/folders/0B3YZmy_OdK4sTERILW15Q2NHN00?usp=sharing Bug: 740145 Change-Id: I175eefbf3b739d48931ef8d8e77130892c3fa27f Reviewed-on: https://chromium-review.googlesource.com/598591 Commit-Queue: Gregory Chatzinoff <gchatz@chromium.org> Reviewed-by: Ed Chin <edchin@chromium.org> Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#492844} [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/BUILD.gn [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/bubble_util_unittest.mm [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/bubble_view.h [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/bubble_view.mm [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/bubble_view_controller.h [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/bubble_view_controller.mm [delete] https://crrev.com/6839ed727ec08716d3ebf471d9feae1d9f36a599/ios/chrome/browser/ui/bubble/bubble_view_controller_unittest.mm [add] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/chrome/browser/ui/bubble/bubble_view_unittest.mm [modify] https://crrev.com/0903eeca7ba94a61b7658db77e390877481c297d/ios/showcase/bubble/sc_bubble_coordinator.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9175bd50b678d86058930dfdb527fcc48c2a02e8 commit 9175bd50b678d86058930dfdb527fcc48c2a02e8 Author: Helen Yang <helenlyang@google.com> Date: Sat Aug 12 00:28:40 2017 [ios] Implement New Incognito Tab in-product help promotion This CL implements the New Incognito Tab in-product help promotion. A bubble is presented that points to the tools menu button, which animates in and out. If the user opens the tools menu shortly after the promotion (i.e. when the user is considered to be engaged), the New Incognito Tab cell is highlighted in blue. Specific changes: -Adds methods to present the New Incognito Tab promotion in BrowserViewController -Adds a method to ToolbarController that triggers the tools menu button animation, so that the animation can be triggered in BVC -Adds a method to ToolsMenuViewController that highlights the New Incognito Tab cell in blue -Adds BOOL property to ToolsMenuConfiguration that indicates whether the New Incognito Tab cell should be highlighted -Adds a BOOL property to BubbleViewControllerPresenter that tracks whether follow-up actions (e.g. highlighting the New Incognito Tab cell) should be triggered -Modifies the bubble alignment offset constant in bubble_view.mm and bubble_util_unittests.mm. This prevents the bubble from going off screen -Adds the string displayed on the bubble to ios_strings.grd Bug: 740145 Change-Id: Icaab453cae12e84ce9b914cd9f2a5717129db84e Reviewed-on: https://chromium-review.googlesource.com/611640 Commit-Queue: Helen Yang <helenlyang@google.com> Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org> Reviewed-by: edchin <edchin@chromium.org> Reviewed-by: Rohit Rao (ping after 24h) <rohitrao@chromium.org> Cr-Commit-Position: refs/heads/master@{#493899} [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/app/strings/ios_strings.grd [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/browser_view_controller.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/bubble/bubble_util_unittest.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/bubble/bubble_view.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/bubble/bubble_view_controller_presenter.h [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/bubble/bubble_view_controller_presenter.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/bubble/bubble_view_unittest.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/toolbar/toolbar_controller.h [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/toolbar/toolbar_controller.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/tools_menu/tools_menu_configuration.h [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/tools_menu/tools_menu_configuration.mm [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.h [modify] https://crrev.com/9175bd50b678d86058930dfdb527fcc48c2a02e8/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm
Comment 1 by helenlyang@google.com
, Jul 7 2017