Summary: | [testcase] [patch] konqueror crashed | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | anton <benderamp> |
Component: | khtml renderer | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aiacovitti, dimichxp |
Priority: | NOR | Keywords: | testcase |
Version: | 4.10.97 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kdelibs/bb170448b18e7c98bc0e3febf1082e3db28eef89 | Version Fixed In: | 4.11.3 |
Sentry Crash Report: | |||
Attachments: |
draft patch to fix the bug
online testcase posted in comment #1 |
Description
anton
2010-05-07 09:44:25 UTC
Reduced to <body> <div id="base" style='height:100%; width:100%; position:absolute; background:#00ff00'/> <div class="popup" id="container" style="position:relative" > </div> </div> <script type="text/javascript"> document.getElementById("base").style.overflowX = "scroll"; document.getElementById("container").style.top = "0.0px"; </script> </body> As for me, it's 100% reproducible. Seems to be race, inserting alert (and waiting for some time) before `top' assignment prevents crash. I have tried to investigate this bug. Seems it happen when setStyle() of a RenderBlock tries to "fix" current layout due to position change, but the current layout have not been built yet. checkScrollbarsAfterLayout() which is called by attemptDirectLayerTranslation() relies on proper scrollbars state, so it fails because layouting was not yet done and scrollbars are not initialized. I have tried to fix it by not reusing incomplete layouts (patch attached), but I can't really tell if it is correct, it would be very nice if someone who is really familiar with KHTML will review and explain all that stuff more correctly. Created attachment 43340 [details]
draft patch to fix the bug
Created attachment 81510 [details] online testcase posted in comment #1 Git commit bb170448b18e7c98bc0e3febf1082e3db28eef89 by Andrea Iacovitti. Committed on 26/10/2013 at 23:48. Pushed by aiacovitti into branch 'KDE/4.11'. Fix crash. FIXED-IN: 4.11.3 M +5 -5 khtml/rendering/render_layer.cpp http://commits.kde.org/kdelibs/bb170448b18e7c98bc0e3febf1082e3db28eef89 |