Commit Graph

542 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
ssafejava
e782efa614 Move jshint rules into jshintrc and include from Gruntfile. 2013-09-18 13:37:06 +08:00
Niklas von Hertzen
806cd60474 Add links to readme 2013-09-07 22:07:27 +03:00
Niklas von Hertzen
0515765788 Release version 0.4.1 2013-09-07 21:29:31 +03:00
Niklas von Hertzen
0fd25f048d Add bower.json 2013-09-07 21:24:41 +03:00
Niklas von Hertzen
14ff672c6e Disable screenshot storing 2013-09-07 21:10:06 +03:00
Niklas von Hertzen
38fad5ac17 Update travis key 2013-09-07 00:10:53 +03:00
Niklas von Hertzen
a31de83368 update token 2013-09-07 00:05:47 +03:00
Niklas von Hertzen
1fb3b53fc0 update certificate 2013-09-06 23:57:47 +03:00
Niklas von Hertzen
4d465116da update travis.yml key decrypt argument 2013-09-06 23:48:18 +03:00
Niklas von Hertzen
74ce2c5062 update travis.yml secret 2013-09-06 23:26:35 +03:00
Niklas von Hertzen
fbeb6e72f2 Update test certificate 2013-09-06 23:11:04 +03:00
Niklas von Hertzen
c097f11ce3 Store webdriver screenshots to google drive 2013-09-06 22:30:24 +03:00
Niklas von Hertzen
b6ebf2acf6 Remove unnecessary custom complete event checker 2013-09-04 20:17:38 +03:00
Niklas von Hertzen
e9c3d9d332 Fix background color rendering layering with no documentElement color 2013-09-04 20:03:16 +03:00
Niklas von Hertzen
c232da2595 Fix grunt watch build order 2013-09-04 20:02:20 +03:00
Niklas von Hertzen
c759600c06 Refactoring 2013-09-04 19:29:12 +03:00
Niklas von Hertzen
5f45968154 Merge pull request #260 from arrix/develop
negative z-index
2013-08-15 12:15:04 -07:00
arrix
feb2fd0a63 test case for body bgcolor and negative z-index #256 2013-08-16 00:26:40 +08:00
arrix
fb944d9381 test case for negative z-index below text 2013-08-15 23:31:48 +08:00
arrix
564634ba97 stacking context creator should be at the bottom
passes z-index12. issue #256
2013-08-15 23:24:01 +08:00
arrix
dd7468c446 use solid border in z-index tests 2013-08-15 22:31:32 +08:00
Niklas von Hertzen
eb00650b02 fix text 2013-08-14 21:56:43 +03:00
Niklas von Hertzen
1d03a5f9a4 z-index test case for negative z-indexes 2013-08-14 21:56:32 +03:00
arrix
ea7d6b485d preserve stacking nesting with special ancestor. issue #256 2013-08-15 02:12:38 +08:00
Niklas von Hertzen
fd4fd95429 Test case for static position inside position relative 2013-08-13 19:59:54 +03:00
Niklas von Hertzen
10b40821e5 first implementation for matrix transforms 2013-08-06 21:11:08 +03:00
Niklas von Hertzen
518dd702a2 list all tests in index.html 2013-08-06 21:10:46 +03:00
Niklas von Hertzen
056953f2c1 Fix cropping of canvas for float sized elements 2013-08-06 19:15:46 +03:00
Niklas von Hertzen
9a57a08c72 Refactoring logging and gradients 2013-08-06 18:55:04 +03:00
Niklas von Hertzen
26a81da2f0 Ignore transforms if non found 2013-08-06 18:20:20 +03:00
Niklas von Hertzen
57028ab423 initial commit for transforms 2013-08-06 18:17:33 +03:00
Niklas von Hertzen
c9e2fc27c8 Refactoring 2013-08-06 17:55:13 +03:00
Niklas von Hertzen
2777a3e079 Refactoring 2013-08-06 17:46:47 +03:00
arrix
02ab96dc5f passes z-index8 non-positioned element with opactiy < 1
The MDN article Understanding_z_index/Stacking_and_float is wrong about this
2013-08-06 10:34:13 +08:00
arrix
65746bd2e3 coding optimizations 2013-08-06 10:01:20 +08:00
arrix
16d3bef255 z-index overhaul. relative above static; negative z-index
1. when stacking without z-index, positioned > floated > normal flow
2. supports negative z-index
3. new stacking context formed when opacity < 1 (standard)
4. new stacking context formed for position:fixed (no standard yet, done in mobile webkit and chrome 22+)
2013-08-06 03:36:12 +08:00
Niklas von Hertzen
0277c34310 first transform test 2013-08-04 19:21:00 +03:00
Niklas von Hertzen
f35ef0fe6f Refactor 2013-08-04 18:33:18 +03:00
Niklas von Hertzen
2c8dd18d55 Fix build order 2013-08-04 18:33:02 +03:00
Niklas von Hertzen
6b5f31eef0 Add tests for text shadow 2013-08-04 17:00:41 +03:00
Niklas von Hertzen
832b9ee934 add grunt watch 2013-08-04 16:42:12 +03:00
Niklas von Hertzen
73698e8ceb Update readme 2013-08-04 16:41:41 +03:00
Niklas von Hertzen
37fbd3f90e Fix border rendering bug 2013-08-04 16:41:36 +03:00
Niklas von Hertzen
5300f20b78 use element instead of element-array in examples 2013-08-04 16:03:47 +03:00
Niklas von Hertzen
f0e234a1d8 Remove jQuery from examples 2013-08-04 15:58:42 +03:00
Niklas von Hertzen
30163ab16f Update readme 2013-08-04 15:51:16 +03:00
Niklas von Hertzen
407145da94 Update package.json 2013-08-04 15:50:54 +03:00
Niklas von Hertzen
c5e6eaa849 Change iframe test url 2013-08-04 15:41:46 +03:00