Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from chromium:master #7

Merged
merged 41 commits into from
Sep 19, 2021
Merged

Conversation

pull[bot]
Copy link

@pull pull bot commented Sep 18, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

Neil Coronado and others added 30 commits September 18, 2021 17:58
-Adds app menu item for AutoDark.
-Shows app menu item when both flag and global setting are enabled.
-Menu item adds site setting exceptions to block sites from auto-darkening (or removes exceptions for sites that are currently blocked).

Note: Uses placeholder string for app menu item and temp value for ContentSettingType.

Screenshot: https://screenshot.googleplex.com/3gp8H3r5kV4KEE7.png

Bug: 1248537
Change-Id: Icf04ee922923b0c0298b12e7c21e2dd65f0c758e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3140103
Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
Reviewed-by: Filip Gorski <fgorski@chromium.org>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: Gang Wu <gangwu@chromium.org>
Commit-Queue: Neil Coronado <nemco@google.com>
Cr-Commit-Position: refs/heads/main@{#922769}
From some of the DwCs, we found that the target & main frame
SiteInstances are possibly in a different BrowsingInstance from the
problematic proxy. This CL adds more crash keys to figure out what's
going on, including exposing/tracking some more debugging-only values/
functions related to BFCache.

Bug: 1243541
Change-Id: I63739a7751e177685468471605b7a2fcc078f9fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3168552
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922770}
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-aemu-chromium-autoroll
Please CC chrome-fuchsia-gardener@grotations.appspotmail.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: chrome-fuchsia-gardener@grotations.appspotmail.com
Disable-Retries: true
Change-Id: I123f49c85e4beb5bea5c0088841a133aa9c43055
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169976
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922771}
https://android.googlesource.com/platform/external/perfetto.git/+log/a9118d769009..62ae508a04c8

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/perfetto-trace-processor-mac-chromium
Please CC perfetto-bugs@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: perfetto-bugs@google.com
Change-Id: Ice8f4d2d92d96cbafd8156b554559bc61fcbd333
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169827
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922772}
Polymer dom-repeat is not optimized with subproperties. This fixes the
rendering issue with updating the app notification list.

Bug: 1217174
Change-Id: Ida887b1908799c837d3c4dd2ccf04090f4e790ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169823
Commit-Queue: Jimmy Gong <jimmyxgong@chromium.org>
Reviewed-by: Regan Hsu <hsuregan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922773}
Roll Chrome Win64 PGO profile from chrome-win64-main-1631908776-0e1e348c8f0e5753c304f4ea2cdd53a5d4c2b56f.profdata to chrome-win64-main-1631927567-3c747e586d45ac5cc1b05f19cd6697b12697ad10.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-win64-chromium
Please CC pgo-profile-sheriffs@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win64-chrome
Tbr: pgo-profile-sheriffs@google.com
Change-Id: I70fd0402f213a28f5d0f99f483f926cd3d68fe30
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169440
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922774}
This CL performs minimal-change moves of code from
  /chrome/browser/chromeos/extensions/quick_unlock_private
to
  /chrome/browser/extensions/api/quick_unlock_private

Motivation: Lacros will need chrome.quickUnlockPrivate to support the
"Confirm your password" (or other quick unlock means) when trying to
view / copy / edit passwords on chrome://settings/passwords.

Bug: 1227546
Change-Id: I4fca253814a5b438d6a319763a4b019aab2f91ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3162419
Commit-Queue: Samuel Huang <huangs@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Alexander Alekseev <alemate@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922775}
Roll Chrome Win32 PGO profile from chrome-win32-main-1631908776-9bd1978d6895c4bfae3ac788ed55aff5a5c41ef4.profdata to chrome-win32-main-1631927567-5194c38cb36f15e24bbd691333c915fbb87828ec.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-win32-chromium
Please CC pgo-profile-sheriffs@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win-chrome
Tbr: pgo-profile-sheriffs@google.com
Change-Id: Ic4dc1b8e5a4db10548ad689550735e3293435405
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3170097
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922776}
Before (dark):  http://shortn/_TWoyQj5Wra
After (dark):   http://shortn/_7fuc9EpeRV
Before (light): http://shortn/_bv8tWZByKf
After (light):  http://shortn/_uTp2ysv6tZ

Bug: 1250875
Change-Id: I878c7c534738be193cbb6b4a76310c3738eb6d5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169967
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: David Black <dmblack@google.com>
Cr-Commit-Position: refs/heads/main@{#922777}
https://pdfium.googlesource.com/pdfium.git/+log/b8dca8956a07..007c5e55b2e1

2021-09-17 tsepez@chromium.org Remove unused methods CPWL_Wnd::GetFocused() and SetBackgroundColor()
2021-09-17 tsepez@chromium.org Remove unreachable return in CPWL_MsgControl::SetFocus().
2021-09-17 tsepez@chromium.org Make CPWL_EditImpl::DrawEdit() a non-static method.
2021-09-17 tsepez@chromium.org Remove STL includes for files without std:: symbols
2021-09-17 vmiklos@collabora.co.uk fdrm: fix MSVC 2019 build

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pdfium-autoroll
Please CC pdfium-deps-rolls@chromium.org on the revert to ensure that a human
is aware of the problem.

To file a bug in PDFium: https://bugs.chromium.org/p/pdfium/issues/entry
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: pdfium-deps-rolls@chromium.org
Change-Id: I4f5abeb47cf5d7a61c437a5fcaceb02f4c9cce56
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169864
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922778}
Roll Chrome Mac PGO profile from chrome-mac-main-1631895234-51ef5b12740a944d441055d0c58b5dfcebfd2221.profdata to chrome-mac-main-1631923111-63c5602e99f5eda6e8619ce55f50053381e74764.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-mac-chromium
Please CC pgo-profile-sheriffs@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:mac-chrome
Tbr: pgo-profile-sheriffs@google.com
Change-Id: I1099648baa95a5e171550b71c8e07d036caa024b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3170002
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922779}
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/androidx-chromium
Please CC mheikal@google.com,clank-library-failures@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: mheikal@google.com,clank-library-failures@google.com
Change-Id: I36daa5531b339bb7e9e34c424b9f83be23585f6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169241
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922780}
Change-Id: Iac2e61c8f30c906e813d1f5c6a3a4b0e229a610c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169139
Auto-Submit: Ben Mason <benmason@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922781}
https://chromium.googlesource.com/devtools/devtools-frontend.git/+log/e4132180df00..0073a92aab7c

2021-09-18 devtools-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com Update DevTools DEPS.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/devtools-frontend-chromium
Please CC devtools-waterfall-sheriff-onduty@grotations.appspotmail.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: devtools-waterfall-sheriff-onduty@grotations.appspotmail.com
Change-Id: Ic7d3b8aaabee03b65c36c5f746cb185bab8885cc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169439
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922782}
https://chromium.googlesource.com/angle/angle.git/+log/89c555f16430..458389f249b0

2021-09-17 syoussefi@chromium.org Vulkan: Support Linux dma-bufs
2021-09-17 timvp@google.com Destroy all unreferenced Contexts resources during terminate()
2021-09-17 rafael.cintron@microsoft.com Fix memory leak in StreamProducerD3DTexture.validateD3DTexture
2021-09-17 jmadill@chromium.org Move JsonSerializer from libANGLE to common.
2021-09-17 jmadill@chromium.org Fix libpng warning.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-chromium-autoroll
Please CC jonahr@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win-asan;luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:linux-swangle-try-x64;luci.chromium.try:win-swangle-try-x86
Bug: chromium:1190892
Tbr: jonahr@google.com
Test: Test: EGLContextSharingTestNoFixture.EglTerminateMultipleTimes
Change-Id: I7d0e798c96f3b0081b8b361c3ec41388f2b112a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3170096
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922783}
https://chrome-internal.googlesource.com/chrome/src-internal.git/+log/f05b4b7eea4e..cc48041bd648

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://skia-autoroll.corp.goog/r/src-internal-chromium-autoroll
Please CC thomasanderson@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:linux-chromeos-chrome
Bug: chromium:1214825,chromium:1225326,chromium:1248224,chromium:1249980
Tbr: thomasanderson@google.com
Change-Id: I95df6a0208dcec88a368d50d96390939f6630a48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169939
Commit-Queue: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Bot-Commit: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922784}
BUG=b/199532589
TEST=None

Change-Id: Id79d70de889ab74365f6f5ada1e31d468aee8f20
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169610
Reviewed-by: Muhammad Hasan Khan <mhasank@chromium.org>
Commit-Queue: Yao Li <yaohuali@google.com>
Cr-Commit-Position: refs/heads/main@{#922785}
A few browser tests are passing in the --force-enable-metrics-reporting
flag. This flag makes Chromium builds behave like Google Chrome and send
data to servers.

This CL updates existing tests to no longer use the switch.

Bug: 1166393
Change-Id: Ib902f06760e8a74a0c54c684a30be7ca2ac81480
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3168713
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Reviewed-by: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922786}
- Creates a new boolean property |isMultiPageScan_| that is used to mark
  a multi-page scan

- This is now separate from the boolean property |multiPageScanChecked|
  which only marks if the checkbox is checked

- This fixes an issue where switching the file type from PDF to PNG/JPG
  hides the checked checkbox but a multi-page scan would still
  incorrectly start.

Bug: 1210271
Change-Id: Idcf6871dfd02b2c09f5eb8fb816cc21ef45be37e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169039
Reviewed-by: Jimmy Gong <jimmyxgong@chromium.org>
Commit-Queue: Gavin Williams <gavinwill@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922787}
Automatic update for 2021-09-18 UTC

Change-Id: Iaf1db505671cafbc5ab5af718e392251ba4a5203
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3170391
Commit-Queue: CT Log list updates bot <mdb.chrome-pki-metadata@google.com>
Bot-Commit: CT Log list updates bot <mdb.chrome-pki-metadata@google.com>
Cr-Commit-Position: refs/heads/main@{#922788}
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-sdk-chromium-autoroll
Please CC chrome-fuchsia-gardener@grotations.appspotmail.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:fuchsia-arm64-cast;luci.chromium.try:fuchsia-deterministic-dbg;luci.chromium.try:fuchsia-x64-cast
Tbr: chrome-fuchsia-gardener@grotations.appspotmail.com
Disable-Retries: true
Change-Id: I6f141ada22c1de978dd7edcb06b4268af4d8a0de
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3170100
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922789}
This works by adding aria attributes in the html, such that:
* When a questionnaire is added, a message is read aloud to notify the
  user.
* When the "Send" button is hovered, the message is read aloud again to
  remind the user in case they didn't hear the first time.

Bug: 1241169
Change-Id: I9e4b84c3cb2bd54d9a9447883bc5cecb9806549f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3166184
Commit-Queue: Sonny Sasaka <sonnysasaka@chromium.org>
Reviewed-by: Akihiro Ota <akihiroota@chromium.org>
Reviewed-by: Jimmy Gong <jimmyxgong@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922790}
- Show "Hold to maximize" widget on snap-top phantom window and
hide the widget once the snap-top phantom window turns into maximize
phantom window.
- NIT: Use |kDwellTime| for landscape maximize instead of
|kDwellLongTime| even if vertical snap feature is enabled.

Bug: 1236294
Test: Manual
Change-Id: I8d60587bd33cbed9ecba7c81733db3a888b75cc9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3161677
Commit-Queue: Cattalyya Nuengsigkapian <cattalyya@chromium.org>
Reviewed-by: Xiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922791}
https://dawn.googlesource.com/dawn.git/+log/a6394ddc07c6..39046f36d7f3

2021-09-17 kainino@chromium.org Tweak JavaScript formatting of compressed formats
2021-09-17 kainino@chromium.org Add new items for Emscripten/webgpu-headers
2021-09-17 kainino@chromium.org Generate multiple variants of webgpu.h header
2021-09-17 tangm@microsoft.com D3D12: Move transform/FirstIndexOffset outside of TranslateToHLSL
2021-09-17 kainino@chromium.org Stub out depth16unorm texture format
2021-09-17 enga@chromium.org Add an option for the Adapter to use tiered limits
2021-09-17 cwallez@chromium.org Remove readonly storage textures

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-chromium-autoroll
Please CC shrekshao@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:dawn-linux-x64-deps-rel;luci.chromium.try:dawn-mac-x64-deps-rel;luci.chromium.try:dawn-win10-x64-deps-rel;luci.chromium.try:dawn-win10-x86-deps-rel
Bug: None
Tbr: shrekshao@google.com
Change-Id: I543574b937cdbe5cc87c5ad1b055e50d8be76770
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169876
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922792}
The test is only flaking on arm64 debug builds

Bug: 1249304
Change-Id: I6ea92051409100a3156e9e628406af896a1223c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169950
Auto-Submit: Chong Gu <chonggu@google.com>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922793}
This patch handles null values for callbacks of PlatformServiceBridge.
Callback argument for methods like `queryMetricsSetting` or
`querySafeBrowsingUserConsent` are Boolean object value. It could be
null and may cause NE if it is casted to primitive boolean value
directly. So use `Boolean.TRUE.equals()` for this to avoid subtle null
values.

