Loading services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +10 −7 Original line number Diff line number Diff line Loading @@ -398,7 +398,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ if (!mSecurityPolicy.checkAccessibilityAccess(this)) { return null; } AccessibilityWindowInfo window = mA11yWindowManager.findA11yWindowInfoById(windowId); AccessibilityWindowInfo window = mA11yWindowManager.findA11yWindowInfoByIdLocked(windowId); if (window != null) { AccessibilityWindowInfo windowClone = AccessibilityWindowInfo.obtain(window); windowClone.setConnectionId(mId); Loading Loading @@ -1362,11 +1363,11 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ || (action == ACTION_CLEAR_ACCESSIBILITY_FOCUS); if (!isA11yFocusAction) { final WindowInfo windowInfo = mA11yWindowManager.findWindowInfoById(resolvedWindowId); mA11yWindowManager.findWindowInfoByIdLocked(resolvedWindowId); if (windowInfo != null) activityToken = windowInfo.activityToken; } final AccessibilityWindowInfo a11yWindowInfo = mA11yWindowManager.findA11yWindowInfoById(resolvedWindowId); mA11yWindowManager.findA11yWindowInfoByIdLocked(resolvedWindowId); if (a11yWindowInfo != null && a11yWindowInfo.isInPictureInPictureMode() && mA11yWindowManager.getPictureInPictureActionReplacingConnection() != null && !isA11yFocusAction) { Loading Loading @@ -1419,12 +1420,14 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ int interactionId, int interrogatingPid, long interrogatingTid) { final RemoteAccessibilityConnection pipActionReplacingConnection = mA11yWindowManager.getPictureInPictureActionReplacingConnection(); synchronized (mLock) { final AccessibilityWindowInfo windowInfo = mA11yWindowManager.findA11yWindowInfoById(resolvedWindowId); mA11yWindowManager.findA11yWindowInfoByIdLocked(resolvedWindowId); if ((windowInfo == null) || !windowInfo.isInPictureInPictureMode() || (pipActionReplacingConnection == null)) { return originalCallback; } } return new ActionReplacingCallback(originalCallback, pipActionReplacingConnection.getRemote(), interactionId, interrogatingPid, interrogatingTid); Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -542,7 +542,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (event.getWindowId() == AccessibilityWindowInfo.PICTURE_IN_PICTURE_ACTION_REPLACER_WINDOW_ID) { // The replacer window isn't shown to services. Move its events into the pip. AccessibilityWindowInfo pip = mA11yWindowManager.getPictureInPictureWindow(); AccessibilityWindowInfo pip = mA11yWindowManager.getPictureInPictureWindowLocked(); if (pip != null) { int pipId = pip.getId(); event.setWindowId(pipId); Loading Loading @@ -771,7 +771,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (resolvedUserId != mCurrentUserId) { return null; } if (mA11yWindowManager.findA11yWindowInfoById(windowId) == null) { if (mA11yWindowManager.findA11yWindowInfoByIdLocked(windowId) == null) { return null; } return mA11yWindowManager.getWindowTokenForUserAndWindowIdLocked(userId, windowId); Loading services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +1 −1 Original line number Diff line number Diff line Loading @@ -429,7 +429,7 @@ public class AccessibilitySecurityPolicy { if (windowId == mAccessibilityWindowManager.getActiveWindowId(userId)) { return true; } return mAccessibilityWindowManager.findA11yWindowInfoById(windowId) != null; return mAccessibilityWindowManager.findA11yWindowInfoByIdLocked(windowId) != null; } private boolean isShellAllowedToRetrieveWindowLocked(int userId, int windowId) { Loading services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java +658 −523 File changed.Preview size limit exceeded, changes collapsed. Show changes services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -179,9 +179,9 @@ public class AbstractAccessibilityServiceConnectionTest { addA11yWindowInfo(mA11yWindowInfos, WINDOWID, false); addA11yWindowInfo(mA11yWindowInfos, PIP_WINDOWID, true); when(mMockA11yWindowManager.getWindowListLocked()).thenReturn(mA11yWindowInfos); when(mMockA11yWindowManager.findA11yWindowInfoById(WINDOWID)) when(mMockA11yWindowManager.findA11yWindowInfoByIdLocked(WINDOWID)) .thenReturn(mA11yWindowInfos.get(0)); when(mMockA11yWindowManager.findA11yWindowInfoById(PIP_WINDOWID)) when(mMockA11yWindowManager.findA11yWindowInfoByIdLocked(PIP_WINDOWID)) .thenReturn(mA11yWindowInfos.get(1)); final RemoteAccessibilityConnection conn = getRemoteA11yConnection( WINDOWID, mMockIA11yInteractionConnection, PACKAGE_NAME1); Loading Loading
services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +10 −7 Original line number Diff line number Diff line Loading @@ -398,7 +398,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ if (!mSecurityPolicy.checkAccessibilityAccess(this)) { return null; } AccessibilityWindowInfo window = mA11yWindowManager.findA11yWindowInfoById(windowId); AccessibilityWindowInfo window = mA11yWindowManager.findA11yWindowInfoByIdLocked(windowId); if (window != null) { AccessibilityWindowInfo windowClone = AccessibilityWindowInfo.obtain(window); windowClone.setConnectionId(mId); Loading Loading @@ -1362,11 +1363,11 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ || (action == ACTION_CLEAR_ACCESSIBILITY_FOCUS); if (!isA11yFocusAction) { final WindowInfo windowInfo = mA11yWindowManager.findWindowInfoById(resolvedWindowId); mA11yWindowManager.findWindowInfoByIdLocked(resolvedWindowId); if (windowInfo != null) activityToken = windowInfo.activityToken; } final AccessibilityWindowInfo a11yWindowInfo = mA11yWindowManager.findA11yWindowInfoById(resolvedWindowId); mA11yWindowManager.findA11yWindowInfoByIdLocked(resolvedWindowId); if (a11yWindowInfo != null && a11yWindowInfo.isInPictureInPictureMode() && mA11yWindowManager.getPictureInPictureActionReplacingConnection() != null && !isA11yFocusAction) { Loading Loading @@ -1419,12 +1420,14 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ int interactionId, int interrogatingPid, long interrogatingTid) { final RemoteAccessibilityConnection pipActionReplacingConnection = mA11yWindowManager.getPictureInPictureActionReplacingConnection(); synchronized (mLock) { final AccessibilityWindowInfo windowInfo = mA11yWindowManager.findA11yWindowInfoById(resolvedWindowId); mA11yWindowManager.findA11yWindowInfoByIdLocked(resolvedWindowId); if ((windowInfo == null) || !windowInfo.isInPictureInPictureMode() || (pipActionReplacingConnection == null)) { return originalCallback; } } return new ActionReplacingCallback(originalCallback, pipActionReplacingConnection.getRemote(), interactionId, interrogatingPid, interrogatingTid); Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -542,7 +542,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (event.getWindowId() == AccessibilityWindowInfo.PICTURE_IN_PICTURE_ACTION_REPLACER_WINDOW_ID) { // The replacer window isn't shown to services. Move its events into the pip. AccessibilityWindowInfo pip = mA11yWindowManager.getPictureInPictureWindow(); AccessibilityWindowInfo pip = mA11yWindowManager.getPictureInPictureWindowLocked(); if (pip != null) { int pipId = pip.getId(); event.setWindowId(pipId); Loading Loading @@ -771,7 +771,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (resolvedUserId != mCurrentUserId) { return null; } if (mA11yWindowManager.findA11yWindowInfoById(windowId) == null) { if (mA11yWindowManager.findA11yWindowInfoByIdLocked(windowId) == null) { return null; } return mA11yWindowManager.getWindowTokenForUserAndWindowIdLocked(userId, windowId); Loading
services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +1 −1 Original line number Diff line number Diff line Loading @@ -429,7 +429,7 @@ public class AccessibilitySecurityPolicy { if (windowId == mAccessibilityWindowManager.getActiveWindowId(userId)) { return true; } return mAccessibilityWindowManager.findA11yWindowInfoById(windowId) != null; return mAccessibilityWindowManager.findA11yWindowInfoByIdLocked(windowId) != null; } private boolean isShellAllowedToRetrieveWindowLocked(int userId, int windowId) { Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java +658 −523 File changed.Preview size limit exceeded, changes collapsed. Show changes
services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -179,9 +179,9 @@ public class AbstractAccessibilityServiceConnectionTest { addA11yWindowInfo(mA11yWindowInfos, WINDOWID, false); addA11yWindowInfo(mA11yWindowInfos, PIP_WINDOWID, true); when(mMockA11yWindowManager.getWindowListLocked()).thenReturn(mA11yWindowInfos); when(mMockA11yWindowManager.findA11yWindowInfoById(WINDOWID)) when(mMockA11yWindowManager.findA11yWindowInfoByIdLocked(WINDOWID)) .thenReturn(mA11yWindowInfos.get(0)); when(mMockA11yWindowManager.findA11yWindowInfoById(PIP_WINDOWID)) when(mMockA11yWindowManager.findA11yWindowInfoByIdLocked(PIP_WINDOWID)) .thenReturn(mA11yWindowInfos.get(1)); final RemoteAccessibilityConnection conn = getRemoteA11yConnection( WINDOWID, mMockIA11yInteractionConnection, PACKAGE_NAME1); Loading