Bug 16556

Summary: Page div layers do not render in correct location. They end up overlapped.
Product: WebKit Reporter: Adam Williams <mysticalosx>
Component: EvangelismAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: ayg, dglazkov, info, webkit
Priority: P2 Keywords: HasReduction
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
URL: http://msnpiki.msnfanatic.com/index.php/MSNP9:Changes

Description Adam Williams 2007-12-21 08:02:59 PST
comparison browser was Firefox 2.x which did not exhibit the same behavior. Safari Version 3.0.4 (5523.10.6) also shows bad layout behavior.
Comment 1 David Kilzer (:ddkilzer) 2007-12-21 09:49:37 PST
Confirmed with a local debug build of WebKit r28925 with Safari 3.0.4 (523.12) on Mac OS X 10.4.11 (8S165).

Comment 2 Ingo Chao 2007-12-21 14:26:01 PST
They do some heavy browser sniffing in wikibits.js and load KHTMLFixes.css, so
#column-content { margin-left: 0; } in KHTMLFixes.css erroneously overrides 
#column-content { margin-left: 200px; } in main.css 
Comment 3 David Kilzer (:ddkilzer) 2007-12-21 16:54:28 PST
(In reply to comment #2)
> They do some heavy browser sniffing in wikibits.js and load KHTMLFixes.css, so
> #column-content { margin-left: 0; } in KHTMLFixes.css erroneously overrides 
> #column-content { margin-left: 200px; } in main.css 

Thanks, Ingo!  Based on this information, changing this to an evangelism bug.

Comment 4 David Kilzer (:ddkilzer) 2007-12-21 19:15:11 PST
Here's the faulty is_khtml detection code:

var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ));

Here's the code that writes the unwanted stylesheet:

// document.write special stylesheet links
if(typeof stylepath != 'undefined' && typeof skin != 'undefined') {
    if (is_opera_preseven) {
        document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera6Fixes.css">');
    } else if (is_opera_seven) {
        document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera7Fixes.css">');
    } else if (is_khtml) {
        document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/KHTMLFixes.css">');
    }
}

Comment 5 David Kilzer (:ddkilzer) 2007-12-21 19:24:30 PST
Easy fix for wikibits.js:

-     } else if (is_khtml) {
+     } else if (is_khtml && !is_safari) {

Comment 6 Dimitri Glazkov (Google) 2009-10-31 10:10:23 PDT
Fixed in bug 29792.

*** This bug has been marked as a duplicate of bug 29792 ***