[go: nahoru, domu]

ARC testing: builder for ARC task windows (reland)

This has come up in a few places so replace all of them with a single
solution.

Many tests allowed never specifying a shell root surface, and only two
seemed to require it, in autotest_private_apitest.cc and
arc_graphics_tracing_handler_unittest.cc (SwitchWindowDuringModelBuild).

I prefer not creating a root surface automatically, as this can result
in multiple root surfaces in the case that multiple windows are created,
and the surface destruction also becomes implicit, both of which may be
surprising. Another potential issue is that there will be fragmentation
on style where some callers will prefer to explicitly make the surface
(which only requires two very short additional lines) and some will use
the implicit style.

I ran into strange failures in the autotest_private_apitest.cc case
until I explicitly removed focus from the ARC window. It also was not
explicitly closing the window, so I used the OwnsNativeWidget style with
autoptr rather than use a raw pointer. These two changes may have been
interrelated.

This relands commit ca5e651d043d79294ab887dadec4376203320848. Avoid the
msan error by not default-initializing a raw_ptr.

Unit tests below were run with:

  $ xvfb-run tools/autotest.py -C $outdir ...

with is_msan=true in gn.args.

Test: chrome/browser/ash/extensions/autotest_private/autotest_private_apitest.cc
Test: chrome/browser/ui/webui/ash/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc
Test: chrome/browser/ash/arc/tracing/arc_app_performance_tracing_unittest.cc
Test: autoninja -C <brya> chrome chrome_sandbox nacl_helper
Bug: b:288895124
Bug: chromium:1472938
Change-Id: Iaadb0ac243e2f9b652eb019b112ed8198696d098
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4780396
Auto-Submit: Matthew DeVore <matvore@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Yury Khmel <khmel@chromium.org>
Commit-Queue: Matthew DeVore <matvore@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1184765}
9 files changed
tree: 3f660794c06283708acb58a6e257fa8972b64859
  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. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. LICENSE
  70. LICENSE.chromium_os
  71. OWNERS
  72. PRESUBMIT.py
  73. PRESUBMIT_test.py
  74. PRESUBMIT_test_mocks.py
  75. README.md
  76. 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.