259 Commits

Author SHA1 Message Date
MoyuScript
1cc71a33bc Add dom depth information to render queue 2013-10-27 22:08:12 +02:00
MoyuScript
b35d1e585b 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
MoyuScript
11417a16f0 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
MoyuScript
7f923f7834 Remove unnecessary custom complete event checker 2013-09-04 20:17:38 +03:00
MoyuScript
c54eca0ae8 Fix background color rendering layering with no documentElement color 2013-09-04 20:03:16 +03:00
MoyuScript
b39268a6b6 Refactoring 2013-09-04 19:29:12 +03:00
MoyuScript
908eb1361a stacking context creator should be at the bottom
passes z-index12. issue #256
2013-08-15 23:24:01 +08:00
MoyuScript
9cace5316f preserve stacking nesting with special ancestor. issue #256 2013-08-15 02:12:38 +08:00
MoyuScript
565f0a78b2 first implementation for matrix transforms 2013-08-06 21:11:08 +03:00
MoyuScript
a78a500e9d Fix cropping of canvas for float sized elements 2013-08-06 19:15:46 +03:00
MoyuScript
6aa73c3b93 Refactoring logging and gradients 2013-08-06 18:55:04 +03:00
MoyuScript
965104be57 Ignore transforms if non found 2013-08-06 18:20:20 +03:00
MoyuScript
1fa45c64e1 initial commit for transforms 2013-08-06 18:17:33 +03:00
MoyuScript
55641a0fd8 Refactoring 2013-08-06 17:55:13 +03:00
MoyuScript
25abef772e Refactoring 2013-08-06 17:46:47 +03:00
MoyuScript
ef7ffef87d 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
MoyuScript
caf020c9e7 coding optimizations 2013-08-06 10:01:20 +08:00
MoyuScript
6307f7c724 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
MoyuScript
aceddb6083 Refactor 2013-08-04 18:33:18 +03:00
MoyuScript
dfc0a8a9a0 Fix border rendering bug 2013-08-04 16:41:36 +03:00
MoyuScript
1c3c4a5983 fix shadow parsing for IE9 2013-08-04 15:41:00 +03:00
MoyuScript
4c2cfb30ed Merge branch 'arrix-child_textnodes' into develop 2013-08-04 14:36:55 +03:00
MoyuScript
795d7e1d68 fixes #251. inline text in top element 2013-08-02 14:36:42 +08:00
MoyuScript
fff6b55e35 Merge branch 'master' of git://github.com/fdn/html2canvas into fdn-master 2013-06-23 19:27:53 +03:00
MoyuScript
5bdc728f6f Added qunit tests for text-shadow 2013-06-18 23:47:08 -07:00
MoyuScript
373f6f4e62 remove svg rendering 2013-06-15 11:53:28 +03:00
MoyuScript
f1d051e11f Parse out multiple text-shadow values and only honor the first one. 2013-06-12 16:48:23 -07:00
MoyuScript
2173c277ae Better text-shadow parsing 2013-06-12 15:48:00 -07:00
MoyuScript
79d4dd0410 Basic implementation of text-shadow 2013-06-12 14:54:46 -07:00
MoyuScript
56a20e2833 revert image smooth disabling 2013-05-29 22:50:01 +03:00
MoyuScript
e7040441d6 disable image smoothing 2013-05-29 22:31:00 +03:00
MoyuScript
297e091ba3 Fixed #207 2013-05-19 22:34:57 +02:00
MoyuScript
01094d746d - Fix parsing of input fields on IE9 2013-04-07 21:56:49 +02:00
MoyuScript
2632d11084 - Fixed rendering of ExtJS 4.2 windows. 2013-04-06 00:30:16 +02:00
MoyuScript
4aeceabc2b - Fetch images of current element only 2013-04-05 18:06:37 +02:00
MoyuScript
27a62723f8 Upgrade to Grunt 0.4.0 complete. Safari on OSX bug fix. 2013-03-22 14:57:38 -04:00
MoyuScript
362a12dd18 Allow element node to be passed 2013-01-30 20:12:25 +02:00
MoyuScript
e20728aaa9 Fix taint testing 2013-01-12 22:28:00 +02:00
MoyuScript
5f60dfa832 Refactored preload 2013-01-11 23:01:29 +02:00
MoyuScript
396ea6c863 Refactoring 2013-01-11 22:50:46 +02:00
MoyuScript
4da0686562 Moved pseudoelement rendering to parse.js 2013-01-11 22:36:23 +02:00
MoyuScript
8b68abc8e4 remove legacy code 2013-01-11 20:38:33 +02:00
MoyuScript
c9e182c7a9 Fix firefox pseudoelement bug for images 2013-01-11 20:36:07 +02:00
MoyuScript
4b9371f0e5 Fix webkit-gradient() parsing 2013-01-11 20:31:34 +02:00
MoyuScript
63fbe2cb79 Fix Chrome background-repeat parse error 2013-01-11 19:51:53 +02:00
MoyuScript
56e97bf673 Fix crash for browsers that don't support placeholder attribute 2013-01-11 19:34:56 +02:00
MoyuScript
fc9ed4b645 Fix empty content getting rendered on firefox/IE 2013-01-11 19:31:05 +02:00
MoyuScript
521b190b22 don't process pseudo elements for hidden elements; cleanup pseudo elements after render 2013-01-11 10:46:53 -06:00
MoyuScript
d3189b8c79 Merge remote-tracking branch 'niklasvh/develop' into develop 2013-01-11 09:51:59 -06:00
MoyuScript
ad7e6ccdc5 chinese word rendering 2013-01-04 23:47:59 +02:00