New issue
Advanced search Search tips

Issue 804538 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Task
Q1

Blocked on:
issue 804534

Blocking:
issue 804539



Sign in to add a comment

Build the animation for dismissing into the grid.

Project Member Reported by marq@chromium.org, Jan 22 2018

Issue description

Build the animation for dismissing into the grid.

 

Comment 1 by marq@chromium.org, Jan 23 2018

Components: UI>Browser
Labels: MS-Tab-Grid Pri-2
Owner: marq@chromium.org
Status: Available (was: Unconfirmed)

Comment 2 by marq@chromium.org, Jan 23 2018

Labels: S-See-Open-Tabs

Comment 3 by marq@chromium.org, Jan 23 2018

Labels: medium

Comment 4 by marq@chromium.org, Jan 23 2018

Blockedon: 804534

Comment 5 by marq@chromium.org, Jan 23 2018

Blocking: 804539

Comment 6 by marq@chromium.org, Jan 23 2018

Labels: Q1

Comment 7 by marq@chromium.org, Jan 25 2018

Status: Assigned (was: Available)

Comment 8 by marq@chromium.org, Feb 28 2018

NextAction: 2018-03-14

Comment 9 by marq@chromium.org, Mar 5 2018

Status: Started (was: Assigned)
Project Member

Comment 10 by bugdroid1@chromium.org, Mar 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22

commit b837fa87c34fec2def8e7c1bb6f2a7afaef00c22
Author: Mark Cogan <marq@google.com>
Date: Tue Mar 06 10:42:50 2018

[ios] Show the correct panel in the Tab Grid when it appears.

This CL updates the adaptor's restoreInternalStateWithMainTabModel: method to set the correct
visible page in the tab grid.

So that the adaptor isn't directly depending on the tab grid view controller, the current-page-
setting property is abstracted out into a protocol (along with the enum).

Setting the current page property sets the scroll view offset accordingly.

MainController needed to be tweaked so that the very first time the tab grid is displayed,
-restoreInternalStateWithMainTabModel: is called.

Bug:  804538 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: If8e7cd27a81d7095486ff389fc104aa243cf406c
Reviewed-on: https://chromium-review.googlesource.com/948482
Commit-Queue: Mark Cogan <marq@chromium.org>
Reviewed-by: edchin <edchin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541065}
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/app/main_controller.mm
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/BUILD.gn
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/tab_grid_adaptor.h
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/tab_grid_adaptor.mm
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
[add] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/tab_grid_paging.h
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h
[modify] https://crrev.com/b837fa87c34fec2def8e7c1bb6f2a7afaef00c22/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm

Project Member

Comment 11 by bugdroid1@chromium.org, Mar 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb1eb72750890de576245e3d339a28519134a978

commit fb1eb72750890de576245e3d339a28519134a978
Author: Mark Cogan <marq@google.com>
Date: Wed Mar 07 10:25:39 2018

[iOS] Add appearance animation to tab grid.

When the tab grid appears as part of an animated transition, the toolbars
should drop down to animate into position. This CL implements this by
triggering that animation in -viewWillAppear: and using the view
controller's transition coordinator's -animateAlongsideTransition: method.

The timing/details of this animation aren't final, but can easily be
tweaked.

Bug:  804538 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I20f322684598e5dcfbace21d5f928b41414658f0
Reviewed-on: https://chromium-review.googlesource.com/950944
Commit-Queue: Mark Cogan <marq@chromium.org>
Reviewed-by: edchin <edchin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541402}
[modify] https://crrev.com/fb1eb72750890de576245e3d339a28519134a978/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm

Project Member

Comment 12 by bugdroid1@chromium.org, Mar 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/165dadf640747207ae9645763d003aca933ccd47

commit 165dadf640747207ae9645763d003aca933ccd47
Author: Mark Cogan <marq@google.com>
Date: Tue Mar 13 10:15:41 2018

[iOS] Animated transition from tab to grid.

This CL implements an imperfect but serviceable-for-now transition animator
used when entering the tab grid.

Most of the logic for building and running the animation is in the animator
class. However, to set the animation up, the tab grid needs to vend some
information. This is done through the TabGridTransitionStateProvider protocol,
which the TabGridViewController implements.

Most of this information is handled by the -transitionGridLayout method, which
returns an array of dictionaries with predefined keys. Some of the values are
collection cells, which GridCell provides (a grid cell can now provide a "proxy"
version of itself for this purpose). These are then used to build the animation.

Because the grid animation really needs to happen *behind* the grid toolbars
to look right, the state provider protocol includes two somewhat janky methods
to expose views to make this possible -- a view to add the transition cells to,
and a view in that view to put them above. The implementations of these methods
return the TabGridViewController's view, and it's scroll view, respectively.

This means the animator is adding and removing stuff from the view hierarchy
of a view controller, which isn't ideal. The alternative is to also proxy the
tab grid toolbars in the transition animation, which will require a bit more
plumbing.

There are a number of fit-and-finish cleanups that need to happen; a separate
task bug has been created for them.

Bug:  804538 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Ifde8bb27b70ce350e40eeb1e1b14675579f84d7d
Reviewed-on: https://chromium-review.googlesource.com/957039
Commit-Queue: Mark Cogan <marq@chromium.org>
Reviewed-by: edchin <edchin@chromium.org>
Reviewed-by: Mark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542757}
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/BUILD.gn
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/grid_cell.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/grid_cell.mm
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/grid_view_controller.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/grid_view_controller.mm
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/tab_grid_transition_handler.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/tab_grid_transition_handler.mm
[delete] https://crrev.com/376776f18aa5a445c13c46f5f7e573c1dad65c5a/ios/chrome/browser/ui/tab_grid/tab_grid_transition_state_provider.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/transitions/BUILD.gn
[add] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/transitions/grid_transition_layout.h
[add] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/transitions/grid_transition_layout.mm
[add] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/transitions/grid_transition_state_providing.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/transitions/tab_to_grid_animator.h
[modify] https://crrev.com/165dadf640747207ae9645763d003aca933ccd47/ios/chrome/browser/ui/tab_grid/transitions/tab_to_grid_animator.mm

Comment 13 by marq@chromium.org, Mar 13 2018

Status: Fixed (was: Started)

Comment 14 by marq@chromium.org, Mar 13 2018

Labels: -medium large
The NextAction date has arrived: 2018-03-14

Comment 16 by marq@chromium.org, Mar 15 2018

NextAction: ----

Sign in to add a comment