Bug: 1025431
Change-Id: If6f782be0e2a60402477b004b273d539592b968a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3159766
Reviewed-by: Hazem Ashmawy <hazems@chromium.org>
Reviewed-by: Nate Fischer <ntfschr@chromium.org>
Commit-Queue: Jaeyong Bae <jdragon.bae@gmail.com>
Cr-Commit-Position: refs/heads/main@{#922794}
This CL extends the test coverage of FirstRunIntegrationTest by
allowing tests with all promos enabled or disabled (today, only the
enabled cases for Data Saver and Sync promos are covered), and more
tests for onBackPressed during FRE.

This refactoring is part of a larger goal to skip FRE promos disabled
by cloud policy when policies are received before a promo is shown.
A follow-up CL will change FirstRunActivity to react to changes in
preferences due to cloud policies being set after FR started, and
integration tests will need to cover more cases as well. Because of
that, I decided to send this CL separately to make review easier.

Other than the additional tests, this CL also mock settings for
Sign-in/Sync enabled and Data Saver enabled in FirstRunIntegrationTest,
so we can test all the possible combinations.

Tests for the new sign-in flow on FRE will be added later.

Please notice that we preferred not to use parametrized tests because
not all tests on this file make sense to be run with multiple
configurations.

Bug: 1203435
Change-Id: If2423e288f9f87e145aa99afece8ee5be99c7de2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3081379
Commit-Queue: Jan Krcal <jkrcal@chromium.org>
Auto-Submit: Fabio Tirelo <ftirelo@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922795}
https://android.googlesource.com/platform/external/perfetto.git/+log/a9118d769009..62ae508a04c8

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/perfetto-trace-processor-win-chromium
Please CC perfetto-bugs@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: perfetto-bugs@google.com
Change-Id: I016e993e920fa9d07f6c3be577443f2cf31437f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169826
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#922796}
This CL fixes the issue that the policy cellular shill configuration got
removed when user logs out. This CL contains two changes:
1. Remove the NetworkTechnology
property as the identifying property for cellular when comparing two
Shill properties.
2. Append the Iccid and Eid from old shill entry
to avoid creating cellular service with empty Iccid and Eid when device
got boot up.

Bug: 1231305
Change-Id: Ie8d495bb0b88c27477b6c943cfd52197ba228878
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3166181
Commit-Queue: Jason Zhang <jiajunz@google.com>
Reviewed-by: Azeem Arshad <azeemarshad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922797}
Move and rename will only be supported for FileSystemFileHandles.
See https://crbug.com/1250534 for rationale.

Bug: 1140805, 1250534, 1250536
Change-Id: Ied6d5d69d8a0a1e05b4e1625cb54cfbe5bdb695c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3167575
Commit-Queue: Austin Sullivan <asully@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922798}
pull bot pushed a commit that referenced this pull request Jun 30, 2023
This reverts commit 32257e5.

Reason for revert: bot failures, e.g.:

https://ci.chromium.org/ui/p/chromium/builders/ci/linux-lacros-asan-lsan-rel/5477/test-results?sortby=&groupby=

[ RUN      ] IndexedDBLevelDBCodingTest.DecodeSortableWithCorruption
FATAL content_unittests[168632:168632]: [indexed_db_leveldb_coding.cc(697)] Check failed: !key_arrays.empty().
    #0 0x557f3bbe5f35 in backtrace /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:4411:13
    #1 0x557f4fce4862 in base::debug::CollectStackTrace(void**, unsigned long) ./../../base/debug/stack_trace_posix.cc:1001:7
    #2 0x557f4fc9f313 in StackTrace ./../../base/debug/stack_trace.cc:221:12
    #3 0x557f4fc9f313 in base::debug::StackTrace::StackTrace() ./../../base/debug/stack_trace.cc:218:28
    #4 0x557f4f9eebd3 in logging::LogMessage::~LogMessage() ./../../base/logging.cc:730:29
    #5 0x557f4f9a3df5 in ~DCheckLogMessage ./../../base/check.cc:91:3
    #6 0x557f4f9a3df5 in logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() ./../../base/check.cc:87:32
    #7 0x557f4f9a39a0 in logging::NotReachedError::~NotReachedError() ./../../base/check.cc:268:3
    #8 0x557f4d49baaf in content::DecodeSortableIDBKey(std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> const&, blink::IndexedDBKey*) ./../../content/browser/indexed_db/indexed_db_leveldb_coding.cc:697:9
    #9 0x557f3d3e2cef in content::(anonymous namespace)::IndexedDBLevelDBCodingTest_DecodeSortableWithCorruption_Test::TestBody() 

Original change's description:
> IndexedDB: add deserialization code for sortable IDB keys
>
> Bug: 1409618
> Change-Id: I43fe51e77c1da43e707430cacaf8debdeacb7a65
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4651525
> Commit-Queue: Evan Stade <estade@chromium.org>
> Reviewed-by: Austin Sullivan <asully@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1164358}

Bug: 1409618
Change-Id: I5cdf7f83b6d60bcad20208cc22caca86a848d400
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4655982
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Frank Liberato <liberato@google.com>
Commit-Queue: Frank Liberato <liberato@chromium.org>
Auto-Submit: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1164434}
pull bot pushed a commit that referenced this pull request Aug 4, 2023
This reverts commit 7e52434.

Reason for revert: the new test is failing, and is likely causing other tests to fail as well.

See:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/37593/test-results?sortby=&groupby=

Sample failure:

[ RUN      ] TimeOfDayTest.ReturnsNullTimeWhenLocalTimeFails
==324697==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x5632f6dd4ee3 in base::Time::Exploded::HasValidValues() const ./../../base/time/time.cc:302:23
    #1 0x5632f61d489d in ash::TimeOfDay::ToTimeToday() const ./../../ash/system/time/time_of_day.cc:54:12
    #2 0x5632ea366c82 in ash::(anonymous namespace)::TimeOfDayTest_ReturnsNullTimeWhenLocalTimeFails_Test::TestBody() ./../../ash/system/time/time_of_day_unittest.cc:98:3
    #3 0x5632f496278c in HandleExceptionsInMethodIfSupported<testing::Test, void> ./../../third_party/googletest/src/googletest/src/gtest-internal-inl.h:0:10
    #4 0x5632f496278c in testing::Test::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2670:5
    #5 0x5632f49650b3 in testing::TestInfo::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2849:11
    #6 0x5632f4967144 in testing::TestSuite::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:3008:30
    #7 0x5632f4994c10 in testing::internal::UnitTestImpl::RunAllTests() ./../../third_party/googletest/src/googletest/src/gtest.cc:5866:44
    #8 0x5632f4993ce2 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> ./../../third_party/googletest/src/googletest/src/gtest-internal-inl.h:0:10
    #9 0x5632f4993ce2 in testing::UnitTest::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:5440:10
    #10 0x5632f6f60f30 in RUN_ALL_TESTS ./../../third_party/googletest/src/googletest/include/gtest/gtest.h:2284:73
    #11 0x5632f6f60f30 in base::TestSuite::Run() ./../../base/test/test_suite.cc:461:16
    #12 0x5632f6f6c137 in Run ./../../base/functional/callback.h:152:12
    #13 0x5632f6f6c137 in RunTestSuite ./../../base/test/launcher/unit_test_launcher.cc:179:38
    #14 0x5632f6f6c137 in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, unsigned long, bool, base::RepeatingCallback<void ()>, base::OnceCallback<void ()>) ./../../base/test/launcher/unit_test_launcher.cc:240:10
    #15 0x5632f6f6b824 in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>, unsigned long) ./../../base/test/launcher/unit_test_launcher.cc:288:10
    #16 0x5632f68395ae in main ./../../ash/test/ash_unittests.cc:29:10
    #17 0x7f1f985cd082 in __libc_start_main ??:0:0
    #18 0x5632e637b029 in _start ??:0:0

  Uninitialized value was created by an allocation of 'now' in the stack frame
    #0 0x5632f61d4706 in ash::TimeOfDay::ToTimeToday() const ./../../ash/system/time/time_of_day.cc:48:3


Other tests seem to be failing for the same reasons, e.g.
ScheduledFeatureTest.HandlesLocalTimeFailuresSunsetToSunrise

Original change's description:
> Explicitly check when local time conversion fails.
>
> base::Time::LocalExplode() can fail. The API says to check
> base::Time::Exploded::HasValidValues() to detect this.
>
> This functionally is probably the same as before because we
> were passing the exploded output to base::Time::FromLocalExploded()
> immediately after, and presumably, that would fail if the exploded
> input had invalid values. But it's clearer to the reader if this
> is explicitly checked first.
>
> A unit test has also been added to TimeOfDay.
>
> Bug: b:294436942
> Change-Id: I751da660df4c89a9c545d465dfb5361dfb2acc64
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4750820
> Reviewed-by: Jiaming Cheng <jiamingc@chromium.org>
> Commit-Queue: Eric Sum <esum@google.com>
> Cr-Commit-Position: refs/heads/main@{#1179335}

Bug: b:294436942
Change-Id: Iee92b34c51d4b202b6018dd1c62ddd4c4f76eaf6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4748880
Commit-Queue: David Roger <droger@chromium.org>
Owners-Override: David Roger <droger@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1179492}
pull bot pushed a commit that referenced this pull request Aug 4, 2023
… LogMessage."

This reverts commit 07a88f3.

Reason for revert: breaks MSAN bot
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/37602/test-results

[ RUN      ] CStringBuilderTestPA.Char
==313264==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x563432178a89 in partition_alloc::internal::base::strings::CStringBuilder::c_str() ./../../base/allocator/partition_allocator/partition_alloc_base/strings/cstring_builder.cc:145:7
    #1 0x563431d9652c in partition_alloc::internal::base::strings::CStringBuilderTestPA_Char_Test::TestBody() ./../../base/allocator/partition_allocator/partition_alloc_base/strings/cstring_builder_pa_unittest.cc:33:3
    #2 0x5634322101ba in HandleExceptionsInMethodIfSupported<testing::Test, void> ./../../third_party/googletest/src/googletest/src/gtest-internal-inl.h:0:10
    #3 0x5634322101ba in testing::Test::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2670:5
    #4 0x563432212ae1 in testing::TestInfo::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2849:11
    #5 0x563432214b72 in testing::TestSuite::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:3008:30
    #6 0x563432242552 in testing::internal::UnitTestImpl::RunAllTests() ./../../third_party/googletest/src/googletest/src/gtest.cc:5866:44
    #7 0x563432241624 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> ./../../third_party/googletest/src/googletest/src/gtest-internal-inl.h:0:10
    #8 0x563432241624 in testing::UnitTest::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:5440:10
    #9 0x5634329698b0 in RUN_ALL_TESTS ./../../third_party/googletest/src/googletest/include/gtest/gtest.h:2284:73
    #10 0x5634329698b0 in base::TestSuite::Run() ./../../base/test/test_suite.cc:461:16
    #11 0x5634329cc377 in Run ./../../base/functional/callback.h:152:12
    #12 0x5634329cc377 in RunTestSuite ./../../base/test/launcher/unit_test_launcher.cc:179:38
    #13 0x5634329cc377 in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, unsigned long, bool, base::RepeatingCallback<void ()>, base::OnceCallback<void ()>) ./../../base/test/launcher/unit_test_launcher.cc:240:10
    #14 0x5634329cba64 in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>, unsigned long) ./../../base/test/launcher/unit_test_launcher.cc:288:10
    #15 0x5634328f3de4 in main ./../../base/test/run_all_unittests.cc:70:10
    #16 0x7f308e293082 in __libc_start_main ??:0:0
    #17 0x56342e6a1349 in _start ??:0:0

  Uninitialized value was created by an allocation of 'builder' in the stack frame
    #0 0x563431d96365 in partition_alloc::internal::base::strings::CStringBuilderTestPA_Char_Test::TestBody() ./../../base/allocator/partition_allocator/partition_alloc_base/strings/cstring_builder_pa_unittest.cc:31:3

SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/base_unittests+0x43f5a89) (BuildId: 039152aa25034492)
Exiting

Original change's description:
> [PA] Add CStringBuilder to replace std::ostringstream used by LogMessage.
>
> Since std::ostringstream allocates and deallocates memory from heap, c.f. https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:buildtools/third_party/libc++/trunk/src/ios.cpp
>
> std::ostringstream is not available inside memory allocation. Instead
> add CStringBuilder (not resize, fixed buffer size) for LogMessage.
>
> Change-Id: I8051978487acc5fc9b976d6085909b43f81d9d0d
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4744311
> Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
> Commit-Queue: Takashi Sakamoto <tasak@google.com>
> Cr-Commit-Position: refs/heads/main@{#1179481}

Change-Id: Idb29e3252d9fe67955c0ae25ab46640ebfdae336
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4748189
Auto-Submit: David Roger <droger@chromium.org>
Owners-Override: David Roger <droger@chromium.org>
Commit-Queue: David Roger <droger@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1179539}
pull bot pushed a commit that referenced this pull request Aug 9, 2023
This reverts commit 9888813.

Reason for revert: Roll forward with msan fix.

