Bug 156947 - KHTML in KDE 4 fails Acid3 test
Summary: KHTML in KDE 4 fails Acid3 test
Status: RESOLVED UNMAINTAINED
Alias: None
Product: konqueror
Classification: Applications
Component: khtml (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-30 04:53 UTC by Alex Lowe
Modified: 2023-02-19 02:01 UTC (History)
18 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
patch fixing test eleven (6.32 KB, patch)
2008-04-02 00:47 UTC, Germain Garand
Details
Supply createDocument() with part and view (4.47 KB, text/plain)
2008-04-06 00:28 UTC, Harri Porten
Details
acid3 test with kwebkitpart rev 1090565 (24.54 KB, image/png)
2010-02-15 15:54 UTC, mark
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Lowe 2008-01-30 04:53:30 UTC
Version:            (using KDE 4.0.0)
Installed from:    Ubuntu Packages
OS:                Linux

Konqueror 4.0.0 fails the acid3 test (available from http://acid3.acidtests.org/).
This test is designed as the successor of the acid2 test (which Konqueror passes) and tests the browser's compliance of rarely-used parts of HTML, http, etc.
Comment 1 Jonson 2008-03-08 15:18:18 UTC
I tried acid3 test also and konqueror (3.5.8.) chrashes.
Comment 2 Allan Sandfeld 2008-03-11 10:29:15 UTC
Well, we can't pass all the tests since it uses native SVG which we simply doesn't have. 

I also strongly suspect a few of the selector tests to be wrong in the current version of test. 
Comment 3 Maksim Orlovich 2008-03-11 17:19:09 UTC
And I think the table DOM test is wrong :-)

Comment 4 Harri Porten 2008-03-22 20:08:08 UTC
I have my doubts about "test 64: more attribute tests" (although we pass it now): why should a custom attribute not be accessible as an ordinary JavaScript property? Which specification disallows such an extension?
Comment 5 Germain Garand 2008-03-25 21:17:05 UTC
SVN commit 790075 by ggarand:

merge WC/r29775/#16982/ by David Hyatt <hyatt at apple dot com>

"Make sure to make <head> the current block if it is created before
 a <body>"

to show the buckets.

CCBUG:156947


 M  +6 -0      htmlparser.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=790075
Comment 6 Germain Garand 2008-03-25 21:17:25 UTC
SVN commit 790077 by ggarand:

stylesheets with unappropriate mimetype
should be ignored in strict mode.

red->black
CCBUG:156947


 M  +6 -2      css/css_ruleimpl.cpp  
 M  +1 -1      css/css_ruleimpl.h  
 M  +6 -2      html/html_headimpl.cpp  
 M  +1 -1      html/html_headimpl.h  
 M  +19 -3     misc/loader.cpp  
 M  +11 -1     misc/loader.h  
 M  +1 -1      misc/loader_client.h  
 M  +2 -2      xml/dom_docimpl.cpp  
 M  +1 -1      xml/dom_docimpl.h  
 M  +1 -1      xml/dom_elementimpl.h  
 M  +2 -2      xml/dom_xmlimpl.cpp  
 M  +1 -1      xml/dom_xmlimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=790077
Comment 7 Germain Garand 2008-03-26 00:46:22 UTC
SVN commit 790156 by ggarand:

automatically merged revision 790075:
merge WC/r29775/#16982/ by David Hyatt <hyatt at apple dot com>

"Make sure to make <head> the current block if it is created before
 a <body>"

to show the buckets.

CCBUG:156947

 M  +6 -0      htmlparser.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=790156
Comment 8 Germain Garand 2008-03-26 00:47:37 UTC
SVN commit 790157 by ggarand:

automatically merged revision 790077:
stylesheets with unappropriate mimetype
should be ignored in strict mode.

red->black
CCBUG:156947

 M  +6 -2      css/css_ruleimpl.cpp  
 M  +1 -1      css/css_ruleimpl.h  
 M  +6 -2      html/html_headimpl.cpp  
 M  +1 -1      html/html_headimpl.h  
 M  +19 -3     misc/loader.cpp  
 M  +11 -1     misc/loader.h  
 M  +1 -1      misc/loader_client.h  
 M  +2 -2      xml/dom_docimpl.cpp  
 M  +1 -1      xml/dom_docimpl.h  
 M  +1 -1      xml/dom_elementimpl.h  
 M  +2 -2      xml/dom_xmlimpl.cpp  
 M  +1 -1      xml/dom_xmlimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=790157
Comment 9 Maksim Orlovich 2008-04-01 22:38:37 UTC
SVN commit 792683 by orlovich:

Properly close DOM-created nodes. Fixes CNN.com election tracker,
and 3 Acid3 tests (more like 3.5, actually --- gets one further).
It also makes Acid3 look uglier, since it exposes a bug in rendering of
alternate content (it didn't show up before since the object was plain not
 getting loaded). I know what's wrong just need to <strike>Bug dfaure for a
solution</strike>figure out how to fix it.

CCBUG:156947


 M  +1 -5      dom/dom_node.cpp  
 M  +6 -0      xml/dom_nodeimpl.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=792683
Comment 10 Maksim Orlovich 2008-04-01 22:42:11 UTC
SVN commit 792687 by orlovich:

automatically merged revision 792683:
Properly close DOM-created nodes. Fixes CNN.com election tracker,
and 3 Acid3 tests (more like 3.5, actually --- gets one further).
It also makes Acid3 look uglier, since it exposes a bug in rendering of
alternate content (it didn't show up before since the object was plain not
 getting loaded). I know what's wrong just need to <strike>Bug dfaure for a
solution</strike>figure out how to fix it.

CCBUG:156947

 M  +1 -5      dom/dom_node.cpp  
 M  +6 -0      xml/dom_nodeimpl.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=792687
Comment 11 Harri Porten 2008-04-01 23:44:01 UTC
Created a Wiki page for an overview of open issues:

http://techbase.kde.org/index.php?title=Projects/Acid3
Comment 12 Germain Garand 2008-04-02 00:47:27 UTC
Created attachment 24153 [details]
patch fixing test eleven

Please review... I hope I'm not stepping on some toes... was just wandering in
the vicinity on this file.

Same as in WebCore except I believe their version as a minor mistake
(they used parentOfNewParent->isCharacterDataNode() instead of
parentOfNewParent->offsetInCharacters() so won't work for
ProcessingInstruction)
Comment 13 Maksim Orlovich 2008-04-02 00:50:17 UTC
SVN commit 792734 by orlovich:

Properly update currentTarget in capture phases. Fixes acid3 test31.
(Line got lost during container porting. Bad review job by me :( )
CCBUG:156947


 M  +1 -0      dom_nodeimpl.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=792734
Comment 14 Maksim Orlovich 2008-04-02 00:52:40 UTC
SVN commit 792735 by orlovich:

automatically merged revision 792734:
Properly update currentTarget in capture phases. Fixes acid3 test31.
(Line got lost during container porting. Bad review job by me :( )
CCBUG:156947

 M  +1 -0      dom_nodeimpl.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=792735
Comment 15 Harri Porten 2008-04-02 02:15:40 UTC
Regarding Germain's patch for test 11 (comment #12): I had been trying to fix it before but had given up temporarily as I had come to this conclusion: two types of exceptions would apply and I did not want to simply swap the checks around (like http://bugs.webkit.org/attachment.cgi?id=19822) does.

This patch does not swap the blocks of code around - which is good. I just admit I did not see the parentOfNewParent stuff being directly advised on the spec.

It's right that the BAD_BOUNDARYPOINTS_ERR check checks for != Node::CDATA_SECTION_NODE where WebCore checks for != != Node::TEXT_NODE?

To nitpick: in our code base the comment should not be talking about "m_start.container" but rather "m_startContainer". Similarly the null pointer checks in maxStartOffset() and maxEndOffset().
Comment 16 Germain Garand 2008-04-02 13:21:07 UTC
Re:#15

Hi Harri,
>  I just admit I did not see the parentOfNewParent stuff being directly
> advised on the spec. 

I believe this is covered by
  "Raised if the container of the start of the Range is of a type that does not
   allow children of the type of newParent"

According to the definitions section, 'container' in the  context of text ranges, means the text node itself. Which is clearly not a possible meaning here, otherwise surrounding any text node with an element node would raise : hence the interpretation that it means more plainly the container of the text node.

> It's right that the BAD_BOUNDARYPOINTS_ERR check checks for != 
> Node::CDATA_SECTION_NODE where WebCore checks for != != Node::TEXT_NODE? 

Acid3 interpreted stricto sensu the sentence

 "Raised if the Range partially selects a non-text node."

and so expect comments to raise, because a comment is-a( CharacterData ).
To formally support that interpretation, I kept the check for CDATASection,
because CDataSection is-a( Text ). 

The intent of this exception seems to be to make it hard to abuse the DOM tree with this method. This is mostly useless, as it may be easily decomposed in term of extractContents()+insertNode()+appendChild().
But with this intent in mind, it is consistent that splitting a comment or processing instructions to surround them with other nodes would be considered an abuse.

(Our check is incomplete, by the way. It definetly should scan the whole range, not just the boundaries. Spec example:  <FOO>A[B<BAR>C]D</BAR>E</FOO> should raise. Would need to check what other engines do...)

> To nitpick:

indeed, will fix.

Do you think it is acceptable?
Comment 17 Maksim Orlovich 2008-04-02 20:26:07 UTC
(his is on the wiki page, but putting it here since it's a semi-review issue):

We fail test 04 since the parser sets discard_until = ID_CLOSE + ID_IFRAME for iframes. The reason appears to be to hide content inside, which should no longer be needed. However, this isn't without risks since IIRC IceWeasel parsers the content literally. Thoughts?
Comment 18 Harri Porten 2008-04-02 21:36:41 UTC
Germain, patch in comment #12 looks like a pragmatic solution. Please commit.
Comment 19 Germain Garand 2008-04-03 06:11:23 UTC
SVN commit 793178 by ggarand:

merge some ad hoc changes to RangeImpl::surroundContents, whose main
rationale is "keep Acid3's 11th test happy".

I tried hard to make up a sound explanation for those, digging
deep into the specification's arcane semantics, but eventually,
I don't think I really convinced myself, and certainly not Harri.

He says: "it's a pragmatic solution".
And that's what it is.

CCBUG:156947


 M  +37 -11    dom2_rangeimpl.cpp  
 M  +2 -0      dom2_rangeimpl.h  
 M  +6 -0      dom_nodeimpl.h  
 M  +3 -0      dom_textimpl.h  
 M  +5 -0      dom_xmlimpl.cpp  
 M  +2 -0      dom_xmlimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=793178
Comment 20 Germain Garand 2008-04-03 06:11:32 UTC
SVN commit 793179 by ggarand:

Get our subframes to reliably and synchronously update their dimensions,
when changed from JS.

This allows the dynamic Media Queries subtests to pass - changes
were previously applied too late, after a return to the event loop.

Acid3-46

CCBUG:156947


 M  +21 -6     rendering/render_replaced.cpp  
 M  +3 -0      xml/dom_docimpl.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=793179
Comment 21 Germain Garand 2008-04-03 06:24:38 UTC
SVN commit 793181 by ggarand:

automatically merged revision 793178:
merge some ad hoc changes to RangeImpl::surroundContents, whose main
rationale is "keep Acid3's 11th test happy".

I tried hard to make up a sound explanation for those, digging
deep into the specification's arcane semantics, but eventually,
I don't think I really convinced myself, and certainly not Harri.

He says: "it's a pragmatic solution".
And that's what it is.

CCBUG:156947

 M  +37 -11    dom2_rangeimpl.cpp  
 M  +2 -0      dom2_rangeimpl.h  
 M  +6 -0      dom_nodeimpl.h  
 M  +3 -0      dom_textimpl.h  
 M  +5 -0      dom_xmlimpl.cpp  
 M  +2 -0      dom_xmlimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=793181
Comment 22 Harri Porten 2008-04-06 00:28:36 UTC
Created attachment 24212 [details]
Supply createDocument() with part and view

Fixes last bit of Acid3 test 98. For security reasons the JS will refuse to
work with an (X)HTML document without a view.
Comment 23 darketernal 2008-04-12 12:00:23 UTC
> Well, we can't pass all the tests since it uses native SVG which we simply doesn't have.

why is that? I think WebKit also uses KSVG2 and it can pass?
Comment 24 Gustaw Smolarczyk 2008-04-15 14:11:12 UTC
As I wrote here (http://bugs.kde.org/show_bug.cgi?id=92670#c6) I've done a patch that fixes 18th Acid3 test. Now I think it's good to fix onload events (it could make khtml to pass some additional tests).
Comment 25 Maksim Orlovich 2008-04-15 16:08:54 UTC
re:c#24: I think Allan was looking at that patch --- thanks! The load events are definitely important in general --- the current handling is really quite iffy, and one of the top items on my TODO list --- but feel free to beat me to it!
Comment 26 Gustaw Smolarczyk 2008-04-25 18:19:48 UTC
Load events in khtml are good enough to pass acid3, but there's another issue. There isn't any SVG support, so first dynamic loaded iframe from 65th test (an SVG document) doesn't raise load event.

One question: where is ksvg2 at all? I can't find this - I think it should be merged to khtml.
Comment 28 Maksim Orlovich 2008-04-25 18:52:24 UTC
re: c#26, other part: the onload events only do a sensible thing for HTML, and only in 1/2 of iframe vs. object cases. They should do it all the time (e.g. do it on a completed() signal)
Comment 29 Gustaw Smolarczyk 2008-04-26 19:59:57 UTC
re:c#27
Porting SVG implementation from WebKit to KHTML is a GSoC project... so I won't try to do this myself.

re:c#28
I checked load events on Acid3 downloaded to my hd... In real Acid3 load events are broken (most aren't raised and some <object>'s are raised twice).
Comment 30 Germain Garand 2008-05-20 05:11:05 UTC
SVN commit 810117 by ggarand:

Full parsing of doctype by the HTML Tokenizer

patch by Gustaw Smolarczy <kwielkiegie at gmail dt com>,
improving upon a webkit patch

slightly modified to provide a turnaround for broken behaviour of
KHTMLPart::write() noticed by Gustaw.

Fixing Acid 3's 18th test.

BUG: 92670
CCBUG: 156947


 M  +14 -247   html/html_documentimpl.cpp  
 M  +5 -1      html/html_documentimpl.h  
 M  +76 -0     html/htmlparser.cpp  
 M  +6 -0      html/htmlparser.h  
 M  +324 -3    html/htmltokenizer.cpp  
 M  +58 -0     html/htmltokenizer.h  
 M  +19 -9     khtml_part.cpp  
 M  +21 -4     khtml_part.h  
 M  +2 -0      khtmlpart_p.h  
 M  +5 -18     xml/dom_docimpl.cpp  
 M  +2 -1      xml/dom_docimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=810117
Comment 31 Germain Garand 2008-05-20 05:11:14 UTC
SVN commit 810118 by ggarand:

add implicit media 'all' when parsing Media Queries
ported from a patch by Dan Berstein <mitz at apple dt com>

covering recent changes in Acid3/48

CCBUG: 156947


 M  +1 -1      css_mediaquery.cpp  
 M  +464 -445  parser.cpp  
 M  +15 -10    parser.y  


WebSVN link: http://websvn.kde.org/?view=rev&revision=810118
Comment 32 Harri Porten 2008-05-24 20:56:07 UTC
SVN commit 812182 by porten:

One of the create*Document() overloads was lacking a KHTMLView parameter.
As our code relies on a view in many places (like JS security checks)
I added it and create a dummy KHTMLPart in the JS binding for createDocument()

+1 on Acid3. Had already posted the patch in the bug report weeks ago.

CCBUGS: 156947 


 M  +2 -1      dom/dom_doc.cpp  
 M  +5 -1      ecma/kjs_dom.cpp  
 M  +1 -1      khtml_part.h  
 M  +11 -4     xml/dom_docimpl.cpp  
 M  +2 -1      xml/dom_docimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=812182
Comment 33 Gustaw Smolarczyk 2008-05-25 11:01:28 UTC
re:c#32
With this patch, generated document has main document KHTMLView. So changing document.title causes change of KHTMLView title (Acid3 page has title "Sparrow" like generated document).
Comment 34 Christopher Sawyer 2008-07-20 09:29:59 UTC
Did anyone check the ACID2 test on webstandards.org?

This is my release of Konq:
Version 4.1.00 (KDE 4.0.99 (4.1 RC1+)) "release 13.3"

It fails to render the eyeballs correctly.

Testing URL:
http://www.webstandards.org/files/acid2/test.html#top
Comment 35 Alex Lowe 2008-07-20 19:35:41 UTC
Konq used to correctly render ACID2. So this is a regression in Konq  
4.1 (or maybe an older regression, but nevertheless, a regression).  
You should probably file a new bug on it (I don't have KDE4 ATM, but  
will when I can actually get it installed on this computer -- it's  
still not ver Mac-friendly).
Comment 36 Michal Wisniewski 2008-07-20 20:21:58 UTC
bug confirmed in 4.0.98 - eveballs not rendered (red dotted field instead)
Comment 37 Luke-Jr 2008-08-04 00:17:07 UTC
Konqueror from KDE 4.1 final is passing ACID2 fine for me...
Comment 38 Michal Wisniewski 2008-08-05 20:58:27 UTC
Nah, no with WebKit engine. KHTML renders good, webkit has problems mentioned above
Comment 39 James 2008-09-14 10:01:46 UTC
Oddly enough, Acid2 renders exactly as you've described it (with a red field instead of eyeballs) when I use Firefox 3.01 with NoScript enabled. Is it possible that Konquerer is perhaps just blocking a script or something? This wouldn't necessarily mean it's a regression, it could just be blocking it for security reasons.

Rendering link: http://www.geocities.com/hockeypuck360/ffNoScrp.png
Comment 40 Germain Garand 2008-10-21 04:01:39 UTC
SVN commit 874250 by ggarand:

-"href [...] For inline style sheets, the value of this attribute is null."
-adapt ad hoc patch by D.W.Hyatt<hyatt at apple dot com> to make cssRules
 live.

=> 72

CCBUG: 156947


 M  +35 -6     css/css_ruleimpl.cpp  
 M  +7 -5      css/css_ruleimpl.h  
 M  +2 -1      ecma/kjs_css.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=874250
Comment 41 Germain Garand 2009-03-18 05:41:00 UTC
SVN commit 940704 by ggarand:

use a stricter grammar for the parsing of CSS selectors:
  require at least a whitespace for the 'Descendant' combinator.

we used to accept 'html*' as 'html *'

CCBUG: 156947


 M  +1 -1      cssparser.cpp  
 M  +456 -440  parser.cpp  
 M  +1 -1      parser.h  
 M  +35 -18    parser.y  


WebSVN link: http://websvn.kde.org/?view=rev&revision=940704
Comment 42 Germain Garand 2009-03-18 05:41:06 UTC
SVN commit 940705 by ggarand:

don't discard iframe children.

changed proposed by Maksim a long time ago.
looks right to me too.

CCBUG: 156947


 M  +0 -1      htmlparser.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=940705
Comment 43 Germain Garand 2009-03-18 06:08:23 UTC
SVN commit 940713 by ggarand:

automatically merged revision 940704:
use a stricter grammar for the parsing of CSS selectors:
  require at least a whitespace for the 'Descendant' combinator.

we used to accept 'html*' as 'html *'

CCBUG: 156947

 M  +1 -1      cssparser.cpp  
 M  +456 -440  parser.cpp  
 M  +1 -1      parser.h  
 M  +35 -18    parser.y  


WebSVN link: http://websvn.kde.org/?view=rev&revision=940713
Comment 44 Germain Garand 2009-03-18 06:09:29 UTC
SVN commit 940714 by ggarand:

automatically merged revision 940705:
don't discard iframe children.

changed proposed by Maksim a long time ago.
looks right to me too.

CCBUG: 156947

 M  +0 -1      htmlparser.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=940714
Comment 45 David Heidelberg 2009-03-26 12:28:08 UTC
Is planned for KDE 4.3 migration to webkit? Browsers as Arora or reKonq working much better than konqueror, but konq have better integration and webkit-kpart isn't still in perfekt state.

P.S. Sorry for OT
Comment 46 Marijn Schouten 2009-04-29 11:59:31 UTC
konqueror-4.2.2 just crashed for me on the Acid3 test:

Application: Konqueror (konqueror), signal SIGSEGV
0x00007f215f8d0901 in nanosleep () from /lib/libc.so.6
[Current thread is 0 (LWP 12228)]

Thread 2 (Thread 0x7f2151e53950 (LWP 12236)):
#0  0x00007f2161fa904d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f21622167d7 in QWaitCondition::wait () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f216220d959 in QThreadPoolThread::run () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007f2162215a79 in QThreadPrivate::start () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f2161fa5017 in start_thread () from /lib/libpthread.so.0
#5  0x00007f215f900f7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f2164c8c750 (LWP 12228)):
[KCrash Handler]
#5  ~QColormap (this=0x7fff6ccd20a0) at ../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h:133
#6  0x00007f2156ca393b in colorMediaFeatureEval () from /usr/lib64/libkhtml.so.5
#7  0x00007f2156ca7492 in khtml::MediaQueryEvaluator::eval () from /usr/lib64/libkhtml.so.5
#8  0x00007f2156ca75c5 in khtml::MediaQueryEvaluator::eval () from /usr/lib64/libkhtml.so.5
#9  0x00007f2156c80697 in khtml::CSSStyleSelectorList::append () from /usr/lib64/libkhtml.so.5
#10 0x00007f2156c91260 in khtml::CSSStyleSelector::CSSStyleSelector () from /usr/lib64/libkhtml.so.5
#11 0x00007f2156b43c6c in DOM::DocumentImpl::rebuildStyleSelector () from /usr/lib64/libkhtml.so.5
#12 0x00007f2156b43dd5 in DOM::DocumentImpl::updateStyleSelector () from /usr/lib64/libkhtml.so.5
#13 0x00007f2156b51252 in DOM::NodeBaseImpl::dispatchChildInsertedEvents () from /usr/lib64/libkhtml.so.5
#14 0x00007f2156b5185a in DOM::NodeBaseImpl::appendChild () from /usr/lib64/libkhtml.so.5
#15 0x00007f2156ceaf75 in DOMNodeProtoFunc::callAsFunction () from /usr/lib64/libkhtml.so.5
#16 0x00007f215668b659 in KJS::JSObject::call () from /usr/lib64/libkjs.so.4
#17 0x00007f21566a58e1 in KJS::Machine::runBlock () from /usr/lib64/libkjs.so.4
#18 0x00007f2156687c1c in KJS::FunctionImp::callAsFunction () from /usr/lib64/libkjs.so.4
#19 0x00007f215668b659 in KJS::JSObject::call () from /usr/lib64/libkjs.so.4
#20 0x00007f21566a58e1 in KJS::Machine::runBlock () from /usr/lib64/libkjs.so.4
#21 0x00007f2156687c1c in KJS::FunctionImp::callAsFunction () from /usr/lib64/libkjs.so.4
#22 0x00007f215668b659 in KJS::JSObject::call () from /usr/lib64/libkjs.so.4
#23 0x00007f2156d1b982 in KJS::ScheduledAction::execute () from /usr/lib64/libkhtml.so.5
#24 0x00007f2156d1d415 in KJS::WindowQObject::timerEvent () from /usr/lib64/libkhtml.so.5
#25 0x00007f21622f8493 in QObject::event () from /usr/lib64/qt4/libQtCore.so.4
#26 0x00007f2161643bbd in QApplicationPrivate::notify_helper (this=0x622c60, receiver=0xc8c9a0, e=0x7fff6ccd44e0) at kernel/qapplication.cpp:4084
#27 0x00007f216164b57a in QApplication::notify (this=0x7fff6ccd4a00, receiver=0xc8c9a0, e=0x7fff6ccd44e0) at kernel/qapplication.cpp:4049
#28 0x00007f21630ee8ab in KApplication::notify () from /usr/lib64/libkdeui.so.5
#29 0x00007f21622e9a2b in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4
#30 0x00007f2162311f1e in QTimerInfoList::activateTimers () from /usr/lib64/qt4/libQtCore.so.4
#31 0x00007f216230ef2d in timerSourceDispatch () from /usr/lib64/qt4/libQtCore.so.4
#32 0x00007f215e00d89a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#33 0x00007f215e01104d in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#34 0x00007f215e01120b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#35 0x00007f216230ee8f in QEventDispatcherGlib::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#36 0x00007f21616c9b7f in QGuiEventDispatcherGlib::processEvents (this=0x7fff6ccd20a0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#37 0x00007f21622e83e2 in QEventLoop::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#38 0x00007f21622e8575 in QEventLoop::exec () from /usr/lib64/qt4/libQtCore.so.4
#39 0x00007f21622ea5ec in QCoreApplication::exec () from /usr/lib64/qt4/libQtCore.so.4
#40 0x00007f216488da47 in kdemain () from /usr/lib64/libkdeinit4_konqueror.so
#41 0x00007f215f84f5c6 in __libc_start_main () from /lib/libc.so.6
#42 0x00000000004008e9 in _start ()
Current language:  auto; currently asm
Comment 47 Germain Garand 2009-05-05 02:20:54 UTC
SVN commit 963619 by ggarand:

Initial implementation for CSS3 Web Fonts.

http://www.w3.org/TR/css3-webfonts

Downloadable fonts work nicely already.
Still some problems for the thorough recalc of MinMax once the final
font is loaded though.
Also, we still don't use the full CSS3 font matching algorithm for now...
it needs more work and more testing.

I tried to reuse as much bits and pieces from WebCore as possible,
though I doubt we can keep similar implementation at the end of the day.

CCBUG: 156947


 M  +19 -1     css/css_ruleimpl.cpp  
 M  +3 -2      css/css_ruleimpl.h  
 M  +53 -4     css/css_valueimpl.cpp  
 M  +46 -0     css/css_valueimpl.h  
 M  +93 -3     css/cssparser.cpp  
 M  +3 -0      css/cssparser.h  
 M  +287 -272  css/cssproperties.c  
 M  +55 -53    css/cssproperties.h  
 M  +2 -0      css/cssproperties.in  
 M  +15 -0     css/cssstyleselector.cpp  
 M  +3 -1      css/cssstyleselector.h  
 M  +405 -395  css/parser.cpp  
 M  +8 -5      css/parser.y  
 M  +55 -2     misc/loader.cpp  
 M  +25 -1     misc/loader.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=963619
Comment 48 Germain Garand 2009-05-10 03:31:36 UTC
SVN commit 965865 by ggarand:

.port most of WebCore's current 'Length' API to KHTML - the only conversion
 I did not do is width()/minWidth() => calcValue()/calcMinValue()
 as it is a bit tricky.
.merge some work bringing better precision to percentage calculations.

Combined with Web Fonts, this let us get rid of the red square+purple 'X'
at the top right of acid3.

CCBUG: 156947


 M  +7 -7      css/css_renderstyledeclarationimpl.cpp  
 M  +1 -1      css/css_renderstyledeclarationimpl.h  
 M  +18 -18    css/cssstyleselector.cpp  
 M  +0 -1      html/htmltokenizer.cpp  
 M  +1 -1      html/htmltokenizer.h  
 M  +99 -39    misc/khtmllayout.h  
 M  +1 -1      rendering/RenderSVGRoot.cpp  
 M  +2 -2      rendering/bidi.cpp  
 M  +17 -17    rendering/render_block.cpp  
 M  +80 -80    rendering/render_box.cpp  
 M  +1 -1      rendering/render_box.h  
 M  +2 -2      rendering/render_br.cpp  
 M  +1 -1      rendering/render_form.cpp  
 M  +2 -2      rendering/render_image.cpp  
 M  +2 -2      rendering/render_layer.cpp  
 M  +2 -2      rendering/render_line.cpp  
 M  +7 -7      rendering/render_object.cpp  
 M  +2 -2      rendering/render_object.h  
 M  +3 -3      rendering/render_style.cpp  
 M  +4 -4      rendering/render_style.h  
 M  +24 -24    rendering/render_table.cpp  
 M  +89 -100   rendering/table_layout.cpp  
 M  +0 -8      rendering/table_layout.h  
 M  +2 -2      xml/dom_nodeimpl.cpp  
 M  +1 -1      xml/dom_stringimpl.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=965865
Comment 49 Germain Garand 2009-05-10 03:53:23 UTC
right now, the top right red square will only be covered by the Ahem X on the first acid3 load.

Reloading the test will have it be uncovered. Probably a bug in the web font implementation, though I can't figure it out at the moment.
Comment 50 Germain Garand 2009-06-03 08:51:09 UTC
SVN commit 976964 by ggarand:

implement getSVGDocument, ecma-only:
it's evil, useless, polluting, half-deprecated, but acid3-74 depends on it.

CCBUG: 156947


 M  +32 -4     ecma/kjs_html.cpp  
 M  +2 -2      ecma/kjs_html.h  
 M  +5 -0      xml/dom_docimpl.cpp  
 M  +1 -0      xml/dom_docimpl.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=976964
Comment 51 Germain Garand 2009-06-07 02:13:39 UTC
SVN commit 978411 by ggarand:

.abort XML parsing when invalid characters were found in the input stream
 (acid3-70)
.add helper methods to KEncodingDetector for reporting such errors
.add unit test asserting some KEncodingDetector properties

kindly reviewed by Maksim Orlovich.

CCBUG: 156947


 M  +18 -0     kdecore/localization/kencodingdetector.cpp  
 M  +25 -0     kdecore/localization/kencodingdetector.h  
 M  +1 -0      kdecore/tests/CMakeLists.txt  
 M  +2 -3      khtml/khtml_part.cpp  
 M  +1 -0      khtml/xml/dom_docimpl.cpp  
 M  +4 -0      khtml/xml/dom_docimpl.h  
 M  +12 -2     khtml/xml/xml_tokenizer.cpp  
 M  +2 -2      khtml/xml/xml_tokenizer.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=978411
Comment 52 Artem Vorotnikov 2010-02-14 21:54:39 UTC
Konqueror gets 100/100 with a black cat while on WebKit KPart.
Comment 53 Ernst de Haan 2010-02-15 12:34:56 UTC
@Artem: An exact (SVN/release) version number as well as a screenshot would be helpful.
Comment 54 mark 2010-02-15 15:54:15 UTC
Created attachment 40805 [details]
acid3 test with kwebkitpart rev 1090565
Comment 55 Germain Garand 2010-02-15 17:31:17 UTC
Please don't pollute this report with qtwebkit kpart bugs, it is off topic.
There is a specific bug system component 'kwebkitpart' for that. Use it.
Thanks.
Comment 56 FiNeX 2010-08-15 17:55:07 UTC
Using KDE 4.5.0 the test result is 89/100 :-(
Comment 57 nn.dm55 2011-07-22 15:22:59 UTC
(In reply to comment #56)
> Using KDE 4.5.0 the test result is 89/100 :-(

Same result here with KDE 4.4.4
Comment 58 Alex Lowe 2011-07-30 20:18:28 UTC
Update: 4.7.0 gets 89/100 and "YOU SHOULD NOT SEE THIS AT ALL" appears in the upper-left corner. The title text also gets changed to "Sparrow".
Comment 59 Gérard Talbot (no longer involved) 2011-08-01 03:06:58 UTC
Test 29 of acid3 test:

http://www.gtalbot.org/BrowserBugsSection/Konqueror4Bugs/test29-acid3.html

Firefox 5.0, Opera 11.50, Chrome 12.0.742.124 and Safari 5.1 pass this test.

Konqueror 4.7.0 under KDE 4.7.0 fails this test.

I will create a separate bug report for this if requested.

Gérard Talbot
Comment 60 Gérard Talbot (no longer involved) 2011-08-01 03:25:25 UTC
(In reply to comment #3)
> And I think the table DOM test is wrong :-)

Maksim, 
If you were referring to test 29, note that test 29 in acid3 test uses dynamically embedded invalid markup <table> code with
<script type="text/javascript">document.write('(...) <table><tr><td><p><\/tbody> <\/table>');</script>

but the
http://www.gtalbot.org/BrowserBugsSection/Konqueror4Bugs/test29-acid3.html
testcase uses static-declarative well-formed markup code and valid markup code.

Gérard
Comment 61 Gérard Talbot (no longer involved) 2011-08-01 04:27:14 UTC
Test 53 of acid3 test:

http://www.gtalbot.org/BrowserBugsSection/Konqueror4Bugs/test53-acid3.html

Firefox 5.0, Opera 11.50, Chrome 12.0.742.124 and Safari 5.1 pass this test.

Konqueror 4.7.0 under KDE 4.7.0 fails this test.

I will create a separate bug report for this if requested.

Gérard Talbot
Comment 62 Gérard Talbot (no longer involved) 2011-09-19 21:27:36 UTC
There has been some changes done to and in acid3 test. So, right now, Konqueror 4.7.0 (with Javascript debugger disabled) scores 92 and not 89.

Tests 29 and 53 are still not passed and, to be utterly honest with anyone reading this, such tests 29 and 53 are not important to pass and definitely not critical in any way, shape or manner. Tests 29 and 53 may affect, IMO, one webpage out of 1 billion webpages, maybe/probably less than that.

regards, Gérard
Comment 63 Gérard Talbot (no longer involved) 2011-09-19 23:44:15 UTC
What changed in acid3 test on September 17th 2011:

"
(...) parts of the platform that
still haven't received broad use; for example: changing how exceptions in the aforementioned DOM Range specification work, by merging them into the regular DOMException mechanism; making Attr objects not be Node objects; possibly dropping or simplifying SVG Fonts and SVG SMIL animation; dropping XLink; making DocType nodes work more like other nodes rather than being special.
(...)
we have updated the Acid3 test by commenting out the parts of the test that might get changed in the specs, including everything I listed above.
"
Acid3 2011 Update, by Ian Hickson
17 sept. 2011
https://plus.google.com/107429617152575897589/posts/JdHnqpuUER4

Gérard
Comment 64 José JORGE 2013-08-16 09:26:04 UTC
As of 4.10.2 I get 100%, with still a graphical glitch :

<img src='http://upload.wikimedia.org/wikipedia/commons/9/97/Konqueror_4.10.2.png'>
Comment 65 Ignacio 2013-08-28 03:21:09 UTC
(In reply to comment #64)
> As of 4.10.2 I get 100%, with still a graphical glitch :
> 
> <img
> src='http://upload.wikimedia.org/wikipedia/commons/9/97/Konqueror_4.10.2.
> png'>

Probably you're using WebKit. In WebKit, you obtain 100/100, but with the message "You should not this at all".

At this this moment, with KHTML and Konqueror 4.11.0, the result is 92/100. And this bug report is about KHTML, not WebKit.
Comment 66 Raúl 2014-01-03 15:11:28 UTC
Reporting results for konqueror 4.11.3:
Failed 6 tests.
Test 13 failed: collapsed is wrong after deletion
Test 26 passed, but took 194ms (less than 30fps)
Test 29 failed: expected '2' but got '1' - cloned table had wrong number of children
Test 51 failed: expected '6' but got '5' - wrong number of rows
Test 53 failed: expected '1' but got '0' - form's elements array has wrong size
Test 65 passed, but took 218ms (less than 30fps)
Test 69 passed, but took 40 attempts (less than perfect).
Test 75 failed: SVG DOM interface SVGRectElement not supported.
Test 77 failed: SVGTextContentElement.getNumberOfChars() not supported.
Total elapsed time: 5.69s
Comment 67 Martin Walch 2014-01-03 18:02:26 UTC
It is worse with Konqueror 4.12.0: Tests 26 and 27 also fail now.

Failed 8 tests.
Test 13 failed: collapsed is wrong after deletion
Test 26 failed: e1 - parent element doesn't exist after looping
Test 27 failed: e1 - parent element doesn't exist after waiting
Test 29 failed: expected '2' but got '1' - cloned table had wrong number of children
Test 51 failed: expected '6' but got '5' - wrong number of rows
Test 53 failed: expected '1' but got '0' - form's elements array has wrong size
Test 65 passed, but took 97ms (less than 30fps)
Test 69 passed, but took 269 attempts (less than perfect).
Test 75 failed: SVG DOM interface SVGRectElement not supported.
Test 77 failed: SVGTextContentElement.getNumberOfChars() not supported.
Total elapsed time: 4.25s