New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 908920 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 6
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Feature

Blocking:
issue 911327



Sign in to add a comment

[Tab loading animation] Artificially clamp the loading progress

Project Member Reported by edwardjung@chromium.org, Nov 27

Issue description

In order to improve speed perception when there is a slow loading site we would like to try clamping the progress bar from 30% to 70%. 

From recent experience: 
- sites tend to get stuck early on, in which case the progress bar is a dot, 
- progress gets stuck at near 100% as a bunch of extra resources which weren't known about are loaded. Gmail is a good example of this one.

Some loading research has shown that a fast start improves that initial speed perception. We've got fewer pixels to play with so the animation range needs to be larger.

Ideal scenario:
1. Show the indeterminate back forth motion during the connecting stage.
2. Once connected, don't immediately switch to the determinate progress bar. Wait until a guestimate load of 30% had happened. keep on showing the back forth motion.
3. Determinate progress bar. Animate 0 - 30%
4. Progress bar keeps animating forward to a maximum 70% of the width. 
5. Once the page load is complete, animate progress 70% - 100%, otherwise hold it at 70%.

The 30% (4.8dp) - 70% (11.2dp) range are starting values for this exploration.

Steps 3-4 should be easily achievable. Step 2 will require more investigation, so it's fine to start with just the change to the animation.


 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 28

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

commit f835280fca33a4378d16fedf7a4bde8129b265a0
Author: Peter Boström <pbos@chromium.org>
Date: Wed Nov 28 01:16:22 2018

Clamp visible loading progress to a smaller range

Prevents the loading animation from looking stuck. 0% looked buggy, like
we wouldn't even start loading. 100% looks similarly buggy, if we're
100% done we should not be stuck in a loading state.

Bug:  chromium:908920 
Change-Id: I280a9f7ce9f7db3920c41add9220a5ed4604b900
Reviewed-on: https://chromium-review.googlesource.com/c/1351103
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611485}
[modify] https://crrev.com/f835280fca33a4378d16fedf7a4bde8129b265a0/chrome/browser/ui/views/tabs/tab_icon.cc
[modify] https://crrev.com/f835280fca33a4378d16fedf7a4bde8129b265a0/chrome/browser/ui/views/tabs/tab_unittest.cc

Status: Fixed (was: Assigned)
Done, edwardjung@ reopen if refinement needs to be done.
Perhaps some detail is useful. We map 0-1 progress to 0.3-0.7 while loading, so it starts when it would've started but animates up to 30% from 0. Once it finishes loading we animate from 0.7 to 1.0 and then start fading out. There's no waiting for "actual 30%" before we start animating.
Okay good to know. 

I'll reopen if we want to actually try delaying showing the progress meter in step 2.
Status: Started (was: Fixed)
The jump to 70% sometimes causes a perceivable pause on fast loading sites, which isn't smooth. You can see this in page reloads.

Extra refinements suggested by pbos@:

- animating the loader slower while it's loading and speed up to the end once it's actually done
- Only a pause if loading is very. 
- Try targeting 70% after 2s and if we finish we can load faster and finish from 0 to 1 in 400ms perhaps
Cc: swarnasree.mukkala@chromium.org pbos@chromium.org dtapu...@chromium.org edwardjung@chromium.org vamshi.kommuri@chromium.org
 Issue 901926  has been merged into this issue.
The indicator is too fussy when opening fast sites that load in 1-2 seconds:
1. the bar flicks to the right in ~200ms
2. the bar flicks to the left in ~200ms
3. the bar grows to the right in 1-2 seconds
What's worse, the first two movements have different duration depending on the initial handshake speed so the result looks uneven and unpolished.

What about suppressing it for the first 100-200ms, then fading-in by easing via x^2 or bezier timing function for like 500ms?
Or change the first back-and-forth movement to something different that animates smooth, without jumping/skipping?
Initial state for the bar at right is a bug if you're only loading one tab, if you're loading multiple states they should be synchronized (which is why it's possible for them to not start at t=0).

Transition from connecting to loading is  issue 907490 . The progress indicator should never be jumping.
"if you're loading multiple *tabs*"
Project Member

Comment 10 by bugdroid1@chromium.org, Dec 3

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

commit 41f36f62c3272606df2e8887added460ab278681
Author: Peter Boström <pbos@chromium.org>
Date: Mon Dec 03 19:46:17 2018

Animate loading progress slower while loading

Makes the loading-progress animation smoother for pages that have not
finished loading pretty-much instantly. A follow-up might consider
removing actual loading progress completely and just animate to 70%
slowly until loading finishes.

Bug:  chromium:908920 
Change-Id: I207d602c1552591396840c346e88b0962af07be2
Reviewed-on: https://chromium-review.googlesource.com/c/1358923
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613199}
[modify] https://crrev.com/41f36f62c3272606df2e8887added460ab278681/chrome/browser/ui/views/tabs/tab_icon.cc

