Convert <embed hidden> into a proper boolean attribute

Prior to this CL, <embed hidden> would still be visible. Only the
special values of <embed hidden=yes> or <embed hidden=true> would
"hide" the <embed>. (And it would be "hidden" by making it zero-
size, presumably to not change loading behavior.)

After this CL, the 'hidden' attribute behaves as a normal
boolean attribute - presence of the attribute is interpreted as
a "true" value.

This appears to be per-spec:
  https://html.spec.whatwg.org/#the-embed-element
  https://html.spec.whatwg.org/#the-hidden-attribute
  https://html.spec.whatwg.org/#boolean-attribute

Gecko does not respect the 'hidden' attribute *at all* on the <embed>
element. WebKit behavior matches the *new* behavior here - it
treats 'hidden' as a regular boolean attribute, honoring it if present.
Because the spec matches this new behavior, and because WebKit already
agrees with the behavior, I'm treating this like a bug fix, and not
something that needs an I2S. It seems like quite a corner case for a
site to be using <embed hidden=dont> or something, and expecting the
embed not to be hidden.

Fixed: 1063756
Change-Id: I1fc11d0de6ff9e3cc2f7c0d3e438ab9fc929e36b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565492
Auto-Submit: Mason Freed <masonf@chromium.org>
Reviewed-by: Joey Arhar <jarhar@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#988645}
diff --git a/html/semantics/embedded-content/the-embed-element/embed-hidden-attribute-ref.html b/html/semantics/embedded-content/the-embed-element/embed-hidden-attribute-ref.html
new file mode 100644
index 0000000..4b3d0fe
--- /dev/null
+++ b/html/semantics/embedded-content/the-embed-element/embed-hidden-attribute-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>The hidden global presentation attribute within the embed element</title>
+
+This embed should be visible (green box):
+<embed src='../../../../images/green-256x256.png' type='image/png'></embed>
+
+These should not be visible (no red):
+
+<style>
+  embed {
+    display:block;
+  }
+</style>
diff --git a/html/semantics/embedded-content/the-embed-element/embed-hidden-attribute.html b/html/semantics/embedded-content/the-embed-element/embed-hidden-attribute.html
new file mode 100644
index 0000000..18d3897
--- /dev/null
+++ b/html/semantics/embedded-content/the-embed-element/embed-hidden-attribute.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<title>The hidden global presentation attribute within the embed element</title>
+<link rel="author" href="mailto:masonf@chromium.org">
+<link rel=match  href="embed-hidden-attribute-ref.html">
+
+This embed should be visible (green box):
+<embed src='../../../../images/green-256x256.png' type='image/png'></embed>
+
+These should not be visible (no red):
+<embed hidden          src='../../../../images/fail.gif' type='image/png'></embed>
+<embed hidden=""       src='../../../../images/fail.gif' type='image/png'></embed>
+<embed hidden="hidden" src='../../../../images/fail.gif' type='image/png'></embed>
+<embed hidden="true"   src='../../../../images/fail.gif' type='image/png'></embed>
+<embed hidden="yes"    src='../../../../images/fail.gif' type='image/png'></embed>
+
+<style>
+embed {
+  display:block;
+}
+</style>