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 #10

Merged
merged 81 commits into from
Jun 1, 2021
Merged

[pull] master from chromium:master #10

merged 81 commits into from
Jun 1, 2021

Conversation

pull[bot]
Copy link

@pull pull bot commented Jun 1, 2021

See Commits and Changes for more details.


Created by pull[bot]

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

chromium-autoroll and others added 30 commits June 1, 2021 07:44
Roll Chrome Win32 PGO profile from chrome-win32-master-1622483725-e592581519e2e467a881534fc9e51e3e93c1d0b1.profdata to chrome-win32-master-1622489765-425bcb96f463f5ee8cc869a9b78416fde26adec1.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 [email protected] 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/master/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win-chrome
Tbr: [email protected]
Change-Id: I52e9f938700817daf15fc7f3270328b505165eeb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928798
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887878}
Roll Chrome Win64 PGO profile from chrome-win64-master-1622483725-e57c48324ade86a0cf5db99c0a175a0b2327d7f5.profdata to chrome-win64-master-1622489765-17f517230a1b6a8f215c9f0b82fd2c04108ce54e.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 [email protected] 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/master/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win64-chrome
Tbr: [email protected]
Change-Id: Idc9e550a4a0c74acb6e3018e64c7410c551592b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929580
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887879}
https://skia.googlesource.com/skia.git/+log/77724af76ce2..fe9b4316d8de

2021-06-01 [email protected] Roll ANGLE from a9f26cc1ec75 to fe93fcdd1b48 (5 revisions)
2021-06-01 [email protected] Roll SwiftShader from f504d9ef5615 to 90c0551ca547 (1 revision)
2021-06-01 [email protected] Roll Dawn from 2e660b38ec56 to f3db4dbca090 (5 revisions)
2021-06-01 [email protected] Disable the indirect stroke tessellator
2021-06-01 [email protected] Update SKP version

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-autoroll
Please CC [email protected] 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/master/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux-blink-rel;luci.chromium.try:linux-chromeos-compile-dbg;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Cq-Do-Not-Cancel-Tryjobs: true
Bug: None
Tbr: [email protected]
Change-Id: I579ac35764331e4eb0f3219eda726b8cb95a350f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927319
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887880}
Do not detach keyboard listener on |hideTriggerScript|.

The detach of the listener should be handled by the
|clearNativePtr| that is called when the UI is detached.

Bug: b/189283884
Change-Id: Ie84d8ee1ce3ecf34ecb46a95ac68e648142fdcf9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929178
Reviewed-by: Clemens Arbesser <[email protected]>
Commit-Queue: Sandro Maggi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887881}
Initially storing the device policy may take up to 180s. Increase the
timeout to catch all outliers, as we only want to time out if we are
sure the call is not going to return.

Remove the metric that was used to determine the proper timeout value.

Bug: 1166126
Test: Simple Chrome and enroll
Change-Id: I8bcba3569e45b615f3487d35e11c93b5df055e88
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2917299
Commit-Queue: Miriam Polzer <[email protected]>
Reviewed-by: Weilun Shi <[email protected]>
Reviewed-by: Roland Bock <[email protected]>
Reviewed-by: Maksim Ivanov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887882}
Leaving the UI scale factor at 100P/300P in WebAppIconManagerTest was
causing the next WebAppInstallTaskTest to crash when it tried to load a
user icon at 300P. This CL changes WebAppIconManagerTest to use
ScopedSetSupportedScaleFactors which resets the values post-test.

Bug: 1215006
Change-Id: Ibb9ada4bb22869a87bd3b7f329ae49faca6afd58
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929637
Commit-Queue: calamity <[email protected]>
Reviewed-by: Alexey Baskakov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887883}
Updates the expires_after attribute for 34 histograms that show
frequent access in the past 180 days.  These are the 99% most
frequently used histograms over that time that do not already
have a date later than or within 60 days of 2021-08-30.

[email protected]

Change-Id: I3b34310bef4bf8a0d1c768872c60f9ddc0c30d56
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929359
Commit-Queue: Chrome Metrics Logs <[email protected]>
Bot-Commit: Chrome Metrics Logs <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887884}
This CL removes ui/events/ozone/evdev library from wayland build since
it is not used.
By this removal, the binary size of chrome is reduced by 96 byte.

Bug: 1211307
Change-Id: I42ec7c463c39f627f12e8d6cdb53128507c2fe84
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2908356
Reviewed-by: Hidehiko Abe <[email protected]>
Reviewed-by: Michael Spang <[email protected]>
Commit-Queue: Eriko Kurimoto <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887885}
Summary of changes available at:
https://chromium.googlesource.com/v8/v8/+log/115347c2..fe7a5763

Please follow these instructions for assigning/CC'ing issues:
https://v8.dev/docs/triage-issues

Please close rolling in case of a roll revert:
https://v8-roll.appspot.com/
This only works with a Google account.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux-blink-rel
CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_optional_gpu_tests_rel
CQ_INCLUDE_TRYBOTS=luci.chromium.try:mac_optional_gpu_tests_rel
CQ_INCLUDE_TRYBOTS=luci.chromium.try:win_optional_gpu_tests_rel
CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel

[email protected],[email protected],[email protected]

Change-Id: I1d860541926050ea964ebb0c3e937618475f23cd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928799
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#887886}
Change-Id: I7a3b38bd781553609b458f40846571bfb73eb156
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929257
Commit-Queue: Internal Frameworks Autoroller <bling-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Internal Frameworks Autoroller <bling-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#887887}
These are our basic performance metrics for WebFonts. Let's keep them.

Bug: 1205091
Change-Id: I2b252f1003eea754778644acf2451a282160b08e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929404
Reviewed-by: Takashi Toyoshima <[email protected]>
Commit-Queue: Kunihiko Sakamoto <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887888}
This CL doesn't change the behavior of platform keys service, it only
makes it more clear to readers that all of the replies of platform keys
service operations will run on the UI thread.

Bug: 1214848
Change-Id: Ifb87e32d8decc20a0414d7d29dec7a5e249c2b22
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927590
Commit-Queue: Omar Morsi <[email protected]>
Reviewed-by: Maksim Ivanov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887889}
Updates the expires_after attribute for 20 histograms that have
been used to generate alerts in the past 180 days and do not already have
a date later than or within 60 days of 2021-08-30.

[email protected]

Change-Id: I1b34e7748021531f3f52c3f77249d92674744ee0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929358
Commit-Queue: Chrome Metrics Logs <[email protected]>
Bot-Commit: Chrome Metrics Logs <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887890}
…UIRED

Closure compiler emits warning JSC_DYNAMIC_IMPORT_ALIASING_REQUIRED [1]
when using dynamic import with output target version lower than
ECMASCRIPT_2020, and without --dynamic_import_alias.

Since we're only using closure compiler for type checking, set the
output target to ECMASCRIPT_2020 to solve this issue.

[1]: https://github.com/google/closure-compiler/wiki/JS-Modules#dynamic-import-expressions

Bug: b/188365424
Test: Compile without warnings
Change-Id: I3d08a06e94b37d31beb89c540998b1363d48809d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928673
Reviewed-by: Shik Chen <[email protected]>
Commit-Queue: Pi-Hsun Shih <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887891}
…ed()

This CL removes the redundant method isCachePopulated() from
AccountManagerFacade API as this method is no longer needed.

Bug: 1211294
Change-Id: I960232a81d2db4d4cf50ab12948b15a3977e7625
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927307
Reviewed-by: Tanmoy Mollik <[email protected]>
Commit-Queue: Alice Wang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887892}
The logic for building the Web Crypto Algorithm dictionary (which means
first checking if the algorithm is RSA or EC, and then calling the
correct helper method) was duplicated in 3 places.

This fixes the duplication in 2 places. The 3rd place
(inside PlatformKeysInternalSelectClientCertificatesFunction::Run) will
be fixed in b/189428757.

Bug: b/189429737
Test: browser_unittests --gtest_filter="*UnmanagedPlatformKey*"
Change-Id: I786b2c5510ed1379e0a91e50c611b85cadbc908a
Cq-Include-Trybots: luci.chrome.try:linux-chromeos-chrome
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2920580
Commit-Queue: Jeroen Dhollander <[email protected]>
Reviewed-by: Omar Morsi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887893}
Ensure that Bookmarks UI properly unregister its observers and
cleanup after itself when the app shutdown (or when the UI is
closed).

Bug: 1213378
Fixed: 1213378
Change-Id: I856fb76ebd309509d3c6d0f5d2542ea0bab20691
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928525
Reviewed-by: Éric Noyau <[email protected]>
Commit-Queue: Sylvain Defresne <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887894}
https://chromium.googlesource.com/angle/angle.git/+log/fe93fcdd1b48..a44b16d39075

2021-06-01 [email protected] Capture/Replay: Force validation on when capturing

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 [email protected] 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/master/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: None
Tbr: [email protected]
Test: Test: Genshin Impact MEC
Change-Id: I1775300c4a734424db5d1cea2b0a9a52765c4c8c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929897
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887895}
This CL fix the sizes of video player icons for closed captions and
subtitles.

