The USAP pool management code contained two data races. One could cause
a double decrement if a runtime thread executed the SIGCHLD handler
while the server was responding to a pool exit message from a USAP. The
other data race could occur when the SIGCHLD handler executed in the
middle of a USAP pool flush.
The solution to the first race is to change the return value from a
helper function to ensure that the decrement only occurs when the entry
is invalidated through that specific invocation of the helper.
The second data race was fixed by using SIGTERM instead of SIGKILL when
flushing the USAP pool. This allows the Zygote to clear the table
entries outside of the SIGCHLD handler, and the handler to avoid
duplicate bookkeeping cleanup when this occurs. SIGTERM is used so that
it can be differentiated from other process termination events and so
that it can be blocked while the USAP is specializing, but hasn't yet
informed the Zygote of it's removal from the pool. This issue and this
fix will no longer be necessary once the Zygote signal handler has been
replaced with a signalfd.
Bug: 132794985
Test: atest SignedConfigHostTest
Change-Id: Ie01637a10b356b80b5aa62291a97f2c167242827
Merged-In: Ie01637a10b356b80b5aa62291a97f2c167242827
(cherry picked from commit fb329ba7c8)
This reverts commit 917327b193.
Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.
Bug: 134244752
Change-Id: Ibdaad3a4cbf0d8ef1ed53cfab1e454b9b878bae9
- User learning state is reset when leaving REMINDER_EXP behavior.
- Default parameters updated for easier testing and better experience
- Show and go only performed once per day when gesture has been learned
- Slightly delay handle showing when entering an apps with a longer
delay when switching between apps rapidly.
- Adds state dump to improve debugability.
- Adds ability to suppress handle showing in specific states using
flags.
Test: atest AssistHandleBehaviorControllerTest
Test: Tested locally
BUG:132983599
Change-Id: I7829ad55d7667f5db3633e702add709968dcd0a9
Previously, when the Game Driver package name is set, graphics driver preloading
is automatically disabled. Now we'd like to decouple the relation here. So Game
Driver could still work no matter graphics driver is preloaded in Zygote or not.
Bug: 134526352
Test: build, flash and boot.
Change-Id: Id720cc11e3365423dd9b984b7d30a2dbeecb6116
Button bar insets were set before the inset callback. Add a call to
layout the button bar during the inset callback.
Bug: 134472146
Test: Steps from defect
Change-Id: I0246f06315cd05343002071dd6d217d41e0059ca
Test was registering a listener, and events could come from wallpaper
manager making it unstable.
Fixes: 134485306
Test: atest SysuiColorExtractorTests
Change-Id: Ie838cbee0887f3503ce328d5c5b5603c413d5458
Also do a WTF when the same process registers 1000 observers with the
same observer instance.
Fix: 133388082
Test: manual test: Launch leaky app and make sure WTF is raised
Test: manual test: Open contacts app, close, and make sure the
"Total number of unique observers" goes back
Test: manual test: Open contacts app, kill it, and make sure the
"Total number of unique observers" goes back
Test: manual test: Open contacts app while contacts are syncing,
and make sure the activity refreshes itself.
Test: atest cts/tests/tests/content/src/android/content/cts/ContentResolverTest.java
Test: atest FrameworksCoreTests:BinderDeathDispatcherTest
Test: atest FrameworksServicesTests:com.android.server.content.ObserverNodeTest
Change-Id: Id738ca66023c029b92db3d108d99a9fc240fe77c
The mStartClockTime represents the time device is fully charged.
Currently mStartClockTime is set again whenever the device clock
changes. Since the device clock could change many times, we lost
original mStartClockTime value, unreasonable mStartClockTime values
for example 26 days could be returned (because the device clock changes)
when getStartClockTime() is called.
A better solution is to only set mStartClockTime when device is fully
charged, the value is persisted across device reboot. When getStartClockTime()
is called, we return adjusted value according to current time.
Change-Id: I49ded1519bc31daf1a51a572325cbbe67f1abd09
Fix: 132914064
Test: Manual test, checking Settings--Battery--Last full Charge
Support Accessibility education according to
1. Gesture Navigation is on or off
2. Screen reader feature (such as TalkBack) is enabled or not
Manual test screenshot: https://drive.google.com/open?id=1afTDRYPMcZphM5cL0krPDA_Vh9pRX-8x
Bug: 133811747
Test: Manual
Change-Id: I04ca36c9e88ff14e29103db41cfab2a9b53985d5
With gesture navigation, it no longer makes sense to force the navigation bar
to black in split screen, instead we can show the respective navbar backgrounds of
the applications.
Fixes: 130913061
Test: enable gesture navigation, enter splitscreen, observe that navigation bar backgrounds are properly drawn, also verify the same if IME is open.
Change-Id: If1464dd9cf0c5499c7c33caab06eb430fb59cb30
When using multi-mode and holding the phone in portrait, android will
report it's orientation as LANDSCAPE. Take multi-window mode into
account when determining fixed widths as well as number of items per
row.
Bug: 132828939
Test: Use multi-window mode
Change-Id: I97b722ea58c9f79aea2a3ab594c3ad7d78f8607c