Commit Graph

619 Commits

Author SHA1 Message Date
Niklas von Hertzen
1870433307 Implement unicode line-breaking 2017-12-31 00:14:21 +08:00
Niklas von Hertzen
0aeb54ca2e Remove console.logs 2017-12-28 13:58:42 +08:00
Niklas von Hertzen
eec84fa39e Fix list-style-type: none (Fix #1340) 2017-12-28 13:52:05 +08:00
Niklas von Hertzen
9046e0d554 Update to use list style parser from ListItem 2017-12-24 17:08:54 +08:00
Niklas von Hertzen
afa5d7cb8e Merge branch 'feature/HTC-0010_PseudoContent' of git://github.com/vnmc/html2canvas into vnmc-feature/HTC-0010_PseudoContent 2017-12-24 16:30:13 +08:00
Niklas von Hertzen
baaf9b0701 Merge branch 'bugfix/underlines' of git://github.com/eKoopmans/html2canvas into eKoopmans-bugfix/underlines 2017-12-21 23:45:06 +08:00
Niklas von Hertzen
a570f5df74 Update useCORS documentation (Fix #1323) 2017-12-21 23:41:01 +08:00
Niklas von Hertzen
38749bc4b6 Fix canvas rendering on Chrome 2017-12-21 23:31:55 +08:00
Niklas von Hertzen
e1d6b4c76f Fix overflow: auto 2017-12-21 23:29:59 +08:00
Niklas von Hertzen
31f2c22477 Fix list style issues 2017-12-21 23:22:09 +08:00
Matthias Christen
6d0cd2d226 fixed flow problems in PseudoNodeContent.js 2017-12-15 23:46:26 +01:00
Matthias Christen
7335984ab7 added support for rendering ordered lists and list-style 2017-12-15 22:55:27 +01:00
Matthias Christen
78c3c7fc71 improved support of 'content' for pseudo elements (multiple components, counters, attr, quotes) 2017-12-15 12:40:04 +01:00
Niklas von Hertzen
0b9f34a5bf Fix formatting 2017-12-12 22:39:27 +08:00
Niklas von Hertzen
09bab18b48 Fix flow error 2017-12-12 22:32:12 +08:00
Niklas von Hertzen
ab966ff311 Fix formatting 2017-12-12 22:23:48 +08:00
Niklas von Hertzen
7bb4a6f08f Fix compiled code using symbols 2017-12-12 22:18:15 +08:00
Niklas von Hertzen
f50da9718f Fix NaN color stop in IE 2017-12-12 22:08:46 +08:00
Niklas von Hertzen
3965a0fd40 Fix backgroundColor option documentation (Fix #1164) 2017-12-12 21:23:53 +08:00
Niklas von Hertzen
77d258f1d8 Fix rendering with multiple fonts defined (Fix #796) 2017-12-12 21:08:19 +08:00
Niklas von Hertzen
cacb9f64e4 Radial gradient support 2017-12-12 20:57:48 +08:00
Matthias Christen
8ef3861a5c added support for radial gradients 2017-12-12 20:16:04 +08:00
Niklas von Hertzen
50608e9cd4 Fix external SVG loading with proxies (#802) 2017-12-11 20:51:39 +08:00
Niklas von Hertzen
d87fef11a4 Fix logging option (#1302) 2017-12-11 20:23:43 +08:00
Niklas von Hertzen
250208dc99 Add support for rendering webgl canvas content (#646) 2017-12-11 20:17:20 +08:00
Matthias Christen
d1e870de88 added support for gradient background size and fixed linear gradient angle when vendor prefix is used 2017-12-09 23:07:27 +01:00
Niklas von Hertzen
d83bc0247a Disable foreignObjectRendering by default (#1295) 2017-12-09 17:51:28 +08:00
Niklas von Hertzen
b239937e00 Refactor Font.js 2017-12-09 17:46:32 +08:00
Niklas von Hertzen
a6a3c1bd0f Fix tests and refactor background calculations out from Renderer 2017-12-09 17:45:58 +08:00
Matthias Christen
850338a76a added support for background-origin: content-box, fixed background-origin related background sizes 2017-12-09 00:12:29 +01:00
Niklas von Hertzen
ef5c59e26d Fix scroll positions for CanvasRenderer (Fix #1259) 2017-12-07 16:36:09 +08:00
Niklas von Hertzen
8b653f89bc Prevent generated iframe from getting re-rendered 2017-12-07 16:16:22 +08:00
Niklas von Hertzen
9db8580b97 Fix data-html2canvas-ignore attribute (Fix #1253) 2017-12-07 16:12:39 +08:00
Niklas von Hertzen
b8178e92b4 Add deprecation warning for onrendered (Fix #1290) 2017-12-07 15:47:42 +08:00
Niklas von Hertzen
166cbba7c2 Fix decimal letter spacing values (#1293) 2017-12-07 15:20:24 +08:00
Erik Koopmans
0c8d38d9c0 Fix underlines, relative to 'bottom' baseline 2017-12-06 23:49:11 +11:00
Niklas von Hertzen
0e8a924ea2 Fix formatting 2017-12-03 17:30:52 +08:00
Niklas von Hertzen
7e0b2b5201 Add npm and minified builds 2017-12-03 17:07:10 +08:00
Niklas von Hertzen
9445b0b598 Inline fonts for ForeignObjectRenderer 2017-10-18 20:34:17 +08:00
Niklas von Hertzen
f16d581f04 Add foreignObjectRendering option 2017-09-28 19:46:00 +08:00
Niklas von Hertzen
53dd885279 Implementing cropping and dimension options for rendering (Fix #1230) 2017-09-27 22:14:50 +08:00
Niklas von Hertzen
ae47d901a1 Add no console.log lint rule 2017-09-25 23:01:59 +08:00
Niklas von Hertzen
929b9de6e0 Implement proxied cross-origin iframe rendering 2017-09-25 22:53:09 +08:00
Niklas von Hertzen
57dc7137b2 Fix wrong context for cloned element instanceof check 2017-09-24 15:26:37 +08:00
Niklas von Hertzen
90a8422938 Implement Iframe rendering 2017-09-11 22:36:23 +08:00
Niklas von Hertzen
aa47a3a3a6 Add support for loading cross origin images using proxy 2017-09-04 23:36:19 +08:00
Niklas von Hertzen
1a53643457 Improve logging 2017-09-03 21:24:17 +08:00
Niklas von Hertzen
906a66eec7 Use crossOrigin images when useCORS option set 2017-09-03 21:24:06 +08:00
Niklas von Hertzen
c013e49192 Only use foreignObject rendering if browser is capable of rendering images 2017-09-03 18:20:12 +08:00
Niklas von Hertzen
6d9639d0af Use prefixed transform values 2017-08-30 22:20:55 +08:00
Niklas von Hertzen
23b6f29ecf Capture screenshots while running karma tests 2017-08-30 21:31:51 +08:00
Niklas von Hertzen
a41ba8852f Set default config as empty object (Fix #1195) 2017-08-30 20:59:18 +08:00
Niklas von Hertzen
b75fd70042 Add screenshot collecting server 2017-08-28 21:27:39 +08:00
Niklas von Hertzen
5dbb197a82 Remove redundant style nodes from clone 2017-08-18 22:22:24 +08:00
Niklas von Hertzen
bd463d9343 Correctly apply image timeout for loading images 2017-08-18 21:53:42 +08:00
Niklas von Hertzen
c093c95881 Correctly resolve unsupported svg image testing 2017-08-18 21:34:05 +08:00
Niklas von Hertzen
f79ae2b73a Don't copy styles for regular computed rendering 2017-08-18 20:52:29 +08:00
Niklas von Hertzen
4f96abfb7b Handle inline svg correctly with foreignObject 2017-08-17 23:32:03 +08:00
Niklas von Hertzen
a73dbf8067 Implement foreignObject renderer 2017-08-17 23:14:44 +08:00
Niklas von Hertzen
26cdc0441b Fix formatting 2017-08-16 19:54:48 +08:00
Niklas von Hertzen
d77301a353 Fix base64 images for ios 10.3 2017-08-16 19:50:05 +08:00
Niklas von Hertzen
8999c76181 Fix iOS 10.3 base64 image tainting canvas (Fix #1151) 2017-08-13 23:27:03 +08:00
Niklas von Hertzen
ea080e0f5d Fix recursion for safari 10 on pseudoelements 2017-08-13 21:39:57 +08:00
Niklas von Hertzen
a101b52685 Render SVG nodes correctly 2017-08-13 17:48:37 +08:00
Niklas von Hertzen
f3d6d2fdf4 Don't resolve images immediately if they appear complete 2017-08-13 14:02:35 +08:00
Niklas von Hertzen
37a9249a4a Don't render SVG nodes if it taints canvas 2017-08-13 13:11:03 +08:00
Niklas von Hertzen
c765e2042f Don't render 0 sized images 2017-08-13 12:16:48 +08:00
Niklas von Hertzen
d327327166 Fix pseudoelement image content not being loaded in time 2017-08-11 23:21:28 +08:00
Niklas von Hertzen
96cde64c6e Normalize more tests 2017-08-11 22:22:39 +08:00
Niklas von Hertzen
af09280c38 Draw checkboxes as vector path 2017-08-11 22:21:23 +08:00
Niklas von Hertzen
18761b7352 Fix textShadow parsing 2017-08-11 20:40:49 +08:00
Niklas von Hertzen
ad487f4585 Set overflow hidden for input elements 2017-08-11 20:40:37 +08:00
Niklas von Hertzen
fb58d1f0b6 Fix incorrect value 2017-08-11 20:40:08 +08:00
Niklas von Hertzen
97b0a1f21d Fix reftest precision 2017-08-10 23:26:01 +08:00
Niklas von Hertzen
5bd06895e9 Begin implementing webkit-gradient parsing 2017-08-10 23:25:50 +08:00
Niklas von Hertzen
eb380f023f Fix zIndex value 2017-08-10 23:24:38 +08:00
Niklas von Hertzen
82cfcf8704 Round reftest repeat values 2017-08-10 21:58:56 +08:00
Niklas von Hertzen
c287f51cb6 Fix incorrect render order in Firefox for position: static an z-index value 2017-08-10 21:58:36 +08:00
Niklas von Hertzen
edebe082f3 Remove animations from reftests 2017-08-09 12:05:16 +08:00
Niklas von Hertzen
77393074ba Use tree order when z-index is the same 2017-08-09 11:52:42 +08:00
Niklas von Hertzen
58d1bef3b6 Beging implementing reftests 2017-08-09 00:52:56 +08:00
Niklas von Hertzen
93f08c7547 Implement RefTestRenderer 2017-08-07 00:26:09 +08:00
Niklas von Hertzen
a2895691ba Extract render target logic out of renderer to be target agnostic 2017-08-06 20:21:35 +08:00
Niklas von Hertzen
f7f445c71e Add license info to builds (Fix #1126) 2017-08-06 18:14:27 +08:00
Niklas von Hertzen
8da77eb689 Add options to define window dimensions 2017-08-06 17:53:38 +08:00
Niklas von Hertzen
965f850e68 Assign cssText string to same named property on target 2017-08-06 17:50:01 +08:00
Niklas von Hertzen
216c290c4b Check availability of console before using it (Fix IE9) 2017-08-06 17:37:34 +08:00
Niklas von Hertzen
68900c3087 Copy CSS properties individual with IE 2017-08-06 17:37:10 +08:00
Niklas von Hertzen
f0fdeac703 Fix formatting 2017-08-06 15:52:56 +08:00
Niklas von Hertzen
6baa847092 Handle undefined values for textShadow/transform (IE9) 2017-08-06 15:44:30 +08:00
Niklas von Hertzen
10ec079762 Remove direct console call (breaks IE9 when console is not open) 2017-08-06 15:43:53 +08:00
Niklas von Hertzen
6554d4c8c8 Implement textShadow rendering (Fix #499 and #908) 2017-08-05 23:34:12 +08:00
Niklas von Hertzen
30a2578f38 Fix pseudo-element css text assignment for Edge 2017-08-05 21:59:48 +08:00
Niklas von Hertzen
82a7349e43 Use first background repeat value for multiple backgrounds if only 1 available (Edge bug) 2017-08-05 21:41:37 +08:00
Niklas von Hertzen
0224592a96 Don't parse TEXTAREA child nodes (Edge bug) 2017-08-05 21:40:22 +08:00
Niklas von Hertzen
12672839f1 Use correct JS context to find cloned element in Edge 2017-08-05 21:40:03 +08:00
Niklas von Hertzen
9bdb871307 Implement linear-gradient rendering 2017-08-05 21:13:53 +08:00
Niklas von Hertzen
56b3b6df27 Implement input/textarea/select element rendering 2017-08-05 00:00:17 +08:00
Niklas von Hertzen
adb1f50f00 Support percentage border-radius values (Fix #1154) 2017-08-04 20:41:36 +08:00
Niklas von Hertzen
e380e2c873 Use correct JS context to enable use of instanceof 2017-08-04 19:27:35 +08:00
Niklas von Hertzen
3977ebeadd Log errors in __DEV__ mode (Fix #905) 2017-08-04 00:13:20 +08:00
Niklas von Hertzen
9a7075252b Fix ImageLoader flow types to reflect possible error'd images 2017-08-04 00:00:02 +08:00
Niklas von Hertzen
96fbe954e9 Correctly strip quotes from pseudoelement url() 2017-08-03 23:54:44 +08:00
Niklas von Hertzen
b8450f4d4a Allow image loads to fail without crashing render 2017-08-03 23:54:23 +08:00
Niklas von Hertzen
b3db735415 Render :before and :after pseudoelements 2017-08-03 23:46:29 +08:00
Niklas von Hertzen
f6a5153d99 Implement support for multiple text-transforms with independent colors 2017-08-03 21:47:35 +08:00
Niklas von Hertzen
ad1119a76c Apply border radius correctly on image elements 2017-08-03 21:05:17 +08:00
Niklas von Hertzen
fe97851988 Implement HTMLCanvasElement rendering 2017-08-03 20:57:55 +08:00
Niklas von Hertzen
f2b8c16c2c Implement visibility css prop 2017-08-03 20:28:39 +08:00
Niklas von Hertzen
f278ba4f22 Begin implementing overflow clipping 2017-08-02 21:35:54 +08:00
Niklas von Hertzen
52a815a13f Fix background-clip and background-origin rendering 2017-08-02 20:29:45 +08:00
Niklas von Hertzen
7cc2b856cb Use correct canvas size for full document render 2017-08-01 23:41:12 +08:00
Niklas von Hertzen
aafb0cfb9c Calculate correct bounds for text/elements under nested transforms 2017-08-01 23:27:12 +08:00
Niklas von Hertzen
c5135f4839 Assign default options values 2017-08-01 22:51:59 +08:00
Niklas von Hertzen
478155af64 Clone document before parsing it 2017-08-01 20:54:18 +08:00
Niklas von Hertzen
7a3bad2fcb Add missing Flow tags 2017-08-01 18:51:59 +08:00
Niklas von Hertzen
ba089b4771 Render multiple backgrounds in correct order 2017-08-01 18:25:32 +08:00
Niklas von Hertzen
9f8bae4b09 Correctly parse multi background-repeat values 2017-08-01 18:25:20 +08:00
Niklas von Hertzen
8a6fb5f733 Library rewrite 2017-08-01 00:25:58 +08:00
Niklas von Hertzen
3b49cba21c Fix rendering of content when window is scrolled 2016-01-23 22:05:43 +02:00
Niklas von Hertzen
4ebe9c5fcc Don't require logger to be exposed to window object 2016-01-23 20:41:53 +02:00
Usman Akeju
318ca48157 Linear gradients now parse color names
Also:
- Cleans up color stop and linear gradient regular expressions.
- Handles percentage-based linear gradient positions (fixes Firefox).

Fixes niklasvh/html2canvas#469.
2015-10-25 09:44:14 -04:00
Niklas von Hertzen
e88ac871a3 Remove Promise polyfill 2015-10-19 01:25:03 +03:00
Niklas von Hertzen
aa05241ff8 Fix gradient tests 2015-10-18 23:57:41 +03:00
Niklas von Hertzen
364a8aac1c Merge remote-tracking branch 'origin/pr/645' 2015-10-18 23:15:12 +03:00
Niklas von Hertzen
46078acf71 Fix #688 fatal exception on unmatched color stop 2015-10-18 16:51:53 +03:00
Niklas von Hertzen
4b37909f09 Fix support for requirejs/amd 2015-08-30 02:27:38 +03:00
hyojin.kwak
90f9eeba83 Fix #599 2015-06-10 16:13:17 +09:00
Niklas von Hertzen
98ee30643a Fix iOS scrolling issue on clone 2015-03-30 00:58:50 +03:00
Niklas von Hertzen
a49c3a2320 Correctly handle named colors in gradients 2015-03-29 23:20:17 +03:00
Corné Dorrestijn
9201cf7e95 Accept matrix3d and convert it 2015-03-05 15:52:23 +01:00
Niklas von Hertzen
c2baf42145 Fix fail on transparent colors in linear gradients 2015-03-01 17:43:18 +02:00
Niklas von Hertzen
585a96a918 Preserve scrolling positions of nodes on clone (#511) 2015-02-28 16:51:52 +02:00
Niklas von Hertzen
3671de81f9 Fix module name casing 2015-02-03 21:39:57 +02:00
Niklas von Hertzen
f3b6df267e Switch build to use browserify (#502) 2015-02-03 21:34:05 +02:00
Niklas von Hertzen
60619dca72 Fix #517 2015-01-26 22:55:10 +02:00
Niklas von Hertzen
ed299b3db1 Remove dead code 2015-01-20 19:51:52 +02:00
Niklas von Hertzen
edb113c230 Make html2canvas requireable in nodejs 2015-01-19 23:33:29 +02:00
Niklas von Hertzen
fc01263f68 Add comment regarding IE9 clone node 2015-01-19 22:30:10 +02:00
Niklas von Hertzen
399ae9f33d Fix #503 2015-01-19 22:28:10 +02:00
Niklas von Hertzen
77c73c478f Fix iframe proxy 2015-01-18 21:38:05 +02:00
Niklas von Hertzen
7a58ad019f Fix background rendering regression #496 2015-01-10 20:53:06 +02:00
Niklas von Hertzen
9b372a4399 Correctly clone <select> and <textarea> value property 2015-01-05 22:58:36 +02:00
Niklas von Hertzen
498527918c Correctly render input[type="password"] value 2015-01-05 21:36:53 +02:00
Usman Akeju
e2713cd6f9 Temporarily add manual update to es6-promise polyfill
This replaces an old and outdated Promise polyfill that was included
with previous versions of html2canvas, and which consistently overwrote
native browser implementations when it shouldn't have. It is essentially
a (slightly modified) paste of the most current minified version of
es6-promise, found here:
https://es6-promises.s3.amazonaws.com/es6-promise-2.0.1.min.js

The plan is to eventually include this polyfill as a submodule
dependency, but the build process for es6-promise is a bit
cumbersome/opaque/painful at the moment, so this manual update was an
easier interim solution.

Please note that I had to manually add the actual call to
`ES6Promise.polyfill()` to load the polyfill--this will become
unnecessarry in future versions of es6-promise. Note also that I had to
manually pass `window` to the polyfill's IIFE, since `this` is an empty
object in the current scope.

Ref niklasvh/html2canvas#494.
2014-12-29 16:35:39 +01:00
Niklas von Hertzen
2f5f9f6e59 Allow multiple renders to occur simultaneously 2014-12-24 17:34:31 +02:00
Niklas von Hertzen
f5e318d968 Manually call toString for colors 2014-12-13 19:23:00 +02:00
Niklas von Hertzen
612e59c3d3 Implement border-inset color transforms 2014-12-13 19:00:29 +02:00
Niklas von Hertzen
fcbcb9bfaa Add color object to accept array of rgb(a) 2014-12-13 18:30:52 +02:00
Niklas von Hertzen
3b0352a3d7 Use Color objects for colors 2014-12-13 18:10:41 +02:00