Original change's description:
> Revert "Explicitly check when local time conversion fails."
>
> This reverts commit 7e52434.
>
> Reason for revert: the new test is failing, and is likely causing other tests to fail as well.
>
> See:
> https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/37593/test-results?sortby=&groupby=
>
> Sample failure:
>
> [ RUN      ] TimeOfDayTest.ReturnsNullTimeWhenLocalTimeFails
> ==324697==WARNING: MemorySanitizer: use-of-uninitialized-value
>     #0 0x5632f6dd4ee3 in base::Time::Exploded::HasValidValues() const ./../../base/time/time.cc:302:23
>     #1 0x5632f61d489d in ash::TimeOfDay::ToTimeToday() const ./../../ash/system/time/time_of_day.cc:54:12
>     #2 0x5632ea366c82 in ash::(anonymous namespace)::TimeOfDayTest_ReturnsNullTimeWhenLocalTimeFails_Test::TestBody() ./../../ash/system/time/time_of_day_unittest.cc:98:3
>     #3 0x5632f496278c in HandleExceptionsInMethodIfSupported<testing::Test, void> ./../../third_party/googletest/src/googletest/src/gtest-internal-inl.h:0:10
>     #4 0x5632f496278c in testing::Test::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2670:5
>     #5 0x5632f49650b3 in testing::TestInfo::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2849:11
>     #6 0x5632f4967144 in testing::TestSuite::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:3008:30
>     #7 0x5632f4994c10 in testing::internal::UnitTestImpl::RunAllTests() ./../../third_party/googletest/src/googletest/src/gtest.cc:5866:44
>     #8 0x5632f4993ce2 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> ./../../third_party/googletest/src/googletest/src/gtest-internal-inl.h:0:10
>     #9 0x5632f4993ce2 in testing::UnitTest::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:5440:10
>     #10 0x5632f6f60f30 in RUN_ALL_TESTS ./../../third_party/googletest/src/googletest/include/gtest/gtest.h:2284:73
>     #11 0x5632f6f60f30 in base::TestSuite::Run() ./../../base/test/test_suite.cc:461:16
>     #12 0x5632f6f6c137 in Run ./../../base/functional/callback.h:152:12
>     #13 0x5632f6f6c137 in RunTestSuite ./../../base/test/launcher/unit_test_launcher.cc:179:38
>     #14 0x5632f6f6c137 in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, unsigned long, bool, base::RepeatingCallback<void ()>, base::OnceCallback<void ()>) ./../../base/test/launcher/unit_test_launcher.cc:240:10
>     #15 0x5632f6f6b824 in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>, unsigned long) ./../../base/test/launcher/unit_test_launcher.cc:288:10
>     #16 0x5632f68395ae in main ./../../ash/test/ash_unittests.cc:29:10
>     #17 0x7f1f985cd082 in __libc_start_main ??:0:0
>     #18 0x5632e637b029 in _start ??:0:0
>
>   Uninitialized value was created by an allocation of 'now' in the stack frame
>     #0 0x5632f61d4706 in ash::TimeOfDay::ToTimeToday() const ./../../ash/system/time/time_of_day.cc:48:3
>
>
> Other tests seem to be failing for the same reasons, e.g.
> ScheduledFeatureTest.HandlesLocalTimeFailuresSunsetToSunrise
>
> Original change's description:
> > Explicitly check when local time conversion fails.
> >
> > base::Time::LocalExplode() can fail. The API says to check
> > base::Time::Exploded::HasValidValues() to detect this.
> >
> > This functionally is probably the same as before because we
> > were passing the exploded output to base::Time::FromLocalExploded()
> > immediately after, and presumably, that would fail if the exploded
> > input had invalid values. But it's clearer to the reader if this
> > is explicitly checked first.
> >
> > A unit test has also been added to TimeOfDay.
> >
> > Bug: b:294436942
> > Change-Id: I751da660df4c89a9c545d465dfb5361dfb2acc64
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4750820
> > Reviewed-by: Jiaming Cheng <jiamingc@chromium.org>
> > Commit-Queue: Eric Sum <esum@google.com>
> > Cr-Commit-Position: refs/heads/main@{#1179335}
>
> Bug: b:294436942
> Change-Id: Iee92b34c51d4b202b6018dd1c62ddd4c4f76eaf6
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4748880
> Commit-Queue: David Roger <droger@chromium.org>
> Owners-Override: David Roger <droger@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#1179492}

Bug: b:294436942
Change-Id: I81aca119976bca9c4992f20064b3923146c5ab4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4752645
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Jiaming Cheng <jiamingc@chromium.org>
Commit-Queue: Eric Sum <esum@google.com>
Cr-Commit-Position: refs/heads/main@{#1181006}
pull bot pushed a commit that referenced this pull request Aug 31, 2023
https://crrev.com/c/2492281 introduced a commented out DCHECK() in
`AgentSchedulingGroupHost::GetProcess()` ensuring that method is never
called when its LifecycleState is in the `kRenderProcessHostDestroyed`
state.

It's commented out with the disclaimer above it, saying it cannot be enabled yet:

"since RenderViewHostImpl outlives its associated
AgentSchedulingGroupHost, and the [RenderViewHostImpl] dtor queries the
associated RenderProcessHost to remove itself from the
PerProcessRenderViewHostSet and RemoveObserver() itself."

However, this isn't exactly correct. The RVHI doesn't appear to actually
outlive its RPHI/ASGH; that would cause a different kind of crash/error
altogether. The flow I believe the comment intends to describe can be seen in various browser test failures that occur when the DCHECK is enabled, that look like:

```
#6 0x7f9375403d6d logging::CheckError::~CheckError()
#7 0x7f93609062e9 content::AgentSchedulingGroupHost::GetProcess()
#8 0x7f9360e507dd content::RenderViewHostImpl::GetProcess()
#9 0x7f9360e4dec6 content::RenderViewHostImpl::~RenderViewHostImpl()
#10 0x7f9360e4e339 content::RenderViewHostImpl::~RenderViewHostImpl()
```

What happens is `RenderViewHostImpl::dtor()` is called, which calls:
  1. `GetAgentSchedulingGroup().RemoveRoute()` [1]
    a. ASGH accomplishes this by going through its RenderProcessHostImpl
    b. If this is the last route in the process, then
       `RenderProcessHostImpl::Cleanup()` is invoked, which first alerts
       all observers of the `RenderProcessHostDestroyed()` event, and
       then immediately schedules its destruction in an asynchronous
       task
  2. `GetProcess().GetID()` and `GetProcess()->RemoveObserver()`
    a. This fails because by this point, `AgentSchedulingGroup`, which
       is-a `RenderProcessHostObserver`, has already been notified of
       the `RenderProcessHostDestroyed` event, despite the RPHI still
       being alive, although its destruction has been scheduled.

There are a few options to deal with this:
  1. Move all invocations of methods that can trigger the
     `RenderProcessHostDestroyed()` event — like `RemoveRoute()` — to
     *after* any co-located calls to `GetProcess()`. This is really a
     hack, and is very fragile. Even if implemented, it's probably not
     actually possible to get this correct, since there are many calls
     to `GetProcess()` from other classes, that happen far away from
     calls to things like `RemoveRoute()`. That's what we see in [2],
     where I tried to implement this.
     And even still, if this were completely possible, it's very
     undesirable because then you have to keep in mind the allowed
     ordering of some random method invocations that might
     arbitrarily change over time across classes. BAD!
  2. Another solution is to weaken the DCHECK(), as to ensure that we
     never call `GetProcess()` when `state_` is destroyed *unless* the
     RPHI also has its `deleting_soon_` bool set to true, indicating
     that destruction has been scheduled. We let this case slide because
     there's nothing wrong with getting the RPHI at this point. In unit
     tests, `MockRenderProcessHost` doesn't have an `deleting_soon_`
     bool, so we'd have to have a special carve-out for this case, where
     we just treat it as OK and pass the DCHECK() since we know we're
     in a unit test.
     This solution isn't bad, but unfortunately it's not possible to
     implement since there is no way to detect whether `ASGH::process_`
     is a `RenderProcessHostImpl` or a `MockRenderProcessHost`, so we
     can't distinguish between the "production" and the "test" scenario.
  3. A better solution would probably be to just remove the DCHECK()
     since it's not doing anything useful. It's commented out, and even
     if it were enabled, it wouldn't necessarily be correct. There's
     nothing inherently wrong with consulting an RPHI in the gap between
     `Cleanup()` and `::dtor()`, which is what the DCHECK prevents. The
     DCHECK isn't protecting against accessing an already-actually-
     destroyed RPHI anyways; that's what the `base::SafeRef` around
     `AgentSchedulingGroupHost::process_` does!
     Given the fact that this DCHECK() was probably misunderstood in the
     first place — mistaking the RPHDestroyed() event for *actual*
     destruction — and was put into place before the base::SafeRef
     protection was implemented, which actually does something here,
     I firmly believe this is the best solution forward. This CL removes
     the DCHECK().


[1]: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_view_host_impl.cc;l=383-388;drc=31154961f51fd2c1116e37fbc7e2f0ea6099414e
[2]: https://chromium-review.googlesource.com/c/chromium/src/+/4226953/4?checksPatchset=4&tab=checks

Bug: 1111231
Change-Id: Icf40f0f0bc0d40642a5fb2b64a664fc204d7d906
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4226953
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1190316}
pull bot pushed a commit that referenced this pull request Sep 1, 2023
…ation

At least on Linux X11, views::test::TestDesktopScreenOzone::Create() may
try to retrieve a localized string for "Built-in display" after [1].
But screen creation happens early for interactive UI tests since [2], at
least before ChromeFeatureListCreator::ConvertFlagsToSwitches() which
assumes ui::ResourceBundle is not initialized. This is causing the crash
below for all interactive UI tests on Linux X11, which this CL fixes by
temporarily initializing ui::ResourceBundle during screen creation.
See crbug.com/1457129 for details.

    [24841:24841:FATAL:resource_bundle.cc(357)] Check failed: g_shared_instance_ != nullptr.
    #0 0x5585747ceee2 base::debug::CollectStackTrace()
    #1 0x5585747b6213 base::debug::StackTrace::StackTrace()
    #2 0x5585746ab79d logging::LogMessage::~LogMessage()
    #3 0x5585746ac2ee logging::LogMessage::~LogMessage()
    #4 0x558574692437 logging::CheckError::~CheckError()
    #5 0x558574bd6075 ui::ResourceBundle::GetSharedInstance()
    #6 0x558574bc0a18 l10n_util::GetStringUTF8()
    #7 0x5585758fddc1 ui::BuildDisplaysFromXRandRInfo()
    #8 0x5585758fb539 ui::XDisplayManager::FetchDisplayList()
    #9 0x5585758fb449 ui::XDisplayManager::Init()
    #10 0x55856dd0e34c ui::X11ScreenOzone::Init()
    #11 0x55856d09ed3d views::test::TestDesktopScreenOzone::Create()
    #12 0x558572c7ec70 InProcessBrowserTest::SetScreenInstance()
    #13 0x558572c7e44f InProcessBrowserTest::SetUp()
    #14 0x55856d24c5f2 testing::Test::Run()
    #15 0x55856d24d865 testing::TestInfo::Run()
    #16 0x55856d24e337 testing::TestSuite::Run()
    #17 0x55856d25cf07 testing::internal::UnitTestImpl::RunAllTests()
    #18 0x55856d25c9ff testing::UnitTest::Run()
    #19 0x5585746730ec base::TestSuite::Run()
    #20 0x558572c5eddb ChromeTestSuiteRunner::RunTestSuiteInternal()
    #21 0x55856cc79be4 InteractiveUITestSuiteRunner::RunTestSuite()
    #22 0x558572c5f069 ChromeTestLauncherDelegate::RunTestSuite()
    #23 0x558573d7b9ab content::LaunchTestsInternal()
    #24 0x558572c5f325 LaunchChromeTests()

Bug: 1457129

[1] crrev.com/1010705
[2] crrev.com/1011300

Change-Id: I173b41d4369fa26332a37b0f89e14669b6b227a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4632804
Commit-Queue: Frédéric Wang <fwang@igalia.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1191366}
pull bot pushed a commit that referenced this pull request Sep 2, 2023
…reen creation"

This reverts commit 5931e82.

Reason for revert: Suspect causing multiple test failed on Linux Tests (dbg)(1)
first failure:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20Tests%20(dbg)(1)/115562/overview

