New issue
Advanced search Search tips

Issue 651343 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocking:
issue 624697



Sign in to add a comment

inline-plaintext-relayout-with-leading-neutrals.html fails when setInnerText() is called after first layout

Project Member Reported by hirosh...@chromium.org, Sep 29 2016

Issue description

Currently
fast/text/international/inline-plaintext-relayout-with-leading-neutrals.html
calls runTest() inside body's onload handler (and passes successfully), but if runTest() is called after body's onload, the test fails.
 
Blocking: 624697
See https://codereview.chromium.org/2381513005 for the test failure.

Comment 2 by drott@chromium.org, Oct 3 2016

Status: Available (was: Untriaged)
Description: Show this description
Cc: kojii@chromium.org
Labels: OS-All
Summary: inline-plaintext-relayout-with-leading-neutrals.html fails when setInnerText() is called after first layout (was: inline-plaintext-relayout-with-leading-neutrals.html fails when runTest() is called after document onload)
The test fails if setInnerText() is called after the first layout:
it fails when document.body.offsetTop is touched before setInnerText().

Currently, document.onload() in the test is called before the first layout.
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 7 2016

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

commit 52d00fd56184deadce99ff4fe599156ea1da3543
Author: hiroshige <hiroshige@chromium.org>
Date: Mon Nov 07 19:36:50 2016

Remove EventSender from HTMLStyleElement

This CL replaces EventSender in HTMLLinkElement with postTask():
Instead of calling HTMLStyleElement::dispatchPendingLoadEvents() in
Document::implicitClose() to enforce <style>'s onload events to be executed
before the document's onload event, this CL blocks document's onload until
<style>'s onload event using IncrementLoadEventDelayCount.

This CL changes the timing of body onload, particularly causes some of the
following events that were previously called AFTER document onload
to be called BEFORE document onload:
[A] The first layout.
[B] Latter half of FrameLoader::finishedParsing().
[C] JavaScript function |f| scheduled as |setTimeout(f, 0)| in the <script>
    at the end of <body>.

Notable test fixes (marked with the causes of failures):

fast/text/international/inline-plaintext-relayout-with-leading-neutrals.html:
  [A] Marked as flaky, because it depends on whether body onload is called
  before (Pass) or after (Failure) the first layout (crbug/651343).

fast/scrolling/scrollbar-tickmarks-styled.html:
  [A] Fixed by https://codereview.chromium.org/2450793002.

fast/scrolling/scrollbar-tickmarks-hittest.html:
  [A] Fixed by https://codereview.chromium.org/2484613003.

virtual/rootlayerscrolls/fast/history/scroll-restoration/scroll-restoration-fragment-navigation-crossdoc.html:
  [B] Fixed by https://codereview.chromium.org/2467433002.

svg/animations/animate-end-attribute-numeric-precision.html:
  [C] After this CL, calling executeTest() in
  svg/animations/script-tests/animate-end-attribute-numeric-precision.js
  causes sampleAnimation() to be called before document onload and test to fail.
  We set |animationStartsImmediately| true instead, in order to ensure the test
  is started in document onload.

accessibility/inline-text-changes.html:
  [Race between the accessibility notification and document onload]
  Ignore the second call of the notification handler.
  Even before this CL, the notification is called multiple times, but the first
  notification terminated the test immediately by finishJSTest() because it is
  called after document onload.
  This CL makes the notification calls before document onload, and thus the test
  continues until document onload and we have to ignore the second call
  explicitly.

fast/block/float/marquee-shrink-to-avoid-floats.html:
  The layout tree changes slightly, but it looks like acceptable because the
  image expectation matches.

BUG= 624697 , 651343

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

