Add per-fragment early-out for getCharNumAtPosition
Add per-fragment early-out for getCharNumAtPosition

Since this is a spatial query, and a SVGTextFragment already contain an
approximation of it's own bounds, we can use those to perform a reasonably
efficient early-rejection test.
As an example: A TC using the textPath-data from issue 267504 [1] and a
mouse-move handler that uses getCharNumAtPosition to check which
"character" (glyph) is under the pointer consumes 0.005-0.2ms, compared to
0.2-0.5ms without this patch (before the CL in [2], this was 5-10ms!).
The TC mentioned in [2] now also weighs in at a few thousand us at worst.

[1] http://jsbin.com/imajow/1/quiet
[2] https://codereview.chromium.org/353003002

Review URL: https://codereview.chromium.org/355173002

git-svn-id: bf5cd6ccde378db821296732a091cfbcf5285fbd@177230 bbb929c8-8fbe-4397-9dbb-9b2b20218538

nwjs/blink,crosswalk-project/blink-crosswalk-efl,modulexcite/blink,XiaosongWei/blink-crosswalk,ondra-novak/blink,Pluto-tv/blink-crosswalk,kurli/blink-crosswalk,jtg-gg/blink,smishenk/blink-crosswalk,Pluto-tv/blink-crosswalk,modulexcite/blink,PeterWangIntel/blink-crosswalk,hgl888/blink-crosswalk-efl,crosswalk-project/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,Pluto-tv/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,jtg-gg/blink,PeterWangIntel/blink-crosswalk,ondra-novak/blink,modulexcite/blink,kurli/blink-crosswalk,nwjs/blink,Bysmyyr/blink-crosswalk,XiaosongWei/blink-crosswalk,ondra-novak/blink,XiaosongWei/blink-crosswalk,smishenk/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,ondra-novak/blink,ondra-novak/blink,Pluto-tv/blink-crosswalk,PeterWangIntel/blink-crosswalk,kurli/blink-crosswalk,PeterWangIntel/blink-crosswalk,Pluto-tv/blink-crosswalk,Pluto-tv/blink-crosswalk,hgl888/blink-crosswalk-efl,modulexcite/blink,jtg-gg/blink,nwjs/blink,Bysmyyr/blink-crosswalk,modulexcite/blink,kurli/blink-crosswalk,Bysmyyr/blink-crosswalk,modulexcite/blink,XiaosongWei/blink-crosswalk,Bysmyyr/blink-crosswalk,hgl888/blink-crosswalk-efl,smishenk/blink-crosswalk,Pluto-tv/blink-crosswalk,smishenk/blink-crosswalk,ondra-novak/blink,kurli/blink-crosswalk,Bysmyyr/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,modulexcite/blink,jtg-gg/blink,hgl888/blink-crosswalk-efl,PeterWangIntel/blink-crosswalk,hgl888/blink-crosswalk-efl,kurli/blink-crosswalk,nwjs/blink,Pluto-tv/blink-crosswalk,smishenk/blink-crosswalk,Bysmyyr/blink-crosswalk,nwjs/blink,Bysmyyr/blink-crosswalk,hgl888/blink-crosswalk-efl,kurli/blink-crosswalk,jtg-gg/blink,Bysmyyr/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,XiaosongWei/blink-crosswalk,jtg-gg/blink,Bysmyyr/blink-crosswalk,nwjs/blink,modulexcite/blink,smishenk/blink-crosswalk,kurli/blink-crosswalk,modulexcite/blink,nwjs/blink,PeterWangIntel/blink-crosswalk,PeterWangIntel/blink-crosswalk,ondra-novak/blink,ondra-novak/blink,Pluto-tv/blink-crosswalk,Bysmyyr/blink-crosswalk,kurli/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,jtg-gg/blink,crosswalk-project/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,XiaosongWei/blink-crosswalk,PeterWangIntel/blink-crosswalk,kurli/blink-crosswalk,XiaosongWei/blink-crosswalk,nwjs/blink,PeterWangIntel/blink-crosswalk,smishenk/blink-crosswalk,PeterWangIntel/blink-crosswalk,XiaosongWei/blink-crosswalk,modulexcite/blink,XiaosongWei/blink-crosswalk,nwjs/blink,Pluto-tv/blink-crosswalk,jtg-gg/blink,crosswalk-project/blink-crosswalk-efl,jtg-gg/blink,smishenk/blink-crosswalk,hgl888/blink-crosswalk-efl,smishenk/blink-crosswalk,nwjs/blink,XiaosongWei/blink-crosswalk,jtg-gg/blink,smishenk/blink-crosswalk,ondra-novak/blink