From b8afa7f7b99936e4313608965765dfaf6863cce2 Mon Sep 17 00:00:00 2001 From: Chavi Weingarten Date: Fri, 28 Oct 2022 19:54:51 +0000 Subject: Make SurfaceSyncGroup AIDL interface and add cross process syncs When two processes are involved in a sync, we don't want them to exchange Transaction info because it may contain SurfaceControls that the two transactions shouldn't exchange. Instead, have system server take care of the cross process syncs and ensure SurfaceSyncGroup sends the data to system server instead of to the two apps. This is done by the following flow: 1. P1 creates a SyncGroup 2. P1 adds something local to the SyncGroup. No WM API is called. 3. P1 adds something in P2 to SyncGroup 3a. P1 creates a SyncGroup in WM with P1's SyncGroup as token 3b. P1 notifies P2 that it should be added to the SyncGroup with a specified token 3c. P2 invokes WM call and adds itself to the same SyncGroup in WM When P1 and P2 groups are done, they will invoke the transaction callback to WM, who will merge into a single transaction 4. P1 marks SyncGroup as ready, which calls into WM to mark the associated SyncGroup as ready. When all callbacks are complete, it will apply the final transaction Test: SurfaceSyncGroupContinuousTest Bug: 237804605 Change-Id: I0f52f2e2d1a95e0ecc2b95b6dddd2ebb5b3edb54 --- tests/SurfaceControlViewHostTest/Android.bp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tests/SurfaceControlViewHostTest/Android.bp') diff --git a/tests/SurfaceControlViewHostTest/Android.bp b/tests/SurfaceControlViewHostTest/Android.bp index 0127ba559500..99567b9a10b4 100644 --- a/tests/SurfaceControlViewHostTest/Android.bp +++ b/tests/SurfaceControlViewHostTest/Android.bp @@ -25,7 +25,10 @@ package { android_test { name: "SurfaceControlViewHostTest", - srcs: ["**/*.java"], + srcs: [ + "**/*.aidl", + "**/*.java", + ], platform_apis: true, certificate: "platform", } -- cgit v1.2.3-59-g8ed1b