- From: Dirk Schulze via GitHub <sysbot+gh@w3.org>
- Date: Tue, 22 May 2018 13:02:46 +0000
- To: public-fxtf-archive@w3.org
## Error handling on filter
Test case for filter: https://codepen.io/krit/pen/pVYabE?editors=1000
In order of the test case:
| Behavior of `<filter>` on element | Edge | Gecko | Blink | WebKit |
| ----------------------------------------- |:-------------------:|:-------------------:|:-------------------:|:-------------------:|
| no content | disappears | disappears | disappears | disappears |
| grouped content followed by valid content | applies<sub>1</sub> | applies<sub>1</sub> | applies<sub>1</sub> | applies<sub>1</sub> |
| invalid, followed by valid content | applies<sub>2</sub> | applies<sub>2</sub> | applies<sub>2</sub> | applies<sub>2</sub> |
| missing reference | disappears | disappears | disappears | disappears |
1) Grouped content gets ignored, valid content applies.
2) Invalid content gets ignored, valid content applies.
## Error handling on clipping
Test case for clipping: https://codepen.io/krit/pen/NMJyXr?editors=1000
In order of the test case:
| Behavior of `<clipPath>` on element | Edge | Gecko | Blink | WebKit |
| ------------------------------------ |:-------------------:|:-------------------:|:-------------------:|:-------------------:|
| no content | disappears | disappears | disappears | disappears |
| grouped content | disappears | disappears | disappears | disappears |
| invalid, followed by valid content | clipped<sub>1</sub> | disappears | clipped<sub>1</sub> | clipped<sub>1</sub> |
| missing reference | no clipping | no clipping | no clipping | no clipping |
| circular dependency | clipped<sub>2</sub> | disappears | clipped<sub>2</sub> | clipped<sub>2</sub> |
| `<use>` referencing `<g>` w/ content | clipped<sub>3</sub> | disappears | clipped<sub>1</sub> | clipped<sub>1</sub> |
1) Clipped by valid (by spec) content.
2) Clipped by content, circular dependencies get removed.
3) Clipped by combination of use and valid content.
## Error handling on masking
Test case for masking: https://codepen.io/krit/pen/derdaE?editors=1000
In order of the test case:
| Behavior of `<mask>` on element | Edge | Gecko | Blink | WebKit |
| ----------------------------------------- |:-------------------:|:-------------------:|:-------------------:|:-------------------:|
| no content | disappears | disappears | disappears | disappears |
| grouped content followed by valid content | applies<sub>1</sub> | applies<sub>1</sub> | applies<sub>1</sub> | applies<sub>1</sub> |
| invalid, followed by valid content | applies<sub>2</sub> | applies<sub>2</sub> | applies<sub>2</sub> | applies<sub>2</sub> |
| missing reference | no masking | no masking | no masking | no masking |
| circular dependency | applies<sub>3</sub> | disappears | applies<sub>3</sub> | applies<sub>3</sub> |
1) Grouped content gets ignored, valid content applies.
2) Invalid content gets ignored, valid content applies.
3) Masking applies, circular dependencies get removed.
## Summary
1. As described: missing filter reference makes the element disappear on all browsers. Missing mask and clipping references get ignored.
* There is a special case for masks applied on HTML elements where the content disappears in Firefox as well. See https://github.com/w3c/fxtf-drafts/issues/245#issuecomment-390863839
2. For all browsers but Firefox: Elements that do not match the content model get ignored, the resource still applies.
3. For all browsers but Firefox: Circular dependencies get broken up and the resource still applies. (Filter primitives need more testing)
Interesting for #17: Blink and WebKit do not take `<use>` referenced elements for clipping into account that do not match the `<clipPath>` content model. Edge does, which means an inconsistency in its own model. Gecko ignores the entire clipping resource.
--
GitHub Notification of comment by dirkschulze
Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/130#issuecomment-390981529 using your GitHub account
Received on Tuesday, 22 May 2018 13:02:54 UTC