Labels: Merge-Request-72
Requesting merge for r613199.
Labels: Merge-Approved-72
Labels: -Merge-Request-72
branch:3626
Project Member

Comment 15 by bugdroid1@chromium.org, Dec 6

Labels: -merge-approved-72 merge-merged-3626
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b2b4a5dac549f17b124051260c65bdedc6701c9

commit 2b2b4a5dac549f17b124051260c65bdedc6701c9
Author: Peter Boström <pbos@chromium.org>
Date: Thu Dec 06 17:37:56 2018

Merge tab-loading-animation refactor to M72

Prerequisite for other approved merges.

Bug:  chromium:907642 ,  chromium:908920 

Refactor the tab-loading animation

This change instead updates the animation progress in delta-time
increments, which prevents a bunch of clock math and rewinding of start
timestamps.

Bug: None
Change-Id: I6848e3c3ca2d7c844f56f126d72c9b8420364b2a
Reviewed-on: https://chromium-review.googlesource.com/c/1356261
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#613161}(cherry picked from commit 910efca58c0cc9089c771d5f2ccdf12de7732678)
Reviewed-on: https://chromium-review.googlesource.com/c/1365875
Reviewed-by: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#112}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
[modify] https://crrev.com/2b2b4a5dac549f17b124051260c65bdedc6701c9/chrome/browser/ui/views/tabs/tab_icon.cc
[modify] https://crrev.com/2b2b4a5dac549f17b124051260c65bdedc6701c9/chrome/browser/ui/views/tabs/tab_icon.h
[modify] https://crrev.com/2b2b4a5dac549f17b124051260c65bdedc6701c9/chrome/browser/ui/views/tabs/tab_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Dec 6

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

commit 7d9a032ef87613f81decac9e4b8b09846355d3f0
Author: Peter Boström <pbos@chromium.org>
Date: Thu Dec 06 17:47:26 2018

Animate loading progress slower while loading

Makes the loading-progress animation smoother for pages that have not
finished loading pretty-much instantly. A follow-up might consider
removing actual loading progress completely and just animate to 70%
slowly until loading finishes.

Bug:  chromium:908920 
Change-Id: I207d602c1552591396840c346e88b0962af07be2
Reviewed-on: https://chromium-review.googlesource.com/c/1358923
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#613199}(cherry picked from commit 41f36f62c3272606df2e8887added460ab278681)
Reviewed-on: https://chromium-review.googlesource.com/c/1365877
Reviewed-by: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#114}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
[modify] https://crrev.com/7d9a032ef87613f81decac9e4b8b09846355d3f0/chrome/browser/ui/views/tabs/tab_icon.cc

Status: Fixed (was: Started)
Labels: CommitLog-Audit-Violation Merge-Without-Approval
Here's a summary of the rules that were executed: 
 - OnlyMergeApprovedChange: Rule Failed -- Revision 7d9a032ef87613f81decac9e4b8b09846355d3f0 was merged to refs/branch-heads/3626 branch with no merge approval from a TPM! 
Please explain why this change was merged to the branch!
 - AcknowledgeMerge: Notification Required -- 
Labels: Merge-Merged-72-3626
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/7d9a032ef87613f81decac9e4b8b09846355d3f0

Commit: 7d9a032ef87613f81decac9e4b8b09846355d3f0
Author: pbos@chromium.org
Commiter: pbos@chromium.org
Date: 2018-12-06 17:47:26 +0000 UTC

Animate loading progress slower while loading

Makes the loading-progress animation smoother for pages that have not
finished loading pretty-much instantly. A follow-up might consider
removing actual loading progress completely and just animate to 70%
slowly until loading finishes.

Bug:  chromium:908920 
Change-Id: I207d602c1552591396840c346e88b0962af07be2
Reviewed-on: https://chromium-review.googlesource.com/c/1358923
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#613199}(cherry picked from commit 41f36f62c3272606df2e8887added460ab278681)
Reviewed-on: https://chromium-review.googlesource.com/c/1365877
Reviewed-by: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#114}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
Labels: -CommitLog-Audit-Violation -Merge-Without-Approval

Sign in to add a comment