其实对于手机浏览器来说,设置字体大小实在是一个非常鸡肋又蛋疼无比的功能,因为本身可以缩放,还有缩放重排等功能。谁会有那么无聊想设置字体大小。改变字体大小强制改变了原网页的意图,排版完全改变,很可能造成较差的用户体验,真是一个吃力不讨好的功能。
在browser端设置字体大小之后,不出意外会最终设置到WebCore::Settings::setTextAutosizingFontScaleFactor函数。当然,前提是你必须开启了TEXT_AUTOSIZING功能。否则你的设置完全不会起作用。
TEXT_AUTOSIZING功能是什么,直白的理解就是自动调节字体大小以使用户获得更佳的体验。怎样来调节?当然是按照chromium自己的逻辑来调节。这个流程从排版开始:
#0 WebCore::TextAutosizer::processContainer (this=0x4bb6ee98, multiplier=1.5, container=0x4c9d1bd0, subtreeRoot=0x4c9d1bd0, windowInfo=...) at third_party/WebKit/Source/WebCore/rendering/TextAutosizer.cpp:149
#1 0x5b60758a in WebCore::TextAutosizer::processContainer (this=0x4bb6ee98, multiplier=1.5, container=<value optimized out>, subtreeRoot=0x4c9d136c, windowInfo=.