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

Issue 722724 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Regression: Weird ‘Reset all to default’ button is seen on chrome://flags after setting ‘RTL’ for Force UI direction flag.

Reported by abom...@etouch.net, May 16 2017

Issue description

Chrome Version:60.0.3100.0 (Official Build) f472642fd6c20b63b0f1a2f62564f2aad56f4be3-refs/heads/master@{#471639}
OS: Mac (10.12.3,10.11.6)

Pre-condition: Set/Select ‘RTL’ option for Force UI direction flag

What steps will reproduce the problem?
1. Launch chrome and navigate to chrome://flags/
2. Resize the browser window completely and observe ‘Reset all to default’ button (refer screencast)

Actual: Weird ‘Reset all to default’ button is seen.
Expected: ‘Reset all to default’ button should be proper.

This is regression issue, broken in ‘M 60’ and below is manual bisect:
Good build:59.0.3071.47
Bad build:60.0.3073.0

Note: Issue is not seen on Windows and Linux OS

 
actual.png
156 KB View Download
Actual_rt.mov
8.4 MB Download
Cc: jmukthavaram@chromium.org
Labels: hasbisect-per-revision
Owner: enne@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce the issue on Mac 10.12.4 using chrome latest Canary-60.0.3100.0.
Manual Bisect:
-------------
Good build:59.0.3071.47 -Revision-464641
Bad build:60.0.3073.0 -Revision- 464873

Per revision bisect info:
------------------------
You are probably looking for a change made after 464808 (known good), but no later than 464809 (first known bad).
CHANGELOG URL:
The script might not always return single CL as suspect as some perf builds might get missing due to failure.
https://chromium.googlesource.com/chromium/src/+log/e5ff978c98c235da0dfb6f6d8dc45f5e0c764eec..e49d70a44bf12043cc781390f7fc53ce7b4ac807

enne@, Could you please look into this issue.
Thanks..!!

Comment 2 by enne@chromium.org, May 16 2017

Labels: Needs-TestConfirmation
Hmm, I can't repro this on ToT osx.  The button on "Reset all to default" appears just fine to me with --force-ui-direction=rtl.

I tried with combinations of --disable-gpu and --force-device-scale-factor and the button still appears fine.

Can you give me some more details about how to repro or check if it's still occuring on ToT canary?

Comment 3 by abom...@etouch.net, May 17 2017

Labels: -Needs-TestConfirmation
Re-checked on Latest TOT version: 60.0.3103.0 (Developer Build) (64-bit) Revision bb5dc299a8a07453c5accc73a35da63440261dae-refs/heads/master@{#472330}

Above issue is still reproducible on ToT canary (please refer screencast and gpu info) and we have to resize the browser window and then drag the scroll to observe ‘Reset all to default’ button 
Actual_Reset.mov
10.5 MB Download

Comment 4 by enne@chromium.org, May 17 2017

Aha, thanks! Sorry for my confusion.  :)
Project Member

Comment 5 by bugdroid1@chromium.org, May 19 2017

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

commit bf85ac4f08f6420db9fbdd1fd91d2352fdae93de
Author: Adrienne Walker <enne@chromium.org>
Date: Fri May 19 22:52:02 2017

Fix clipped buttons on Mac in rtl ui mode

GraphicsContextCanvas used to use the device clip on the recording
canvas (which is initialized when creating the canvas, and then clipped
by further clips on the base layer) along with a local clip provided
by the user in the constructor.  It was trying its best to try to not
create bitmaps that were too large or to paint more than it should.

However, in current times, GraphicsContextCanvas is only used in
recording mode and the caller knows the entire rect that it needs.
This patch removes the dependency on the implicit canvas device clip
and only makes GraphicsContextCanvas depend on only the clip from
the constructor.

This regressed in https://codereview.chromium.org/2768143002 because
RecordPaintCanvas was unable to use the same internal resetForNextCanvas
function that SkRecorder uses to set the device clip to an arbitrary
rect.  RecordPaintCanvas sets the initial device clip to the
intersection of (0, 0, right, bottom) and the initial clip, in other
words, clamping it to the origin if it extends negatively left or up.
In this particular bug with rtl ui, the recording rect was negative,
and so that clamping made the button rect get clipped out and hidden
if it extended into negative space.

LocalCurrentGraphicsContext now takes the user clip in local space as
it always has, but then provides a device-space rect to
GraphicsContextCanvas which it uses as the size of the bitmap to
create as well as the location to paint that bitmap at the end.
This also simplifies the code and removes half of the callers that
ask about the device clip on PaintCanvas.

This should fix these device clip rect bugs ONCE AND FOR ALL.

See previous related issues here:
    https://chromium-review.googlesource.com/c/469073/
    https://chromium-review.googlesource.com/c/468348/

Bug:  722724 
Change-Id: I181d4aff1387b1875a76d476351d4322ca46c4d8
Reviewed-on: https://chromium-review.googlesource.com/508096
Commit-Queue: enne <enne@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#473374}
[modify] https://crrev.com/bf85ac4f08f6420db9fbdd1fd91d2352fdae93de/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/bf85ac4f08f6420db9fbdd1fd91d2352fdae93de/third_party/WebKit/Source/platform/mac/GraphicsContextCanvas.h
[modify] https://crrev.com/bf85ac4f08f6420db9fbdd1fd91d2352fdae93de/third_party/WebKit/Source/platform/mac/GraphicsContextCanvas.mm
[modify] https://crrev.com/bf85ac4f08f6420db9fbdd1fd91d2352fdae93de/third_party/WebKit/Source/platform/mac/GraphicsContextCanvasTest.mm
[modify] https://crrev.com/bf85ac4f08f6420db9fbdd1fd91d2352fdae93de/third_party/WebKit/Source/platform/mac/LocalCurrentGraphicsContext.mm

Project Member

Comment 6 by bugdroid1@chromium.org, May 20 2017

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

commit dfe378426b93e089fbcbf605284f842092d333ac
Author: Rebaseline Bot <blink-rebaseline-bot@chromium.org>
Date: Sat May 20 00:34:18 2017

Auto-rebaseline for r473374

Build: https://build.chromium.org/p/chromium.infra.cron/builders/rebaseline-o-matic/builds/695547

https://chromium.googlesource.com/chromium/src/+/bf85ac4f08f64

BUG= 722724 
TBR=enne@chromium.org

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

[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/searchfield-heights-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.11/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.11/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.11/fast/forms/placeholder-position-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.11/fast/forms/search/searchfield-heights-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/huge-mac-input-clamped-height-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/huge-mac-input-clamped-width-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/replaced/width100percent-searchfield-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-mac10.9/transforms/transformed-focused-text-input-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-retina/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-retina/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-retina/fast/forms/placeholder-position-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac-retina/fast/forms/search/searchfield-heights-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/fast/forms/huge-mac-input-clamped-height-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/fast/forms/huge-mac-input-clamped-width-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/searchfield-heights-expected.png
[modify] https://crrev.com/dfe378426b93e089fbcbf605284f842092d333ac/third_party/WebKit/LayoutTests/platform/mac/transforms/transformed-focused-text-input-expected.png

Labels: TE-Verified-60.0.3107.4 TE-Verified-M60
Verified this issue on Mac OS 10.12.4 using chrome latest dev #60.0.3107.4 by following steps mentioned in the original comment, Observed the 'Reset all to default’ button is displayed properly as expected. Hence adding TE-Verified label.

Thanks!
Screen Shot 2017-05-23 at 12.43.29 PM.png
173 KB View Download

Comment 8 by enne@chromium.org, Aug 28 2017

Status: Fixed (was: Assigned)

Sign in to add a comment