Commit Graph

563 Commits

Author SHA1 Message Date
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
Niklas von Hertzen
313c227a1f Add color parsing 2014-12-13 17:24:54 +02:00
Niklas von Hertzen
893ce74a33 Implement checkbox and radio input element rendering 2014-12-06 18:17:04 +02:00
Niklas von Hertzen
069140974b Don't scroll owner document after cloned document load 2014-11-30 14:23:52 +02:00
Niklas von Hertzen
1e826e32ae Fix scroll to top with pages using hashtag anchors 2014-11-30 14:16:02 +02:00
Dan Alstadt
d4cb7e8868 add html2canvas-container classname to iframe 2014-11-20 14:27:34 -06:00
Niklas von Hertzen
657eb983cf Add options.background option 2014-11-04 21:53:26 +02:00
Niklas von Hertzen
fc800bff9d Partial fix for borders 2014-11-04 21:40:09 +02:00
Niklas von Hertzen
aa3aafbc0c Fix race condition for content load 2014-11-03 23:29:57 +02:00
Niklas von Hertzen
525b5c4f36 Fix font rendering for IE with multiple inherited fonts 2014-11-02 22:15:48 +02:00
Niklas von Hertzen
772767d0d9 Disable transitions for cloned page 2014-11-02 20:26:25 +02:00
Niklas von Hertzen
7ebd191488 Fix form placeholder/value positioning for scrolled pages 2014-11-02 19:18:39 +02:00
Niklas von Hertzen
6ece2a3d5a Fix svg matching performance issue 2014-11-02 18:54:39 +02:00
Niklas von Hertzen
1793b802b1 Add onclone callback option to allow modifying cloned document prior to rendering 2014-10-26 19:10:09 +02:00
Niklas von Hertzen
04bdb48cba Fix layer ordering with multiple stacks on same auto z-index 2014-10-19 22:29:34 +03:00
Niklas von Hertzen
7e13231807 Fix canvas cropping with type: 'view' 2014-10-15 20:28:26 +03:00
Niklas von Hertzen
199685ebd1 Disable animations on rendered page 2014-10-12 20:44:39 +03:00
Niklas von Hertzen
444869e3ca Implement css clipping for rect() (with pixel values) 2014-10-12 20:32:47 +03:00
Niklas von Hertzen
5712b621ca Correctly clip content that has border-radius (#399) 2014-10-07 19:11:24 +03:00
Niklas von Hertzen
6073928978 Fix origin check for IE (#460) 2014-10-07 18:59:26 +03:00
Niklas von Hertzen
e103ad8219 Fix pseudoelement rendering (with nth-child selectors etc.) 2014-10-06 22:46:43 +03:00
Niklas von Hertzen
b60b4b2a45 Add option to use existing canvas for rendering 2014-09-28 22:51:11 +03:00
Niklas von Hertzen
bd1abe1857 Provide fallbacks for html parsing 2014-09-28 00:11:54 +03:00
Niklas von Hertzen
8a3d1d7f22 Fix firefox cross-origin iframe rendering 2014-09-27 23:03:57 +03:00
Niklas von Hertzen
19777c6623 Add simpler api for rendering external urls 2014-09-27 21:07:25 +03:00
Niklas von Hertzen
1e19832171 Add google maps test 2014-09-27 20:20:08 +03:00
Niklas von Hertzen
fa659ad1df Fix background-size with background-repeat x and y as well (#447) 2014-09-27 18:03:18 +03:00
Niklas von Hertzen
f517a35781 Clone and render canvas content correctly 2014-09-27 18:00:14 +03:00
Niklas von Hertzen
3f3424e49c Fix: Render background-size correctly with no-repeat #447 2014-09-27 17:02:46 +03:00
Niklas von Hertzen
1d8a316f13 Correctly handle overflow content 2014-09-27 16:54:53 +03:00
Niklas von Hertzen
b1f948bb60 Fix z-index stacking with fixed position 2014-09-21 11:44:11 +03:00
Niklas von Hertzen
24d9a22556 Correctly apply canvas background color 2014-09-21 11:24:20 +03:00
Niklas von Hertzen
7ee2f411b0 Continue render with failed svg images 2014-09-20 21:54:03 +03:00
Niklas von Hertzen
0a7df6d9b9 Correctly use native rendering with inline <svg> nodes if possible 2014-09-20 20:21:25 +03:00
Niklas von Hertzen
70241a789d Fallback to jsonp proxy if browser doesn't support cors xhr/image 2014-09-20 19:53:22 +03:00
Niklas von Hertzen
3b8d4dece2 Use correct window size for cloned iframe 2014-09-20 18:01:57 +03:00
Niklas von Hertzen
e80fe312ee Merge branch 'fix-doc-measurements' of https://github.com/ddrscott/html2canvas into ddrscott-fix-doc-measurements
Conflicts:
	dist/html2canvas.js
	dist/html2canvas.min.js
	src/core.js
2014-09-20 17:40:09 +03:00
Niklas von Hertzen
b141c9f0d1 Begin implementing cross-origin iframes 2014-09-20 17:36:15 +03:00
Niklas von Hertzen
d4c9a41873 Add preliminary support for same-origin iframes 2014-09-16 20:12:13 +03:00
Niklas von Hertzen
6347e7f043 Use correct document context for canvas render 2014-09-14 20:14:38 +03:00
Niklas von Hertzen
9d088fa431 Use punycode to parse unicode characters correctly 2014-09-14 19:32:26 +03:00
Niklas von Hertzen
9907149513 Don't parse/render input hidden nodes 2014-09-14 17:44:55 +03:00
Niklas von Hertzen
0325a9b836 Add atob polyfill for ie9 for SVG base64 rendering 2014-09-09 18:42:00 +03:00
Niklas von Hertzen
36052c2765 Add support for inline, base64 and node svg's 2014-09-08 23:44:10 +03:00
Niklas von Hertzen
44b958beaf Default to element dimension if image size cannot be determined (vector images) 2014-09-08 21:25:21 +03:00
Niklas von Hertzen
2a020e5a21 Allow tainting images to be drawn if option enabled 2014-09-08 21:24:26 +03:00
Niklas von Hertzen
c20e679f2c Prefer native svg rendering if available 2014-09-08 21:16:30 +03:00
Scott Pierce
52c669fe5b Merge branch 'master' of https://github.com/niklasvh/html2canvas
Conflicts:
	build/html2canvas.min.js
	dist/html2canvas.js
	src/core.js
2014-09-04 16:24:23 -05:00
Scott Pierce
382c16a522 use cloned document for measurements 2014-09-04 14:02:44 -05:00
Niklas von Hertzen
ba9d5201cf Add svg rendering with fabric.js 2014-09-04 20:50:31 +03:00
Niklas von Hertzen
2e2d722e3d Fix rendering for safari 6 2014-09-04 19:29:42 +03:00
Niklas von Hertzen
07f793b0ed Preliminary support for svg rendering 2014-09-04 18:47:06 +03:00
Niklas von Hertzen
ce1c4c84f5 Fix CSS gradients fail to render when non-vendor prefix property is included #388 2014-05-18 23:20:45 +03:00
Niklas von Hertzen
6959058560 Fix linear gradient rendering 2014-05-18 19:14:22 +03:00
Niklas von Hertzen
d6ed6c0194 Fallback to DummyImageContainer if no suitable ImageContainer found 2014-05-18 17:48:32 +03:00
Niklas von Hertzen
9ee87339a3 Fix cors loading of images 2014-05-18 17:40:01 +03:00
Niklas von Hertzen
281e6bbedf Use backgroundColor from documentElement if rendered element lacks backgroundColor 2014-04-06 21:43:20 +03:00