CSSValuePool was used to be static instance on main thread
only. But OffscreenCanvas in a worker requires to access
the CSS value caches in a non-main thread. This patch uses
the ThreadSpecific persistent handles to create static
CSSValuePool instances per thread when needed, and the
cleanup code is handled in ThreadState::cleanup() added by
patch https://codereview.chromium.org/1881933005.
As a result, WebKit unit tests (which does not use the
ThreadState::cleanup() as the worker thread) need to be
modified so that false positive leak errors will not be
reported.
In addition, an indirect memory leak "__strdup
/build/eglibc-3GlaMS/eglibc-2.19/string/strdup.c" is
generated in webkit unit tests; but after printing out the
full error stack trace, we observe that it eventually
originates from libfontconfig, a third_party library that
has leaks and has already been suppressed in
leak_suppression.cc. But the default stack trace is too
short on suppress this indirect memory leak; so we added
one more leak suppression underneath the libfontconfig.
BUG=599659
Review URL: https://codereview.chromium.org/1870503002
Cr-Original-Commit-Position: refs/heads/master@{#388815}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1174eb6ddb160985b51d1d45321e24c493aa7f83
The move to libvpx_new happened before M47 (landed in 2524, M47 branch was 2526):
crbug.com/481034
https://codereview.chromium.org/1323333002
Clients which try to transition directly between the tree after this change and before the previous move will end up in a very broken state.
Now it is 6 months later and M48 is stable so is unlikely that a client would check out the old code at all, much less try to transition directly between the two versions.
Leave a compatibility layer for targets which need to be updated out of band (webrtc, libyuv)
Review URL: https://codereview.chromium.org/1734613003
Cr-Original-Commit-Position: refs/heads/master@{#378739}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8cdf034791388299f18fba186f2941313320b706
The difference with this re-land is that it changes LazyInstance to be leaky to avoid a recursive lock acquisition in AtExitManager. It also doesn't make sense to destroy that instance since it's a cache of a command line flag.
BUG=539315
Review URL: https://codereview.chromium.org/1646223002
Cr-Commit-Position: refs/heads/master@{#372501}
Review URL: https://codereview.chromium.org/1663693002
Cr-Original-Commit-Position: refs/heads/master@{#373176}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6be610508ebbc1787e959e741861f6eecff02c8d
This change fixes two different races:
1. On destruction of BrowserThreadImpl, the thread is removed from the global
thread table after it is stopped. The process of stopping the thread destroys
the thread's message loop. However, PostTaskHelper accesses the message loop,
which races with the stopping thread. Reordering the two operations is not
sufficient because it doesn't handle subclasses (i.e. BrowserProcessSubThread)
stopping the thread.
2. There's a missing lock in GetCurrentThreadIdentifier when accessing the
global thread table. To track whether or not this causes lock contention, a
ScopedTracker has been added.
The two other changes are:
1. Remove uses of ScopedAllowSingleton. This isn't necessary any more since the
relevant objects are leaky.
2. Remove impossible cases in BrowserThreadImpl::Run().
BUG=115540
Review URL: https://codereview.chromium.org/1564193002
Cr-Original-Commit-Position: refs/heads/master@{#370560}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 83e3480a731d95a97ccc1eacd7b3356ded42b0d4
This also addresses a harmless read of uninitialized 2-bytes to quiet the Valgrind error. Also it adds a lock around the usage of initialized_ in RawChannel, even though it's not needed since it's just an optimization to avoid thread hops.
BUG=561803,571735
TBR=glider, thakis
Review URL: https://codereview.chromium.org/1549703002
Cr-Original-Commit-Position: refs/heads/master@{#366727}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9269e9ad8cb31a90e0ecfa0b24a597776d962d5d
The MessageLoopHelper 'helper' is created on the main thread in this test, so to
avoid a race condition move invocation of helper.CallbackCalled() from
CacheThread to the main thread.
BUG=313726
Review URL: https://codereview.chromium.org/1460053003
Cr-Original-Commit-Position: refs/heads/master@{#362429}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 07477ffeefe3587f8d91b36d388e7fb73dc4d8da
This makes it possible to test GLImage implementations without
requiring multi-process GpuMemoryBuffer support.
This initial version is limited to testing CopyTexSubImage with
the default buffer format but testing of more functionality and
formats will be added in follow up patches.
Also includes some minor cleanup needed to not have GLImage
implementations depend on GpuMemoryBuffer API.
BUG=538325
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1354483004
Cr-Original-Commit-Position: refs/heads/master@{#353735}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8aa0fb1d78963610ab62a349d1dff9bd2e065a3e
This makes it possible to test GLImage implementations without
requiring multi-process GpuMemoryBuffer support.
This initial version is limited to testing CopyTexSubImage with
the default buffer format but testing of more functionality and
formats will be added in follow up patches.
Also inlcudes some minor cleanup needed to not have GLImage
implementations depend on GpuMemoryBuffer API.
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1354483004
Cr-Original-Commit-Position: refs/heads/master@{#352767}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 11b3655a4dfd5b46f7783421e2959a41ddbf3a00
This makes it possible to test GLImage implementations without
requiring multi-process GpuMemoryBuffer support.
This initial version is limited to testing CopyTexSubImage with
the default buffer format but testing of more functionality and
formats will be added in follow up patches.
Also inlcudes some minor cleanup needed to not have GLImage
implementations depend on GpuMemoryBuffer API.
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1354483004
Cr-Original-Commit-Position: refs/heads/master@{#352720}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f9d17986fef45ad30ef4e6e468a7a56a90851508
Leaves the previous version in place but updates BUILD.gn and libvpx.gn to point to the new version. This allows decoupling the WebRTC update which is also in DEPS.
libvpx DEPS changes ac1772e:0d6551
https://codereview.chromium.org/1339033002https://chromium-review.googlesource.com/299759https://codereview.chromium.org/1350853003https://codereview.chromium.org/1353433003
Copy directory to libvpx_new to avoid breaking bisecting. This allows the user to move between and older and newer revision. A followup to rename libvpx_new to libvpx will come in some ~months because there are additional complications if one tries to sync directly from pre-move to post-rename or the other way around.
Remove WATCHLISTS and codereview.settings from _new and use the parent versions.
Add DEPS file to enumerate the #include paths.
Check out third_party/libvpx_new/source/libvpx directly from upstream project
Update all the easy clients of libvpx to depend on the new tree directly.
ac1772e3db
BUG=481034
R=tomfinegan@chromium.org,brettw@chromium.org,phajdan.jr@chromium.org
Review URL: https://codereview.chromium.org/1323333002
Cr-Original-Commit-Position: refs/heads/master@{#349789}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5238138a422157576799266228c0c9ee174936ae
But make it not strict. This is roughly the same behavior as we had
before the clang roll and the workaround in crbug.com/523384.
BUG=523384
Review URL: https://codereview.chromium.org/1308023005
Cr-Original-Commit-Position: refs/heads/master@{#345991}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5ae1e02429f0aa082ec2e2b524c38031087c47bc
There is a possible race in which
NetworkChangeNotifier::test_notifications_only_ might be read on one
thread while being written on another. This CL fixes that by making
the variable static and only allowing writes to it before the
NetworkChangeNotifier is created (before other things might try to
read it).
BUG=454652
Review URL: https://codereview.chromium.org/1255263002
Cr-Original-Commit-Position: refs/heads/master@{#341354}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e160f6be485deabcb4725d7e3623ae18ef5aee48
Also fix a data race with ThreadData::status_. TSan doesn't see this race explicitly, but it contributes to a race with the use of StaticSlot in ThreadData::tls_index_.
BUG=268941
TESTED=Ran base_unittests.
TSAN errors before: lots, oodles, slathers, acres
After: Zip, zilch, nadda
Review URL: https://codereview.chromium.org/1222123002
Cr-Original-Commit-Position: refs/heads/master@{#339219}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 42d16882080508876676ef164c1f7a863ca1fbf3
In content_browsertests, LSAN reports the leak happens in
ResourceFetcher, but its (persistent|ref) pointer is held
by a live instance of Document or DocumentLoader at the
end of the tests.
BUG=506433
Review URL: https://codereview.chromium.org/1216963014
Cr-Original-Commit-Position: refs/heads/master@{#337371}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2af3041652d3a473995babb42e0d71778427dfdf