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

Issue 646204 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 372245
Owner: ----
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

!range.document().needsLayoutTreeUpdate() in EditingUtilities.cpp

Project Member Reported by ClusterFuzz, Sep 13 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=6214828790382592

Fuzzer: mbarbella_js_mutation_layout
Job Type: linux_debug_content_shell_drt
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  !range.document().needsLayoutTreeUpdate() in EditingUtilities.cpp
  blink::normalizeRangeAlgorithm<>
  blink::normalizeRange
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=417243:417253

Minimized Testcase (0.47 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv97OGRpXxd-z7AP4Mp0WGDbmzoE60CC5sbrWftHk28eBr1-bEgOesmbOf8V_NvWS6C3Qx0H39QHZnUrzjaKkJiaLb5XV474x8AkUiLQLWnOV9b_T3VymXtbkOKxO1-rt4OIGNJ77vBqV7IJ46zuVNPMTOMz45Q?testcase_id=6214828790382592
<b id="test">
    Sed dictum erat sit amet pharetra pretium.
  <script>
            var __v_0 = document.getElementById('test').firstChild;
            var __v_1 = document.createRange();
            __v_1.setEnd(__v_0, __v_0.length - 5);
            window.getSelection().addRange(__v_1);
</script>
    <video autoplay=""<source src="../../../media/white.webm" type="video/webm">
     <track>
  <script>
document.getElementsByTagName('track')[0].track.mode = 'showing';
</script>


Issue manually filed by: mummareddy

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Components: Tools>Test>FindIt>NoResult
Labels: M-55 Te-Logged
Owner: xiaoche...@chromium.org
Status: Assigned (was: Untriaged)
Through code search on file EditingUtilities.cpp, suspected CL is 
https://chromium.googlesource.com/chromium/src/+/01c0fa0405b15a4492c7ae131c670b733fb9d8f5%5E%21/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
Cc: xiaoche...@chromium.org
Owner: yosin@chromium.org
Is it another case that <video> mutates DOM tree during |updateStyleAndLayout()|?

If so, guess we should triage to style team?
Components: Blink>Media>Track
Owner: ----
Status: Untriaged (was: Assigned)
It is LayoutTextTrack::layout() that makes the layout tree still dirty after |updateStyleAndLayout()| finishes.

Triaging to media team, and hope we could get rid of the |DeprecatedScheduleStyleRecalcDuringLayout| there.

Comment 4 by f...@opera.com, Sep 13 2016

Mergedinto: 372245
Status: Duplicate (was: Untriaged)
Project Member

Comment 5 by ClusterFuzz, Sep 24 2016

ClusterFuzz has detected this issue as fixed in range 420571:420810.

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=6214828790382592

Fuzzer: mbarbella_js_mutation_layout
Job Type: linux_debug_content_shell_drt
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  !range.document().needsLayoutTreeUpdate() in EditingUtilities.cpp
  blink::normalizeRangeAlgorithm<>
  blink::normalizeRange
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=417243:417253
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=420571:420810

Minimized Testcase (0.47 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv97OGRpXxd-z7AP4Mp0WGDbmzoE60CC5sbrWftHk28eBr1-bEgOesmbOf8V_NvWS6C3Qx0H39QHZnUrzjaKkJiaLb5XV474x8AkUiLQLWnOV9b_T3VymXtbkOKxO1-rt4OIGNJ77vBqV7IJ46zuVNPMTOMz45Q?testcase_id=6214828790382592
<b id="test">
    Sed dictum erat sit amet pharetra pretium.
  <script>
            var __v_0 = document.getElementById('test').firstChild;
            var __v_1 = document.createRange();
            __v_1.setEnd(__v_0, __v_0.length - 5);
            window.getSelection().addRange(__v_1);
</script>
    <video autoplay=""<source src="../../../media/white.webm" type="video/webm">
     <track>
  <script>
document.getElementsByTagName('track')[0].track.mode = 'showing';
</script>


See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Components: -Tools>Test>FindIt>NoResult
Project Member

Comment 7 by sheriffbot@chromium.org, Nov 22 2016

Labels: -Restrict-View-EditIssue
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label.

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

Sign in to add a comment