Bug 158592 - [TESTCASE] Google code's source browser not showing up
Summary: [TESTCASE] Google code's source browser not showing up
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-02-29 20:46 UTC by Maksim Orlovich
Modified: 2009-05-23 04:44 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maksim Orlovich 2008-02-29 20:46:13 UTC
Version:           4.0.2 (KDE 4.0.2) (using 4.0.2 (KDE 4.0.2), compiled sources)
Compiler:          gcc
OS:                Linux (i686) release 2.6.24-tmb-desktop-1mdv

On e.g. http://code.google.com/p/kwebtest/source/browse/?r=1, we don't show directories/files Below is a reduction. The difference with IceWeasel seems to be in how we size #dirsandfiles --- it seems to make its height 60% of the canvas(?) or such (so the stuff below that can be omitted from the TC). Dunno what behavior is correct; Opera 9.5b agrees with us, though.

<style>

#dirsandfiles {
  border: 1px solid green;
  position: relative;
  height: 60%;
}


#dirlist {
  border: 1px solid red;
  position: absolute;
  top: 0; left: 0; bottom: 0; width: 30%; height: 100%;
  overflow: auto;
}

</style>

 <div>
    <div id="dirsandfiles">
        <div id="dirlist">
         Foo
        </div>
    </div>
</div>
Comment 1 Dmitriy Taychenachev 2009-04-30 06:13:30 UTC
I believe it is somewhat related to the following testcase:

<style>
#l0div {
  position: static;
  height: auto;
}
#l1div {
  position: relative;
  height: 50%;
}
</style>
<div id="l0div">
<div id="l1div">
</div>
</div>
<script language="javascript">
var div = document.getElementById("l1div");
var style = document.defaultView.getComputedStyle(div, null);
alert(style.height);
</script>

Opera/Arora say that height of l1div is half of initial containing block, while Konq says it is 0px. I have looked into css spec, and I think khtml is right. Conforming to http://www.w3.org/TR/CSS21/visudet.html#the-height-property "The percentage is calculated with respect to the height of the generated box's containing block. If the height of the containing block is not specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the value computes to 'auto'". So the "height: 50%;" of l1div is the same as "height: auto;" because height of CB (l0div) is auto. It would be nice if someone who is familiar with CSS/HTML will clarify that.
Comment 2 Germain Garand 2009-04-30 18:49:20 UTC
yeah, this is a well known quirk-mode spec violation.
Up to some monthes ago, Opera was with us for resisting this.
In version 9.6x however, it looks like they gave up too.

So I'm afraid we are alone now in defending this in all rendering modes, and will have to take action.
Comment 3 Germain Garand 2009-05-10 03:30:48 UTC
SVN commit 965861 by ggarand:

When computing percentage height, extend the recurse-to-containing-block
-when-size-is-auto quirk to apply to all objects, and not only to replaced
elements.

Opera was the last browser to support the same level of strictness as khtml
on this matter, but they finally gave up in 9.6x serie.

So we have to add this CSS violation in quirk mode to remain compatible ;(

BUG: 158592


 M  +9 -8      render_box.cpp  
 M  +1 -1      render_box.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=965861
Comment 4 Germain Garand 2009-05-23 04:44:12 UTC
SVN commit 971645 by ggarand:

automatically merged revision 965861:
When computing percentage height, extend the recurse-to-containing-block
-when-size-is-auto quirk to apply to all objects, and not only to replaced
elements.

Opera was the last browser to support the same level of strictness as khtml
on this matter, but they finally gave up in 9.6x serie.

So we have to add this CSS violation in quirk mode to remain compatible ;(

BUG: 158592

 M  +9 -8      render_box.cpp  
 M  +1 -1      render_box.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=971645