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

Issue 607423 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Regression : Unwanted black traces of 'Device Model' are seen after clicking on 'Reset' button in 'Sensors' tab.

Reported by yfulgaon...@etouch.net, Apr 28 2016

Issue description

Chrome version : 52.0.2719.0 db7757b63f29696b9b465949f9704a0d9d149f2b-refs/heads/master@{#390251} 32/64 bit
OS :  Windows (7, 8, 10), Mac 10.10.5

What steps will reproduce the problem?
1. Launch chrome, open NTP and hit F12 key to open dev tools.
2. Press Esc key, click on 'More tools' icon and select 'Sensors' option.
3. Click on 'Accelerometer' drop down list, select 'Landscape left' option and click on 'Reset' button.
4. Again click on 'Accelerometer' drop down, select 'Landscape right' option and click on 'Reset' button.
5. Repeat step 3 and 4, observe.

Actual : Unwanted black traces of 'Device Model' are seen after clicking on 'Reset' button in 'Sensors' tab.
Expected : Unwanted black traces of 'Device Model' should not be seen after clicking on 'Reset' button. 

This is a regression issue, broken in 'M-52', below is manual bisect and will soon update other info.
Good Build : 52.0.2718.0
Bad Build : 52.0.2719.0
 
Actual_sensors.mp4
1.4 MB Download
Labels: hasbisect
Owner: l...@chromium.org
Status: Assigned (was: Unconfirmed)
Narrow Bisect info:
https://chromium.googlesource.com/chromium/src/+log/7e7d3daff9117163ca29f1614a9e45ee1cb47b23..c80c8d6b64756dbd6b3a34cbf2f7f5e6473eed0c?pretty=fuller&n=10000

Suspecting : r390131 from Narrow Bisect

Note : Above issue is not seen on Linux (ubuntu 14.04 LTS) OS.
Labels: ReleaseBlock-Stable
Adding RB label as this is a recent regression.

Comment 3 by l...@chromium.org, Apr 29 2016

Cc: samli@chromium.org
@samli, I think this may be an animations issue.  Whenever the orientation option is selected or the reset button is clicked, it boils down to a _setBoxOrientation() call in SensorsView.js

If the view adds a CSS transition class and updates the value of 'webkitTransform', there shouldn't be unwanted traces.  Could you please take a look or offer advice, Sam?

Comment 4 by samli@chromium.org, Apr 29 2016

Unable to reproduce on Mac 52.0.2720.0.
Labels: Needs-Feedback
Unable to reproduce the issue on Windows 7 using chrome latest canary M52-52.0.2723.0. Observed no black traces while flipping the Device model.

yfulgaonkar@ - Could you please recheck this issue on latest chrome canary and kindly update this bug.

Thanks!

Comment 6 by l...@chromium.org, May 3 2016

Update from my end: Able to repro this bug on Windows 7 using 52.0.2720.0.  Unable to reproduce on Mac or Linux 52.0.2723.0.

I'm not sure why this occurs, since it should be declaratively setting the 3D transforms.  Maybe someone on [blink-paint] can offer insight?

Also, there is an upcoming CL currently in review that will update the 3D phone with new images, which may impact this issue.  https://codereview.chromium.org/1923843003/

Comment 7 by l...@chromium.org, May 3 2016

Components: Blink>Animation

Comment 8 by samli@chromium.org, May 3 2016

Components: Blink>Paint
Cc: ajuma@chromium.org vollick@chromium.org wangxianzhu@chromium.org
Components: -Blink>Paint Blink>Compositing Blink>Paint>Invalidation
Status: Untriaged (was: Assigned)
I can repro this on Win7, but the behavior is inconsistent. It seems like we sometimes update the animation but fail to invalidate correctly for that frame. Most of the time we get it right, which suggest some race condition. Also, the artifact tends to get painted over quite quickly.

This should be a compositor animation if a 3D transform is involved (how do I run DevTools on DevTools?). So adding Compositor component, marking it as Untriaged, and CCing some of the usual suspects. I personally have no idea how invalidation works in this case.
luoe@ can confirm. But yes, just some transforms.
You can run Devtools on Devtools by popping out the Devtools window and using Ctrl+Shift+I shortcut again.

(https://chromium.googlesource.com/chromium/src/+/c80c8d6b64756dbd6b3a34cbf2f7f5e6473eed0c/third_party/WebKit/Source/devtools/front_end/emulation/sensors.css)
Status: Assign (was: Untriaged)
I can reproduce on Linux.
Status: Assigned (was: Assign)
@luoe: are you simply setting the transform: matrix(...) property on the
element with class accelerometer-box? I tried that directly by inspecting the
inspector and setting the property directly; it had no artifacts (not sure why,
but it didn't).

Can you reproduce this on a standalone webpage?
Cc: weiliangc@chromium.org jaydasika@chromium.org
This could be a damage tracking bug in cc, particularly if it only happens when using a composited animation and not when setting the property directly.
I had a similar thought. It also doesn't repro if you turn on "paint flashing"
or the frame rate widget in cc. What's an easy way to hack the code to test this
theory?
Making LayerImpl::LayerPropertyChanged always return true should do it (assuming the bug is failing to note that a layer property changed, rather than incorrectly computing the union of the old position and new one).

Comment 17 by l...@chromium.org, May 3 2016

@chrishtr: I am just setting the style.webkitTransform to a new matrix on an element with a transition rule.

Let me see if I can make a standalone webpage for repro and forward it to you.
ps. use unprefixed transform.
Components: -Blink>Animation -Blink>Paint>Invalidation Internals>Compositing
Owner: ajuma@chromium.org
That did the trick. Returning true from LayerImpl::LayerPropertyChanged causes the bug to no longer reproduce. Ali, sending to you for next steps.
Cc: chrishtr@chromium.org
Labels: -Needs-Feedback
With response to comment #5

Rechecked this issue on Windows 7 using latest canary M52-52.0.2723.0 and still able to reproduce the issue. Kindly review the attached screen cast.
Canary_behavior.mp4
1.0 MB Download
Cc: rnimmagadda@chromium.org
Still able to repro this issue on Windows 7 & MAC (10.11.4) for Google Chrome Canary Version - 52.0.2724.0 
Status: Started (was: Assigned)
Project Member

Comment 24 by bugdroid1@chromium.org, May 4 2016

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

commit 2da9a217f5c47d24bc75a1c7829b104b26bb5aac
Author: ajuma <ajuma@chromium.org>
Date: Wed May 04 22:35:41 2016

cc: Ensure damage in property tree nodes gets propagated to descendants

This propagates damage stored in property tree nodes to descendants, when
damage is copied over from old property trees to new ones. This ensures
that damage is up-to-date even if there are no other reasons to do a
full tree update.

BUG= 607423 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/2da9a217f5c47d24bc75a1c7829b104b26bb5aac/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/2da9a217f5c47d24bc75a1c7829b104b26bb5aac/cc/trees/property_tree.cc

Status: Fixed (was: Started)
Is this bug in M51 also?
Labels: Merge-Request-51
The underlying damage tracking bug in cc is indeed a regression in M51 (and can affect regular web content), so we should merge back the fix.
Status: Assigned (was: Fixed)

Comment 29 by tin...@google.com, May 5 2016

Labels: -Merge-Request-51 Merge-Approved-51 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M51 (branch: 2704)
Project Member

Comment 30 by bugdroid1@chromium.org, May 6 2016

Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef6b72f211b9882a7264ceec91f3486855f8b84e

commit ef6b72f211b9882a7264ceec91f3486855f8b84e
Author: Ali Juma <ajuma@chromium.org>
Date: Fri May 06 14:58:40 2016

cc: Ensure damage in property tree nodes gets propagated to descendants

This propagates damage stored in property tree nodes to descendants, when
damage is copied over from old property trees to new ones. This ensures
that damage is up-to-date even if there are no other reasons to do a
full tree update.

BUG= 607423 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1948163002
Cr-Commit-Position: refs/heads/master@{#391667}
(cherry picked from commit 2da9a217f5c47d24bc75a1c7829b104b26bb5aac)

Review URL: https://codereview.chromium.org/1949253006 .

Cr-Commit-Position: refs/branch-heads/2704@{#418}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/ef6b72f211b9882a7264ceec91f3486855f8b84e/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/ef6b72f211b9882a7264ceec91f3486855f8b84e/cc/trees/property_tree.cc
[modify] https://crrev.com/ef6b72f211b9882a7264ceec91f3486855f8b84e/cc/trees/property_tree.h

Cc: msrchandra@chromium.org
 Issue 607860  has been merged into this issue.
Labels: -M-52 M-51
Status: Fixed (was: Assigned)
Updating milestone to match the issue that was merged into this one.

Sign in to add a comment