Original change's description:
> interactive_ui_tests: use temporary ui::ResourceBundle for screen creation
>
> At least on Linux X11, views::test::TestDesktopScreenOzone::Create() may
> try to retrieve a localized string for "Built-in display" after [1].
> But screen creation happens early for interactive UI tests since [2], at
> least before ChromeFeatureListCreator::ConvertFlagsToSwitches() which
> assumes ui::ResourceBundle is not initialized. This is causing the crash
> below for all interactive UI tests on Linux X11, which this CL fixes by
> temporarily initializing ui::ResourceBundle during screen creation.
> See crbug.com/1457129 for details.
>
>     [24841:24841:FATAL:resource_bundle.cc(357)] Check failed: g_shared_instance_ != nullptr.
>     #0 0x5585747ceee2 base::debug::CollectStackTrace()
>     #1 0x5585747b6213 base::debug::StackTrace::StackTrace()
>     #2 0x5585746ab79d logging::LogMessage::~LogMessage()
>     #3 0x5585746ac2ee logging::LogMessage::~LogMessage()
>     #4 0x558574692437 logging::CheckError::~CheckError()
>     #5 0x558574bd6075 ui::ResourceBundle::GetSharedInstance()
>     #6 0x558574bc0a18 l10n_util::GetStringUTF8()
>     #7 0x5585758fddc1 ui::BuildDisplaysFromXRandRInfo()
>     #8 0x5585758fb539 ui::XDisplayManager::FetchDisplayList()
>     #9 0x5585758fb449 ui::XDisplayManager::Init()
>     #10 0x55856dd0e34c ui::X11ScreenOzone::Init()
>     #11 0x55856d09ed3d views::test::TestDesktopScreenOzone::Create()
>     #12 0x558572c7ec70 InProcessBrowserTest::SetScreenInstance()
>     #13 0x558572c7e44f InProcessBrowserTest::SetUp()
>     #14 0x55856d24c5f2 testing::Test::Run()
>     #15 0x55856d24d865 testing::TestInfo::Run()
>     #16 0x55856d24e337 testing::TestSuite::Run()
>     #17 0x55856d25cf07 testing::internal::UnitTestImpl::RunAllTests()
>     #18 0x55856d25c9ff testing::UnitTest::Run()
>     #19 0x5585746730ec base::TestSuite::Run()
>     #20 0x558572c5eddb ChromeTestSuiteRunner::RunTestSuiteInternal()
>     #21 0x55856cc79be4 InteractiveUITestSuiteRunner::RunTestSuite()
>     #22 0x558572c5f069 ChromeTestLauncherDelegate::RunTestSuite()
>     #23 0x558573d7b9ab content::LaunchTestsInternal()
>     #24 0x558572c5f325 LaunchChromeTests()
>
> Bug: 1457129
>
> [1] crrev.com/1010705
> [2] crrev.com/1011300
>
> Change-Id: I173b41d4369fa26332a37b0f89e14669b6b227a1
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4632804
> Commit-Queue: Frédéric Wang <fwang@igalia.com>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1191366}

Bug: 1457129, 1478318
Change-Id: Ib5adf3d8d8fb0b80789b6351f90cade2d6a6b682
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4833241
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Owen Min <zmin@chromium.org>
Reviewed-by: Peter Williamson <petewil@chromium.org>
Owners-Override: Owen Min <zmin@chromium.org>
Auto-Submit: Owen Min <zmin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1191537}
pull bot pushed a commit that referenced this pull request Sep 5, 2023
@AliMariam reported the dangling pointer detector found a new dangling
pointer when running tests on linux Workstation.

The error is:
```
  The memory was freed at:
  #3  allocator_shim::internal::PartitionFree()
  #4  bluez::BluezDBusThreadManager::~BluezDBusThreadManager()
  #5  bluez::BluezDBusThreadManager::Shutdown()
  #6  ChromeBrowserMainPartsLinux::PostDestroyThreads()
  #7  content::BrowserMainLoop::ShutdownThreadsAndCleanUp()
  #8  content::BrowserMainRunnerImpl::Shutdown()
  #9  content::BrowserMain()
  #10 content::RunBrowserProcessMain()
  #11 content::ContentMainRunnerImpl::RunBrowser()
  #12 content::ContentMainRunnerImpl::Run()
  #13 content::RunContentProcess()
  #14 content::ContentMain()
  #15 ChromeMain

  The dangling raw_ptr was released at:
  #3  base::internal::RawPtrBackupRefImpl<>::ReleaseInternal()
  #4  dbus::ObjectManager::~ObjectManager()
  #5  std::__Cr::__tuple_impl<>::~__tuple_impl()
  #6  base::internal::BindState<>::Destroy()
  #7  base::[...]::LazilyDeallocatedDeque<>::Ring::~Ring()
  #8  base::[...]::TaskQueueImpl::UnregisterTaskQueue()
  #9  base::[...]::SequenceManagerImpl::UnregisterTaskQueueImpl()
  #10 base::sequence_manager::TaskQueue::ShutdownTaskQueue()
  #11 content::BrowserTaskQueues::~BrowserTaskQueues()
  #12 content::BrowserUIThreadScheduler::~BrowserUIThreadScheduler()
  #13 content::BrowserTaskExecutor::[...]::~UIThreadExecutor()
  #14 content::BrowserTaskExecutor::[...]::~UIThreadExecutor()
  #15 content::BrowserTaskExecutor::Shutdown()
  #16 content::ContentMainRunnerImpl::Shutdown()
  #17 content::RunContentProcess()
  #18 content::ContentMain()
  #19 ChromeMain
```

Diagnostic:
- `bluez::BluezDBusThreadManager` owns a `dbus::Bus` as `system_bus`.
- `dbus::Bus` owns:
  - The set of `dbus::ObjectManager` as `object_manager_table_`.
  - The DBus task runner as `dbus_task_runner_`.
- The `dbus::ObjectManager` references `dbus::Bus` via `bus_`.

So far so good, the ownership is clear. The problem happens when calling
`dbus::Bus::RemoveObjectManager`. Indeed this moves the ObjectManager
out of `dbus::Bus` toward a callback to a new thread. This still works
transitively, because the dbus::Bus owns the thread. The problem happens
after a second transfer back to the original thread.

Indeed, there is a race condition possible:

Behavior without problems: -----------------------------------

┌─────────────┐                    ┌───────────┐
│Origin thread│                    │DBus thread│
└──────┬──────┘                    └─────┬─────┘
RemoveObjectManager()                    │
       │────────────────────────────────>│
       │                      RemoveObjectManagerInternal()
       │<────────────────────────────────│
RemoveObjectManagerInternalHelper()      │
~ObjectManager()                         │
       │                           ┌─────┴─────┐
Shutdown DBus Thread ─────────────>│DBus thread│
Shutdown DBus Thread <─────────────│DBus thread│
       │                           └───────────┘
      ~Bus
┌──────┴──────┐
│Origin thread│
└─────────────┘

Behavior with problems: ----------------------------------------

┌─────────────┐                    ┌───────────┐
│Origin thread│                    │DBus thread│
└──────┬──────┘                    └─────┬─────┘
RemoveObjectManager()                    │
       │────────────────────────────────>│
       │                      RemoveObjectManagerInternal()
       │                    ┌────────────│
       │                    │      ┌─────┴─────┐
Shutdown DBus Thread ─────────────>│DBus thread│
Shutdown DBus Thread <─────────────│DBus thread│
       │                    │      └───────────┘
     ~Bus()                 │
       │                    │
       │<───────────────────┘
RemoveObjectManagerInternalHelper()
~ObjectManager()
┌──────┴──────┐
│Origin thread│
└─────────────┘
-----------------------------------------------------------------

In the second case: ~Bus() is called before ~ObjectManager().

The fix is a use `ObjectManager::Cleanup()` to cleanup the raw_ptr while
the object is still transitively owned by the object it referenced.

Bug: chromium:1478759
Fixed: chromium:1478759
Change-Id: I4ac04d449ab8a7b860256c490f8ac878c1c5c7c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4839496
Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org>
Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1192343}
pull bot pushed a commit that referenced this pull request Sep 13, 2023
This reverts commit e2c2265.

Reason for revert: failing on:

https://ci.chromium.org/ui/p/chromium/builders/ci/linux-chromeos-dbg/34119/test-results?sortby=&groupby=

2023-09-12T23:08:42.747041Z FATAL browser_tests[325873:325873]: [scalable_iph_browser_test_base.cc(114)] Check failed: !mock_delegate_. Mocks have already been set up.
[...]
#6 0x55e25ba19703 ash::ScalableIphBrowserTestBase::SetUpMocks()
#7 0x55e25ba19661 ash::ScalableIphBrowserTestBase::SetUpOnMainThread()
#8 0x55e2699e883b content::BrowserTestBase::ProxyRunTestOnMainThreadLoop()
[...]

