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

Issue 709718 link

Starred by 7 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 3
Type: Bug-Regression



Sign in to add a comment

Transitions start after external stylesheet loads when a form control exists

Reported by ad...@cleanpaw.com, Apr 8 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36

Steps to reproduce the problem:
1. Run the HTML file in Chrome or Opera
2.
3. 

What is the expected behavior?
When the page loads the text grows from small to large.  

What went wrong?
The element <input type="checkbox"> conflicts with the line "transition: .5s;" and causes the page to render incorrectly.  If you remove the <input> element the text renders normally.  This is valid HTML.

In addition you can eliminate the bug if you remove the comments around the <style> tag in the HTML file and use local CSS.  The CSS inside the <style> tag is identical to what is found in the external CSS file. The bug only occurs if the CSS is external.

Did this work before? N/A 

Does this work in other browsers? No
 This bug occurs in Chrome and Opera

Chrome version: 57.0.2987.133  Channel: stable
OS Version: 10.0
Flash Version: 

I discovered that if <div class="trainwreck"><a href="#">link.com</a></div> is placed inside a flexbox the error does not occur.
 
chrome-opera-transition-bug.zip
874 bytes Download

Comment 1 by ad...@cleanpaw.com, Apr 8 2017

If I wasn't clear when the page loads the text grows from small to large.  Remove the <input> element or load the CSS locally and the bug doesn't occur and the page renders normally.
Components: Blink>CSS
Labels: -Type-Bug -Pri-2 hasbisect-per-revision M-59 OS-Linux OS-Mac Pri-1 Type-Bug-Regression
Owner: cbiesin...@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce the issue on Windows 10, mac 10.12.4 and Ubuntu 14.04 using chrome reported version #57.0.2987.133 and latest canary #59.0.3068.1.

Bisect Information:
=====================
Good build: 47.0.2494.0   Revision(345501)
Bad Build : 47.0.2495.0   Revision(345750)

Change Log URL: 
https://chromium.googlesource.com/chromium/src/+log/3a55bcecda30c5e3990f1dd783505acde0cce9ba..7e69b9af78de854121bb02c91e7a41526e9c141e

The issue is broken in M-47. Hence, providing blink change log which is as follows:
Blink Change Log:
https://chromium.googlesource.com/chromium/blink/+log/04b637a..8122aac

From the above change log suspecting below change
Review url: https://codereview.chromium.org/1314923005

cbiesinger@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner.

Thanks...!!
Cc: alancutter@chromium.org
Components: -Blink>CSS Blink>Forms>Checkbox
Labels: Hotlist-Interop
Owner: ----
Status: Available (was: Assigned)
I highly doubt that https://codereview.chromium.org/1314923005 is the cause of this bug.
On inspection this is due to the stylesheet loading after the <a> element has had its style computed causing the next style computation to trigger the transition to start.

The <input type="checkbox"> element must be forcing an early style recalc, removing it from the page causes the bug to go away.

Input team: Can this forced style recalc be avoided?

Comment 4 by tkent@chromium.org, Apr 13 2017

Components: UI>Browser>Autofill
Status: Untriaged (was: Available)
Expected result: No font-size animation
Actual result with Chrome: font-size grows

Right?

This is due to Autofill code.

3   libblink_web.dylib                  0x000000013cca3d8a blink::WebElement::HasNonEmptyLayoutSize() const + 234
4   libchrome_dll.dylib                 0x00000001218d5c12 autofill::form_util::IsWebElementVisible(blink::WebElement const&) + 34
5   libchrome_dll.dylib                 0x000000012193a682 autofill::(anonymous namespace)::GetPasswordForm(...) + 1490
6   libchrome_dll.dylib                 0x000000012193e7e9 autofill::CreatePasswordFormFromUnownedInputElements(...) + 1177
7   libchrome_dll.dylib                 0x000000012190f7d7 autofill::PasswordAutofillAgent::SendPasswordForms(bool) + 3735
8   libchrome_dll.dylib                 0x0000000121911569 autofill::PasswordAutofillAgent::DidFinishDocumentLoad() + 57
9   libcontent.dylib                    0x0000000130453af4 content::RenderFrameImpl::DidFinishDocumentLoad(blink::WebLocalFrame*) + 980
10  libblink_web.dylib                  0x000000013cc01332 blink::LocalFrameClientImpl::DispatchDidFinishDocumentLoad() + 162

