New issue
Advanced search Search tips

Issue 650115 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-08-04
OS: Linux , Windows , Chrome , Mac
Pri: 3
Type: Bug

Blocking:
issue 630357



Sign in to add a comment

Re-enable button throbbing

Project Member Reported by shrike@chromium.org, Sep 25 2016

Issue description

Version: 55.0.2871.0
OS: 10.11

What steps will reproduce the problem?
(1) Go to a page and bookmark it so that it appears in the bookmarks bar
(2) While on that page, click the blue bookmarks star
(3) Turn on Flash screen updates in Quartz Debug

What is the expected output?
With no insertion point there should be no screen repaints whatsoever

What do you see instead?
The page's bookmark in the bookmarks bar flashes continuously, indicating it is being constantly updated and repainted.

Additionally, if the bookmark was in the overflow menu, the overflow chevron in the bookmarks bar would flash continuous updates.

 
I will take a look at this.
Labels: Proj-HarmonyControls
Status: Started (was: Assigned)
https://codereview.chromium.org/2391253003/
The real root cause here is as follows:

CustomButton has support for "throbbing", which makes the button animate between two of its states over and over. The default CustomButton doesn't actually *do* anything when throbbing, but it still repaints all the time because of it. I chatted with estade@ and they believe the lack of throbbing is a regression, and we should support it properly; in that case, these repaints will be WAI to draw that animation.

The same issue exists in GradientButtonCell in the Cocoa browser UI: it "animates" via [GradientButtonCell setIsContinuousPulsing:], but there's no actual states to animate between, so it redraws pointlessly.

I think we need to decide whether:
a) To have throbbing at all, and
b) To have throbbing on Mac

Then we can either fix the throbbing or remove the code for it (and thus remove the repaints).
Cc: ellyjo...@chromium.org
Owner: sgabr...@chromium.org
Hello sgabriel@,

If you bookmark a page so that it appears in the bookmarks bar, then go to that page and click the blue bookmark star, the bookmark in the bookmark bar is highlighted. Should this bookmark "pulse" between its highlighted and non-highlighted states? It seems it may have done so pre-MD.

Yes let's keep this pre-md paradigm, on all platforms.
Cc: -ellyjo...@chromium.org sgabr...@chromium.org
Owner: ellyjo...@chromium.org
Okay, I'll own implementing this then.
Summary: Re-enable button throbbing (was: Harmony - bookmarks dialog causes continuous repaint of item in bookmarks bar)
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 12 2016

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

commit 381689d5e039af3fb7e97571928ab7c7905b7f7c
Author: ellyjones <ellyjones@chromium.org>
Date: Wed Oct 12 15:23:32 2016

cocoa browser: fix meaning of "continuous pulsing"

This state has long meant "continuously drawn as pulsed on", but still does
constant repaints as though it was actually animating to a different state.
This change causes continuous pulsing not to be marked as a dynamic state and
updates the comment to match.

BUG= 650115 

Review-Url: https://codereview.chromium.org/2407343002
Cr-Commit-Position: refs/heads/master@{#424740}

[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller_unittest.mm
[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/bookmarks/bookmark_button.h
[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm
[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/gradient_button_cell.h
[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/gradient_button_cell.mm
[modify] https://crrev.com/381689d5e039af3fb7e97571928ab7c7905b7f7c/chrome/browser/ui/cocoa/gradient_button_cell_unittest.mm

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 17 2016

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

commit ac51b6a1f6c40b0a24a784bc1835f60fb51e8805
Author: ellyjones <ellyjones@chromium.org>
Date: Mon Oct 17 12:20:46 2016

CustomButton: restrict animation repaints to buttons that actually animate

This change:
1) Adds CustomButton::animates_hover_ and accessors, which governs whether
   a particular button's paint methods depend on animation state;
2) Adds calls to set_animates_hover() in all subclasses that depend on
   the animation state;
3) Adds support in MdTextButton for a hovered state and hover animation.

BUG= 650115 

Review-Url: https://codereview.chromium.org/2406323002
Cr-Commit-Position: refs/heads/master@{#425661}

[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ash/common/frame/caption_buttons/frame_caption_button.cc
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/chrome/browser/ui/views/tabs/tab_strip.cc
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/controls/button/custom_button.cc
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/controls/button/custom_button.h
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/controls/button/image_button.cc
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/controls/button/md_text_button.cc
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/controls/button/md_text_button.h
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/examples/button_example.cc
[modify] https://crrev.com/ac51b6a1f6c40b0a24a784bc1835f60fb51e8805/ui/views/examples/button_example.h

I don't know how to triage MacViews in depth, so not changing owner/priority.  This hasn't been touched in a while; please retriage.
NextAction: 2017-08-04
I still own this, and we still want to implement it, but I don't think this should block launch. I'm not sure how to tag that.

The work to be done here is basically to support is_throbbing_ in CustomButton somehow. I'll try to get to this some time this week.
Labels: -Pri-2 Pri-3
I'm marking all "should not block phase 1 launch" bugs as P3.
The NextAction date has arrived: 2017-08-04
Status: Fixed (was: Started)
Ok. Here's the current state of this:

Views button throbbing does work, on all platforms (including Mac), as of a while ago.
Cocoa button throbbing is disabled. If we want to re-enable it, we should file a separate bug for that. I'm not sure how much we care about having it for the Cocoa browser UI.


Sign in to add a comment