[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/accessibility/inline-text-changes.html
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/animations/animation-duration-infinite.html
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/fast/block/float/marquee-shrink-to-avoid-floats-expected.txt
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable-expected.txt
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/fast/forms/text/text-set-selection-crash-expected.txt
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/fast/harness/error-in-async-test-expected.txt
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/http/tests/loading/preload-img-test-expected.txt
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/LayoutTests/svg/animations/script-tests/animate-end-attribute-numeric-precision.js
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp
[modify] https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543/third_party/WebKit/Source/core/html/HTMLStyleElement.h

Project Member

Comment 6 by bugdroid1@chromium.org, Nov 7 2016

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

commit 98116e47e7660b5ad3a71949efea694f96c1104e
Author: xlai <xlai@chromium.org>
Date: Mon Nov 07 20:43:21 2016

Revert of Remove EventSender from HTMLStyleElement (patchset #20 id:380001 of https://codereview.chromium.org/2269043002/ )

Reason for revert:
This CL causes two layout tests to fail. See
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.9/builds/39126

Original issue's description:
> Remove EventSender from HTMLStyleElement
>
> This CL replaces EventSender in HTMLLinkElement with postTask():
> Instead of calling HTMLStyleElement::dispatchPendingLoadEvents() in
> Document::implicitClose() to enforce <style>'s onload events to be executed
> before the document's onload event, this CL blocks document's onload until
> <style>'s onload event using IncrementLoadEventDelayCount.
>
> This CL changes the timing of body onload, particularly causes some of the
> following events that were previously called AFTER document onload
> to be called BEFORE document onload:
> [A] The first layout.
> [B] Latter half of FrameLoader::finishedParsing().
> [C] JavaScript function |f| scheduled as |setTimeout(f, 0)| in the <script>
>     at the end of <body>.
>
> Notable test fixes (marked with the causes of failures):
>
> fast/text/international/inline-plaintext-relayout-with-leading-neutrals.html:
>   [A] Marked as flaky, because it depends on whether body onload is called
>   before (Pass) or after (Failure) the first layout (crbug/651343).
>
> fast/scrolling/scrollbar-tickmarks-styled.html:
>   [A] Fixed by https://codereview.chromium.org/2450793002.
>
> fast/scrolling/scrollbar-tickmarks-hittest.html:
>   [A] Fixed by https://codereview.chromium.org/2484613003.
>
> virtual/rootlayerscrolls/fast/history/scroll-restoration/scroll-restoration-fragment-navigation-crossdoc.html:
>   [B] Fixed by https://codereview.chromium.org/2467433002.
>
> svg/animations/animate-end-attribute-numeric-precision.html:
>   [C] After this CL, calling executeTest() in
>   svg/animations/script-tests/animate-end-attribute-numeric-precision.js
>   causes sampleAnimation() to be called before document onload and test to fail.
>   We set |animationStartsImmediately| true instead, in order to ensure the test
>   is started in document onload.
>
> accessibility/inline-text-changes.html:
>   [Race between the accessibility notification and document onload]
>   Ignore the second call of the notification handler.
>   Even before this CL, the notification is called multiple times, but the first
>   notification terminated the test immediately by finishJSTest() because it is
>   called after document onload.
>   This CL makes the notification calls before document onload, and thus the test
>   continues until document onload and we have to ignore the second call
>   explicitly.
>
> fast/block/float/marquee-shrink-to-avoid-floats.html:
>   The layout tree changes slightly, but it looks like acceptable because the
>   image expectation matches.
>
> BUG= 624697 , 651343
>
> Committed: https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543
> Cr-Commit-Position: refs/heads/master@{#430348}

TBR=haraken@chromium.org,kojii@chromium.org,japhet@chromium.org,yhirano@chromium.org,hiroshige@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 624697 , 651343

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

[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/accessibility/inline-text-changes.html
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/animations/animation-duration-infinite.html
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/fast/block/float/marquee-shrink-to-avoid-floats-expected.txt
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable-expected.txt
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/fast/forms/text/text-set-selection-crash-expected.txt
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/fast/harness/error-in-async-test-expected.txt
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/http/tests/loading/preload-img-test-expected.txt
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/LayoutTests/svg/animations/script-tests/animate-end-attribute-numeric-precision.js
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp
[modify] https://crrev.com/98116e47e7660b5ad3a71949efea694f96c1104e/third_party/WebKit/Source/core/html/HTMLStyleElement.h

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 8 2016

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

commit b8cb16f79a95c8bc639a9c58785a8484c197aca9
Author: hiroshige <hiroshige@chromium.org>
Date: Tue Nov 08 10:53:43 2016

Reland of Remove EventSender from HTMLStyleElement

This CL replaces EventSender in HTMLLinkElement with postTask():
Instead of calling HTMLStyleElement::dispatchPendingLoadEvents() in
Document::implicitClose() to enforce <style>'s onload events to be executed
before the document's onload event, this CL blocks document's onload until
<style>'s onload event using IncrementLoadEventDelayCount.

This CL changes the timing of body onload, particularly causes some of the
following events that were previously called AFTER document onload
to be called BEFORE document onload:
[A] The first layout.
[B] Latter half of FrameLoader::finishedParsing().
[C] JavaScript function |f| scheduled as |setTimeout(f, 0)| in the <script>
    at the end of <body>.

Notable test fixes (marked with the causes of failures):

fast/text/international/inline-plaintext-relayout-with-leading-neutrals.html:
  [A] Marked as flaky, because it depends on whether body onload is called
  before (Pass) or after (Failure) the first layout (crbug/651343).

fast/scrolling/scrollbar-tickmarks-styled.html:
  [A] Fixed by https://codereview.chromium.org/2450793002.

fast/scrolling/scrollbar-tickmarks-hittest.html:
  [A] Fixed by https://codereview.chromium.org/2484613003.

fast/forms/text/text-set-selection-crash.html:
  [A] There is race between "Blink Test Plugin: initializing" console log
  (which is asynchronously triggered by the first layout) and document onload
  (=test finish). Because the test should pass if not crashes, this CL make
  the test to ignore the log, by converting the test to use testharness.js
  and removing the -expected.txt.

virtual/rootlayerscrolls/fast/history/scroll-restoration/scroll-restoration-fragment-navigation-crossdoc.html:
  [B] Fixed by https://codereview.chromium.org/2467433002.

svg/animations/animate-end-attribute-numeric-precision.html:
  [C] After this CL, calling executeTest() in
  svg/animations/script-tests/animate-end-attribute-numeric-precision.js
  causes sampleAnimation() to be called before document onload and test to fail.
  We set |animationStartsImmediately| true instead, in order to ensure the test
  is started in document onload.

fast/harness/error-in-async-test.html:
  [C] Whether "Uncaught Exception" console log is shown depends on whether
  buggyAsyncCode() is executed before or after document onload. This CL
  deflakes the test by ensuring it is executed after document onload.

accessibility/inline-text-changes.html:
  [Race between the accessibility notification and document onload]
  Ignore the second call of the notification handler.
  Even before this CL, the notification is called multiple times, but the first
  notification terminated the test immediately by finishJSTest() because it is
  called after document onload.
  This CL makes the notification calls before document onload, and thus the test
  continues until document onload and we have to ignore the second call
  explicitly.

fast/block/float/marquee-shrink-to-avoid-floats.html:
  The layout tree changes slightly, but it looks like acceptable because the
  image expectation matches.

BUG= 624697 , 651343

Committed: https://crrev.com/52d00fd56184deadce99ff4fe599156ea1da3543
Review-Url: https://codereview.chromium.org/2269043002
Cr-Original-Commit-Position: refs/heads/master@{#430348}
Cr-Commit-Position: refs/heads/master@{#430572}

[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/accessibility/inline-text-changes.html
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/animations/animation-duration-infinite.html
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/fast/block/float/marquee-shrink-to-avoid-floats-expected.txt
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable-expected.txt
[delete] https://crrev.com/5db5553160affb9ea2464666320c3855e5d203d2/third_party/WebKit/LayoutTests/fast/forms/text/text-set-selection-crash-expected.txt
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/fast/forms/text/text-set-selection-crash.html
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/fast/harness/error-in-async-test.html
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/http/tests/loading/preload-img-test-expected.txt
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/LayoutTests/svg/animations/script-tests/animate-end-attribute-numeric-precision.js
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp
[modify] https://crrev.com/b8cb16f79a95c8bc639a9c58785a8484c197aca9/third_party/WebKit/Source/core/html/HTMLStyleElement.h

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 7 2017

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

commit 0e617fa946919277991e615907e2617872e423c6
Author: qyearsley <qyearsley@chromium.org>
Date: Fri Apr 07 18:39:43 2017

Update test expectations for tests are recently not flaky.

This change was made automatically with update-test-expectations.

Flakiness dashboard:
https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=webkit_layout_tests&tests=media/autoplay-muted.html,http/tests/inspector/service-workers/service-worker-manager.html,fast/text/international/inline-plaintext-relayout-with-leading-neutrals.html,http/tests/inspector/resource-tree/resource-tree-non-unique-url.html,http/tests/inspector-enabled/console-stack-overflow-source-url.html,virtual/mojo-loading/http/tests/inspector-enabled/console-stack-overflow-source-url.html,virtual/mojo-loading/http/tests/security/link-crossorigin-preload-no-cors.html,http/tests/inspector/tracing/timeline-script-parse.html,http/tests/media/media-source/mediasource-seek-beyond-duration.html,virtual/mojo-loading/http/tests/media/media-source/mediasource-seek-beyond-duration.html,external/wpt/fetch/api/redirect/redirect-location-worker.html,external/wpt/fetch/api/redirect/redirect-location.html,external/wpt/fetch/api/redirect/redirect-origin-worker.html,external/wpt/fetch/api/request/request-cache-default-conditional.html,external/wpt/service-workers/service-worker/registration-iframe.https.html

BUG= 691045 , 564403 ,651343, 581468 , 666628 ,664839, 678489 , 678490 ,705490, 697087 

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

[modify] https://crrev.com/0e617fa946919277991e615907e2617872e423c6/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 9 by sheriffbot@chromium.org, Apr 11 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 10 by kojii@chromium.org, Apr 11 2018

Status: Available (was: Untriaged)

Sign in to add a comment