Original change's description:
> Add phone hub onboarding eligible condition
>
> - This CL adds x_CustomConditionPhoneHubOnboardingEligible. The
>   condition is true if feature status of Phone Hub is either
>   kEligiblePhoneButNotSetUp or kDisabled.
> - This adds a dependency from ScalableIph to PhoneHubManager.
>   PhoneHubManager is expected to be initialized at a specific timing.
>   This CL makes sure that ScalableIph is initialized after
>   PhoneHubManager.
> - This CL fixes an issue with our OOBE flow test in our browser tests.
>   - To fix the browser test, we had to change behavior of
>     LoggedInUserMixin. Previously LoggedInUserMixin has configured
>     LoginManagerMixin to skip post login screens by default. This CL
>     makes it optional.
>   - familiy_user_device_metrics_browsertest.cc was depending on the
>     default behavior. This CL updates the test.
>
> Bug: b:295369951
> Test: browser_tests --gtest_filter=*ScalableIph*
> Change-Id: I361169d5ca7d531ed26f16cd94b3247be6edb94d
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4845174
> Reviewed-by: Alexander Alekseev <alemate@chromium.org>
> Reviewed-by: Toni Barzic <tbarzic@chromium.org>
> Reviewed-by: Courtney Wong <courtneywong@chromium.org>
> Reviewed-by: Tao Wu <wutao@chromium.org>
> Commit-Queue: Yuki Awano <yawano@google.com>
> Cr-Commit-Position: refs/heads/main@{#1195612}

Bug: b:295369951
Change-Id: I7bde487bc9268817bb1468c7db30d470e42de941
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4860192
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Frank Liberato <liberato@chromium.org>
Commit-Queue: Frank Liberato <liberato@chromium.org>
Owners-Override: Frank Liberato <liberato@google.com>
Cr-Commit-Position: refs/heads/main@{#1195718}
pull bot pushed a commit that referenced this pull request Sep 14, 2023
This reverts commit 596cfbd.

Reason for revert: Reland with a fix.

Original change's description:
> Revert "Add phone hub onboarding eligible condition"
>
> This reverts commit e2c2265.
>
> Reason for revert: failing on:
>
> https://ci.chromium.org/ui/p/chromium/builders/ci/linux-chromeos-dbg/34119/test-results?sortby=&groupby=
>
> 2023-09-12T23:08:42.747041Z FATAL browser_tests[325873:325873]: [scalable_iph_browser_test_base.cc(114)] Check failed: !mock_delegate_. Mocks have already been set up.
> [...]
> #6 0x55e25ba19703 ash::ScalableIphBrowserTestBase::SetUpMocks()
> #7 0x55e25ba19661 ash::ScalableIphBrowserTestBase::SetUpOnMainThread()
> #8 0x55e2699e883b content::BrowserTestBase::ProxyRunTestOnMainThreadLoop()
> [...]
>
> Original change's description:
> > Add phone hub onboarding eligible condition
> >
> > - This CL adds x_CustomConditionPhoneHubOnboardingEligible. The
> >   condition is true if feature status of Phone Hub is either
> >   kEligiblePhoneButNotSetUp or kDisabled.
> > - This adds a dependency from ScalableIph to PhoneHubManager.
> >   PhoneHubManager is expected to be initialized at a specific timing.
> >   This CL makes sure that ScalableIph is initialized after
> >   PhoneHubManager.
> > - This CL fixes an issue with our OOBE flow test in our browser tests.
> >   - To fix the browser test, we had to change behavior of
> >     LoggedInUserMixin. Previously LoggedInUserMixin has configured
> >     LoginManagerMixin to skip post login screens by default. This CL
> >     makes it optional.
> >   - familiy_user_device_metrics_browsertest.cc was depending on the
> >     default behavior. This CL updates the test.
> >
> > Bug: b:295369951
> > Test: browser_tests --gtest_filter=*ScalableIph*
> > Change-Id: I361169d5ca7d531ed26f16cd94b3247be6edb94d
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4845174
> > Reviewed-by: Alexander Alekseev <alemate@chromium.org>
> > Reviewed-by: Toni Barzic <tbarzic@chromium.org>
> > Reviewed-by: Courtney Wong <courtneywong@chromium.org>
> > Reviewed-by: Tao Wu <wutao@chromium.org>
> > Commit-Queue: Yuki Awano <yawano@google.com>
> > Cr-Commit-Position: refs/heads/main@{#1195612}
>
> Bug: b:295369951
> Change-Id: I7bde487bc9268817bb1468c7db30d470e42de941
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4860192
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Auto-Submit: Frank Liberato <liberato@chromium.org>
> Commit-Queue: Frank Liberato <liberato@chromium.org>
> Owners-Override: Frank Liberato <liberato@google.com>
> Cr-Commit-Position: refs/heads/main@{#1195718}

Bug: b:295369951
Change-Id: Icd257f7b427877f34fdf2e017b4d4cb503089428
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4861031
Commit-Queue: Yuki Awano <yawano@google.com>
Reviewed-by: Courtney Wong <courtneywong@chromium.org>
Reviewed-by: Alexander Alekseev <alemate@chromium.org>
Reviewed-by: Tao Wu <wutao@chromium.org>
Reviewed-by: Toni Barzic <tbarzic@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1196352}
pull bot pushed a commit that referenced this pull request Oct 4, 2023
…Item`"

This reverts commit 08e77e6.

Reason for revert: Builder: Linux ChromiumOS MSan Tests
https://ci.chromium.org/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests
First failing build:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/38777/overview

Sample stack trace:

==235916==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x56206b82114e in ash::OverviewGrid::FitWindowRectsInBounds() ./../../ash/wm/overview/overview_grid.cc:2609:9
    #1 0x56206b803b04 in ash::OverviewGrid::GetWindowRects() ./../../ash/wm/overview/overview_grid.cc:2441:24
    #2 0x56206b806fce in ash::OverviewGrid::PositionWindows() ./../../ash/wm/overview/overview_grid.cc:689:13
    #3 0x56206b80c92a in ash::OverviewGrid::AddItem() ./../../ash/wm/overview/overview_grid.cc:835:5
    #4 0x56206b865c27 in ash::OverviewSession::AddItem() ./../../ash/wm/overview/overview_session.cc:565:9
    #5 0x56206b80fb65 in ash::OverviewGrid::AddDropTargetForDraggingFromThisGrid(ash::OverviewItemBase*) ./../../ash/wm/overview/overview_grid.cc:949:22
    #6 0x56206b8817d0 in ash::OverviewWindowDragController::StartNormalDragMode(gfx::PointF const&) ./../../ash/wm/overview/overview_window_drag_controller.cc:352:18
    #7 0x56206b8811a3 in ash::OverviewWindowDragController::Drag(gfx::PointF const&) ./../../ash/wm/overview/overview_window_drag_controller.cc:281:7

Original change's description:
> snap-group: Correct drop target bounds for the `OverviewGroupItem`
>
> The bounds for the drop target should match the item which the drop
> target is a placeholder for. It should also be applicable for group
> item. This cl does the following things to make it work:
> 1. Update the logic in
>    `OverviewGrid::CalculateWidthAndMaybeSetUnclippedBounds()` where
>    the width for the drop target widget is calculated;
> 2. Update `IsDropTargetWindow()` to `IsDropTargetItem()` in order to
>    take the overview group item into account;
> 3. Update the insets value in `OverviewGroupItem` anonymous space, to
>    only have insets in the middle.
>
> Fixed: b/301490403
> Demo: http://b/301490403#comment2
> Test: Added unit tests + manual
> Change-Id: I67e84bdf795833e9b92bbca39098013485953dd7
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4906318
> Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
> Commit-Queue: Michele Fan <michelefan@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1204855}

Bug: 1489085

Change-Id: I282a746c4c4fe7ff58f679c6339970c59ae47e68
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4904793
Owners-Override: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Commit-Queue: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1205009}
pull bot pushed a commit that referenced this pull request Dec 6, 2023
Fixes crashes from ChromeOS LKGM and uprev:

2023-12-05T01:55:19.934369Z FATAL chrome[3861:1]: [v8_initializer.cc(784)] V8 error: Cannot create a handle without a HandleScope (v8::HandleScope::CreateHandle()).
#0 0x58368e9b9372 base::debug::CollectStackTrace()
#1 0x58368e99e243 base::debug::StackTrace::StackTrace()
#2 0x583687fa98c8 logging::LogMessage::~LogMessage()
#3 0x58369371ae51 blink::ReportV8FatalError()
#4 0x5836898c46b8 v8::Utils::ReportApiFailure()
#5 0x583697d32136 v8::internal::HandleScope::Extend()
#6 0x583697944118 v8::HandleScope::CreateHandle()
#7 0x5836946bd75c blink::SoftNavigationHeuristics::SetCurrentTimeAsStartTime()
#8 0x5836946be3d0 blink::SoftNavigationEventScope::~SoftNavigationEventScope()
#9 0x583697fb0441 blink::EventDispatcher::Dispatch()
#10 0x583693d5380c blink::MouseEvent::DispatchEvent()


Bug: 1507981
Change-Id: I4106e037bc08c81ede1f2d497b9f993991fb9e47
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5087067
Reviewed-by: Yoav Weiss <yoavweiss@chromium.org>
Commit-Queue: Yoav Weiss <yoavweiss@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1233189}
pull bot pushed a commit that referenced this pull request Dec 12, 2023
When the kAppServiceStorage flag is enabled, AppService blocks the
app publishers (ExtensionAppsChromeOs) creating until it's ready, after
reading from the AppStorage file. This affects some tests,e.g.
All/CookieDeprecationLabelAllowedTest.IsClientEligibleChecked*.
Received signal 11 SEGV_MAPERR 0000000000e8
...
#6 0x562c609a8f2f base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker()
#7 0x562c604a31d4 PrefNotifierImpl::RemovePrefObserver()
#8 0x562c604a0d24 PrefChangeRegistrar::RemoveAll()
#9 0x562c604a0ba0 PrefChangeRegistrar::~PrefChangeRegistrar()
#10 0x562c55e555bc apps::ExtensionAppsChromeOs::~ExtensionAppsChromeOs()
#11 0x562c55e55bca apps::ExtensionAppsChromeOs::~ExtensionAppsChromeOs()
#12 0x562c55e76e2c apps::PublisherHost::~PublisherHost()
#14 0x562c55e0b367 apps::AppServiceProxyAsh::~AppServiceProxyAsh()
#15 0x562c55e0b696 apps::AppServiceProxyAsh::~AppServiceProxyAsh()
...
#19 0x562c5f53b6ac TestingProfile::~TestingProfile()
#20 0x562c5f53bb36 TestingProfile::~TestingProfile()

Because the local state `local_state_` is destroyed before
TestingProfile. Modify the test code, to define `local_state_` first, to
let TestingProfile be destroyed first, which is also aligned with the
production code.

BUG=1385932, b:307623506

Change-Id: I4d7a7d0493ddb6b6f779a7b38344a8f3e05c341b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5106950
Reviewed-by: Abe Boujane <boujane@google.com>
Commit-Queue: Nancy Wang <nancylingwang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1236035}
pull bot pushed a commit that referenced this pull request Dec 12, 2023
This reverts commit b573ec1.

Reason for revert: file read on main thread causes crashes

https://ci.chromium.org/ui/p/chrome/builders/ci/chromeos-reven-chrome/9260/overview

2023-12-11T23:44:32.631073Z FATAL chrome[4644:4644]: [thread_restrictions.cc(58)] Check failed: !tls_blocking_disallowed. Function marked as blocking was called from a scope that disallows blocking! If this task is running inside the ThreadPool, it needs to have MayBlock() in its TaskTraits. Otherwise, consider making this blocking work asynchronous or, as a last resort, you may use ScopedAllowBlocking (see its documentation for best practices).
tls_blocking_disallowed 1 set by
#0 0x580a56a26b42 base::debug::CollectStackTrace()
#1 0x580a56a0d4d3 base::debug::StackTrace::StackTrace()
#2 0x580a569e746f base::DisallowUnresponsiveTasks()
#3 0x580a5391e8ef content::BrowserMainLoop::PreMainMessageLoopRun()
#4 0x580a5062f27f base::OnceCallback<>::Run()
#5 0x580a540ca43b content::StartupTaskRunner::RunAllTasksNow()
#6 0x580a5391e206 content::BrowserMainLoop::CreateStartupTasks()
#7 0x580a5392166e content::BrowserMainRunnerImpl::Initialize()
#8 0x580a5391bad6 content::BrowserMain()
#9 0x580a560952b6 content::RunBrowserProcessMain()
#10 0x580a56097a80 content::ContentMainRunnerImpl::RunBrowser()
#11 0x580a5609715e content::ContentMainRunnerImpl::Run()
#12 0x580a56093df5 content::RunContentProcess()
#13 0x580a56093f42 content::ContentMain()
#14 0x580a5010c79d ChromeMain
#15 0x7d10446316c6 __libc_start_call_main
#16 0x7d1044631782 __libc_start_main_alias_2
#17 0x580a5010c531 _start

#0 0x580a56a26b42 base::debug::CollectStackTrace()
#1 0x580a56a0d4d3 base::debug::StackTrace::StackTrace()
#2 0x580a4ffa72c8 logging::LogMessage::~LogMessage()
#3 0x580a56923860 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
#4 0x580a4ffa6d67 logging::CheckError::~CheckError()
#5 0x580a569e680b base::internal::AssertBlockingAllowed()
#6 0x580a50037d3b base::ScopedBlockingCall::ScopedBlockingCall()
#7 0x580a5fffd0fb base::File::Stat()
#8 0x580a56a21ae3 base::GetFileInfo()
#9 0x580a5a144486 first_run::GetFirstRunSentinelCreationTime()
#10 0x580a55d04f18 ash::ReportControllerInitializer::OwnershipStatusChanged()
#11 0x580a55d3a722 ash::DeviceSettingsService::NotifyOwnershipStatusChanged()
#12 0x580a55d39e59 ash::DeviceSettingsService::HandleCompletedOperation()
#13 0x580a55d3a0c8 ash::DeviceSettingsService::HandleCompletedAsyncOperation()
#14 0x580a538a96d8 base::internal::FunctorTraits<>::Invoke<>()
#15 0x580a55d3a8c2 base::internal::Invoker<>::RunOnce()

Original change's description:
> Create ReportInitializer that checks for browser preconditions
>
> Introduce ReportControllerInitializer class in chrome/browser/ash,
> functioning as a DeviceSettingsService::Observer. The class waits for
> the OwnershipStatusChanged callback with ownership status indicating
> device ownership, checks for the presence of the .oobe_completed file,
> and waits for CrosSettings::PrepareTrustedValues to signal TRUSTED
> status.
>
> Only after these preconditions are met does the class proceed
> to initialize the ReportController.
>
> BUG=chromium:1504019
>
> Change-Id: I0bd93c2eb9f83669ea23395d59b292a4cc858bcb
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5047743
> Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
> Commit-Queue: Hirthanan Subenderan <hirthanan@google.com>
> Reviewed-by: Pavol Marko <pmarko@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1235879}

Bug: chromium:1504019
Change-Id: If41cc3e2fa0330afa6cb5aeb84f05efd1e614669
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5113660
Auto-Submit: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Hirthanan Subenderan <hirthanan@google.com>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1236048}
pull bot pushed a commit that referenced this pull request Dec 12, 2023
When the kAppServiceStorage flag is enabled, AppService blocks the
app publishers creating until it's ready, after reading from the
AppStorage file. This affects some tests,e.g. TetherServiceTest.*.
Received signal 11 SEGV_MAPERR 0000000000e8
...
base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker()
#7 0x563b848f01d4 PrefNotifierImpl::RemovePrefObserver()
#8 0x563b848edd24 PrefChangeRegistrar::RemoveAll()
#9 0x563b848edba0 PrefChangeRegistrar::~PrefChangeRegistrar()
#10 0x563b7a2a25bc apps::ExtensionAppsChromeOs::~ExtensionAppsChromeOs()
#11 0x563b7a2a2bca apps::ExtensionAppsChromeOs::~ExtensionAppsChromeOs()
#14 0x563b7a258367 apps::AppServiceProxyAsh::~AppServiceProxyAsh()
#15 0x563b7a258696 apps::AppServiceProxyAsh::~AppServiceProxyAsh()
...
#19 0x563b839886ac TestingProfile::~TestingProfile()
#20 0x563b83988b36 TestingProfile::~TestingProfile()

Because `local_pref_service_` is destroyed before TestingProfile. Modify
the test code, to define TestingProfile
after `local_pref_service_` to destroy TestingProfile first.

Remove `scoped_user_manager_`, because TestingProfile can create
FakeChromeUserManager in its construct function[1].

[1] https://source.chromium.org/chromium/chromium/src/+/main:chrome/test/base/testing_profile.cc;l=267

BUG=1385932, b:307623506

Change-Id: Id13cff8e7dc283bd6aa80700956058b82afb2f0f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5102370
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Nancy Wang <nancylingwang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1236053}
pull bot pushed a commit that referenced this pull request Dec 14, 2023
When the kAppServiceStorage flag is enabled, AppService blocks the
app publishers creating until it's ready, after reading from the
AppStorage file. This affects some tests,e.g. ArcProvisionNotificationServiceOobeTest.*.

Received signal 11 SEGV_MAPERR 000000000000
...
#5 0x562602f60ed8 base::ScopedObservationTraits<>::AddObserver()
#6 0x562602f5c5a5 base::ScopedObservation<>::Observe()
#7 0x562602f576b4 apps::ExtensionAppsChromeOs::Initialize()
#8 0x562602fa335b apps::PublisherHost::Initialize()
#9 0x562602fa31ac apps::PublisherHost::PublisherHost()
#10 0x562602e81ce9 std::__Cr::make_unique<>()
#11 0x562602e7a3ba apps::AppServiceProxyAsh::OnAppsReady()

Because the test has been in the Teardown phase when the publish is
created as the AppService is ready async, and
NotificationDisplayService could not exists. So modify publishers to
check NotificationDisplayService when observe it.

[1] https://source.chromium.org/chromium/chromium/src/+/main:chrome/test/base/testing_profile.cc;l=267

BUG=1385932, b:307623506

Change-Id: I372dc8eb02e0d29fb76704378a40a43c580ef2bd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5109253
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Commit-Queue: Nancy Wang <nancylingwang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1236821}
pull bot pushed a commit that referenced this pull request Jan 19, 2024
...triggers entry doom and thus ends up running the operation queue in the wrong spot of creation (and entry op) completion handler. This can among other things result in this madness:

#6 disk_cache::SimpleEntryImpl::CloseInternal()
#7 disk_cache::SimpleEntryImpl::RunNextOperationIfNeeded()
#8 SimpleEntryImpl::ScopedOperationRunner::~ScopedOperationRunner()
#9 disk_cache::SimpleEntryImpl::WriteDataInternal()
#10 disk_cache::SimpleEntryImpl::RunNextOperationIfNeeded()
#11 SimpleEntryImpl::ScopedOperationRunner::~ScopedOperationRunner()
#12 disk_cache::SimpleEntryImpl::WriteDataInternal()
#13 disk_cache::SimpleEntryImpl::RunNextOperationIfNeeded()
#14 disk_cache::SimpleEntryImpl::DoomEntry()
#15 disk_cache::SimpleBackendImpl::DoomEntryFromHash()
#16 disk_cache::SimpleBackendImpl::DoomEntries()
#17 disk_cache::SimpleIndex::StartEvictionIfNeeded()
#18 disk_cache::SimpleIndex::UpdateEntrySize()
#19 disk_cache::SimpleEntryImpl::UpdateDataFromEntryStat()
#20 disk_cache::SimpleEntryImpl::CreationOperationComplete()
(namespace elided twice to avoid wrapping).

... which means we end up at the in_results = nullptr line near the bottom of CreationOperationComplete with null `synchronous_entry_`(!) (and a dangling in_results->sync_entry, where one would expect the two to be aliases). I *think* we won't actually deliver a callback from this state since we likely needed to be in optimistic path to got thus far, but I am not certain.

Similarly, when this sort of thing happens from within read/write ops, it could potentially cause callbacks to be delivered in wrong order if the queued op ends up being a stream 0 operation, which can be executed without a round trip to a worker thread.

Change-Id: Iac8058f0d18225677e361c6cdddf92d28fb4833f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5054619
Reviewed-by: Adam Rice <ricea@chromium.org>
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Maks Orlovich <morlovich@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1248862}
pull bot pushed a commit that referenced this pull request Feb 23, 2024
Sometimes, we hit a limit where the field trial allocator is full
in tests. For example, see failures in http://shortn/_YGDSsu6Sjs.

Sample:
#5 0x557208a9b41e logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
#6 0x557208a9add6 logging::CheckError::~CheckError()
#7 0x557208ac98f1 base::FieldTrialList::ClearParamsFromSharedMemoryForTesting()
#8 0x557208c56906 base::test::ScopedFeatureList::Reset()
#9 0x557208c567f4 base::test::ScopedFeatureList::~ScopedFeatureList()
#10 0x5571fdeaf4ae ClientHintsBrowserTest::~ClientHintsBrowserTest()
#11 0x5571fdeace3c ClientHintsBrowserTest_ClientHintsAlps_Test::~ClientHintsBrowserTest_ClientHintsAlps_Test()

Seems like when ScopedFeatureList is reset, it also wants to reset
the params. It does so by completely invalidating everything in
the allocator, and duplicating them (but without params).

This CL does so that it does not invalidate and then duplicate an
entry in the allocator if it has no params anyway.

Bug: b/271447491
Change-Id: I834e6ef162ca7f790b5aa2581d6e50d2f27221b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5314262
Commit-Queue: Luc Nguyen <lucnguyen@google.com>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1264332}
pull bot pushed a commit that referenced this pull request Mar 14, 2024
DevToolsProtocolTest_RelatedWebsiteSets.GetRelatedWebsiteSets is flaky on multiple builders. *Builders are listed in bug comment #7.

Change-Id: I2563f40974e978c22062e64578e8f09a330fda73
Bug: 329530175
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5370871
Reviewed-by: Shuran Huang <shuuran@chromium.org>
Commit-Queue: Paul Adedeji <pauladedeji@google.com>
Owners-Override: Paul Adedeji <pauladedeji@google.com>
Cr-Commit-Position: refs/heads/main@{#1272972}
pull bot pushed a commit that referenced this pull request Mar 26, 2024
This reverts commit 6f447d5.

Reason for revert: Crashes on ChromeOS as soon as I touch the
device's touchpad

2024-03-26T00:58:16.588106Z FATAL chrome[5433:5496]: [sequence_checker.cc(21)] Check failed: checker.CalledOnValidSequence(&bound_at). 
#0 0x56f06aa34da2 base::debug::CollectStackTrace()
#1 0x56f06aa19ba2 base::debug::StackTrace::StackTrace()
#2 0x56f06a934073 logging::LogMessage::Flush()
#3 0x56f063de6fcd logging::LogMessage::~LogMessage()
#4 0x56f06a92053c logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
#5 0x56f06a9205ae logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
#6 0x56f063dc2ba6 logging::CheckError::~CheckError()
#7 0x56f063de9d22 base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker()
#8 0x56f063de4706 base::ObserverList<>::begin()
#9 0x56f06bfa75eb ui::CursorController::SetCursorLocation()
#10 0x56f0646d9be5 ui::DrmCursor::SetCursorLocationLocked()
#11 0x56f0646da6bf ui::DrmCursor::MoveCursor()
#12 0x56f06bfd76e6 ui::GestureInterpreterLibevdevCros::OnGestureMove()


Original change's description:
> Mark WeakLinkNode sequence checking expensive
>
> This makes for-each-node sequence checking expensive (which seems
> redundant). As a compromise we do non-"expensive" sequence checking in
> ObserverList::begin(), which should provide the same level of protection
> unless iterators are passed between sequences, which would be one heck
> of a thing to try to do.
>
> This accounts for about 60% of sequence checking in a profile I did way
> back. I have not profiled to see how much sequence checking remains with
> the sequence checking moved to begin() nor do I know the average
> ObserverList size. Let's try it out.
>
> In the same profile (though I don't remember what I profiled) sequence
> checking accounted for 1.2% of cycles. Hopefully this explains some of
> the performance gap between a DCHECK and regular Canary build.
>
> Bug: 40241607
> Change-Id: Id80d3363771e05e6f38c1432ae66b4c352acf8b8
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5319909
> Reviewed-by: François Degros <fdegros@chromium.org>
> Commit-Queue: Peter Boström <pbos@chromium.org>
> Reviewed-by: danakj <danakj@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Reviewed-by: Colin Blundell <blundell@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1277148}

Bug: 40241607
Change-Id: I8e11a7d796ba10a38453dff336f46e3aba04ab97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5394849
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: François Degros <fdegros@chromium.org>
Commit-Queue: François Degros <fdegros@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1278133}
pull bot pushed a commit that referenced this pull request Apr 2, 2024
While investigating a black stripe that appears on the right border
of a lacros window while it is been resized horizontally from the
opposite border (left), it was figured that depending on the values
of the window `origin`, `size` and `scale factor`, the black line was
appearing or hidden.
A continuous interactive window resize is the perfect scenario to
replicate the bug intermittently, and give users the impression of
a flashing black line.

As an easy way to illustrate the issue, lets assume a lacros window
with the following bounds in DIPS, `330,0 596x664`, and a device scale
factor of  `1.62574` - these values can replicate the problem of the
vertical stripe appearing even without triggering a window resize.
For instance, this bounds in DIPS becomes `536,0 970x1080` in pixels
using DesktopWindowTreeHostPlatform::ConvertRectToPixels().

1.1) During the window creation, the `ui::Compositor` instance gets
its scale factor and size set in pixels.
It happens when `Compositor::SetScaleAndSize()` is called.
This is the stracktrace:
  ````
  #1 0x592718b9d713 base::debug::StackTrace::StackTrace()
  #2 0x5927205f4655 ui::Compositor::SetScaleAndSize()
  #3 0x5927205eac3e aura::WindowTreeHost::UpdateCompositorScaleAndSize()
  #4 0x5927205ec714 aura::WindowTreeHost::OnHostResizedInPixels()
  #5 0x592721d2dc2e aura::WindowTreeHostPlatform::OnBoundsChanged()
  #6 0x592721d2cc40 views::DesktopWindowTreeHostLacros::OnBoundsChanged()
  #7 0x592721d2e1b9 aura::WindowTreeHostPlatform::OnStateUpdate()
  #8 0x592719b83731 ui::WaylandWindow::MaybeApplyLatestStateRequest()
  #9 0x592719b83074 ui::WaylandWindow::RequestState()
  #10 0x592719b7e189 ui::WaylandWindow::SetWindowScale()
  #11 0x592719b7d985 ui::WaylandWindow::UpdateWindowScale()
  #12 0x592719b789ad ui::WaylandToplevelWindow::UpdateWindowScale()
  #13 0x592719b77f15 ui::WaylandToplevelWindow::Show()
  #14 0x592721d3139d views::DesktopWindowTreeHostPlatform::Show()
  #15 0x592721d18b24 views::DesktopNativeWidgetAura::Show()
  #16 0x592721cd0a7c views::Widget::Show()
  #17 0x592724d06ffb BrowserView::Show()
  (...)
  ````
In practice, `aura::WindowTreeHostPlatform::OnBoundsChanged()`
(frame #4) calls out to `WaylandWindow::GetBoundsInPixels()`,
that translates `330,0 596x664` in DIPS to `536,0 970x1080`
in pixels - see the method below.
Ultimately, only the size is set to the ui::Compositor instance,
ie `970x1080`.

  ````
  void WindowTreeHostPlatform::OnBoundsChanged(const BoundsChange& change) {
    (...)
    float current_scale = compositor()->device_scale_factor();
    float new_scale = ui::GetScaleFactorForNativeView(window());
    auto weak_ref = GetWeakPtr();
    auto new_size = GetBoundsInPixels().size(); <------
  `````

1.2) Meanwhile, `cc::Layer` instances for the window are also being
created. During the layer tree creation, the layers' bounds are all
set in DIPs.
For instance, the root layer is created with an origin of `0,0` and
bounds `596x664`, eg:

  ````
  2024-03-11T18:42:45.387311Z WARNING chrome[29500:29500]: [layer.cc(390)]
  #0 0x59271e998ce2 base::debug::CollectStackTrace()
  #1 0x592718b9d713 base::debug::StackTrace::StackTrace()
  #2 0x592725cc29d7 cc::Layer::SetBounds()
  #3 0x592725e2ee96 ui::Layer::SetBoundsFromAnimation()
  #4 0x5927265c0177 ui::LayerAnimator::SetBounds()
  #5 0x5927205d8fe0 aura::Window::SetBoundsInternal()
  #6 0x5927205d8f67 aura::Window::SetBounds()
  #7 0x5927205ea78e aura::WindowTreeHost::UpdateRootWindowSize()
  #8 0x5927205ea6df aura::WindowTreeHost::InitHost()
  #9 0x592721d30b36 views::DesktopWindowTreeHostPlatform::Init()
  #10 0x592721d16336 views::DesktopNativeWidgetAura::InitNativeWidget()
  #11 0x592725142c44 DesktopBrowserFrameAura::InitNativeWidget()
  #12 0x592721ccdd41 views::Widget::Init()
  #13 0x592724cf68af BrowserFrame::InitBrowserFrame()
  #14 0x592724db9f30 BrowserWindow::CreateBrowserWindow()
  #15 0x592724951ce0 Browser::Browser()
  #16 0x5927249511c6 Browser::Create()
  (...)
  ````
The layers' bounds get translated at places like
`draw_property_utils.cc` `ComputeLocalRectInTargetSpace()`, with
MathUtils::MapXXX() functions.
In practice, `596x664` translates to `968.942x1079.49`, and finally
gets rounded to `969x1080`.
Hence, we have a root ui::Compositor size of 970x1080 and a root
cc:Layer bounds of 969x1080.

Using the visual debugger tool attached to lacros, one can see that
all window-wide tiles's width are 969 [1].
OTOH, with the visual debugger tool attached to ash/chrome, we can
see that the width the the root surface (lacros) is 970 [2].
This 1px different creates a "punch role" effect in the lacros window,
and user sees whatever is underneath it rendered [3]. In the case of
this bug, what the user sees is a trailing 1px wide line part of
the so called "resize shadow".
The user sees it through this unintentionally "punch hole" explained
above.

This CL changes the way PlatformWindowDelegate::State::size_px
variable gets set in WaylandWindow::RequestState(), translating only
its size from DIPs to pixels. This way we match how this variable is
used in ui::Compositor level and cc::Layers et al (tiles, quads,
overlayers, etc).

As a way to illustrate the problem, see video [4]. It forcibly paints
the 1px lacros root layer transparent buffer red with viz_debugger,
so  one can clearly see it "flashing" due to the rounding error
being fixed here.

[1] https://issues.chromium.org/u/0/action/issues/40876438/attachments/54873934
[2] https://issues.chromium.org/u/0/action/issues/40876438/attachments/54878944
[3] https://issues.chromium.org/u/0/action/issues/40876438/attachments/54873933
[4] https://issues.chromium.org/action/issues/40876438/attachments/54936907

Bug: 40876438
Change-Id: Id36476d41e7a2c90f8a44337731a4cfad93e6a13
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5384752
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1281135}
pull bot pushed a commit that referenced this pull request Apr 2, 2024
This reverts commit fe5ffc2.

Reason for revert: Reland with CursorController changed to use
std::vector too.

Original change's description:
> Revert "Mark WeakLinkNode sequence checking expensive"
>
> This reverts commit 6f447d5.
>
> Reason for revert: Crashes on ChromeOS as soon as I touch the
> device's touchpad
>
> 2024-03-26T00:58:16.588106Z FATAL chrome[5433:5496]: [sequence_checker.cc(21)] Check failed: checker.CalledOnValidSequence(&bound_at).
> #0 0x56f06aa34da2 base::debug::CollectStackTrace()
> #1 0x56f06aa19ba2 base::debug::StackTrace::StackTrace()
> #2 0x56f06a934073 logging::LogMessage::Flush()
> #3 0x56f063de6fcd logging::LogMessage::~LogMessage()
> #4 0x56f06a92053c logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
> #5 0x56f06a9205ae logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
> #6 0x56f063dc2ba6 logging::CheckError::~CheckError()
> #7 0x56f063de9d22 base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker()
> #8 0x56f063de4706 base::ObserverList<>::begin()
> #9 0x56f06bfa75eb ui::CursorController::SetCursorLocation()
> #10 0x56f0646d9be5 ui::DrmCursor::SetCursorLocationLocked()
> #11 0x56f0646da6bf ui::DrmCursor::MoveCursor()
> #12 0x56f06bfd76e6 ui::GestureInterpreterLibevdevCros::OnGestureMove()
>
>
> Original change's description:
> > Mark WeakLinkNode sequence checking expensive
> >
> > This makes for-each-node sequence checking expensive (which seems
> > redundant). As a compromise we do non-"expensive" sequence checking in
> > ObserverList::begin(), which should provide the same level of protection
> > unless iterators are passed between sequences, which would be one heck
> > of a thing to try to do.
> >
> > This accounts for about 60% of sequence checking in a profile I did way
> > back. I have not profiled to see how much sequence checking remains with
> > the sequence checking moved to begin() nor do I know the average
> > ObserverList size. Let's try it out.
> >
> > In the same profile (though I don't remember what I profiled) sequence
> > checking accounted for 1.2% of cycles. Hopefully this explains some of
> > the performance gap between a DCHECK and regular Canary build.
> >
> > Bug: 40241607
> > Change-Id: Id80d3363771e05e6f38c1432ae66b4c352acf8b8
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5319909
> > Reviewed-by: François Degros <fdegros@chromium.org>
> > Commit-Queue: Peter Boström <pbos@chromium.org>
> > Reviewed-by: danakj <danakj@chromium.org>
> > Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> > Reviewed-by: Colin Blundell <blundell@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1277148}
>
> Bug: 40241607
> Change-Id: I8e11a7d796ba10a38453dff336f46e3aba04ab97
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5394849
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: François Degros <fdegros@chromium.org>
> Commit-Queue: François Degros <fdegros@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1278133}

