Closed Bug 213869 Opened 21 years ago Closed 21 years ago

object with height="100%" does appear only on 30% of the screen.

Categories

(Core :: Layout, defect)

x86
All
defect
Not set
major

Tracking

()

RESOLVED INVALID

People

(Reporter: ewl+mozilla, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624

When loading the page copied below, the applet occupies only roughly 200 pixels in
height instead of occupying the whole height. This makes this specific application
non utilizable.

The problem occurs with the browser I use to enter the bug, as well as with
the mozilla Debian package 1.4-1 under Linux Debian testing/unstable.
Under Windows I use Java Plug-in 1.3.1_03 for Netscape Navigator (DLL Helper);
under Linux Blackdown Java 1.4.1

The problem did appear after I installed Mozilla 1.4 and I'm sure that I
didn't change the java runtime; I'm pretty sure that the page didn't change in
the mean time.

The application which delivers this page is Niku Time from www.niku.com (the
page is internal to the company I work for).

Reproducible: Always

Steps to Reproduce:
1. Load the page

Actual Results:  
applet does only appear on roughly 200 pixels height (doesn't seem to be a
percentage of the total browser height).

Expected Results:  
The applet should use the whole height of the browser window.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Niku Time</title></head>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0"
marginwidth="0" marginheight="0">
<!-- Script to determine OS and browser =-->
<script type="text/javascript" language="JavaScript">
<!-- Comment for browsers that don't support script.
      var _info = navigator.userAgent.toLowerCase() ;
      var _ns = false;   var _ns6 = false;
      var _ie = (_info.indexOf("msie") >= 0 && _info.indexOf("win") >= 0 &&
_info.indexOf("windows 3.1") < 0 && _info.indexOf("opera") < 0) ;
      var _ie6 = (_ie && _info.indexOf("msie 6.") >= 0) ;
      // end Comment for browsers that don't support script. -->
</script>
<comment>
<script type="text/javascript" language="JavaScript1.1">
<!-- Comment for browsers that don't support script
        var _ns = (navigator.appName.indexOf("Netscape") >= 0
                  && ((_info.indexOf("win") > 0 && _info.indexOf("win16") < 0)
                  || _info.indexOf("sun") > 0));
        var _ns6 = (_info.indexOf("netscape6") > 0) ;
        // end Comment for browsers that don't support script. -->
</script>
</comment>
<script type="text/javascript" language="JavaScript">
<!-- Comment for browsers that don't support script
    // launch server-based applet using Sun plugin
    //
    var path = window.location.pathname ;
    var idx = path.lastIndexOf("/") ;
    var appletCodeBase = "/niku/time/" ; // path.substring(0, idx+1) ;
    var appletCode = "com.niku.timeapplet.SunPluginApplet" ;
    var appletArchive = "timeapplet.jar" ;

    var objClsid = "8AD9C840-044E-11D1-B3E9-00805F499D93" ;
    var forceJpiAttrib = "" ;
    var pluginPage = "/niku/app?action=mainnav.jreinstallation" ;
    var appletVerStr = "1.0.1.C" ;
    var appletMimeType = "application/x-java-applet"+forceJpiAttrib ;

    var gotPlug = true ;
    if (_ns) gotPlug = checkNSForSupportedMimeType(appletMimeType) ;

    if (!gotPlug) {
      window.location = pluginPage ;
    } else {
      document.writeln("<object classid=\"clsid:"+objClsid+"\" height=\"100%\"
width=\"100%\">") ;
      document.writeln("  <param name=\"code\" value=\""+appletCode+"\" />") ;
      document.writeln("  <param name=\"codebase\" value=\""+appletCodeBase+"\"
/>") ;
      document.writeln("  <param name=\"type\" value=\""+appletMimeType+"\" />") ;
      document.writeln("  <param name=\"scriptable\" value=\"false\" />") ;
      document.writeln("  <param name=\"cache_option\" value=\"Plugin\">") ;
      document.writeln("  <param name=\"cache_archive\"
value=\""+appletArchive+"\">") ;
      document.writeln("  <param name=\"cache_version\"
value=\""+appletVerStr+"\">") ;
      document.writeln("  <comment>") ;
      document.writeln("    <embed
type=\"application/x-java-applet"+forceJpiAttrib+"\"") ;
      document.writeln("           code=\""+appletCode+"\"") ;
      document.writeln("           codebase=\""+appletCodeBase+"\"") ;
      document.writeln("           width=\"100%\" height=\"100%\"
scriptable=\"false\"") ;
      document.writeln("           cache_option=\"Plugin\"") ;
      document.writeln("           cache_archive=\""+appletArchive+"\"") ;
      document.writeln("           cache_version=\""+appletVerStr+"\"") ;
      document.writeln("           pluginspage=\""+pluginPage+"\">") ;
      document.writeln("      <noembed>") ;
      document.writeln("        <h3><a href=\""+pluginPage+"\">") ;
      document.writeln("          Click here to get the Java Plugin.") ;
      document.writeln("        </a></h3>") ;
      document.writeln("      </noembed>") ;
      document.writeln("    </embed>") ;
      document.writeln("  </comment>") ;
      document.writeln("</object>") ;
    }

    function checkNSForSupportedMimeType(mimeType) {
        var gotcha = false ;
        var ilen = navigator.plugins.length ;
        var ii ;
        for (ii=0; (ii < ilen) && !gotcha; ii++) {
            var jlen = navigator.plugins[ii].length ;
            var jj ;
            for (jj=0; (jj < jlen) && !gotcha; jj++) {
                if (mimeType == navigator.plugins[ii][jj].type) {
                  gotcha = true ;
                }
            }
        }
        return gotcha ;
    }
    // end comment for browsers that don't support script -->
</script>
<noscript>
<p>You must have JavaScript enabled to use this feature!</p>

</noscript>
</body>
</html>
The page is claiming to be XHTML and hence is laid out in standards layout mode.
 We used to use quirks rendering of <object> in both modes, leading to numerous
correctness bugs. 1.4 is the first milestone to fix that.
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Resolution: --- → INVALID
Hi,

sorry for this, but your answer might be correct but it doesn't resolve my
problem. I looked in the DTD for XHTML transitional and it looks like to me
that the object element is a valid one.

On the other hand, it might be I just didn't really understand your point.
I reiterate, it's about a standard application (Niku Time from niku.com).
I would really appreciate if you could provide me with a good argumentation to
file a bug at our IT against this application.

I hope you understand my position,
Eric
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
> I would really appreciate if you could provide me with a good argumentation

Sure thing.

The basic problem is that height styling is a CSS thing.  The CSS specification
states (http://www.w3.org/TR/CSS21/visudet.html#propdef-height):

  <percentage>
    Specifies a percentage height. 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 positioned, the value is interpreted like
    'auto'.

In this case, the containing block for the <embed> is the <body>, which indeed
has auto height set.  So the 100% height on <embed> is treated as "auto", and
the intrinsic height of an <embed> is 200px, leading to the rendering you see.

Setting height:100% on both <body> and its containing block (<html>), will lead
to the desired rendering.

So yes, the markup is valid, it's just not saying what you think it's saying...

Now if the page had no doctype, we would violate the CSS spec and render the
100% height in a different way, for backwards compatibility with old pages
authored before CSS existed.  But this page is claiming to follow a recent
doctype, thus we do not purposefully introduce bugs into our rendering of it.

Hope this helps.
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago21 years ago
Resolution: --- → INVALID
Whiteboard: DUPEME
You need to log in before you can comment on or make changes to this bug.