Commit Graph

261 Commits

Author SHA1 Message Date
Niklas von Hertzen
e9afe03960 Implement background-size cover/contain 2013-11-12 19:35:28 +02:00
Niklas von Hertzen
57d20a9794 Fix missing background color bug 2013-11-12 19:34:20 +02:00
Niklas von Hertzen
7cc7f80ee2 Add dom depth information to render queue 2013-10-27 22:08:12 +02:00
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
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
c759600c06 Refactoring 2013-09-04 19:29:12 +03: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
ea7d6b485d preserve stacking nesting with special ancestor. issue #256 2013-08-15 02:12:38 +08:00
Niklas von Hertzen
10b40821e5 first implementation for matrix transforms 2013-08-06 21:11:08 +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
f35ef0fe6f Refactor 2013-08-04 18:33:18 +03:00
Niklas von Hertzen
37fbd3f90e Fix border rendering bug 2013-08-04 16:41:36 +03:00
Niklas von Hertzen
2d39cd0719 fix shadow parsing for IE9 2013-08-04 15:41:00 +03:00
Niklas von Hertzen
877367d499 Merge branch 'arrix-child_textnodes' into develop 2013-08-04 14:36:55 +03:00
arrix
fd888bde8d fixes #251. inline text in top element 2013-08-02 14:36:42 +08:00
Niklas von Hertzen
a7d3e9c2a2 Merge branch 'master' of git://github.com/fdn/html2canvas into fdn-master 2013-06-23 19:27:53 +03:00
Guerric Sloan
f49e147b2f Added qunit tests for text-shadow 2013-06-18 23:47:08 -07:00
Niklas von Hertzen
a902f92a14 remove svg rendering 2013-06-15 11:53:28 +03:00
Guerric Sloan
e1573f8aed Parse out multiple text-shadow values and only honor the first one. 2013-06-12 16:48:23 -07:00
Guerric Sloan
655779743b Better text-shadow parsing 2013-06-12 15:48:00 -07:00
Guerric Sloan
1a30167f6a Basic implementation of text-shadow 2013-06-12 14:54:46 -07:00
Niklas von Hertzen
288b851d05 revert image smooth disabling 2013-05-29 22:50:01 +03:00
Niklas von Hertzen
0afb0fae0e disable image smoothing 2013-05-29 22:31:00 +03:00
Fritz Elfert
2b000f0061 Fixed #207 2013-05-19 22:34:57 +02:00
Fritz Elfert
85fa81ad95 - Fix parsing of input fields on IE9 2013-04-07 21:56:49 +02:00
Fritz Elfert
cf735a9fa1 - Fixed rendering of ExtJS 4.2 windows. 2013-04-06 00:30:16 +02:00
Fritz Elfert
9b051b8749 - Fetch images of current element only 2013-04-05 18:06:37 +02:00
Dan Farrelly
8623e4014b Upgrade to Grunt 0.4.0 complete. Safari on OSX bug fix. 2013-03-22 14:57:38 -04:00
Niklas von Hertzen
b2df50a858 Allow element node to be passed 2013-01-30 20:12:25 +02:00
Niklas von Hertzen
8ddf10fc04 Fix taint testing 2013-01-12 22:28:00 +02:00
Niklas von Hertzen
1b37c5d1ea Refactored preload 2013-01-11 23:01:29 +02:00
Niklas von Hertzen
67850f2cee Refactoring 2013-01-11 22:50:46 +02:00
Niklas von Hertzen
88dd1e41c0 Moved pseudoelement rendering to parse.js 2013-01-11 22:36:23 +02:00
Niklas von Hertzen
222dfa84b7 remove legacy code 2013-01-11 20:38:33 +02:00
Niklas von Hertzen
9b0c32c62c Fix firefox pseudoelement bug for images 2013-01-11 20:36:07 +02:00
Niklas von Hertzen
2bb926c7d0 Fix webkit-gradient() parsing 2013-01-11 20:31:34 +02:00
Niklas von Hertzen
861a18f977 Fix Chrome background-repeat parse error 2013-01-11 19:51:53 +02:00
Niklas von Hertzen
2f3f27b672 Fix crash for browsers that don't support placeholder attribute 2013-01-11 19:34:56 +02:00
Niklas von Hertzen
3032dc6ce0 Fix empty content getting rendered on firefox/IE 2013-01-11 19:31:05 +02:00
Andy Edinborough
2b0db917e3 don't process pseudo elements for hidden elements; cleanup pseudo elements after render 2013-01-11 10:46:53 -06:00