Bug: 40241607
Change-Id: I7aedf2194f8cc17a56ffa79c1824e33a7072c1f1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5406313
Reviewed-by: danakj <danakj@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Michael Spang <spang@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: François Degros <fdegros@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1281466}
pull bot pushed a commit that referenced this pull request Apr 11, 2024
This is part of the work to get cast on starboard building out of
chromium. See go/moving-cwr-to-chromium for more information on the
high-level goal.

This is the crash that occurs without this CL:
FATAL:event_factory_evdev.cc(247)] Check failed: user_input_task_runner_.
#0 0x5643c4c23ed2 base::debug::CollectStackTrace() [../../base/debug/stack_trace_posix.cc:1039:7]
#1 0x5643c4c0dc62 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:229:20]
#2 0x5643c4b15369 logging::LogMessage::Flush() [../../base/logging.cc:703:29]
#3 0x5643c4b1524d logging::LogMessage::~LogMessage() [../../base/logging.cc:694:3]
#4 0x5643c4afb6bf logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() [../../base/check.cc:166:3]
#5 0x5643c4afb71e logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() [../../base/check.cc:161:32]
#6 0x5643c4afb173 logging::CheckError::~CheckError() [../../third_party/libc++/src/include/__memory/unique_ptr.h:67:5]
#7 0x5643c611fca5 ui::EventFactoryEvdev::Init() [../../ui/events/ozone/evdev/event_factory_evdev.cc:247:3]
#8 0x5643c5f275f7 ui::PlatformEventSource::AddPlatformEventDispatcher() [../../ui/events/platform/platform_event_source.cc:54:3]
#9 0x5643c11edb81 ui::(anonymous namespace)::OzonePlatformCast::CreatePlatformWindow() [../../third_party/libc++/src/include/__memory/unique_ptr.h:620:30]
#10 0x5643c67cf017 aura::WindowTreeHostPlatform::CreatePlatformWindow() [../../ui/aura/window_tree_host_platform.cc:222:44]
#11 0x5643c67cef76 aura::WindowTreeHostPlatform::CreateAndSetPlatformWindow() [../../ui/aura/window_tree_host_platform.cc:93:22]
#12 0x5643c67cef2a aura::WindowTreeHostPlatform::WindowTreeHostPlatform() [../../ui/aura/window_tree_host_platform.cc:71:3]
#13 0x5643c24eb8d1 chromecast::CastWindowTreeHostAura::CastWindowTreeHostAura() [../../chromecast/graphics/cast_window_tree_host_aura.cc:17:7]
#14 0x5643c24e937e chromecast::CastWindowManagerAura::Setup() [../../third_party/libc++/src/include/__memory/unique_ptr.h:620:30]
#15 0x5643c24a324d chromecast::shell::CastBrowserMainParts::PreMainMessageLoopRun() [../../chromecast/browser/cast_browser_main_parts.cc:627:20]