Screenshot: https://crbug.com/1213905#c1
Change-Id: I2d4765b18963c3dc08fd04cbf7042f4e0a214122
Bug: 1213905
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2919723
Reviewed-by: Tommy Steimel <[email protected]>
Commit-Queue: François Beaufort <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887896}
Roll Chrome Win32 PGO profile from chrome-win32-master-1622489765-425bcb96f463f5ee8cc869a9b78416fde26adec1.profdata to chrome-win32-master-1622527178-9a5352b7412ad6ef11456de74f66a37dcaa3308d.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 [email protected] 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/master/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win-chrome
Tbr: [email protected]
Change-Id: Ia20d375915bb39cbb9949dddd1c61c09956f21d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929978
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887897}
If container-type:inline-size/block-size is used, we enable style
containment, layout containment, and the appropriate size containment.

The ComputedStyle::Contains* utils now have different semantics.
Each of those those functions now represent whether or not containment
of a given type should be enabled based on the information stored
on ComputedStyle as a whole (not just the 'contain' property itself).
Because of this, we no longer need to do an additional check for
ComputedStyle::ContainsSize in LayoutObject::ShouldApplyInline-
SizeContainment, as ComputedStyle::ContainsInlineSize is already
supposed to include this per the new contract. (And similarly for
block-size).

Bug: 1213888
Change-Id: Ia6757fba243cec4471327b33cdb65debcf9cd1ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928858
Commit-Queue: Anders Hartvoll Ruud <[email protected]>
Reviewed-by: Morten Stenshorne <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887898}
There are some known issues which happen since the recording session is
too short:
1. No data chunk is received
2. Data chunk is received but is lack of data from video track

This CL handles these cases by not saving the video but showing a toast
error message to users.

Bug: b:184583382, b:172341285, b:172214187
Test: Manually
Change-Id: I0d43a25ac12b729088b503eb7673e5e4ca26939a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928701
Reviewed-by: Inker Kuo <[email protected]>
Commit-Queue: Wei Lee <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887899}
Bug: 839389
Change-Id: I8d10d6f2d4894d0e8a73a4002c894556b199d9af
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928683
Commit-Queue: Yuki Shiino <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887900}
Roll Chrome Win64 PGO profile from chrome-win64-master-1622489765-17f517230a1b6a8f215c9f0b82fd2c04108ce54e.profdata to chrome-win64-master-1622527178-f7f002d24b6ce32cbf736f0bf14b7211500ab8a5.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 [email protected] 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/master/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win64-chrome
Tbr: [email protected]
Change-Id: Ie21ac204e30dd2ee7e255276f336aa515c96e335
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929997
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887901}
This adds a regression test for b/189283884.

