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
Andy Edinborough
d73e53fbf0
Merge remote-tracking branch 'niklasvh/develop' into develop
2013-01-11 09:51:59 -06:00
Niklas von Hertzen
6d29cc5df3
chinese word rendering
2013-01-04 23:47:59 +02:00
Andy Edinborough
dc21fab450
missing braces
2013-01-03 17:10:57 -06:00
Andy Edinborough
5492d80135
simply resize images to background-size
2013-01-03 17:09:23 -06:00
Niklas von Hertzen
a313524aa4
refactored renderer
2013-01-03 23:15:06 +02:00
Andy Edinborough
3edf9fa743
Merge remote-tracking branch 'niklasvh/develop' into develop
...
Conflicts:
src/Parse.js
src/Preload.js
2013-01-03 15:07:38 -06:00
Niklas von Hertzen
053a0a4787
switched background rendering to use patterns
2013-01-03 22:25:35 +02:00
Niklas von Hertzen
65b4bdf282
background clipping support
2013-01-03 20:34:47 +02:00
Niklas von Hertzen
56780565f4
refactored border radius calculation
2013-01-03 18:37:27 +02:00
Andy Edinborough
55ed0ffde0
render placeholder text
2013-01-02 17:03:16 -06:00
Andy Edinborough
7da4326885
background-size fixes
...
generated gradients need a unique key (the same value can generate a
different image based on background-size); fix so that a single value
specified for background-size yields a scaled height as the second
parameter
2013-01-02 14:51:03 -06:00
Andy Edinborough
eb57b61859
backgroundPosition should use backgroundSize as a baseline for %'s
2013-01-02 13:45:58 -06:00
Niklas von Hertzen
bb73d3c15e
initial border-radius rendering
2013-01-02 21:26:24 +02:00
Andy Edinborough
9b5ae9e191
support for pseudo elements
2013-01-02 12:58:48 -06:00
Andy Edinborough
2557a83dbe
remove todo comment
2013-01-02 10:51:47 -06:00
Andy Edinborough
67ccb33dd5
add tests for resizeBounds
2013-01-02 10:47:36 -06:00
Andy Edinborough
85706166cc
trimText regexp needs /g
2013-01-02 10:40:56 -06:00
Andy Edinborough
57d6003b65
backgroundSize needs trimmed before second split
...
also move trimText to Util
2013-01-02 10:39:00 -06:00
Andy Edinborough
9ce03d6e86
working background-size
2013-01-02 10:10:03 -06:00
Andy Edinborough
3d3f923ed8
implementing background-size; use parseBackgroundImage in render
2013-01-01 10:42:22 -06:00
Andy Edinborough
473ff45267
Merge remote-tracking branch 'niklasvh/develop' into develop
...
Conflicts:
src/Core.js
src/Parse.js
src/Util.js
2012-12-30 17:25:31 -06:00
Niklas von Hertzen
496c8488bd
Moved font metrics to seperate file
2012-12-30 21:26:25 +02:00
Andy Edinborough
df0f436e66
initial support for backgroundSize
2012-12-30 12:30:48 -06:00
Andy Edinborough
6ce619f0c0
refactor Preload
2012-12-30 12:20:35 -06:00
Andy Edinborough
0c66766d55
replace definition property, w/ args[]
...
Also fix reference for preloader
2012-12-30 11:21:44 -06:00
Niklas von Hertzen
ba9ace71ba
improved text-decoration: overline accuracy
2012-12-30 16:46:31 +02:00
Niklas von Hertzen
0dd2c24ab4
refactored parsing init
2012-12-30 16:06:59 +02:00
Niklas von Hertzen
d93e36d768
Moved browser support checks to seperate file
2012-12-30 15:48:55 +02:00
Niklas von Hertzen
1357057cbf
refactored background rendering
2012-12-30 15:38:17 +02:00
Niklas von Hertzen
74e93cbb93
refactoring backgroundimage rendering
2012-12-30 15:21:36 +02:00
Niklas von Hertzen
45853a083c
refactored text rendering
2012-12-30 04:15:51 +02:00
Niklas von Hertzen
cb43e09899
refactor parsing
2012-12-30 01:39:37 +02:00
Niklas von Hertzen
bb1cd21367
refactored background color rendering
2012-12-30 01:11:05 +02:00
Niklas von Hertzen
5faa45847e
refactored image rendering
2012-12-30 01:06:11 +02:00
Niklas von Hertzen
0c2572b5ce
refactoring
2012-12-30 00:27:38 +02:00
Niklas von Hertzen
aa5b3d41c4
refactoring
2012-12-29 23:35:52 +02:00
Niklas von Hertzen
516edbceea
Improve background-repeat accuracy for non int positions
2012-12-29 23:05:49 +02:00
Niklas von Hertzen
c72a02bf64
refactoring
2012-12-29 21:06:40 +02:00
Niklas von Hertzen
c3e9636e4f
Moved renderer logic to renderer.js
2012-12-29 17:43:15 +02:00
Niklas von Hertzen
07e80df399
Fixed lint error
2012-12-29 14:33:30 +02:00
Andy Edinborough
7e38df782c
don't generate gradient on invisible elements
2012-12-28 16:52:48 -06:00
Andy Edinborough
7f1cbc70a8
fully remove regex; simplify whitespace check
...
jshint complained about case statements w/o break (boo)
2012-12-28 16:26:39 -06:00
Andy Edinborough
b81d7473e3
rewrite parseBackgroundImage to remove RegExp
...
RegExp couldn't handle parens inside parens:
linear-gradient(rgb(0,0,0),rgb(255,0,0))
2012-12-28 16:22:43 -06:00
Andy Edinborough
d7bef66cc5
export html2canvas, pass value not def to backgroundImage
2012-12-28 15:49:38 -06:00
Andy Edinborough
04782c1716
parse out prefixed methods
2012-12-28 12:54:58 -06:00
Andy Edinborough
a4b7d04e80
move parseBackgroundImage to Util; add tests
2012-12-28 12:33:57 -06:00
Andy Edinborough
62cb111956
style update
2012-12-28 12:24:49 -06:00
Andy Edinborough
3171390f80
satisfy lint task
2012-12-28 12:12:47 -06:00
Andy Edinborough
8fe61a43b0
initial support for multiple background images
...
Adding code from http://jsbin.com/ebigux/latest
2012-12-28 11:53:15 -06:00
Niklas von Hertzen
4e978c60cc
formatted tests into smaller units
2012-12-27 23:53:27 +02:00
Niklas von Hertzen
c9ed8d91fa
updated renderer
2012-12-27 23:07:00 +02:00
Niklas von Hertzen
4684177df8
fix ie 9 bug
2012-12-27 23:06:35 +02:00
Niklas von Hertzen
d6ddb7e29d
Added automated testing with selenium
2012-12-22 16:28:34 +02:00
Niklas von Hertzen
76aa1e8feb
moved examples
2012-11-25 23:48:08 +02:00
Niklas von Hertzen
2841f19647
List refactoring
2012-11-25 23:36:28 +02:00
Niklas von Hertzen
c6baabc99c
Text rendering refactoring
2012-11-25 23:26:18 +02:00
Niklas von Hertzen
44023015b6
Refactoring
2012-11-25 23:05:30 +02:00
Niklas von Hertzen
bca6458301
Clean up
2012-11-25 22:39:09 +02:00
Niklas von Hertzen
7c0b893564
Added support for "data-html2canvas-ignore" attribute
2012-11-25 22:25:08 +02:00
Niklas von Hertzen
084bf4b039
Switched build process to use grunt
2012-11-25 20:59:31 +02:00
Vladimir Panteleev
1b81f7d517
Accept 0px as an acceptable letter-spacing value for per-word rendering
...
This improves performance in Opera.
2012-10-20 22:18:46 +03:00
Vladimir Panteleev
3164e5bae0
Don't create zero-width text node after each render
...
This fixes rendering the same node getting slower each time
when using Opera.
2012-10-20 22:15:58 +03:00
Niklas von Hertzen
730ebcfcaa
border-radius parsing
2012-06-26 17:18:34 +03:00
Niklas von Hertzen
cce6e3537c
corrected border drawing with multiple colors
...
initial code for border-radius implemented
2012-06-26 15:15:46 +03:00
Niklas von Hertzen
d6cb548a5c
updated to version 0.34
2012-06-26 01:35:11 +03:00
Niklas von Hertzen
1ba911912d
fixed firefox iframe permission error
2012-06-26 01:30:45 +03:00
Niklas von Hertzen
343b86705f
removed last jQuery dependencies
...
should be fully jQuery free now!
2012-06-26 01:17:03 +03:00
Niklas von Hertzen
9f76f94a82
fix jQuery noconflict
2012-06-13 13:56:01 +03:00
Benjamin Lupton
1059314258
Added a sublime-project file for Sublime Text 2 that contains the detected linting and standards set. Allows Sublime Text 2 to automatically follow the standards and have live linting enabled. Trimmed useless whitespace.
2012-05-29 11:26:26 +10:00
Niklas von Hertzen
8d3a0c2b0d
cache computed style
2012-05-24 14:10:40 +03:00
Bdkzero
a5969be6f6
Fixed custom renderer option
2012-04-23 23:04:23 +02:00
Paolo
cfc45e4f6e
Fixed image rendering in SVG renderer
2012-04-17 10:58:14 +02:00
Paolo
8d965029da
Fixed support for other Renderers other than Canvas
2012-04-17 10:57:25 +02:00
Niklas von Hertzen
1ad7ed3e1c
Merge pull request #77 from SunboX/background-gradients
...
ellipse gradient generation should now work
2012-03-14 03:38:05 -07:00
Obexer Christoph
b47347d6b8
fixed a few undefined references, fixed missing files in a few places
2012-03-12 07:37:18 +01:00
André Fiedler
106b5ff214
"fixed circle gradient generation - image loading bug"
2012-03-11 17:12:24 +00:00
André Fiedler
d1dec8712e
"added ellipse background gradient generation"
2012-03-10 15:31:16 +00:00
André Fiedler
fe4d2c5b81
"added TODO"
2012-03-10 14:28:09 +00:00
André Fiedler
6cf3d36624
"added TODO"
2012-03-09 23:27:22 +00:00
André Fiedler
4dc4132818
"removed TODO"
2012-03-09 23:26:23 +00:00
André Fiedler
1ab9941df6
"big performance boost ;o)"
2012-03-09 23:23:17 +00:00
André Fiedler
0fc5f643ba
"cleanup"
2012-03-09 23:20:46 +00:00
André Fiedler
c7995061c9
"added TODO"
2012-03-09 23:11:01 +00:00
André Fiedler
12cf519e37
"some cleanup"
2012-03-09 23:09:16 +00:00
André Fiedler
40bce5e84c
"added -o-radial-gradient support"
2012-03-09 23:05:42 +00:00
André Fiedler
0556892e12
"added -moz-radial-gradient support"
2012-03-09 22:58:32 +00:00
André Fiedler
155ad45292
"added -webkit-radial-gradient support"
2012-03-09 22:20:34 +00:00
Niklas von Hertzen
0d35571bbf
Merge branch 'color-stops' of https://github.com/SunboX/html2canvas.git
2012-03-08 11:35:12 +02:00
André Fiedler
6390c1c7ac
"center gradient BugFix"
2012-03-07 18:20:09 +00:00
André Fiedler
a0b498fbf5
"added TODO"
2012-03-06 21:50:09 +00:00
André Fiedler
cde96bb17e
"added TODO´s"
2012-03-06 21:45:38 +00:00
André Fiedler
57bff5292d
"added contributors"
2012-03-06 21:41:22 +00:00
André Fiedler
82446ee3c3
"cleanup"
2012-03-06 21:36:29 +00:00
André Fiedler
ffd998b015
"-o-linear-gradient parsing"
2012-03-06 21:26:43 +00:00
André Fiedler
51b2c01b0c
"-moz-linear-gradient parsing"
2012-03-06 21:11:01 +00:00
Niklas von Hertzen
c08ac5d0c4
add svg powered rendering
2012-03-06 17:11:10 +02:00
Niklas von Hertzen
59306c839b
Merge branch 'master' of https://github.com/niklasvh/html2canvas.git
2012-03-06 14:37:28 +02:00
Niklas von Hertzen
5fb8cb3e0b
reverting back to jQuery.contents()
2012-03-06 14:35:33 +02:00
Niklas von Hertzen
67d3e0d0f5
first commit for SVG powered rendering
2012-03-06 14:32:45 +02:00
André Fiedler
f387267c0f
"TODO: implement radial gradient generation"
2012-03-05 23:22:01 +00:00
André Fiedler
163219b656
"added -webkit-gradient parsing + tests"
2012-03-05 23:03:36 +00:00
André Fiedler
a4f13de455
"renamed getColorStopsFromGradient to parseGradient"
2012-03-05 22:21:28 +00:00