Make most mojo_unittests pass with MojoIpcz enabled

Tweaks or skips tests within mojo_unittests so that they pass with
MojoIpcz enabled.

Many tests pass unmodified, but some require tweaks to test
expectations which were built around Mojo implementation details
rather than API specs.

Other tests simply don't make sense for MojoIpcz -- either due to
unused or deprecated Mojo features that MojoIpcz does not implement,
or due to tests which were designed to cover implementation details
not relevant to MojoIpcz -- and these tests are automatically passed
when the feature flag is enabled.

This only makes minor implementation tweaks, supporting unserialized
Mojo message APIs (which still eagerly serialize on MojoWriteMessage
regardless of peer remoteness), and very basic quota API as used by
some tests to inspect message queue state.

LOW_COVERAGE_REASON=Much of the coverage here comes in the form of existing unit tests which only provide coverage with a pending feature flag enabled. Coverage will improve substantially once the flag is available and enabled in test configs.

Bug: 1299283
Change-Id: I01ac6882a60b2ace9a0a319d2d4d705125524bdc
Binary-Size: This is linking in a new library of code (ipcz) previously unused in production. The size increase is unavoidable but temporary, as this new library will eventually replace a library of similar code size which can be dropped from the build.
Fuchsia-Binary-Size: See above note.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3848975
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1044291}
27 files changed
tree: 4f8e4932b9b061e8eb257fbf02f478947a022d2e
  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. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. weblayer/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython
  61. .vpython3
  62. .yapfignore
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. ENG_REVIEW_OWNERS
  70. LICENSE
  71. LICENSE.chromium_os
  72. OWNERS
  73. PRESUBMIT.py
  74. PRESUBMIT_test.py
  75. PRESUBMIT_test_mocks.py
  76. README.md
  77. 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.