summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Chaulk <achaulk@google.com>2017-05-11 15:52:48 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-05-11 15:52:48 +0000
commitbcee3cc3fa57263cf253dd652e4d90c030c49b5a (patch)
tree11da82477f16b5240265d03c3a238df16daba0f9
parentc4d6ea4100caa7fb3c3d86d153d1afab6205bd76 (diff)
parenteccbbe4ca260deed4eaed9f6710b702f996d7f65 (diff)
Merge "Propagate UIDs for all SurfaceControl instances" into oc-dev am: 6c34dd58f6
am: eccbbe4ca2 Change-Id: I350bb7899eaa1e9919d6fdf8079afd11be4e9918
-rw-r--r--core/java/android/view/SurfaceControl.java5
-rw-r--r--core/java/android/view/WindowManager.java6
-rw-r--r--services/core/java/com/android/server/wm/WindowSurfacePlacer.java5
3 files changed, 14 insertions, 2 deletions
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 3b1545696347..22329f4e772b 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -16,10 +16,13 @@
package android.view;
+import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
+
import android.graphics.Bitmap;
import android.graphics.GraphicBuffer;
import android.graphics.Rect;
import android.graphics.Region;
+import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
import android.view.Surface.OutOfResourcesException;
@@ -302,7 +305,7 @@ public class SurfaceControl {
public SurfaceControl(SurfaceSession session,
String name, int w, int h, int format, int flags)
throws OutOfResourcesException {
- this(session, name, w, h, format, flags, null, -1, -1);
+ this(session, name, w, h, format, flags, null, INVALID_WINDOW_TYPE, Binder.getCallingUid());
}
public SurfaceControl(SurfaceSession session, String name, int w, int h, int format, int flags,
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 8445b37b8133..3f91476ac109 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -743,6 +743,12 @@ public interface WindowManager extends ViewManager {
public static final int LAST_SYSTEM_WINDOW = 2999;
/**
+ * @hide
+ * Used internally when there is no suitable type available.
+ */
+ public static final int INVALID_WINDOW_TYPE = -1;
+
+ /**
* Return true if the window type is an alert window.
*
* @param type The window type.
diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
index ddd1ca5c1aec..e576f2f4e9ed 100644
--- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
+++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
@@ -41,6 +41,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
import android.graphics.Rect;
+import android.os.Binder;
import android.os.Debug;
import android.os.Trace;
import android.util.ArraySet;
@@ -683,9 +684,11 @@ class WindowSurfacePlacer {
final DisplayInfo displayInfo = displayContent.getDisplayInfo();
// Create a new surface for the thumbnail
+ WindowState window = appToken.findMainWindow();
SurfaceControl surfaceControl = new SurfaceControl(mService.mFxSession,
"thumbnail anim", dirty.width(), dirty.height(),
- PixelFormat.TRANSLUCENT, SurfaceControl.HIDDEN);
+ PixelFormat.TRANSLUCENT, SurfaceControl.HIDDEN,
+ appToken.windowType, window.mOwnerUid);
surfaceControl.setLayerStack(display.getLayerStack());
if (SHOW_TRANSACTIONS) {
Slog.i(TAG, " THUMBNAIL " + surfaceControl + ": CREATE");