RESOLVED WORKSFORME Bug 27296
[Qt] Some changes to webpage by javascript triggered by signals don't take effect immediately
https://bugs.webkit.org/show_bug.cgi?id=27296
Summary [Qt] Some changes to webpage by javascript triggered by signals don't take ef...
Ori Avtalion (salty-horse)
Reported 2009-07-15 06:40:49 PDT
Created attachment 32781 [details] Test-case - Qt project Tested with r45855 of QtWebKit with Qt 4.5.2. 1. Create a QWebView and add a QObject to its javascript. 2. Connect a javascript function to a signal on QObject. 3. Emit the signal, and have the handler makes a change to the document's background color. Results: The color changes to the page will not take effect until one of the following: *) Hover over the widget with the mouse cursor. *) Make a dom manipulation to the document (before or after the css change). *) Cause an alert. The attached test-case (a qt project) has a button and a webview. clicking on the button prints a message to stdout (via the javascript object) and should cause the webview to turn blue. It doesn't turn blue until hovering over it with the mouse. In the source code, the handler function has two comments with dom manipulations before and after the css change. Uncommenting any of them will cause the color to change immediately without a mouse hover.
Attachments
Test-case - Qt project (1.50 KB, application/gzip)
2009-07-15 06:40 PDT, Ori Avtalion (salty-horse)
no flags
Chris Hills
Comment 1 2009-07-15 06:46:05 PDT
Confirmed on linux-g++-32 with Qt 4.5.2 and QtWebKit r45855.
Ori Avtalion (salty-horse)
Comment 2 2009-07-16 08:54:33 PDT
On further examination, this is not isolated to style changes. For example, having the handler add several <p> elements exhibits the same problem: var items= [1,2,3]; for (i = 0; i < items.length; i++) { p = document.createElement('p'); t = document.createTextNode(String(i)); p.appendChild(t); document.getElementsByTagName('body')[0].appendChild(p); }
Tor Arne Vestbø
Comment 3 2009-09-21 08:38:15 PDT
*** Bug 29574 has been marked as a duplicate of this bug. ***
Kent Hansen
Comment 4 2010-03-10 08:05:14 PST
Works for me with QtWebKit from 4.6 staging (what will be 4.6.3). Haven't checked if it works with existing 4.6 releases.
Jędrzej Nowacki
Comment 5 2010-03-22 08:13:44 PDT
(In reply to comment #4) > Works for me with QtWebKit from 4.6 staging (what will be 4.6.3). Haven't > checked if it works with existing 4.6 releases. It works for me on Debian/testing (32) with QtWebkit from 4.7 branch (trunk). I think that is safe to say that the issue is fixed in the trunk. Ori, could you reproduce it with a newer Qt? I'm closing this bug for now, if the bug is still valid please add comment to it and I will reopen it.
Ori Avtalion (salty-horse)
Comment 6 2010-04-02 08:55:24 PDT
Confirmed fixed in Ubuntu's 4:4.6.2-0ubuntu3
Darin Adler
Comment 7 2014-04-24 16:45:02 PDT
Moving all JavaScriptGlue bugs to JavaScriptCore. The JavaScriptGlue framework itself is long gone. And most of the more recent bugs put in this component were put there by people who thought this was for some other aspect of “JavaScript glue” and have nothing to do with the actual original reason for the existence of this component, which was an OS-X-only framework named JavaScriptGlue.
Note You need to log in before you can comment on or make changes to this bug.