Reland "Check if math expression has percentages deep inside"

This is a reland of commit fc365dddd74a2c9ba22036fd5563dbea8ff34c7c

Original change's description:
> Check if math expression has percentages deep inside
>
> Currently, only the top level category is checked to have a percentage
> dependency, check all the nodes inside the expression as well,
> as it can be the case like:
> NumberProducingFunction(Percentage) * Pixels.
> The top level category is Length in such case and we try to resolve it
> with ComputeLength, where percentages are not allowed.
>
> Note: the added test would crash before the CL, as it would try to
> GetDouble() of percentage which is not allowed in that context.
>
> Bug: 1505817
> Change-Id: Iefd13c0d190c3b8adf463ea244f81331635e14fe
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5064155
> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org>
> Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1230671}

Bug: 1505817
Change-Id: I19b1ce50ffd50bdbf7aa4dc919fb7525b0b02db0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5076966
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1232219}
diff --git a/css/css-values/signs-abs-computed.html b/css/css-values/signs-abs-computed.html
index 73b1e0d..8bad89e 100644
--- a/css/css-values/signs-abs-computed.html
+++ b/css/css-values/signs-abs-computed.html
@@ -204,5 +204,6 @@
 test_length_equals('sign(10px - 2em)', '-1', 'fontSize=10px');
 document.getElementById('container').style.fontSize = '20px';
 
+test_math_used('calc(sign(10%) * 100px)', '100px');
 
 </script>