Bug 94805

Summary: webkit does not adjust a view unit based font size until the page is refreshed (premature optimisation?)
Product: WebKit Reporter: nemo <bugs>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: UNCONFIRMED    
Severity: Normal CC: jwalden+bwo, robertc
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
URL: http://m8y.org/tmp/testcase272.xhtml
Attachments:
Description Flags
demo of problem none

nemo
Reported 2012-08-23 06:41:43 PDT
This is particularly unfortunate since one of the strengths of view units is the ability to set variable font size. Now. I'm not totally sure this is a bug in Webkit since unfortunately Internet Explorer 10 does the exact same thing. It might be in the spec that way. But, what you'd think *could* be done, would be that even if resizing the font continuously would be a performance issue, surely you could at least avoid the need for a manual refresh by the user by simply queuing a request to do this recalc maybe 500ms after any window resize. That way while the window was being resized, it wouldn't trigger 'cause it'd continually be pushed back. But as soon as it was done resizing, we'd get a nicely sized font.
Attachments
demo of problem (1.25 KB, application/xhtml+xml)
2012-08-23 06:42 PDT, nemo
no flags
nemo
Comment 1 2012-08-23 06:42:18 PDT
Created attachment 160150 [details] demo of problem
nemo
Comment 2 2012-08-23 07:19:06 PDT
I updated http://m8y.org/tmp/testcase272.xhtml to link to http://m8y.org/tmp/testcase273.xhtml which adds a javascript workaround. Inelegant...
nemo
Comment 3 2012-08-23 07:56:38 PDT
Added a delay to the workaround, in the interests of performance. Now of course, the workaround might well screw up web pages. Reloading does do that. If anyone knows of a way to trigger this recalc without reloading, do let me know. I'd love a "nicer" JS workaround.
nemo
Comment 4 2012-08-23 09:30:46 PDT
Hm... Doing any change to the content seems to work too. Sweet. Going to try a subtle adjustment of colour for forcing a recalc.
nemo
Comment 5 2012-08-23 09:54:04 PDT
Actually, that wasn't enough. Toggling styles was enough in the Chrome dev tool, but didn't seem to have any effect in JS. Sooo, resorted to removing the rule and adding it back in. That worked. Updated http://m8y.org/tmp/testcase273.xhtml accordingly.
nemo
Comment 6 2012-08-25 06:25:03 PDT
BTW, recreating the rule doesn't seem to be enough for IE10 either, soo, going to have to try and find some other workaround there.
nemo
Comment 7 2012-08-25 06:27:08 PDT
Oh. That is. location.reload() (ugh) *does* work in IE10 but removing the rule doesn't seem to, unless the delay matters. Probably not too interesting to the webkit guys, but maybe interesting to other page creators who run into this bug.
nemo
Comment 8 2012-10-22 08:07:22 PDT
https://bugzilla.mozilla.org/show_bug.cgi?id=503720#c46 So, Firefox now has this in nightlies, implemented correctly. Of the two other major browsers, IE10's brokenness is more irritating to fix, but if you guys would fix Webkit, maybe that would put pressure on them?
Note You need to log in before you can comment on or make changes to this bug.