Commit Graph

28 Commits

Author SHA1 Message Date
ssafejava
8bea01b81d Speed & accuracy improvements to pseudo element rendering.
Previously, pseudo elements would be processed as they were found in the DOM tree, which was
an expensive operation as each element's computed :before and :after style was checked for
'content' styles.

This commit traverses the user's stylesheets for :before and :after selectors, gathers the classes
affected, selects all elements that likely have a pseudo element present, then checks computed style.
If there is actually an element present, it is created but *not* appended to the DOM until after
all elements have been processed.

After all elements have been found and created, they are added to the DOM in a single batch, and the original
pseudo elements are hidden in a single batch. This prevents the layout invalidation / relayout loop that was
occuring previously, and in my tests speeds parsing by as much as 50% or more, depending on how many
pseudo elements your page uses.

Additionally, this commit contains a bugfix to the handling of ":before" pseudo elements; the browser effectively
inserts them as the first child of the element, not before the element. This fixes a few rendering inconsistencies
and complicated pages look almost perfect in my tests.
2013-09-18 13:38:21 +08:00
ssafejava
e115180731 Add async parsing option.
In my testing, the major time sink is parsing. This commit adds a setTimeout() around parsing
of each item so control can return to the browser. This increases the total time it takes to finish
a screenshot but will not freeze the browser when it does. This is a good option when e.g. doing
error reporting, where you might not want to freeze the browser while sending debugging information
back to your server.
2013-09-18 13:38:21 +08:00
Niklas von Hertzen
0fd25f048d Add bower.json 2013-09-07 21:24:41 +03:00
Obexer Christoph
03495f851d drop obsolete files from the build folder 2011-11-16 00:36:44 +01:00
Niklas von Hertzen
27ee971bba merged from dev 2011-09-12 21:35:37 +03:00
Niklas von Hertzen
1c44b94817 Added support for some list-style-type's with list-style-position: inside 2011-08-11 22:43:42 +03:00
Niklas von Hertzen
6fe937eb66 fixed IE 9 text issues 2011-08-11 16:19:42 +03:00
Niklas von Hertzen
dcd2a03f79 fixed fatal error with multiple background images 2011-08-11 15:32:20 +03:00
Niklas von Hertzen
d8b4398278 rewrote z-index ordering logic 2011-08-02 21:07:51 +03:00
Niklas von Hertzen
29b580dbb7 added support for form element text value rendering 2011-07-29 22:55:01 +03:00
Niklas von Hertzen
78e1f9829f fixed z-index ordering bug with backgrounds 2011-07-29 19:22:38 +03:00
Niklas von Hertzen
d5c443a14c fixed few minor bugs, added some support for overflow (hidden|scroll|auto) 2011-07-28 21:22:13 +03:00
Niklas von Hertzen
9d04b0bbec added support for proxys, fixed a lot of background position issues, added test console 2011-07-21 03:12:17 +03:00
Niklas von Hertzen
7ac9042f33 minor fix for text positioning 2011-07-18 19:21:55 +03:00
Niklas von Hertzen
f8012224f9 added performance boost for text rendering for Chrome & Firefox,
while retainining compatibility with Opera & custom text settings.
2011-07-18 15:57:21 +03:00
Niklas von Hertzen
f1f15bb92d rebuilt source 2011-07-18 13:20:04 +03:00
Niklas von Hertzen
630b435767 support for opacity 2011-07-18 00:59:36 +03:00
Niklas von Hertzen
3c4581b5c4 Skipping visibility:hidden and display:none elements 2011-07-18 00:39:56 +03:00
Niklas von Hertzen
a27290caae added support for font-variant 2011-07-17 23:52:11 +03:00
Niklas von Hertzen
1192795bd5 updated version to 0.20 2011-07-17 23:28:28 +03:00
Niklas von Hertzen
531d075c8c added rendering stacks, queues and support z-index positioning 2011-07-17 23:27:45 +03:00
Niklas von Hertzen
45381454b4 Added timer/statistics for rendering 2011-07-17 02:42:45 +03:00
Niklas von Hertzen
3193e1a20b iframe fixes 2011-07-17 02:20:01 +03:00
Niklas von Hertzen
4e19e99756 fixed background-repeat / background-position problem in IE9 and Opera 2011-07-17 01:34:34 +03:00
Niklas von Hertzen
5c037b67d6 fixed a few image issues related to padding and borders 2011-07-17 00:13:01 +03:00
Niklas von Hertzen
5c36f6aff0 fixed text draw issue for opera 2011-07-16 23:56:49 +03:00
Niklas von Hertzen
ba0306af49 added support for font-metrics, to find baseline information for text (text-decoration:underline) 2011-07-16 22:35:06 +03:00
Niklas von Hertzen
adc30b6361 split files & created build file 2011-07-16 19:59:15 +03:00