Bug: b/333571227
Change-Id: I7fd21eec0708282fc14d1b6dd578032ba06187c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5439606
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Yuchen Liu <yucliu@chromium.org>
Commit-Queue: Antonio Rivera <antoniori@google.com>
Cr-Commit-Position: refs/heads/main@{#1285202}
pull bot pushed a commit that referenced this pull request Apr 20, 2024
This reverts commit c07cbfe.

Reason for revert: relanding with tests and fixes

Original change's description:
> Revert "Get WrapperTypeInfo via ScriptWrappable"
>
> This reverts commit 81b6e3d.
>
> Reason for revert: Breaks AutotestPrivateApiTest.AutotestPrivate on linux-chromeos-rel
>
> https://ci.chromium.org/ui/p/chromium/builders/luci.chromium.ci/linux-chromeos-rel
> Sample failure: https://ci.chromium.org/ui/p/chromium/builders/ci/linux-chromeos-rel/75905/overview
>
> I think this is the relevant part of the stack trace:
>
> ../../content/public/test/no_renderer_crashes_assertion.cc:102: Failure
> Failed
> Unexpected termination of a renderer process; status: 3, exit_code: 139
> Stack trace:
> #0 0x563e8b77c0da content::NoRendererCrashesAssertion::RenderProcessExited()
> #1 0x563e8967d8c4 content::RenderProcessHostImpl::ProcessDied()
> #2 0x563e8967d72c content::RenderProcessHostImpl::OnChannelError()
> #3 0x563e8ae3ecb5 base::TaskAnnotator::RunTaskImpl()
> #4 0x563e8ae583dd base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl()
> #5 0x563e8ae57e60 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()
> #6 0x563e8ae58845 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()
> #7 0x563e8aec2fef base::MessagePumpEpoll::Run()
> #8 0x563e8ae58bb2 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run()
> #9 0x563e8ae1e7fd base::RunLoop::Run()
> #10 0x563e91a0c6c9 extensions::ResultCatcher::GetNextResult()
> #11 0x563e8ad7fcf6 extensions::ExtensionApiTest::RunExtensionTest()
> #12 0x563e8ad7f999 extensions::ExtensionApiTest::RunExtensionTest()
> #13 0x563e854402ed extensions::AutotestPrivateApiTest::RunAutotestPrivateExtensionTest()
>
> Original change's description:
> > Get WrapperTypeInfo via ScriptWrappable
> >
> > as opposed to using a dedicated internal field for that.
> >
> > Bug: 328117814
> > Change-Id: I01f9aff3ad8a41fafbd2655d23f076a0f76fdc57
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5455405
> > Reviewed-by: Nate Chapin <japhet@chromium.org>
> > Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1288405}
>
> Bug: 328117814
> Change-Id: Id0ad5b6bcab7a99cf31d551df00928708dd93465
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5459075
> Reviewed-by: Jiacheng Guo <gjc@google.com>
> Auto-Submit: Timothy Loh <timloh@chromium.org>
> Commit-Queue: Jiacheng Guo <gjc@google.com>
> Owners-Override: Timothy Loh <timloh@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#1288546}

Bug: 328117814
Change-Id: Icc69d23b24b71adc9332e3a01c91f336506c035f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5466905
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1290020}
pull bot pushed a commit that referenced this pull request Apr 20, 2024
Example builder failure: https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20Tests%20(dbg)(1)/119860/overview.

crash log for renderer (pid <unknown>):
STDOUT: <empty>
STDERR: [840814:1:0419/092311.735189:FATAL:ax_object.cc(3129)] Check failed: !IsDetached().
STDERR: #0 0x7f57ed36492c base::debug::CollectStackTrace() [../../base/debug/stack_trace_posix.cc:1039:7]
STDERR: #1 0x7f57ed316545 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:236:20]
STDERR: #2 0x7f57ed3164d5 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:231:28]
STDERR: #3 0x7f57ed0349bf logging::LogMessage::Flush() [../../base/logging.cc:710:29]
STDERR: #4 0x7f57ed0348e7 logging::LogMessage::~LogMessage() [../../base/logging.cc:698:3]
STDERR: #5 0x7f57ecfdbfc5 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() [../../base/check.cc:166:3]
STDERR: #6 0x7f57ecfdbfe9 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() [../../base/check.cc:161:32]
STDERR: #7 0x7f57ecfdcdcc std::__Cr::default_delete<>::operator()() [../../third_party/libc++/src/include/__memory/unique_ptr.h:67:5]
STDERR: #8 0x7f57ecfdc32a std::__Cr::unique_ptr<>::reset() [../../third_party/libc++/src/include/__memory/unique_ptr.h:278:7]
STDERR: #9 0x7f57ecfdb90d logging::CheckError::~CheckError() [../../base/check.cc:349:16]
STDERR: #10 0x7f57bb3ae68b blink::AXObject::IsIncludedInTree() [../../third_party/blink/renderer/modules/accessibility/ax_object.cc:3129:3]
STDERR: #11 0x7f57bb3a43a4 blink::AXObject::ToString() [../../third_party/blink/renderer/modules/accessibility/ax_object.cc:8108:30]
STDERR: #12 0x7f57bb3a2a52 blink::AXObject::Detach() [../../third_party/blink/renderer/modules/accessibility/ax_object.cc:782:35]
STDERR: #13 0x7f57bb3556e6 blink::AXNodeObject::Detach() [../../third_party/blink/renderer/modules/accessibility/ax_node_object.cc:2377:13]
STDERR: #14 0x7f57bb3ec319 blink::AXObjectCacheImpl::Remove()
....

Bug: 40933623
Change-Id: Ic447ade12398f7666c4f6f4def61c2e3723feb43
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5466669
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Liviu Tinta <liviutinta@chromium.org>
Auto-Submit: Liviu Tinta <liviutinta@chromium.org>
Owners-Override: Liviu Tinta <liviutinta@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1290248}
pull bot pushed a commit that referenced this pull request Apr 22, 2024
This reverts commit 6578c4f.

Reason for revert: Offending DCHECK was fixed and removed with
https://crrev.com/c/5464203. Tests can probably be re-enabled.

Original change's description:
> [Gardener] Disable tests failing !IsDetached check
>
> Example builder failure: https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20Tests%20(dbg)(1)/119860/overview.
>
> crash log for renderer (pid <unknown>):
> STDOUT: <empty>
> STDERR: [840814:1:0419/092311.735189:FATAL:ax_object.cc(3129)] Check failed: !IsDetached().
> STDERR: #0 0x7f57ed36492c base::debug::CollectStackTrace() [../../base/debug/stack_trace_posix.cc:1039:7]
> STDERR: #1 0x7f57ed316545 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:236:20]
> STDERR: #2 0x7f57ed3164d5 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:231:28]
> STDERR: #3 0x7f57ed0349bf logging::LogMessage::Flush() [../../base/logging.cc:710:29]
> STDERR: #4 0x7f57ed0348e7 logging::LogMessage::~LogMessage() [../../base/logging.cc:698:3]
> STDERR: #5 0x7f57ecfdbfc5 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() [../../base/check.cc:166:3]
> STDERR: #6 0x7f57ecfdbfe9 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() [../../base/check.cc:161:32]
> STDERR: #7 0x7f57ecfdcdcc std::__Cr::default_delete<>::operator()() [../../third_party/libc++/src/include/__memory/unique_ptr.h:67:5]
> STDERR: #8 0x7f57ecfdc32a std::__Cr::unique_ptr<>::reset() [../../third_party/libc++/src/include/__memory/unique_ptr.h:278:7]
> STDERR: #9 0x7f57ecfdb90d logging::CheckError::~CheckError() [../../base/check.cc:349:16]
> STDERR: #10 0x7f57bb3ae68b blink::AXObject::IsIncludedInTree() [../../third_party/blink/renderer/modules/accessibility/ax_object.cc:3129:3]
> STDERR: #11 0x7f57bb3a43a4 blink::AXObject::ToString() [../../third_party/blink/renderer/modules/accessibility/ax_object.cc:8108:30]
> STDERR: #12 0x7f57bb3a2a52 blink::AXObject::Detach() [../../third_party/blink/renderer/modules/accessibility/ax_object.cc:782:35]
> STDERR: #13 0x7f57bb3556e6 blink::AXNodeObject::Detach() [../../third_party/blink/renderer/modules/accessibility/ax_node_object.cc:2377:13]
> STDERR: #14 0x7f57bb3ec319 blink::AXObjectCacheImpl::Remove()
> ....
>
> Bug: 40933623
> Change-Id: Ic447ade12398f7666c4f6f4def61c2e3723feb43
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5466669
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Liviu Tinta <liviutinta@chromium.org>
> Auto-Submit: Liviu Tinta <liviutinta@chromium.org>
> Owners-Override: Liviu Tinta <liviutinta@chromium.org>
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#1290248}