Bug: b/189283884
Change-Id: I8d6be7d7668d9829af0af129fddb62f0b2433c8c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2929958
Reviewed-by: Clemens Arbesser <[email protected]>
Commit-Queue: Sandro Maggi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887902}
Mark single-argument constructors as explicit throughout the */login/*
code.

Bug: none
Change-Id: I17e642696757725b17cf7577f81fd1b798ce8293
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927608
Auto-Submit: Maksim Ivanov <[email protected]>
Reviewed-by: Denis Kuznetsov [CET] <[email protected]>
Commit-Queue: Maksim Ivanov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887903}
The flag was originally needed to restrict the availability of the API
to specific hardware devices that could support it. The API is now
available on all devices and the flag is now enabled by default.
The flag is not needed even to turn off the API via Finch, as we have a
separate flag for that (kHandwritingRecognitionWebPlatformApiFinch).

Bug: 1166910
Change-Id: I79bc81171380739ed457235d6bb983fe0c8eaa99
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927635
Reviewed-by: Andrew Moylan <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Commit-Queue: Kinuko Yasuda <[email protected]>
Auto-Submit: Glen Robertson <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887904}
Bug: 1179632
Change-Id: Ibf98f3ee48cc472b5628f574726f70e79921ed07
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2922083
Reviewed-by: Robert Kaplow <[email protected]>
Commit-Queue: Tanmoy Mollik <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887905}
- Updated/removed some old comments.
- Removed unused Abort() method.
- Removed ConfigureParams::enabled_types field which was (a) misleading
  (it actually contained the currently-being-configured types) and (b)
  unused outside of some tests.

Bug: 1170318
Change-Id: I2133669eefe975b4779675b2a8a7520d9610ffdc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927313
Commit-Queue: Marc Treib <[email protected]>
Reviewed-by: Mikel Astiz <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887906}
…ailAsync()

This CL renames the suffix -async in the method name
AccountInfoService#getAccountInfoByEmailAsync() as this method could
also be used synchronously.

Bug: 1187512
Change-Id: I3ebf9be9fe02a77f28ff5549effd2e7ae74bd02f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928522
Commit-Queue: Alice Wang <[email protected]>
Reviewed-by: Tanmoy Mollik <[email protected]>
Cr-Commit-Position: refs/heads/master@{#887907}
pull bot pushed a commit that referenced this pull request Jun 15, 2023
See [Intent-To-Remove]. It got LGTM3.

(This was made as part of the web platform security fixit week #10)

Doc: https://docs.google.com/document/d/1_89X4cNUab-PZE0iBDTKIftaQZsFbk7SbFmHbqY54os/edit
Intent-To-Remove: https://groups.google.com/a/chromium.org/g/blink-dev/c/U1zHqauBLkE/m/h3siGSCKAQAJ
Fixed: chromium:1186311
Bug: chromium:1186311,chromium:1360795,chromium:1225195
Change-Id: I86e193a8a92a17dc2b712be49677f9873992e60b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4598149
Auto-Submit: Arthur Sonzogni <[email protected]>
Reviewed-by: Camille Lamy <[email protected]>
Commit-Queue: Camille Lamy <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1158070}
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 <[email protected]>
> Commit-Queue: Eric Sum <[email protected]>
> 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 <[email protected]>
Owners-Override: David Roger <[email protected]>
Bot-Commit: Rubber Stamper <[email protected]>
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 <[email protected]>
> Commit-Queue: Takashi Sakamoto <[email protected]>
> 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 <[email protected]>
Owners-Override: David Roger <[email protected]>
Commit-Queue: David Roger <[email protected]>
Bot-Commit: Rubber Stamper <[email protected]>
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 <[email protected]>
> > Commit-Queue: Eric Sum <[email protected]>
> > 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 <[email protected]>
> Owners-Override: David Roger <[email protected]>
> Bot-Commit: Rubber Stamper <[email protected]>
> 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 <[email protected]>
Reviewed-by: Jiaming Cheng <[email protected]>
Commit-Queue: Eric Sum <[email protected]>
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 <[email protected]>
Commit-Queue: Dominic Farolino <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1190316}
pull bot pushed a commit that referenced this pull request Sep 2, 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 <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
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 <[email protected]>
> Reviewed-by: Scott Violet <[email protected]>
> 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 <[email protected]>
Commit-Queue: Owen Min <[email protected]>
Reviewed-by: Peter Williamson <[email protected]>
Owners-Override: Owen Min <[email protected]>
Auto-Submit: Owen Min <[email protected]>
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 <[email protected]>
Commit-Queue: Arthur Sonzogni <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1192343}
pull bot pushed a commit that referenced this pull request Nov 21, 2023
Revert in https://crrev.com/c/5047692 failed due to conflicts.

Tests fail since https://ci.chromium.org/ui/p/chrome/builders/ci/linux-chromeos-chrome/37304/ with

[ RUN      ] PromoCardShortcutTest.ShouldShowPromoFirstThreeTimes
Received signal 11 SEGV_MAPERR 000000000040
...
#4 0x55592615e26d ui::CalculateIdleTime()
#5 0x555922e50a80 user_education::PollingIdleObserver::GetCurrentState()
#6 0x55591dc67320 user_education::FeaturePromoSessionManager::Init()
#7 0x5559247a76bd UserEducationServiceFactory::BuildServiceInstanceForBrowserContext()
#8 0x5559256f9b97 KeyedServiceFactory::GetServiceForContext()
#9 0x555928fe1606 PasswordManagerShortcutPromo::ShouldShowPromo()
#10 0x55591ca55d9f password_manager::PromoCardShortcutTest_ShouldShowPromoFirstThreeTimes_Test::TestBody()

Bug: 1479773
Change-Id: I35b0337b2ab95dc89c90e640cf95184be74e87ca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5048010
Reviewed-by: Dana Fried <[email protected]>
Auto-Submit: Trent Apted <[email protected]>
Commit-Queue: Dana Fried <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1227176}
pull bot pushed a commit that referenced this pull request Dec 5, 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 <[email protected]>
Commit-Queue: Yoav Weiss <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1233189}
pull bot pushed a commit that referenced this pull request Dec 9, 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.
QuickAnswersStateAshTest.*. Those tests crash because no data path
for the profile:
Received signal 11 SEGV_MAPERR 000000000017
...
#9 0x7f445a1f27b7 base::FilePath::Append()
#10 0x7f44710376e4 ash::BrowserContextHelper::GetBrowserContextPathByUserIdHash()
#11 0x55e7a2294d85 ash::ProfileHelperImpl::GetUserByProfile()
#12 0x55e7a22944d7 ash::ProfileHelper::IsPrimaryProfile()
#13 0x55e7b07a2a23 NearbySharingServiceFactory::IsNearbyShareSupportedForBrowserContext()
...

Modify the test setup process to create the user manager first, then
create the profile to align with the production code.

Remove `scoped_user_manager_` in TestExtensionSystem, as that has been moved to TestProfile.

BUG=1385932, b:307623506

Change-Id: Ib07f4a5a347893b7eab8d3bb8cd870c6831898c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5076443
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: Nancy Wang <[email protected]>
Reviewed-by: Xiaohui Chen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1235337}
pull bot pushed a commit that referenced this pull request Dec 19, 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.
DeviceAPIServiceRegularUserTest.*, because no data path
for the profile:
Received signal 11 SEGV_MAPERR 000000000017
...
#9 0x7fb1f37f6ec7 base::FilePath::Append()
#10 0x7fb20a6396ec ash::BrowserContextHelper::GetBrowserContextPathByUserIdHash()
#11 0x55d607da3a0c ash::ProfileHelperImpl::GetUserByProfile()
#12 0x55d607da32f7 ash::ProfileHelper::IsPrimaryProfile()
#13 0x55d616260503 NearbySharingServiceFactory::IsNearbyShareSupportedForBrowserContext()
#14 0x55d6156cd0fc NotificationDisplayServiceImpl::NotificationDisplayServiceImpl()
#15 0x55d6156ccc49 std::__Cr::make_unique<>()
...
BrowserContextKeyedServiceFactory::GetServiceForBrowserContext()
#20 0x55d6156ccab2 NotificationDisplayServiceFactory::GetForProfile()
#21 0x55d605d350be apps::ExtensionAppsChromeOs::Initialize()
#22 0x55d605d8041b apps::PublisherHost::Initialize()
#23 0x55d605d8026c apps::PublisherHost::PublisherHost()

Actually TestingProfile can create FakeChromeUserManager[1]. So we
can get  FakeChromeUserManager directly.

Remove `scoped_user_manager_`, as that has been moved to TestProfile.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/5076443/20/chrome/test/base/testing_profile.cc

BUG=1385932, b:307623506

Change-Id: Ib26c7fc9fcfa950e01246df6e13a8f3ee449b22b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5134109
Reviewed-by: Ben Franz <[email protected]>
Commit-Queue: Nancy Wang <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1239047}
pull bot pushed a commit that referenced this pull request Jan 18, 2024
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.
NetworkConfigurationUpdaterAshTest.*. Those tests crash because no
data path for the profile:
Received signal 11 SEGV_MAPERR 000000000017
...
#9 0x7fb71a1fe827 base::FilePath::Append()
#10 0x7fb72e112a6c ash::BrowserContextHelper::GetBrowserContextPathByUserIdHash()
#11 0x556a750dbf21 ash::ProfileHelperImpl::GetUserByProfile()
#12 0x556a750db807 ash::ProfileHelper::IsPrimaryProfile()
#13 0x556a834e83a3 NearbySharingServiceFactory::IsNearbyShareSupportedForBrowserContext()
#14 0x556a8295719c NotificationDisplayServiceImpl::NotificationDisplayServiceImpl()
#15 0x556a82956ce9 std::__Cr::make_unique<>()
...
#19 0x7fb6fcef560c BrowserContextKeyedServiceFactory::GetServiceForBrowserContext()
#20 0x556a82956b52 NotificationDisplayServiceFactory::GetForProfile()
#21 0x556a7305f5be apps::ExtensionAppsChromeOs::Initialize()
#22 0x556a730aa83b apps::PublisherHost::Initialize()
#23 0x556a730aa68c apps::PublisherHost::PublisherHost()

The reason should because of FakeUserManager. Actually the fake user
manager is created in TestingProfile, so we don't need to build a new
one, and we can get the user manager directly with:
user_manager::UserManager::Get()

Modify the test setup process to get the user manager directly, and
remove `user_manager_` in the test code, as that has been moved to
TestProfile.

BUG=1385932, b:307623506

Change-Id: I5873858d5e18ca6196bc5b83ed38d87e1f18ae14
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5188272
Reviewed-by: Anqing Zhao <[email protected]>
Commit-Queue: Nancy Wang <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1248444}
pull bot pushed a commit that referenced this pull request Jan 18, 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 <[email protected]>
Reviewed-by: Kenichi Ishibashi <[email protected]>
Commit-Queue: Maks Orlovich <[email protected]>
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 <[email protected]>
Reviewed-by: Alexei Svitkine <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1264332}
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 <[email protected]>
> Commit-Queue: Peter Boström <[email protected]>
> Reviewed-by: danakj <[email protected]>
> Reviewed-by: Vasiliy Telezhnikov <[email protected]>
> Reviewed-by: Colin Blundell <[email protected]>
> 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 <[email protected]>
Owners-Override: François Degros <[email protected]>
Commit-Queue: François Degros <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1278133}
pull bot pushed a commit that referenced this pull request Apr 3, 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 <[email protected]>
Commit-Queue: Antonio Gomes <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1281135}
pull bot pushed a commit that referenced this pull request Apr 3, 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 <[email protected]>
> > Commit-Queue: Peter Boström <[email protected]>
> > Reviewed-by: danakj <[email protected]>
> > Reviewed-by: Vasiliy Telezhnikov <[email protected]>
> > Reviewed-by: Colin Blundell <[email protected]>
> > 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 <[email protected]>
> Owners-Override: François Degros <[email protected]>
> Commit-Queue: François Degros <[email protected]>
> 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 <[email protected]>
Reviewed-by: Colin Blundell <[email protected]>
Reviewed-by: Michael Spang <[email protected]>
Reviewed-by: Vasiliy Telezhnikov <[email protected]>
Reviewed-by: François Degros <[email protected]>
Commit-Queue: Peter Boström <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1281466}
pull bot pushed a commit that referenced this pull request Apr 10, 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 <[email protected]>
Reviewed-by: Yuchen Liu <[email protected]>
Commit-Queue: Antonio Rivera <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1285202}
pull bot pushed a commit that referenced this pull request Apr 17, 2024
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 <[email protected]>
> Commit-Queue: Andrey Kosyakov <[email protected]>
> 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 <[email protected]>
Auto-Submit: Timothy Loh <[email protected]>
Commit-Queue: Jiacheng Guo <[email protected]>
Owners-Override: Timothy Loh <[email protected]>
Bot-Commit: Rubber Stamper <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1288546}
pull bot pushed a commit that referenced this pull request Apr 19, 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 <[email protected]>
> > Commit-Queue: Andrey Kosyakov <[email protected]>
> > 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 <[email protected]>
> Auto-Submit: Timothy Loh <[email protected]>
> Commit-Queue: Jiacheng Guo <[email protected]>
> Owners-Override: Timothy Loh <[email protected]>
> Bot-Commit: Rubber Stamper <[email protected]>
> 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 <[email protected]>
Reviewed-by: Michael Lippautz <[email protected]>
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 <[email protected]>
Reviewed-by: Liviu Tinta <[email protected]>
Auto-Submit: Liviu Tinta <[email protected]>
Owners-Override: Liviu Tinta <[email protected]>
Commit-Queue: Rubber Stamper <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1290248}
pull bot pushed a commit that referenced this pull request Apr 23, 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 <[email protected]>
> Reviewed-by: Liviu Tinta <[email protected]>
> Auto-Submit: Liviu Tinta <[email protected]>
> Owners-Override: Liviu Tinta <[email protected]>
> Commit-Queue: Rubber Stamper <[email protected]>
> 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 <[email protected]>
Commit-Queue: Simon Zünd <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1290555}
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 <[email protected]>
Commit-Queue: Daniel Cheng <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1303583}
pull bot pushed a commit that referenced this pull request Jun 4, 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 <[email protected]>
Commit-Queue: Kalvin Lee <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1309767}
pull bot pushed a commit that referenced this pull request Jun 29, 2024
Destroying `bounds_animator_` can reentrantly call back into
`ShelfView`; make sure any fields that are reentrantly used are not
destroyed before `bounds_animator_`.

Example crash:
==159708==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55558fba1df1 in ash::ShelfView::ViewHierarchyChanged(views::ViewHierarchyChangedDetails const&) ./../../ash/shelf/shelf_view.cc:715:9
    #1 0x5555874f2dd5 in views::View::ViewHierarchyChangedImpl(views::ViewHierarchyChangedDetails const&) ./../../ui/views/view.cc:3172:3
    #2 0x5555874f4e08 in views::View::PropagateRemoveNotifications(views::View*, views::View*, bool) ./../../ui/views/view.cc:3121:8
    #3 0x5555874f4d25 in views::View::PropagateRemoveNotifications(views::View*, views::View*, bool) ./../../ui/views/view.cc:3110:14
    #4 0x5555874d1492 in views::View::DoRemoveChildView(views::View*, bool, bool, views::View*) ./../../ui/views/view.cc:3083:9
    #5 0x5555874cdca0 in RemoveChildView ./../../ui/views/view.cc:364:3
    #6 0x5555874cdca0 in views::View::~View() ./../../ui/views/view.cc:255:14
    #7 0x5555872f3f8c in views::Button::~Button() ./../../ui/views/controls/button/button.cc:196:17
    #8 0x55558fb46817 in ash::ShelfButton::~ShelfButton() ./../../ash/shelf/shelf_button.cc:39:27
    #9 0x55558fb350ca in ash::ShelfAppButton::~ShelfAppButton() ./../../ash/shelf/shelf_app_button.cc:513:1
    #10 0x55558fb3521b in ash::ShelfAppButton::~ShelfAppButton() ./../../ash/shelf/shelf_app_button.cc:511:35
    #11 0x55558fbbb73a in operator() ./../../third_party/libc++/src/include/__memory/unique_ptr.h:67:5
    #12 0x55558fbbb73a in reset ./../../third_party/libc++/src/include/__memory/unique_ptr.h:278:7
    #13 0x55558fbbb73a in ~unique_ptr ./../../third_party/libc++/src/include/__memory/unique_ptr.h:248:71
    #14 0x55558fbbb73a in ash::ShelfView::FadeOutAnimationDelegate::~FadeOutAnimationDelegate() ./../../ash/shelf/shelf_view.cc:293:48
    #15 0x55558fbbb795 in ash::ShelfView::FadeOutAnimationDelegate::~FadeOutAnimationDelegate() ./../../ash/shelf/shelf_view.cc:293:48
    #16 0x55558728bb8a in operator() ./../../third_party/libc++/src/include/__memory/unique_ptr.h:67:5
    #17 0x55558728bb8a in reset ./../../third_party/libc++/src/include/__memory/unique_ptr.h:278:7
    #18 0x55558728bb8a in views::BoundsAnimator::CleanupData(bool, views::BoundsAnimator::Data*) ./../../ui/views/animation/bounds_animator.cc:226:18
    #19 0x55558728b7ef in views::BoundsAnimator::~BoundsAnimator() ./../../ui/views/animation/bounds_animator.cc:41:5
    #20 0x55558728be9f in views::BoundsAnimator::~BoundsAnimator() ./../../ui/views/animation/bounds_animator.cc:33:35
    #21 0x55558fb9dbda in operator() ./../../third_party/libc++/src/include/__memory/unique_ptr.h:67:5
    #22 0x55558fb9dbda in reset ./../../third_party/libc++/src/include/__memory/unique_ptr.h:278:7
    #23 0x55558fb9dbda in ~unique_ptr ./../../third_party/libc++/src/include/__memory/unique_ptr.h:248:71
    #24 0x55558fb9dbda in ash::ShelfView::~ShelfView() ./../../ash/shelf/shelf_view.cc:386:1
    #25 0x55558fb9debf in ash::ShelfView::~ShelfView() ./../../ash/shelf/shelf_view.cc:381:25
    #26 0x5555874cdf10 in views::View::~View() ./../../ui/views/view.cc:289:9
    #27 0x55558fb4b99d in ash::ShelfContainerView::~ShelfContainerView() ./../../ash/shelf/shelf_container_view.cc:16:41
    #28 0x55558fb22f1b in ash::ScrollableShelfContainerView::~ScrollableShelfContainerView() ./../../ash/shelf/scrollable_shelf_view.cc:199:52
    #29 0x55558fb22f39 in ash::ScrollableShelfContainerView::~ScrollableShelfContainerView() ./../../ash/shelf/scrollable_shelf_view.cc:199:52

  Member fields were destroyed
    #0 0x55556236a67d in __sanitizer_dtor_callback_fields /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/msan/msan_interceptors.cpp:1048:5
    #1 0x55558fb9da03 in ~ShelfView ./../../ash/shelf/shelf_view.h:792:27
    #2 0x55558fb9da03 in ash::ShelfView::~ShelfView() ./../../ash/shelf/shelf_view.cc:386:1
    #3 0x55558fb9debf in ash::ShelfView::~ShelfView() ./../../ash/shelf/shelf_view.cc:381:25
    #4 0x5555874cdf10 in views::View::~View() ./../../ui/views/view.cc:289:9
    #5 0x55558fb4b99d in ash::ShelfContainerView::~ShelfContainerView() ./../../ash/shelf/shelf_container_view.cc:16:41

Bug: 40222690
Change-Id: I400b7988ab974398d50298235a177a9d97d81f83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5659322
Commit-Queue: Daniel Cheng <[email protected]>
Reviewed-by: Mike Wasserman <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1321111}
pull bot pushed a commit that referenced this pull request Oct 26, 2024
This reverts commit ecb74d5.

Reason for revert:

A series of bots such as "Linux Tests (dbg)(1)", "Linux ASan LSan Tests (1)" started failing consistently in browser_tests for these two tests:
PreviewBrowserTest.ErrorOnNonHttpsUrl
PreviewBrowserTest.ErrorOnRedirectionToNonHttpsUrl
after this change was submitted.

More complete bot list is below [1].

Both of those tests are both prerender-related.  This is the only prerender-related change on the blamelist.

The former somtimes fails with
vector.h(1305): Check failed: i < size() (0 vs. 0)
See full stack trace below [2].

The latter sometimes fails with
preview_manager.cc(73): Check failed: tab_.
See full stack trace below [3].

I have also seen the former fail with the "Check failed: tab_." error message.

And on some bots I have also seen a full-blown crash (unexpected abort).

Also, on some both I have seen other PreviewBrowserTest failures at this time, such as PreviewBrowserTest.MojoCapabilityControl, with similar errors.


[1] bots that fail:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ASan%20LSan%20Tests%20(1)/128871/blamelist
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20(1)/61153/blamelist
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/47171/blamelist
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Tests/51450/blamelist
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20Tests%20(dbg)(1)/122977/blamelist
https://ci.chromium.org/ui/p/chromium/builders/ci/linux-chromeos-dbg/37765/blamelist

[2]
PreviewBrowserTest.ErrorOnNonHttpsUrl
[ RUN      ] PreviewBrowserTest.ErrorOnNonHttpsUrl
[292860:292860:1025/041435.600171:WARNING:field_trial_util.cc(106)] Field trial config study skipped: LinkPreview.EnabledAltClick (some of its features are already overridden)
[292860:292860:1025/041435.613074:WARNING:field_trial_util.cc(106)] Field trial config study skipped: PreconnectToSearchDesktop.EnabledWithStartupDelayForegroundOnly (some of its features are already overridden)
[292947:292947:1025/041436.521543:WARNING:gpu_memory_buffer_support_x11.cc(49)] dri3 extension not supported.
[292947:292947:1025/041436.577861:WARNING:sandbox_linux.cc(430)] InitializeSandbox() called with multiple threads in process gpu-process.
[292947:292947:1025/041436.602554:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[292948:292979:1025/041438.220989:WARNING:simple_synchronous_entry.cc(1449)] Could not open platform files for entry.
[292860:292860:1025/041439.058422:WARNING:idle_linux.cc(110)] None of the known D-Bus ScreenSaver services could be used.
[292860:293018:1025/041439.668033:WARNING:embedded_test_server.cc(757)] Request not handled. Returning 404: /favicon.ico
[293019:293019:1025/041440.636001:ERROR:html_media_element.cc(4927)] SetError: {code=4, message="MEDIA_ELEMENT_ERROR: Media load rejected by URL safety check"}
[293019:293019:1025/041440.796426:FATAL:vector.h(1305)] Check failed: i < size() (0 vs. 0)
    #0 0x63a93d38d586 in ___interceptor_backtrace /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:4441:13
    #1 0x63a95f5dc688 in base::debug::CollectStackTrace(base::span<void const*, 18446744073709551615ul, void const**>) ./../../base/debug/stack_trace_posix.cc:1047:7
    #2 0x63a95f593489 in base::debug::StackTrace::StackTrace(unsigned long) ./../../base/debug/stack_trace.cc:245:20
    #3 0x63a95f253ece in logging::LogMessage::Flush() ./../../base/logging.cc:725:29
    #4 0x63a95f25396d in logging::LogMessage::~LogMessage() ./../../base/logging.cc:713:3
    #5 0x63a95f20756b in ~CheckLogMessage ./../../base/check.cc:193:3
    #6 0x63a95f20756b in logging::(anonymous namespace)::CheckLogMessage::~CheckLogMessage() ./../../base/check.cc:190:31
    #7 0x63a95f206f30 in operator() ./../../third_party/libc++/src/include/__memory/unique_ptr.h:75:5
    #8 0x63a95f206f30 in reset ./../../third_party/libc++/src/include/__memory/unique_ptr.h:297:7
    #9 0x63a95f206f30 in logging::NotReachedError::~NotReachedError() ./../../base/check.cc:355:16
    #10 0x63a975d348af in WTF::Vector<blink::PaintChunk, 0u, blink::HeapAllocator>::at(unsigned int) const ./../../third_party/blink/renderer/platform/wtf/vector.h:1305:5
    #11 0x63a975d57f4b in operator[] ./../../third_party/blink/renderer/platform/wtf/vector.h:1310:52
    #12 0x63a975d57f4b in blink::PaintChunkSubset::operator[](unsigned int) const ./../../third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h:108:12
    #13 0x63a975d9700d in FirstPaintChunk ./../../third_party/blink/renderer/platform/graphics/compositing/pending_layer.cc:183:10
    #14 0x63a975d9700d in blink::PendingLayer::Matches(blink::PendingLayer const&) const ./../../third_party/blink/renderer/platform/graphics/compositing/pending_layer.cc:196:54
    #15 0x63a975d23989 in Find ./../../third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc:73:21
    #16 0x63a975d23989 in blink::PaintArtifactCompositor::Update(blink::PaintArtifact const&, blink::PaintArtifactCompositor::ViewportProperties const&, blink::HeapVector<cppgc::internal::BasicMember<blink::TransformPaintPropertyNode const, cppgc::internal::StrongMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, 32u> const&, WTF::Vector<std::__Cr::unique_ptr<cc::ViewTransitionRequest, std::__Cr::default_delete<cc::ViewTransitionRequest>>, 0u, WTF::PartitionAllocator>) ./../../third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc:1006:35
    #17 0x63a9711e76ef in blink::LocalFrameView::PushPaintArtifactToCompositor(bool) ./../../third_party/blink/renderer/core/frame/local_frame_view.cc:3017:31
    #18 0x63a9711de07f in blink::LocalFrameView::RunPaintLifecyclePhase(blink::PaintBenchmarkMode) ./../../third_party/blink/renderer/core/frame/local_frame_view.cc:2677:5
    #19 0x63a9711d825b in blink::LocalFrameView::UpdateLifecyclePhasesInternal(blink::DocumentLifecycle::LifecycleState) ./../../third_party/blink/renderer/core/frame/local_frame_view.cc:2377:3
    #20 0x63a9711cfedd in blink::LocalFrameView::UpdateLifecyclePhases(blink::DocumentLifecycle::LifecycleState, blink::DocumentUpdateReason) ./../../third_party/blink/renderer/core/frame/local_frame_view.cc:2181:3
    #21 0x63a9711ced65 in blink::LocalFrameView::UpdateAllLifecyclePhases(blink::DocumentUpdateReason) ./../../third_party/blink/renderer/core/frame/local_frame_view.cc:1908:54
    #22 0x63a973c8b458 in blink::PageAnimator::UpdateAllLifecyclePhases(blink::LocalFrame&, blink::DocumentUpdateReason) ./../../third_party/blink/renderer/core/page/page_animator.cc:397:9
    #23 0x63a97146de8d in blink::WebFrameWidgetImpl::UpdateLifecycle(blink::WebLifecycleUpdate, blink::DocumentUpdateReason) ./../../third_party/blink/renderer/core/frame/web_frame_widget_impl.cc:1663:14
    #24 0x63a9761f2ce6 in UpdateVisualState ./../../third_party/blink/renderer/platform/widget/widget_base.cc:1027:12
    #25 0x63a9761f2ce6 in non-virtual thunk to blink::WidgetBase::UpdateVisualState() ./../../third_party/blink/renderer/platform/widget/widget_base.cc:0:0
    #26 0x63a9685d7f9e in cc::LayerTreeHost::RequestMainFrameUpdate(bool) ./../../cc/trees/layer_tree_host.cc:386:12
    #27 0x63a968929d27 in cc::ProxyMain::BeginMainFrame(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>) ./../../cc/trees/proxy_main.cc:296:21
    #28 0x63a96895daca in Invoke<void (cc::ProxyMain::*)(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState> >), const base::WeakPtr<cc::ProxyMain> &, std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState> > > ./../../base/functional/bind_internal.h:738:12
    #29 0x63a96895daca in MakeItSo<void (cc::ProxyMain::*)(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState> >), std::__Cr::tuple<base::WeakPtr<cc::ProxyMain>, std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState> > > > ./../../base/functional/bind_internal.h:954:5
    #30 0x63a96895daca in void base::internal::Invoker<base::internal::FunctorTraits<void (cc::ProxyMain::*&&)(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>), base::WeakPtr<cc::ProxyMain>&&, std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>&&>, base::internal::BindState<true, true, false, void (cc::ProxyMain::*)(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>), base::WeakPtr<cc::ProxyMain>, std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>>, void ()>::RunImpl<void (cc::ProxyMain::*)(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>), std::__Cr::tuple<base::WeakPtr<cc::ProxyMain>, std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>>, 0ul, 1ul>(void (cc::ProxyMain::*&&)(std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>), std::__Cr::tuple<base::WeakPtr<cc::ProxyMain>, std::__Cr::unique_ptr<cc::BeginMainFrameAndCommitState, std::__Cr::default_delete<cc::BeginMainFrameAndCommitState>>>&&, std::__Cr::integer_sequence<unsigned long, 0ul, 1ul>) ./../../base/functional/bind_internal.h:1067:14
    #31 0x63a93d44d4f8 in base::OnceCallback<void ()>::Run() && ./../../base/functional/callback.h:156:12
    #32 0x63a95f3ccd8c in base::TaskAnnotator::RunTaskImpl(base::PendingTask&) ./../../base/task/common/task_annotator.cc:202:34
    #33 0x63a95f473609 in RunTask<(lambda at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:473:11)> ./../../base/task/common/task_annotator.h:98:5
    #34 0x63a95f473609 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:471:23
    #35 0x63a95f4718ba in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:332:40
    #36 0x63a95f474b5b in non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:0:0
    #37 0x63a95f28090b in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_default.cc:40:55
    #38 0x63a95f475cb8 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:641:12
    #39 0x63a95f34b020 in base::RunLoop::Run(base::Location const&) ./../../base/run_loop.cc:133:14
    #40 0x63a97f98da9d in content::RendererMain(content::MainFunctionParams) ./../../content/renderer/renderer_main.cc:361:16
    #41 0x63a95c23b8f7 in content::RunZygote(content::ContentMainDelegate*) ./../../content/app/content_main_runner_impl.cc:700:14
    #42 0x63a95c23cc43 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:804:12
    #43 0x63a95c23fa5f in content::ContentMainRunnerImpl::Run() ./../../content/app/content_main_runner_impl.cc:1164:10
    #44 0x63a95c2397f3 in content::RunContentProcess(content::ContentMainParams, content::ContentMainRunner*) ./../../content/app/content_main.cc:356:36
    #45 0x63a95c23a05c in content::ContentMain(content::ContentMainParams) ./../../content/app/content_main.cc:369:10
    #46 0x63a9625187d6 in content::LaunchTestsInternal(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:385:12
    #47 0x63a962519512 in content::LaunchTests(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:504:10
    #48 0x63a96dc8f449 in LaunchChromeTests(unsigned long, content::TestLauncherDelegate*, int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:338:10
    #49 0x63a95ef8f627 in main ./../../chrome/test/base/browser_tests_main.cc:60:10
    #50 0x780e7da29d90 in __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #51 0x780e7da29e40 in __libc_start_main ./csu/../csu/libc-start.c:392:3
    #52 0x63a93d34702a in _start ??:0:0
Task trace:
    #0 0x63a9689511e6 in cc::ProxyImpl::ScheduledActionSendBeginMainFrame(viz::BeginFrameArgs const&) ./../../cc/trees/proxy_impl.cc:760:7
    #1 0x63a96892e967 in cc::ProxyMain::SendCommitRequestToImplThreadIfNeeded(cc::ProxyMain::CommitPipelineStage) ./../../cc/trees/proxy_main.cc:878:7
    #2 0x63a976caa6c1 in blink::HTMLDocumentParser::SchedulePumpTokenizer(bool) ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:890:7
    #3 0x63a976caa6c1 in blink::HTMLDocumentParser::SchedulePumpTokenizer(bool) ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:890:7
    #4 0x63a976caa6c1 in blink::HTMLDocumentParser::SchedulePumpTokenizer(bool) ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:890:7
Task trace buffer limit hit, update PendingTask::kTaskBacktraceLength to increase.
Crash keys:
... [omitted rest]

[3] PreviewBrowserTest.ErrorOnRedirectionToNonHttpsUrl stack trace:
[ RUN      ] PreviewBrowserTest.ErrorOnRedirectionToNonHttpsUrl
[444109:444109:1025/041553.399357:WARNING:field_trial_util.cc(106)] Field trial config study skipped: LinkPreview.EnabledAltClick (some of its features are already overridden)
[444109:444109:1025/041553.404344:WARNING:field_trial_util.cc(106)] Field trial config study skipped: PreconnectToSearchDesktop.EnabledWithStartupDelayForegroundOnly (some of its features are already overridden)
[444182:444182:1025/041554.079734:WARNING:gpu_memory_buffer_support_x11.cc(49)] dri3 extension not supported.
[444182:444182:1025/041554.104499:WARNING:sandbox_linux.cc(430)] InitializeSandbox() called with multiple threads in process gpu-process.
[444182:444182:1025/041554.121502:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[444183:444252:1025/041556.053677:WARNING:simple_synchronous_entry.cc(1449)] Could not open platform files for entry.
[444109:444109:1025/041557.583553:WARNING:idle_linux.cc(110)] None of the known D-Bus ScreenSaver services could be used.
[444109:444362:1025/041558.554846:WARNING:embedded_test_server.cc(757)] Request not handled. Returning 404: /favicon.ico
[444383:444383:1025/041559.563402:ERROR:html_media_element.cc(4927)] SetError: {code=4, message="MEDIA_ELEMENT_ERROR: Media load rejected by URL safety check"}
[444383:444383:1025/041559.590330:ERROR:html_media_element.cc(4927)] SetError: {code=4, message="MEDIA_ELEMENT_ERROR: Media load rejected by URL safety check"}
[444383:444383:1025/041559.591717:ERROR:html_media_element.cc(4927)] SetError: {code=4, message="MEDIA_ELEMENT_ERROR: Media load rejected by URL safety check"}
chrome/browser/preloading/preview/preview_test_util.cc:35: Failure
Failed
RunLoop::Run() timed out. Timeout set at ProxyRunTestOnMainThreadLoop@content/public/test/browser_test_base.cc:862.
Stack trace:
    #0 0x581999742852 in base::test::(anonymous namespace)::TimeoutCallbackWithGtestFailure(base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&) ./../../base/test/scoped_run_loop_timeout.cc:59:3
    #1 0x581999743998 in Invoke<void (*const &)(const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &), const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &> ./../../base/functional/bind_internal.h:671:12
    #2 0x581999743998 in MakeItSo<void (*const &)(const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &), const std::__Cr::tuple<> &, const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &> ./../../base/functional/bind_internal.h:930:12
    #3 0x581999743998 in RunImpl<void (*const &)(const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &), const std::__Cr::tuple<> &> ./../../base/functional/bind_internal.h:1067:14
    #4 0x581999743998 in base::internal::Invoker<base::internal::FunctorTraits<void (* const&)(base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&)>, base::internal::BindState<false, true, false, void (*)(base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&)>, void (base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&)>::Run(base::internal::BindStateBase*, base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>&&, base::Location const&) ./../../base/functional/bind_internal.h:987:12
    #5 0x58199974311b in base::RepeatingCallback<void (base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&)>::Run(base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&) const & ./../../base/functional/callback.h:344:12
    #6 0x581999742dde in Invoke<const base::RepeatingCallback<void (const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &)> &, const base::Location &, const base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()> &, const base::Location &> ./../../base/functional/bind_internal.h:830:49
    #7 0x581999742dde in MakeItSo<const base::RepeatingCallback<void (const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &)> &, const std::__Cr::tuple<base::Location, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()> > &, const base::Location &> ./../../base/functional/bind_internal.h:930:12
    #8 0x581999742dde in RunImpl<const base::RepeatingCallback<void (const base::Location &, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()>, const base::Location &)> &, const std::__Cr::tuple<base::Location, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > ()> > &, 0UL, 1UL> ./../../base/functional/bind_internal.h:1067:14
    #9 0x581999742dde in base::internal::Invoker<base::internal::FunctorTraits<base::RepeatingCallback<void (base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&)> const&, base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()> const&>, base::internal::BindState<false, true, true, base::RepeatingCallback<void (base::Location const&, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>, base::Location const&)>, base::Location, base::RepeatingCallback<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> ()>>, void (base::Location const&)>::Run(base::internal::BindStateBase*, base::Location const&) ./../../base/functional/bind_internal.h:987:12
    #10 0x5819993b1250 in base::OnceCallback<void (base::Location const&)>::Run(base::Location const&) && ./../../base/functional/callback.h:156:12
    #11 0x5819993aa151 in base::(anonymous namespace)::OnRunLoopTimeout(base::RunLoop*, base::Location const&, base::OnceCallback<void (base::Location const&)>) ./../../base/run_loop.cc:40:25
    #12 0x5819993b0c25 in Invoke<void (*)(base::RunLoop *, const base::Location &, base::OnceCallback<void (const base::Location &)>), base::RunLoop *, base::Location, base::RepeatingCallback<void (const base::Location &)> > ./../../base/functional/bind_internal.h:671:12
    #13 0x5819993b0c25 in MakeItSo<void (*)(base::RunLoop *, const base::Location &, base::OnceCallback<void (const base::Location &)>), std::__Cr::tuple<base::internal::UnretainedWrapper<base::RunLoop, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0>, base::Location, base::RepeatingCallback<void (const base::Location &)> > > ./../../base/functional/bind_internal.h:930:12
    #14 0x5819993b0c25 in RunImpl<void (*)(base::RunLoop *, const base::Location &, base::OnceCallback<void (const base::Location &)>), std::__Cr::tuple<base::internal::UnretainedWrapper<base::RunLoop, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0>, base::Location, base::RepeatingCallback<void (const base::Location &)> >, 0UL, 1UL, 2UL> ./../../base/functional/bind_internal.h:1067:14
    #15 0x5819993b0c25 in base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(base::RunLoop*, base::Location const&, base::OnceCallback<void (base::Location const&)>), base::RunLoop*, base::Location&&, base::RepeatingCallback<void (base::Location const&)>&&>, base::internal::BindState<false, true, false, void (*)(base::RunLoop*, base::Location const&, base::OnceCallback<void (base::Location const&)>), base::internal::UnretainedWrapper<base::RunLoop, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0>, base::Location, base::RepeatingCallback<void (base::Location const&)>>, void ()>::RunOnce(base::internal::BindStateBase*) ./../../base/functional/bind_internal.h:980:12
    #16 0x5819774ab4f8 in base::OnceCallback<void ()>::Run() && ./../../base/functional/callback.h:156:12
    #17 0x58197f9e29d4 in void base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>::ForwardOnce<>() ./../../base/cancelable_callback.h:134:26
    #18 0x58197f9e2f2e in Invoke<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), const base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > &> ./../../base/functional/bind_internal.h:738:12
    #19 0x58197f9e2f2e in MakeItSo<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), std::__Cr::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > > > ./../../base/functional/bind_internal.h:954:5
    #20 0x58197f9e2f2e in void base::internal::Invoker<base::internal::FunctorTraits<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>::*&&)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>>&&>, base::internal::BindState<true, true, false, void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>>>, void ()>::RunImpl<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>::*)(), std::__Cr::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>>>, 0ul>(void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>::*&&)(), std::__Cr::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()>>>>&&, std::__Cr::integer_sequence<unsigned long, 0ul>) ./../../base/functional/bind_internal.h:1067:14
    #21 0x5819774ab4f8 in base::OnceCallback<void ()>::Run() && ./../../base/functional/callback.h:156:12
    #22 0x58199942ad8c in base::TaskAnnotator::RunTaskImpl(base::PendingTask&) ./../../base/task/common/task_annotator.cc:202:34
    #23 0x5819994d1609 in RunTask<(lambda at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:473:11)> ./../../base/task/common/task_annotator.h:98:5
    #24 0x5819994d1609 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:471:23
    #25 0x5819994cf8ba in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:332:40
    #26 0x5819994d2b5b in non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:0:0
    #27 0x5819996866c3 in base::MessagePumpGlib::HandleDispatch() ./../../base/message_loop/message_pump_glib.cc:649:46
    #28 0x581999689959 in base::(anonymous namespace)::WorkSourceDispatch(_GSource*, int (*)(void*), void*) ./../../base/message_loop/message_pump_glib.cc:274:43
    #29 0x703e1f8f4d3b in g_main_context_dispatch ??:0:0
    #30 0x703e1f94a2b8 in g_io_channel_new_file ??:?
    #31 0x703e1f8f23e3 in g_main_context_iteration ??:0:0
    #32 0x581999686cf0 in base::MessagePumpGlib::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_glib.cc:683:30
    #33 0x5819994d3cb8 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:641:12
    #34 0x5819993a9020 in base::RunLoop::Run(base::Location const&) ./../../base/run_loop.cc:133:14
    #35 0x58199909ac37 in Wait ./../../chrome/browser/preloading/preview/preview_test_util.cc:35:17
    #36 0x58199909ac37 in test::PreviewTestHelper::WaitUntilLoadFinished() ./../../chrome/browser/preloading/preview/preview_test_util.cc:90:16
    #37 0x58197f539b56 in PreviewBrowserTest_ErrorOnRedirectionToNonHttpsUrl_Test::RunTestOnMainThread() ./../../chrome/browser/preloading/preview/preview_browsertest.cc:309:12
    #38 0x58199c3a39c1 in content::BrowserTestBase::ProxyRunTestOnMainThreadLoop() ./../../content/public/test/browser_test_base.cc:955:9
    #39 0x58199c3a81c4 in Invoke<void (content::BrowserTestBase::*)(), content::BrowserTestBase *> ./../../base/functional/bind_internal.h:738:12
    #40 0x58199c3a81c4 in MakeItSo<void (content::BrowserTestBase::*)(), std::__Cr::tuple<base::internal::UnretainedWrapper<content::BrowserTestBase, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0> > > ./../../base/functional/bind_internal.h:930:12
    #41 0x58199c3a81c4 in RunImpl<void (content::BrowserTestBase::*)(), std::__Cr::tuple<base::internal::UnretainedWrapper<content::BrowserTestBase, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0> >, 0UL> ./../../base/functional/bind_internal.h:1067:14
    #42 0x58199c3a81c4 in base::internal::Invoker<base::internal::FunctorTraits<void (content::BrowserTestBase::*&&)(), content::BrowserTestBase*>, base::internal::BindState<true, true, false, void (content::BrowserTestBase::*)(), base::internal::UnretainedWrapper<content::BrowserTestBase, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0>>, void ()>::RunOnce(base::internal::BindStateBase*) ./../../base/functional/bind_internal.h:980:12
    #43 0x5819774ab4f8 in base::OnceCallback<void ()>::Run() && ./../../base/functional/callback.h:156:12
    #44 0x58198e84361a in InterceptMainMessageLoopRun ./../../content/browser/browser_main_loop.cc:1074:36
    #45 0x58198e84361a in content::BrowserMainLoop::RunMainMessageLoop() ./../../content/browser/browser_main_loop.cc:1086:7
    #46 0x58198e84c18d in content::BrowserMainRunnerImpl::Run() ./../../content/browser/browser_main_runner_impl.cc:156:15
    #47 0x58198e839c99 in content::BrowserMain(content::MainFunctionParams) ./../../content/browser/browser_main.cc:34:28
    #48 0x58199629a625 in content::RunBrowserProcessMain(content::MainFunctionParams, content::ContentMainDelegate*) ./../../content/app/content_main_runner_impl.cc:732:10
    #49 0x58199629e5ed in content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams, bool) ./../../content/app/content_main_runner_impl.cc:1311:10
    #50 0x58199629da92 in content::ContentMainRunnerImpl::Run() ./../../content/app/content_main_runner_impl.cc:1162:12
    #51 0x5819962977f3 in content::RunContentProcess(content::ContentMainParams, content::ContentMainRunner*) ./../../content/app/content_main.cc:356:36
    #52 0x58199629805c in content::ContentMain(content::ContentMainParams) ./../../content/app/content_main.cc:369:10
    #53 0x58199c3a1792 in content::BrowserTestBase::SetUp() ./../../content/public/test/browser_test_base.cc:622:3
    #54 0x5819991ef1d3 in InProcessBrowserTest::SetUp() ./../../chrome/test/base/in_process_browser_test.cc:542:20

[444109:444109:1025/041658.647315:FATAL:preview_manager.cc(73)] Check failed: tab_.
    #0 0x5819773eb586 in ___interceptor_backtrace /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:4441:13
    #1 0x58199963a688 in base::debug::CollectStackTrace(base::span<void const*, 18446744073709551615ul, void const**>) ./../../base/debug/stack_trace_posix.cc:1047:7
    #2 0x5819995f1489 in base::debug::StackTrace::StackTrace(unsigned long) ./../../base/debug/stack_trace.cc:245:20
    #3 0x5819992b1ece in logging::LogMessage::Flush() ./../../base/logging.cc:725:29
    #4 0x5819992b196d in logging::LogMessage::~LogMessage() ./../../base/logging.cc:713:3
    #5 0x58199926556b in ~CheckLogMessage ./../../base/check.cc:193:3
    #6 0x58199926556b in logging::(anonymous namespace)::CheckLogMessage::~CheckLogMessage() ./../../base/check.cc:190:31
    #7 0x581999264f30 in operator() ./../../third_party/libc++/src/include/__memory/unique_ptr.h:75:5
    #8 0x581999264f30 in reset ./../../third_party/libc++/src/include/__memory/unique_ptr.h:297:7
    #9 0x581999264f30 in logging::NotReachedError::~NotReachedError() ./../../base/check.cc:355:16
    #10 0x58199a3afe8f in PreviewManager::GetWebContentsForPreviewTab() ./../../chrome/browser/preloading/preview/preview_manager.cc:73:3
    #11 0x58197f539b87 in PreviewBrowserTest_ErrorOnRedirectionToNonHttpsUrl_Test::RunTestOnMainThread() ./../../chrome/browser/preloading/preview/preview_browsertest.cc:312:16
    #12 0x58199c3a39c1 in content::BrowserTestBase::ProxyRunTestOnMainThreadLoop() ./../../content/public/test/browser_test_base.cc:955:9
    #13 0x58199c3a81c4 in Invoke<void (content::BrowserTestBase::*)(), content::BrowserTestBase *> ./../../base/functional/bind_internal.h:738:12
    #14 0x58199c3a81c4 in MakeItSo<void (content::BrowserTestBase::*)(), std::__Cr::tuple<base::internal::UnretainedWrapper<content::BrowserTestBase, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0> > > ./../../base/functional/bind_internal.h:930:12
    #15 0x58199c3a81c4 in RunImpl<void (content::BrowserTestBase::*)(), std::__Cr::tuple<base::internal::UnretainedWrapper<content::BrowserTestBase, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0> >, 0UL> ./../../base/functional/bind_internal.h:1067:14
    #16 0x58199c3a81c4 in base::internal::Invoker<base::internal::FunctorTraits<void (content::BrowserTestBase::*&&)(), content::BrowserTestBase*>, base::internal::BindState<true, true, false, void (content::BrowserTestBase::*)(), base::internal::UnretainedWrapper<content::BrowserTestBase, base::unretained_traits::MayNotDangle, (partition_alloc::internal::RawPtrTraits)0>>, void ()>::RunOnce(base::internal::BindStateBase*) ./../../base/functional/bind_internal.h:980:12
    #17 0x5819774ab4f8 in base::OnceCallback<void ()>::Run() && ./../../base/functional/callback.h:156:12
    #18 0x58198e84361a in InterceptMainMessageLoopRun ./../../content/browser/browser_main_loop.cc:1074:36
    #19 0x58198e84361a in content::BrowserMainLoop::RunMainMessageLoop() ./../../content/browser/browser_main_loop.cc:1086:7
    #20 0x58198e84c18d in content::BrowserMainRunnerImpl::Run() ./../../content/browser/browser_main_runner_impl.cc:156:15
    #21 0x58198e839c99 in content::BrowserMain(content::MainFunctionParams) ./../../content/browser/browser_main.cc:34:28
    #22 0x58199629a625 in content::RunBrowserProcessMain(content::MainFunctionParams, content::ContentMainDelegate*) ./../../content/app/content_main_runner_impl.cc:732:10
    #23 0x58199629e5ed in content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams, bool) ./../../content/app/content_main_runner_impl.cc:1311:10
    #24 0x58199629da92 in content::ContentMainRunnerImpl::Run() ./../../content/app/content_main_runner_impl.cc:1162:12
    #25 0x5819962977f3 in content::RunContentProcess(content::ContentMainParams, content::ContentMainRunner*) ./../../content/app/content_main.cc:356:36
    #26 0x58199629805c in content::ContentMain(content::ContentMainParams) ./../../content/app/content_main.cc:369:10
    #27 0x58199c3a1792 in content::BrowserTestBase::SetUp() ./../../content/public/test/browser_test_base.cc:622:3
    #28 0x5819991ef1d3 in InProcessBrowserTest::SetUp() ./../../chrome/test/base/in_process_browser_test.cc:542:20
    #29 0x581996ad3b19 in HandleExceptionsInMethodIfSupported<testing::Test, void> ./../../third_party/googletest/src/googletest/src/gtest.cc:0:0
    #30 0x581996ad3b19 in testing::Test::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2723:3
    #31 0x581996ad61c2 in testing::TestInfo::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2874:11
    #32 0x581996ad7d64 in testing::TestSuite::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:3052:30
    #33 0x581996aff5b5 in testing::internal::UnitTestImpl::RunAllTests() ./../../third_party/googletest/src/googletest/src/gtest.cc:5982:44
    #34 0x581996afe64f in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> ./../../third_party/googletest/src/googletest/src/gtest.cc:0:0
    #35 0x581996afe64f in testing::UnitTest::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:5561:10
    #36 0x581999761d1c in base::TestSuite::Run() ./../../base/test/test_suite.cc:421:16
    #37 0x5819a7cecba7 in RunTestSuiteInternal ./../../chrome/test/base/chrome_test_launcher.cc:99:22
    #38 0x5819a7cecba7 in ChromeTestSuiteRunner::RunTestSuite(int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:104:10
    #39 0x58199c576a7d in content::LaunchTestsInternal(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:409:31
    #40 0x58199c577512 in content::LaunchTests(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:504:10
    #41 0x5819a7ced449 in LaunchChromeTests(unsigned long, content::TestLauncherDelegate*, int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:338:10
    #42 0x581998fed627 in main ./../../chrome/test/base/browser_tests_main.cc:60:10
    #43 0x703e1da29d90 in __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #44 0x703e1da29e40 in __libc_start_main ./csu/../csu/libc-start.c:392:3
    #45 0x5819773a502a in _start ??:0:0
Crash keys:
... [omitted rest]


Original change's description:
> Prerender: first impl to dry run painting on prerendering page
>
> This CL triggers tree build right after renderer parsed the main DOM
> tree. CHCKEs on the browser side will guard the metric correctness.
> (See Ifd788c4b04f06a6b98caff1bb9df55af5fb8f07a)
> The following CLs will:
> 1. only trigger it for DSE.
> 2. add more metrics on the renderer side to verify the correctness.
>
> Bug: 40240492
> Change-Id: Icd94bad6a6ecfc5e492e4d9c4b4c227741c041d2
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5912738
> Reviewed-by: Hiroki Nakagawa <[email protected]>
> Reviewed-by: Taiyo Mizuhashi <[email protected]>
> Commit-Queue: Lingqi Chi <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1373803}

Bug: 40240492
Change-Id: I8729c84b4ceb1a77761c738f96c4c03675dfcdb0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5966495
Commit-Queue: Mark Pearson <[email protected]>
Bot-Commit: Rubber Stamper <[email protected]>
Owners-Override: Mark Pearson <[email protected]>
Auto-Submit: Mark Pearson <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1374047}
pull bot pushed a commit that referenced this pull request Dec 4, 2024
…s //media." #10

This reverts commit dd89c95.

Reason: https://groups.google.com/a/chromium.org/g/chromium-dev/c/KxzyXKv7adQ

Based on the discussion here, I have decided to terminate this work.

This CL was uploaded by git cl split.

[email protected]

Bug: 377144451
Change-Id: I59f2d9814338415445002c0fbb7b8a25f5e59caa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6066119
Reviewed-by: Colin Blundell <[email protected]>
Reviewed-by: Dale Curtis <[email protected]>
Commit-Queue: Ho Cheung <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1391375}
pull bot pushed a commit that referenced this pull request Jan 28, 2025
This reverts commit 5b0eb0d.

Reason for revert:
GlicStatusIconTest.ExecuteCommand test consistently fails on Linux UBSan Tests bot:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20UBSan%20Tests/

First failure was in this build, the same one where the change landed:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20UBSan%20Tests/3210/overview

The failure is
===
[ RUN      ] GlicStatusIconTest.ExecuteCommand
../../chrome/browser/glic/launcher/glic_status_icon.cc:90:57: runtime error: member call on null pointer of type 'glic::GlicProfileManager'
    #0 0x5715ce835751 in glic::GlicStatusIcon::ExecuteCommand(int, int) chrome/browser/glic/launcher/glic_status_icon.cc:90:57
    #1 0x5715c0d9a3fd in glic::GlicStatusIconTest_ExecuteCommand_Test::TestBody() chrome/browser/glic/launcher/glic_status_icon_unittest.cc:90:17
    #2 0x5715ce8a7b3e in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2728:5
    #3 0x5715ce8a9730 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2874:11
    #4 0x5715ce8abbdb in testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:3052:30
    #5 0x5715ce8c3418 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:6020:44
    #6 0x5715ce8c2317 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:5599:10
    #7 0x5715cf9bba9a in base::TestSuite::Run() base/test/test_suite.cc:424:16
    #8 0x5715d0b8969e in content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:190:23
    #9 0x5715bf16bcc3 in base::OnceCallback<int ()>::Run() && base/functional/callback.h:156:12
    #10 0x5715cf9c5abf in RunTestSuite base/test/launcher/unit_test_launcher.cc:188:38
    #11 0x5715cf9c5abf 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:271:10
    #12 0x5715cf9c56cf in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>, unsigned long) base/test/launcher/unit_test_launcher.cc:336:10
    #13 0x5715cf9812a4 in main chrome/test/base/run_all_unittests.cc:83:10
    #14 0x70e16a829d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #15 0x70e16a829e3f in __libc_start_main csu/../csu/libc-start.c:392:3
    #16 0x5715b77d4029 in _start (/b/s/w/ir/out/fd58-Linux_UBSan_Bui/unit_tests+0x1ff21029) (BuildId: bc8f3031e6d09fe5)

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../chrome/browser/glic/launcher/glic_status_icon.cc:90:57 
===

Original change's description:
> Add unit test for glic status icon
>
> Bug: 391706417
> Change-Id: I68aca3dd194ca04fd45d1dd94daffda82ca0f77e
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6203121
> Commit-Queue: Alison Gale <[email protected]>
> Code-Coverage: [email protected] <[email protected]>
> Reviewed-by: Erik Chen <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1411859}

Bug: 391706417
Change-Id: Ic227009761f576122a2f8e2a102b812fd6a66b2b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6203514
Bot-Commit: Rubber Stamper <[email protected]>
Auto-Submit: Mark Pearson <[email protected]>
Commit-Queue: Rubber Stamper <[email protected]>
Owners-Override: Mark Pearson <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1412018}
pull bot pushed a commit that referenced this pull request Jan 29, 2025
This reverts commit c1ff9e3.

Reason for revert: Land with fixes for failing builder. Only request
profile manager when needed

Passing run:
https://ci.chromium.org/ui/inv/u-agale-2025-01-28-19-50-00-97127e6aff791b32

Note that this doesn't solve the underlying initialization timing
of GlobalFeatures but I want to make sure we have some test
coverage checked in while investigating that.

Original change's description:
> Revert "Add unit test for glic status icon"
>
> This reverts commit 5b0eb0d.
>
> Reason for revert:
> GlicStatusIconTest.ExecuteCommand test consistently fails on Linux UBSan Tests bot:
> https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20UBSan%20Tests/
>
> First failure was in this build, the same one where the change landed:
> https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20UBSan%20Tests/3210/overview
>
> The failure is
> ===
> [ RUN      ] GlicStatusIconTest.ExecuteCommand
> ../../chrome/browser/glic/launcher/glic_status_icon.cc:90:57: runtime error: member call on null pointer of type 'glic::GlicProfileManager'
>     #0 0x5715ce835751 in glic::GlicStatusIcon::ExecuteCommand(int, int) chrome/browser/glic/launcher/glic_status_icon.cc:90:57
>     #1 0x5715c0d9a3fd in glic::GlicStatusIconTest_ExecuteCommand_Test::TestBody() chrome/browser/glic/launcher/glic_status_icon_unittest.cc:90:17
>     #2 0x5715ce8a7b3e in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2728:5
>     #3 0x5715ce8a9730 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2874:11
>     #4 0x5715ce8abbdb in testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:3052:30
>     #5 0x5715ce8c3418 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:6020:44
>     #6 0x5715ce8c2317 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:5599:10
>     #7 0x5715cf9bba9a in base::TestSuite::Run() base/test/test_suite.cc:424:16
>     #8 0x5715d0b8969e in content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:190:23
>     #9 0x5715bf16bcc3 in base::OnceCallback<int ()>::Run() && base/functional/callback.h:156:12
>     #10 0x5715cf9c5abf in RunTestSuite base/test/launcher/unit_test_launcher.cc:188:38
>     #11 0x5715cf9c5abf 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:271:10
>     #12 0x5715cf9c56cf in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>, unsigned long) base/test/launcher/unit_test_launcher.cc:336:10
>     #13 0x5715cf9812a4 in main chrome/test/base/run_all_unittests.cc:83:10
>     #14 0x70e16a829d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
>     #15 0x70e16a829e3f in __libc_start_main csu/../csu/libc-start.c:392:3
>     #16 0x5715b77d4029 in _start (/b/s/w/ir/out/fd58-Linux_UBSan_Bui/unit_tests+0x1ff21029) (BuildId: bc8f3031e6d09fe5)
>
> SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../chrome/browser/glic/launcher/glic_status_icon.cc:90:57
> ===
>
> Original change's description:
> > Add unit test for glic status icon
> >
> > Bug: 391706417
> > Change-Id: I68aca3dd194ca04fd45d1dd94daffda82ca0f77e
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6203121
> > Commit-Queue: Alison Gale <[email protected]>
> > Code-Coverage: [email protected] <[email protected]>
> > Reviewed-by: Erik Chen <[email protected]>
> > Cr-Commit-Position: refs/heads/main@{#1411859}
>
> Bug: 391706417
> Change-Id: Ic227009761f576122a2f8e2a102b812fd6a66b2b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6203514
> Bot-Commit: Rubber Stamper <[email protected]>
> Auto-Submit: Mark Pearson <[email protected]>
> Commit-Queue: Rubber Stamper <[email protected]>
> Owners-Override: Mark Pearson <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1412018}

Bug: 391706417
Change-Id: Ia23f037231fdfb0dcf6bbde8262f0257fc3af0d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6207131
Commit-Queue: Alison Gale <[email protected]>
Reviewed-by: Erik Chen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1412571}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.