3   libblink_web.dylib                  0x000000013cd2b30f blink::WebNode::IsFocusable() const + 271
4   libchrome_dll.dylib                 0x00000001218d5c26 autofill::form_util::IsWebElementVisible(blink::WebElement const&) + 54
5   libchrome_dll.dylib                 0x00000001218d5a40 autofill::form_util::IsSomeControlElementVisible(blink::WebVector<blink::WebFormControlElement> const&) + 176
6   libchrome_dll.dylib                 0x000000012190f6f2 autofill::PasswordAutofillAgent::SendPasswordForms(bool) + 3506
7   libchrome_dll.dylib                 0x00000001219115ba autofill::PasswordAutofillAgent::DidFinishLoad() + 26
8   libcontent.dylib                    0x0000000130454da2 content::RenderFrameImpl::DidFinishLoad(blink::WebLocalFrame*) + 1122
9   libblink_web.dylib                  0x000000013cd0b79c blink::WebLocalFrameImpl::DidFinish() + 124

Summary: Transitions start after external stylesheet loads when a checkbox exists (was: Found significant bug in Chrome and Operas rendering engine)

Comment 6 by phistuck@gmail.com, Apr 13 2017

Related/duplicate -
 Issue 676158 
 Issue 693088 
Cc: krajshree@chromium.org cbiesin...@chromium.org
 Issue 693088  has been merged into this issue.

Comment 8 by tkent@chromium.org, Apr 14 2017

Components: -Blink>Forms>Checkbox UI>Browser>Passwords Blink>Forms
Summary: Transitions start after external stylesheet loads when a form control exists (was: Transitions start after external stylesheet loads when a checkbox exists)

Comment 9 by tkent@chromium.org, Apr 14 2017

Cc: suzyh@chromium.org dtapu...@chromium.org
 Issue 676158  has been merged into this issue.

Comment 10 by vabr@chromium.org, Apr 21 2017

Components: -UI>Browser>Autofill -UI>Browser>Passwords
This seems related to rendering, not to Chrome's support with filling forms.

Comment 11 by tkent@chromium.org, Apr 24 2017

Cc: vabr@chromium.org
Components: UI>Browser>Passwords UI>Browser>Autofill
vabr@, this is an issue of autofill code. We should not call WebElement::HasNonEmptyLayoutSize() before the first layout.

Comment 12 by vabr@chromium.org, Apr 24 2017

Cc: kolos@chromium.org
Could this have been introduced by https://codereview.chromium.org/2769023003 ?

Comment 13 by tkent@chromium.org, Apr 25 2017

> Could this have been introduced by https://codereview.chromium.org/2769023003 ?

Probably no. This issue is not a recent regression.

Comment 14 by kolos@chromium.org, Apr 26 2017

HasNonEmptyLayoutSize is used to check visibility when the layout is forbidden (https://cs.chromium.org/chromium/src/components/autofill/content/renderer/form_autofill_util.cc?rcl=2369b7f3dec2f78a760ed52bf64badb2240a1968&l=1332). But HasNonEmptyLayoutSize actually raises layout. It is legacy code. 

tkent@: could you recommend any function that gives approximation of visibility when the layout is forbidden? 

Comment 15 by tkent@chromium.org, Apr 27 2017

> tkent@: could you recommend any function that gives approximation of visibility when the layout is forbidden? 

No such way essentially.
Can we postpone anything until the first layout?


Comment 16 by kolos@chromium.org, Apr 27 2017

Maybe we can just return true or false for all elements. I need to discuss it with the team.  

Comment 17 by vabr@chromium.org, May 2 2017

Labels: Hotlist-Polish
(Adding Hotlist-Polish for password manager triaging -- this is a crash, and that is user visible. We use Hotlist-Polish for user visible bugs.)

Comment 18 by tkent@chromium.org, May 12 2017

Components: -Blink>Forms

Comment 19 by suzyh@chromium.org, Jun 13 2017

Cc: -suzyh@chromium.org

Comment 20 by vabr@chromium.org, Oct 19 2017

Labels: -Pri-1 Pri-3
Status: Available (was: Untriaged)
Downgrading priority, because M59 has sailed a long ago and this apparently did not need an escalatation.
Status: Untriaged (was: Available)
Components: -UI>Browser>Autofill
Status: Available (was: Untriaged)
Looks similar/duplicate of issue 332189.
Cc: -vabr@chromium.org
vabr going hobby only -> reducing involvement.
Please contact me directly in urgent matters.

Sign in to add a comment