Bug: 40933623
Change-Id: Ib77c888c8c8a1209a18ddd93f7c07d17c50a04a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5465688
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1290555}
pull bot pushed a commit that referenced this pull request May 2, 2024
This reverts commit 5b98671.

Reason for revert: 
browser_test failures starting at https://ci.chromium.org/ui/p/chrome/builders/ci/linux-chromeos-chrome/41245/blamelist

The failures all have stack:

2024-05-01T22:20:26.913799Z ERROR browser_tests[68320:68386]: [object_proxy.cc(576)] Failed to call method: org.chromium.debugd.GetPerfOutputV2: object_path= /org/chromium/debugd: org.freedesktop.DBus.Error.ServiceUnknown: The name org.chromium.debugd was not provided by any .service files

#0 0x55f5d4f55172 base::debug::CollectStackTrace() [../../base/debug/stack_trace_posix.cc:1043:7]

#1 0x55f5d4f4139e base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:241:20]

#2 0x55f5d57d3a8a content::(anonymous namespace)::SignalHandler() [../../content/public/test/browser_test_base.cc:177:24]

#3 0x7f9d71a42520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x4251f)

#4 0x55f5db0e82e7 ash::FwupdDownloadClientImpl::GetURLLoaderFactory() [../../chrome/browser/ui/ash/fwupd_download_client_impl.cc:21:44]

#5 0x55f5d833381c ash::FirmwareUpdateManager::DownloadLvfsMirrorFile() [../../chromeos/ash/components/fwupd/firmware_update_manager.cc:1051:35]

#6 0x55f5d83350c1 base::internal::DecayedFunctorTraits<>::Invoke<>() [../../base/functional/bind_internal.h:738:12]

#7 0x55f5d8334f93 base::internal::Invoker<>::RunOnce() [../../base/functional/bind_internal.h:954:5]



Original change's description:
> fwupd: Add refresh metadata logic
>
> Download the jcat file from chromeos local mirror and store it in cache.
> Copy the file to a gz file and unzip it. Read the contents to get the
> latest firmware file name. Download that file from chromeos local mirror
> and call UpdateMetadata on those 2 files.
>
> BUG=b:328637488
> TEST=autoninja chrome; manually check from logs
>      chromeos_unittests --gtest_filter=FwupdClientTest.* &&
> 				       FirmwareUpdateManager*
>
> Change-Id: I5673ad909963c4436a580746db9b94dd1c1a4f1b
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5444929
> Commit-Queue: Rishabh Agrawal <rishabhagr@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org>
> Reviewed-by: Jimmy Gong <jimmyxgong@chromium.org>
> Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1295074}

Bug: b:328637488
Change-Id: Ib753c1db9048f1acf693606ff7058d9820942f3b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5508951
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Joel Hockey <joelhockey@chromium.org>
Owners-Override: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1295258}
pull bot pushed a commit that referenced this pull request May 15, 2024
Since @page border box layout objects aren't in the the layout tree, any
code that wants to walk up the tree to find the containing block will be
in for a surprise.

This would happen if percentage-based @page padding was used [1].
Recomputing padding during painting when we have already done it during
layout is rather pointless anyway. Read it out directly from the
fragment.

[1] #1 blink::LayoutBox::ContainingBlockLogicalWidthForContent()
    #2 blink::LayoutBoxModelObject::ComputedCSSPadding()
    #3 blink::LayoutBoxModelObject::PaddingTop()
    #4 blink::LayoutBoxModelObject::PaddingOutsets()
    #5 blink::BoxPainterBase::PaintFillLayer()
    #6 blink::BoxPainterBase::PaintFillLayers()
    #7 blink::BoxFragmentPainter::PaintBackground()

Bug: 40286153
Change-Id: I1e6e92c2ce1d81aab2673ec9a877eac455534102
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5526469
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1300711}
pull bot pushed a commit that referenced this pull request May 21, 2024
Attempting to initialize the GPU triggers MSan failures in GL with eager
checks enabled in MSan:

Uninitialized bytes in strlen at offset 0 inside [0x70200013dec0, 30)
==589==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7fffeeba96de in glLabelObjectEXT (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x4f6de)
    #1 0x7fffeeba9b10 in glLabelObjectEXT (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x4fb10)
    #2 0x7fffeeb879a3  (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x2d9a3)
    #3 0x7fffeeb894c0  (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x2f4c0)
    #4 0x7fffeeb8e400  (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x34400)
    #5 0x7fffeeb8f384  (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x35384)
    #6 0x7fffeeb8bd9a  (/lib/x86_64-linux-gnu/libGLX_mesa.so.0+0x31d9a)
    #7 0x7fffecceb484 in queryExtensionsString third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp:354:12
    #8 0x7fffecceb484 in rx::FunctionsGLX::initialize(_XDisplay*, int, std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>>*) third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp:223:30
    #9 0x7fffeccdada2 in rx::DisplayGLX::initialize(egl::Display*) third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp:114:15
    #10 0x7fffec70f649 in egl::Display::initialize() third_party/angle/src/libANGLE/Display.cpp:1082:36
    #11 0x7fffec0bed17 in egl::Initialize(egl::Thread*, egl::Display*, int*, int*) third_party/angle/src/libGLESv2/egl_stubs.cpp:514:5
    #12 0x7fffec0c6319 in EGL_Initialize third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp:571:27
    #13 0x7fffefc4000d in eglInitialize third_party/angle/src/libEGL/libEGL_autogen.cpp:177:12
    #14 0x5555868ec92a in gl::GLDisplayEGL::InitializeDisplay(bool, std::__Cr::vector<gl::DisplayType, std::__Cr::allocator<gl::DisplayType>>, gl::EGLDisplayPlatform, gl::GLDisplayEGL*) ui/gl/gl_display.cc:769:10
    #15 0x5555868eb310 in gl::GLDisplayEGL::Initialize(bool, std::__Cr::vector<gl::DisplayType, std::__Cr::allocator<gl::DisplayType>>, gl::EGLDisplayPlatform) ui/gl/gl_display.cc:660:8
    #16 0x55556c6f1957 in ui::GLOzoneEGL::InitializeGLOneOffPlatform(bool, std::__Cr::vector<gl::DisplayType, std::__Cr::allocator<gl::DisplayType>>, gl::GpuPreference) ui/ozone/common/gl_ozone_egl.cc:25:17
    #17 0x55558b1a8999 in gl::init::InitializeGLOneOffPlatform(gl::GpuPreference) ui/gl/init/gl_initializer_ozone.cc:27:26
    #18 0x55558b1a6978 in gl::init::InitializeGLOneOffPlatformImplementation(bool, bool, bool, gl::GpuPreference) ui/gl/init/gl_factory.cc:211:24
    #19 0x55558b1a6208 in gl::init::(anonymous namespace)::InitializeGLOneOffPlatformHelper(bool, gl::GpuPreference) ui/gl/init/gl_factory.cc:135:10
    #20 0x55558b1a662d in gl::init::InitializeGLNoExtensionsOneOff(bool, gl::GpuPreference) ui/gl/init/gl_factory.cc:166:10
    #21 0x55558b227379 in gpu::GpuInit::InitializeAndStartSandbox(base::CommandLine*, gpu::GpuPreferences const&) gpu/ipc/service/gpu_init.cc:495:18
    #22 0x55559ab41ce4 in content::GpuMain(content::MainFunctionParams) content/gpu/gpu_main.cc:358:39
    #23 0x55557b5888da in content::RunZygote(content::ContentMainDelegate*) content/app/content_main_runner_impl.cc:685:14
    #24 0x55557b58abad in content::RunOtherNamedProcessTypeMain(std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> const&, content::MainFunctionParams, content::ContentMainDelegate*) content/app/content_main_runner_impl.cc:789:12
    #25 0x55557b58e4fe in content::ContentMainRunnerImpl::Run() content/app/content_main_runner_impl.cc:1156:10
    #26 0x55557b585aaf in content::RunContentProcess(content::ContentMainParams, content::ContentMainRunner*) content/app/content_main.cc:332:36
    #27 0x55557b58644a in content::ContentMain(content::ContentMainParams) content/app/content_main.cc:345:10
    #28 0x555580df9c37 in content::LaunchTestsInternal(content::TestLauncherDelegate*, unsigned long, int, char**) content/public/test/test_launcher.cc:385:12
    #29 0x555580dfab58 in content::LaunchTests(content::TestLauncherDelegate*, unsigned long, int, char**) content/public/test/test_launcher.cc:504:10
    #30 0x555582b8afec in LaunchChromeTests(unsigned long, content::TestLauncherDelegate*, int, char**) chrome/test/base/chrome_test_launcher.cc:392:10
    #31 0x55557d422a0e in main chrome/test/base/browser_tests_main.cc:60:10
    #32 0x7ffff48456c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #33 0x7ffff4845784 in __libc_start_main csu/../csu/libc-start.c:360:3
    #34 0x55555e647029 in _start (/usr/local/google/home/dcheng/src/chrome/src/out/msan/browser_tests+0x90f3029) (BuildId: 6cbc295b16ac1107)

  Uninitialized value was created by a heap allocation
    #0 0x55555e675a22 in malloc /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/msan/msan_interceptors.cpp:1021:3
    #1 0x7ffff489b087 in __vasprintf_internal libio/vasprintf.c:116:16
    #2 0x4ae8d349882b18ff  (<unknown module>)

Bug: 40240570
Change-Id: If59faa297e214b7219ebb4c5c9572b44a33ee070
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5548826
Reviewed-by: Elad Alon <eladalon@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1303583}
pull bot pushed a commit that referenced this pull request Jun 5, 2024
This CL is trivial (contextualized by its downstream counterpart).

Some PA unit tests will `free()` an object and subsequently use the
address as a slot start. PA's standard mechanism for asserting that an
address is a slot start is incompatible with this, and so the test
should be performed with an explicitly unchecked variant.

Sample backtrace from LUD unit tests:

```
(lldb) bt
* thread #1, name = 'base_unittests', stop reason = signal SIGTRAP
  * frame #0: 0x0000555559e206b9 base_unittests`partition_alloc::internal::logging::LogMessage::~LogMessage()::$_0::operator()(this=0x00007fffffffbaa7) const at log_message.cc:128:5
    frame #1: 0x0000555559e20682 base_unittests`partition_alloc::internal::logging::LogMessage::~LogMessage(this=0x00007fffffffbc28) at log_message.cc:128:5
    frame #2: 0x0000555559e1fdf6 base_unittests`partition_alloc::internal::logging::CheckError::~CheckError(this=0x00007fffffffbc28) at check.cc:74:18
    frame #3: 0x0000555557311045 base_unittests`partition_alloc::internal::logging::check_error::DCheck::~DCheck(this=0x00007fffffffbc28) at check.h:120:49
    frame #4: 0x0000555557313786 base_unittests`partition_alloc::internal::IsReservationStart(address=67723054809088) at reservation_offset_table.h:265:3
    frame #5: 0x0000555557313524 base_unittests`partition_alloc::internal::PartitionPageMetadata::FromAddr(address=67723054825472) at partition_page.h:485:3
    frame #6: 0x0000555557312fd6 base_unittests`partition_alloc::internal::SlotSpanMetadata::FromAddr(address=67723054825472) at partition_page.h:534:25
    frame #7: 0x00005555573157c0 base_unittests`partition_alloc::internal::SlotStart<true>::CheckIsSlotStart(this=0x00007fffffffc8b0) at partition_page.h:852:32
    frame #8: 0x0000555557315780 base_unittests`partition_alloc::internal::SlotStart<true>::SlotStart(this=0x00007fffffffc8b0, untagged_slot_start=67723054825472) at partition_page.h:846:7
    frame #9: 0x0000555557316708 base_unittests`partition_alloc::PartitionRoot::ObjectToSlotStart(this=0x00002b6c0005c000, object=0x00003d9800a04000) const at partition_root.h:832:12
    frame #10: 0x0000555559e2cb74 base_unittests`partition_alloc::internal::LightweightQuarantineBranch::IsQuarantinedForTesting(this=0x00002b6c000146d8, object=0x00003d9800a04000) at lightweight_quarantine.cc:108:48
    frame #11: 0x0000555558c26758 base_unittests`partition_alloc::PartitionAllocLightweightQuarantineTest_TooLargeAllocation_Test::TestBody(this=0x00002b6c00014680) at lightweight_quarantine_unittest.cc:129:3
```

Bug: 337078970
Change-Id: I08592544b79be323a724b139f642105316cfdf30
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5584938
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Kalvin Lee <kdlee@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1309767}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants