New issue
Advanced search Search tips

Issue 863376 link

Starred by 1 user

Issue metadata

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


Participants' hotlists:
document.open


Sign in to add a comment

DidStopLoading() not fired when document.write() is called when the document is loaded but not fully parsed yet.

Project Member Reported by arthurso...@chromium.org, Jul 13

Issue description

Chrome Version: d46aa32b88c06ba76517c63eb96db3ff922988cd #573239

What steps will reproduce the problem?
(1) Navigate to https://document-write-didstoploading.glitch.me/
~~~
<html>
  <body>
    <script>
      setTimeout(function(){
        document.write("hello");
      }, 0);
    </script>
    0) <script></script><div></div>
    1) <script></script><div></div>
    2) <script></script><div></div>
    3) <script></script><div></div>
    4) <script></script><div></div>
    5) <script></script><div></div>
    6) <script></script><div></div>
    7) <script></script><div></div>
    8) <script></script><div></div>
    9) <script></script><div></div>
    10) <script></script><div></div>
    11) <script></script><div></div>
    12) <script></script><div></div>
    13) <script></script><div></div>
    14) <script></script><div></div>
    15) <script></script><div></div>
    16) <script></script><div></div>
    17) <script></script><div></div>
    18) <script></script><div></div>
    19) <script></script><div></div>
    20) <script></script><div></div>
    21) <script></script><div></div>
    22) <script></script><div></div>
    23) <script></script><div></div>
    24) <script></script><div></div>
    25) <script></script><div></div>
    26) <script></script><div></div>
    27) <script></script><div></div>
    28) <script></script><div></div>
    29) <script></script><div></div>
    30) <script></script><div></div>
    31) <script></script><div></div>
    32) <script></script><div></div>
    33) <script></script><div></div>
    34) <script></script><div></div>
    35) <script></script><div></div>
    36) <script></script><div></div>
    37) <script></script><div></div>
    38) <script></script><div></div>
    39) <script></script><div></div>
    40) <script></script><div></div>
    41) <script></script><div></div>
    42) <script></script><div></div>
    43) <script></script><div></div>
    44) <script></script><div></div>
    45) <script></script><div></div>
    46) <script></script><div></div>
    47) <script></script><div></div>
    48) <script></script><div></div>
    49) <script></script><div></div>
    50) <script></script><div></div>
    51) <script></script><div></div>
    end
  </body>
</html>
~~~

Then the document never stop loading. The loading indicator is spinning forever.

Note: Why am I using 50 <script> and <div>? This relies on HTMLParserScheduler::ShouldYield() heuristics.
This bug is highly similar to   https://crbug.com/855033  
 
Cc: arthurso...@chromium.org
Description: Show this description
Owner: arthurso...@chromium.org
Status: Started (was: Available)
I have a WIP patch.
https://chromium-review.googlesource.com/c/chromium/src/+/1136637
It adds a regression test and maybe a fix (not sure about that).
I think I only need to update a few tests that are using document.write() in a onload handler.

I will be OOO until 2018/7/28. Feel free to take my CL if you want, else I will continue when I come back.
Cc: timothygu@chromium.org
Owner: ----
Status: Available (was: Started)
After discussing it in https://chromium-review.googlesource.com/c/chromium/src/+/1136637, I won't proceed with the fix and keep the bug.

I am no more working on it. Removing myself.

Sign in to add a comment