| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a child SurfacePackage is set on a SurfaceView, the view's
RemoteAccessibilityController calls linkToDeath on the SurfacePackage's
IAccessibilityEmbeddedConnection. The death recipient -- the controller
itself -- is unlinked when the Surface is destroyed -- being notified
through a SurfaceChangedCallback registered on the ViewRootImpl.
There are 2 issues there:
* When the SurfaceView is detached, the SurfaceChangedCallback is
unregistered, so the unlinkToDeath never happens.
* The Surface holding the SurfaceView may never be destroyed, for
example in the case of the IME.
SurfacePackages sent over ipc seem to be used in only 2 places
currently:
* For inlined autofill suggestions in the input method. This bug causes
a serious leak here, since the memory is held in 2 persistent
processes -- autofill Session data in the system server (referenced
from the SurfaceViews), and SurfaceViews in the IME.
* The Wallpaper app.
For now, this is fixed by using a WeakRef for the
RemoteAccessibilityController. The root cause will be fixed in a
followup change in a later release.
Fix: 183402294
Test: manual:
* atest CtsAutoFillServiceTestCases:InlineLoginActivityTest\
--iterations 5
* Force gc: adb shell kill -10 $(adb shell pgrep ext.services mockime\
system_server -d '\ ')
* Rerun that a couple of times so the binder objects get cleared.
* Check for leaks of autofill.Session in system_server and
SurfaceViews or RemoteAccessibilityEmbeddedConnection in
com.android.cts.mockime.
Change-Id: I5447b173313919507969872bdeb7ff3038152c23
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The window matrix of the embedded window is not updated if the second
host SurfaceView doesn't have any offset. To esnure the window matrix
is up-to-date, we force to update the matrix when the embedded hierarchy
is initialized.
Bug: 229178859
Test: atest InlineFilteringTest#testFiltering_filtersByPrefix
atest android.accessibilityservice.cts
Change-Id: Ib23af520fcbaa1788e3ef22a1086b90a0801375c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The attachInfo from ViewRootImpl is not reliable
for DisplayArea manipulation or windowless window.
To fix this problem, we use the transform matrix of
InputWindowHandle, which could transform the bounds
from window coorindate to screen coordinate. We also
transfrom the bounds to logical display coordinates
with the associated display matrix.
Besides, we also record the magnification spec of the window,
which could get the bounds before magnification. We use
this value to decide the property 'visibleToUser'.
Bug: 200797785
Test: atest android.accessibilityservice.cts WindowInfoTest
atest com.android.server.accessibility
Change-Id: I0917b04fe8b027fb2bd932a6f0604ba1449ebc66
|
|
|
We extract the SurfaceControlViewHost accessibility logic from
SurfaceView. This is serving both cleaning up the code in SurfaceView
a little, while also serving the goal of one day using this
accessibility code from other components.
Test: Existing tests pass
Change-Id: I0333ab339e54e3766fffab25df92f00bdb9723dc
|