The <embed> element does not have to enforce layout when the type attribute is set to image

According to the spec[1], the `<embed>` element represents nothing
in those conditions:
> The element has neither a src attribute nor a type attribute.
> The element has a media element ancestor.
> The element has an ancestor object element that is not showing
> its fallback content.
There is no requirement for `ImageType` to enforce layout in the spec.
So removed the logic of forcing layout when `type` is set to `image`.

This patch also moves "embed-represent-nothing-04.html" to
"embed-in-object-fallback-image.html".
And "embed-represent-nothing-04.html is failing in all browsers.
According to the spec[2]:
> If the data attribute is present and its value is not the empty
> string, then: ...
> Fallback: The object element represents the element's children.
> This is the element's fallback content.
If the `object` element does not have a `data` attribute,
its children should be used as fallback content.
The test case in "embed-represent-nothing-04.html", `object` does not
have a `data` attribute, so it should fallback, show it's children.

[1]: https://html.spec.whatwg.org/multipage/#the-embed-element
[2]: https://html.spec.whatwg.org/multipage/#the-object-element

Bug: 40780999
Change-Id: I86bcd3cfe68c3cbe882c02008770bd3330a56026
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5877938
Reviewed-by: Mason Freed <masonf@chromium.org>
Reviewed-by: Joey Arhar <jarhar@chromium.org>
Commit-Queue: Peng Zhou <zhoupeng.1996@bytedance.com>
Cr-Commit-Position: refs/heads/main@{#1360197}
7 files changed
tree: 6dc62bd169e46091ea6f920eccc71d79313a3bda
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. crypto/
  16. dbus/
  17. device/
  18. docs/
  19. extensions/
  20. fuchsia_web/
  21. gin/
  22. google_apis/
  23. google_update/
  24. gpu/
  25. headless/
  26. infra/
  27. ios/
  28. ipc/
  29. media/
  30. mojo/
  31. native_client_sdk/
  32. net/
  33. pdf/
  34. ppapi/
  35. printing/
  36. remoting/
  37. rlz/
  38. sandbox/
  39. services/
  40. skia/
  41. sql/
  42. storage/
  43. styleguide/
  44. testing/
  45. third_party/
  46. tools/
  47. ui/
  48. url/
  49. webkit/
  50. .clang-format
  51. .clang-tidy
  52. .clangd
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitallowed
  56. .gitattributes
  57. .gitignore
  58. .gitmodules
  59. .gn
  60. .mailmap
  61. .rustfmt.toml
  62. .vpython3
  63. .yapfignore
  64. ATL_OWNERS
  65. AUTHORS
  66. BUILD.gn
  67. CODE_OF_CONDUCT.md
  68. codereview.settings
  69. CPPLINT.cfg
  70. CRYPTO_OWNERS
  71. DEPS
  72. DIR_METADATA
  73. LICENSE
  74. LICENSE.chromium_os
  75. OWNERS
  76. PRESUBMIT.py
  77. PRESUBMIT_test.py
  78. PRESUBMIT_test_mocks.py
  79. README.md
  80. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure.

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.