Loading services/core/java/com/android/server/wm/WindowManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -1022,12 +1022,12 @@ public class WindowManagerService extends IWindowManager.Stub return; } final boolean disableSecureWindows; boolean disableSecureWindows; try { disableSecureWindows = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.DISABLE_SECURE_WINDOWS, 0) != 0; } catch (Settings.SettingNotFoundException e) { return; disableSecureWindows = false; } if (mDisableSecureWindows == disableSecureWindows) { return; Loading services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +55 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; Loading @@ -84,12 +85,14 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Matrix; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.os.Build; import android.os.IBinder; import android.os.InputConfig; import android.os.RemoteException; Loading @@ -97,6 +100,7 @@ import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.RequiresFlagsEnabled; import android.provider.Settings; import android.util.ArraySet; import android.util.MergedConfiguration; import android.view.Gravity; Loading Loading @@ -1556,6 +1560,57 @@ public class WindowStateTests extends WindowTestsBase { mDisplayContent.getDisplayId()); } @Test public void testIsSecureLocked_flagSecureSet() { WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", 1 /* ownerId */); window.mAttrs.flags |= WindowManager.LayoutParams.FLAG_SECURE; assertTrue(window.isSecureLocked()); } @Test public void testIsSecureLocked_flagSecureNotSet() { WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", 1 /* ownerId */); assertFalse(window.isSecureLocked()); } @Test public void testIsSecureLocked_disableSecureWindows() { assumeTrue(Build.IS_DEBUGGABLE); WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", 1 /* ownerId */); window.mAttrs.flags |= WindowManager.LayoutParams.FLAG_SECURE; ContentResolver cr = useFakeSettingsProvider(); // isSecureLocked should return false when DISABLE_SECURE_WINDOWS is set to 1 Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, "1"); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertFalse(window.isSecureLocked()); // isSecureLocked should return true if DISABLE_SECURE_WINDOWS is set to 0. Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, "0"); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertTrue(window.isSecureLocked()); // Disable secure windows again. Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, "1"); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertFalse(window.isSecureLocked()); // isSecureLocked should return true if DISABLE_SECURE_WINDOWS is deleted. Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, null); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertTrue(window.isSecureLocked()); } @Test @RequiresFlagsEnabled(FLAG_SENSITIVE_NOTIFICATION_APP_PROTECTION) public void testIsSecureLocked_sensitiveContentProtectionManagerEnabled() { Loading Loading
services/core/java/com/android/server/wm/WindowManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -1022,12 +1022,12 @@ public class WindowManagerService extends IWindowManager.Stub return; } final boolean disableSecureWindows; boolean disableSecureWindows; try { disableSecureWindows = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.DISABLE_SECURE_WINDOWS, 0) != 0; } catch (Settings.SettingNotFoundException e) { return; disableSecureWindows = false; } if (mDisableSecureWindows == disableSecureWindows) { return; Loading
services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +55 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; Loading @@ -84,12 +85,14 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Matrix; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.os.Build; import android.os.IBinder; import android.os.InputConfig; import android.os.RemoteException; Loading @@ -97,6 +100,7 @@ import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.RequiresFlagsEnabled; import android.provider.Settings; import android.util.ArraySet; import android.util.MergedConfiguration; import android.view.Gravity; Loading Loading @@ -1556,6 +1560,57 @@ public class WindowStateTests extends WindowTestsBase { mDisplayContent.getDisplayId()); } @Test public void testIsSecureLocked_flagSecureSet() { WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", 1 /* ownerId */); window.mAttrs.flags |= WindowManager.LayoutParams.FLAG_SECURE; assertTrue(window.isSecureLocked()); } @Test public void testIsSecureLocked_flagSecureNotSet() { WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", 1 /* ownerId */); assertFalse(window.isSecureLocked()); } @Test public void testIsSecureLocked_disableSecureWindows() { assumeTrue(Build.IS_DEBUGGABLE); WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", 1 /* ownerId */); window.mAttrs.flags |= WindowManager.LayoutParams.FLAG_SECURE; ContentResolver cr = useFakeSettingsProvider(); // isSecureLocked should return false when DISABLE_SECURE_WINDOWS is set to 1 Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, "1"); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertFalse(window.isSecureLocked()); // isSecureLocked should return true if DISABLE_SECURE_WINDOWS is set to 0. Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, "0"); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertTrue(window.isSecureLocked()); // Disable secure windows again. Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, "1"); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertFalse(window.isSecureLocked()); // isSecureLocked should return true if DISABLE_SECURE_WINDOWS is deleted. Settings.Secure.putString(cr, Settings.Secure.DISABLE_SECURE_WINDOWS, null); mWm.mSettingsObserver.onChange(false /* selfChange */, Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS)); assertTrue(window.isSecureLocked()); } @Test @RequiresFlagsEnabled(FLAG_SENSITIVE_NOTIFICATION_APP_PROTECTION) public void testIsSecureLocked_sensitiveContentProtectionManagerEnabled() { Loading