Make invalid and unsupported filters paint the unfiltered frame.

https://drafts.fxtf.org/filter-effects/#typedef-filter-url:

> A filter reference to a filter element. For example
> url(commonfilters.svg#filter). If the filter references a non-existent
> object or the referenced object is not a filter element, then the
> whole filter chain is ignored. No filter is applied to the object.

Differential Revision: https://phabricator.services.mozilla.com/D156074

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1787623
gecko-commit: 06480f550b00b750081427dd4b359f1dd37c8ebf
gecko-reviewers: botond
diff --git a/css/filter-effects/backdrop-filter-invalid.html b/css/filter-effects/backdrop-filter-invalid.html
new file mode 100644
index 0000000..57d69b8
--- /dev/null
+++ b/css/filter-effects/backdrop-filter-invalid.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Invalid backdrop-filter doesn't cause element to disappear</title>
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#typedef-filter-value-list">
+<link rel="match" href="filter-invalid-ref.html">
+<style>
+div, rect {
+  width: 100px;
+  height: 100px;
+  backdrop-filter: url(#not-found);
+}
+div {
+  background-color: blue;
+}
+rect {
+  fill: purple;
+}
+</style>
+<div></div>
+<svg>
+  <rect></rect>
+</svg>
diff --git a/css/filter-effects/backdrop-filter-svg-background-image-blur.html b/css/filter-effects/backdrop-filter-svg-background-image-blur.html
new file mode 100644
index 0000000..9cd18b0
--- /dev/null
+++ b/css/filter-effects/backdrop-filter-svg-background-image-blur.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Maybe-unsupported backdrop-filter doesn't cause element to disappear</title>
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#BackdropFilterProperty">
+<link rel="mismatch" href="/css/reference/blank.html">
+<style>
+div {
+  width: 100px;
+  height: 100px;
+  border: 5px solid green;
+  backdrop-filter: url(#from-svg);
+}
+</style>
+<div></div>
+<svg>
+  <defs>
+    <filter id="from-svg">
+      <feGaussianBlur in="BackgroundImage" stdDeviation="20" result="blur" />
+      <feMerge>
+        <feMergeNode in="SourceGraphic" />
+        <feMergeNode in="blur" />
+      </feMerge>
+    </filter>
+  </defs>
+</svg>
diff --git a/css/filter-effects/filter-invalid-ref.html b/css/filter-effects/filter-invalid-ref.html
new file mode 100644
index 0000000..086dfe9
--- /dev/null
+++ b/css/filter-effects/filter-invalid-ref.html
@@ -0,0 +1,19 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test Reference</title>
+<style>
+div, rect {
+  width: 100px;
+  height: 100px;
+}
+div {
+  background-color: blue;
+}
+rect {
+  fill: purple;
+}
+</style>
+<div></div>
+<svg>
+  <rect></rect>
+</svg>
diff --git a/css/filter-effects/filter-invalid.html b/css/filter-effects/filter-invalid.html
new file mode 100644
index 0000000..3aad44e
--- /dev/null
+++ b/css/filter-effects/filter-invalid.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Invalid filter draws unfiltered frame</title>
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#typedef-filter-url">
+<link rel="match" href="filter-invalid-ref.html">
+<style>
+div, rect {
+  width: 100px;
+  height: 100px;
+  filter: url(#not-found);
+}
+div {
+  background-color: blue;
+}
+rect {
+  fill: purple;
+}
+</style>
+<div></div>
+<svg>
+  <rect></rect>
+</svg>
diff --git a/css/filter-effects/filter-svg-background-image-blur.html b/css/filter-effects/filter-svg-background-image-blur.html
new file mode 100644
index 0000000..ab56d73
--- /dev/null
+++ b/css/filter-effects/filter-svg-background-image-blur.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Unsupported filter draws unfiltered frame</title>
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
+<link rel="mismatch" href="/css/reference/blank.html">
+<style>
+div {
+  width: 100px;
+  height: 100px;
+  border: 5px solid green;
+  filter: url(#from-svg);
+}
+</style>
+<div></div>
+<svg>
+  <defs>
+    <filter id="from-svg">
+      <feGaussianBlur in="BackgroundImage" stdDeviation="20" result="blur" />
+      <feMerge>
+        <feMergeNode in="SourceGraphic" />
+        <feMergeNode in="blur" />
+      </feMerge>
+    </filter>
+  </defs>
+</svg>