Commit Graph

802 Commits

Author SHA1 Message Date
Ben Sholds
ae1a15f7c5 Update pseudoelements.html 2013-11-25 16:39:35 -05:00
Ben Sholds
cea3005056 Fix invalid selector exception with empty class values
After removing :before and :after pseudo selectors, a class name may be empty, causing an invalid selector string when joined. Remove empty elements before calling querySelectorAll.
2013-11-25 09:48:12 -05:00
Niklas von Hertzen
1d4b1753d6 Merge pull request #297 from Grom-S/patch-1
incorect z-index sorting fixed
2013-11-24 03:32:57 -08:00
Grom-S
f00b23a9ec incorect z-index sorting fixed
If you omit compare function in javascript `sort()` method it will sort  lexicographically (in dictionary order) according to the string conversion of each element. 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters

For example 
[0, 9, 8, 10].sort()
will place element with z-index 10 on 2nd position of the array
2013-11-21 20:37:40 +02:00
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
35c5ca3340 Add tests for background-size 2013-11-12 19:33:56 +02:00
Niklas von Hertzen
7cc7f80ee2 Add dom depth information to render queue 2013-10-27 22:08:12 +02:00
Niklas von Hertzen
4c75d819a4 Merge pull request #270 from ssafejava/parseSpeed
Speed parsing by as much as 50% & add async parsing option.
2013-09-22 11:32:25 -07:00
Niklas von Hertzen
838f91e156 Merge pull request #269 from ssafejava/jshint
Move jshint rules into jshintrc and include from Gruntfile.
2013-09-17 23:29:37 -07: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
ssafejava
e782efa614 Move jshint rules into jshintrc and include from Gruntfile. 2013-09-18 13:37:06 +08:00
Niklas von Hertzen
806cd60474 Add links to readme 2013-09-07 22:07:27 +03:00
Niklas von Hertzen
0515765788 Release version 0.4.1 2013-09-07 21:29:31 +03:00
Niklas von Hertzen
0fd25f048d Add bower.json 2013-09-07 21:24:41 +03:00
Niklas von Hertzen
14ff672c6e Disable screenshot storing 2013-09-07 21:10:06 +03:00
Niklas von Hertzen
38fad5ac17 Update travis key 2013-09-07 00:10:53 +03:00
Niklas von Hertzen
a31de83368 update token 2013-09-07 00:05:47 +03:00
Niklas von Hertzen
1fb3b53fc0 update certificate 2013-09-06 23:57:47 +03:00
Niklas von Hertzen
4d465116da update travis.yml key decrypt argument 2013-09-06 23:48:18 +03:00
Niklas von Hertzen
74ce2c5062 update travis.yml secret 2013-09-06 23:26:35 +03:00
Niklas von Hertzen
fbeb6e72f2 Update test certificate 2013-09-06 23:11:04 +03:00
Niklas von Hertzen
c097f11ce3 Store webdriver screenshots to google drive 2013-09-06 22:30:24 +03: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
c232da2595 Fix grunt watch build order 2013-09-04 20:02:20 +03:00
Niklas von Hertzen
c759600c06 Refactoring 2013-09-04 19:29:12 +03:00
Niklas von Hertzen
5f45968154 Merge pull request #260 from arrix/develop
negative z-index
2013-08-15 12:15:04 -07:00
arrix
feb2fd0a63 test case for body bgcolor and negative z-index #256 2013-08-16 00:26:40 +08:00
arrix
fb944d9381 test case for negative z-index below text 2013-08-15 23:31:48 +08: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
dd7468c446 use solid border in z-index tests 2013-08-15 22:31:32 +08:00
Niklas von Hertzen
eb00650b02 fix text 2013-08-14 21:56:43 +03:00
Niklas von Hertzen
1d03a5f9a4 z-index test case for negative z-indexes 2013-08-14 21:56:32 +03:00
arrix
ea7d6b485d preserve stacking nesting with special ancestor. issue #256 2013-08-15 02:12:38 +08:00
Niklas von Hertzen
fd4fd95429 Test case for static position inside position relative 2013-08-13 19:59:54 +03:00
Niklas von Hertzen
10b40821e5 first implementation for matrix transforms 2013-08-06 21:11:08 +03:00
Niklas von Hertzen
518dd702a2 list all tests in index.html 2013-08-06 21:10:46 +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
0277c34310 first transform test 2013-08-04 19:21:00 +03:00
Niklas von Hertzen
f35ef0fe6f Refactor 2013-08-04 18:33:18 +03:00