Bug 11939

Summary: Quirksmode: Ignores media types in stylesheet PIs
Product: WebKit Reporter: David Kilzer (:ddkilzer) <ddkilzer>
Component: CSSAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, illenberger, phiw2
Priority: P2 Keywords: HasReduction
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
URL: http://www.quirksmode.org/bugreports/archives/2006/09/Ignores_media_types_in_stylesheet_PIs.html
Bug Depends on:    
Bug Blocks: 9610    
Attachments:
Description Flags
Test case from Comment #2
none
Moved from bug 18657 eric: review+

Description David Kilzer (:ddkilzer) 2006-12-22 20:46:48 PST
Safari ignores specified media types in stylesheet processing instructions. It loads all stylesheets instead.

Reported on 27 September 2006.

Test page: http://kennygraham.net/wsg_cssd/safaribug/  [BROKEN]

Tested on locally-built debug build of WebKit r18399 with Safari 2.0.4 (419.3) on Mac OS X 10.4.8 (8N1037).
Comment 1 David Kilzer (:ddkilzer) 2007-11-14 08:48:41 PST
WebKit supports CSS3 media queries as of r14779.  Safari 3 in Mac OS X 10.5 Leopard as well as the Safari 3 Public Beta in 10.4 Tiger both include this support.  I believe that fixes this issue.

http://trac.webkit.org/projects/webkit/changeset/14779

Comment 2 Philippe Wittenbergh 2007-11-15 04:03:47 PST
No this is _not_ fixed.
Here is a test case:
http://dev.l-c-n.com/XHTML/test1-multistyle2.xhtml
(the original test case is missing).
Compare the rendering in WebKit/Safari 304 with what Gecko & Opera 9+ do.
WebKit applies all stylesheets, inclucing the media print one. It shouldn't.

Please reopen.

(and note: WebKit seems to treat this file as being in quirks mode, while it should treat it as standards mode. It is served as application/xhtml+xml)
Comment 3 David Kilzer (:ddkilzer) 2007-11-15 08:47:56 PST
Thanks for the test case, Philippe!  Reopening bug.
Comment 4 David Kilzer (:ddkilzer) 2007-11-15 08:53:55 PST
Created attachment 17295 [details]
Test case from Comment #2

The bug is that the "alternate" and "media" attributes of <?xsl-stylesheet?> tags in an application/xhtml+xml document are ignored, and all stylesheets are loaded.

If every stylesheet listed defines the same selectors, you get into a "last one loaded wins" situation (which is the case in this test case--try reordering the <?xsl-stylesheet?> tags).

Here is another web site that demonstrates the same issue:  http://www.reiermeister.de/
Comment 5 Maciej Stachowiak 2008-04-26 15:03:38 PDT
Might this be a duplicate of < https://bugs.webkit.org/show_bug.cgi?id=18657>?
Comment 6 Rob Buis 2008-04-27 00:13:05 PDT
*** Bug 18657 has been marked as a duplicate of this bug. ***
Comment 7 Rob Buis 2008-04-27 00:15:31 PDT
Created attachment 20847 [details]
Moved from bug 18657

This patch is moved from bug 18657, that is clearly a duplicate and this one is older:) It fixes the attached testcase to this one, unfortunately the original
bug testcase in quirksmode site seems gone.
Cheers,

Rob.
Comment 8 Eric Seidel (no email) 2008-04-28 23:14:51 PDT
Comment on attachment 20847 [details]
Moved from bug 18657

Great!  r=me.  However, I would prefer that you fix setMedia to take a PassRefPtr while you're in that code.  It takes a raw ptr, but does take ownership of it (so your code doesn't leak) but at first glance it looks like it does.  setMedia pre-dates PassRefPtr I think.
Comment 9 Rob Buis 2008-04-29 23:21:44 PDT
Landed in r32719, including the PassRefPtr tweak.