scottohara / tvmanager

PWA for tracking recorded, watched & upcoming TV shows
MIT License
4 stars 0 forks source link

progressBar render unit test failing in headless mode #46

Closed scottohara closed 9 years ago

scottohara commented 11 years ago

Previously, the HTML returned from progressBar.render() included style="width:50% " (single whitespace after % sign).

As of Chrome 24 (Webkit 537.17), it renders as style="width:50%" (no whitespace after % sign). Presumably this was a result of an upstream Webkit (or Chrome?) rendering engine change.

This caused the unit test for progressBar.render() to fail, so the test was modified to suit the new output (ie. sans whitespace).

However, it seems that phantomjs 1.8.1 (Webkit 534.34) is still rendering with the whitespace, meaning that the unit test now fails in headless mode.

Waiting for phantomjs to update to a newer Webkit build to see if this resolves the issue.

scottohara commented 11 years ago

Further investigation of the webkit nightlies confirms that it's a webkit change (as opposed to a Chrome only issue). Webkit 537.6 (revision 126323) exhibits the same behaviour as phantomjs (ie. includes the trailing space after 50%). Webkit 537.8 (revision 127101), which was the very next nightly build, exhibits the same behaviour as Chrome 24 (ie. does not include the trailing space).

A diff of Webkit's /trunk/Source between those two revisions shows a significant number of changes

One of those changes to the file WebCore/css/StylePropertySet.cpp seems the likely culprit:

2b68fcbe14e88c9fc6df8632583783b9

Here you can clearly see that the old behaviour was to append "; ", which was changed to simply ";".

(This doesn't get us any closer to a resolution...we're still waiting for phantomjs to upgrade the version of webkit it uses; but it does confirm that the problem should resolve itself once that happens...assuming they move to 537.8 or later)

scottohara commented 11 years ago

phantomjs 1.9.0 released; but unfortunately no upgrade to the underlying webkit version.

(This was always going to be likely after initial attempts at getting QtWebkit 2.3 working in Qt 4.8 failed...https://groups.google.com/forum/?fromgroups=#!topic/phantomjs/nXGCwSdsDk8)

Now we wait for phantomjs 2.0.0 (due sometime in June); which is planned to be ported to Qt 5.0, and bleeding edge webkit.