Chromium Code Reviews| Index: content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java |
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java |
| index 286afbca7d4a2eef71388924b3238c1e225a8bab..4d73964b107ab04bedc8f3b5cd05802062192f0f 100644 |
| --- a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java |
| +++ b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java |
| @@ -259,17 +259,31 @@ public class ChildProcessLauncher { |
| @CalledByNative |
| private static void registerSurfaceTexture( |
| - int surfaceTextureId, int childProcessId, SurfaceTexture surfaceTexture) { |
| - Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, childProcessId); |
| + int surfaceTextureId, int clientId, SurfaceTexture surfaceTexture) { |
| + Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, clientId); |
| sSurfaceTextureSurfaceMap.put(key, new Surface(surfaceTexture)); |
| } |
| @CalledByNative |
| - private static void unregisterSurfaceTexture(int surfaceTextureId, int childProcessId) { |
| - Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, childProcessId); |
| + private static void unregisterSurfaceTexture(int surfaceTextureId, int clientId) { |
| + Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, clientId); |
| sSurfaceTextureSurfaceMap.remove(key); |
| } |
| + @CalledByNative |
| + private static SurfaceWrapper getSurfaceTextureSurface( |
| + int surfaceTextureId, int clientId) { |
| + Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, clientId); |
| + |
| + Surface surface = sSurfaceTextureSurfaceMap.get(key); |
| + if (surface == null) { |
| + Log.e(TAG, "Invalid Id for surface texture."); |
| + return null; |
| + } |
| + assert surface.isValid(); |
| + return new SurfaceWrapper(surface); |
| + } |
| + |
| /** |
| * Sets the visibility of the child process when it changes or when it is determined for the |
| * first time. |
| @@ -487,20 +501,43 @@ public class ChildProcessLauncher { |
| } |
| @Override |
| - public SurfaceWrapper getSurfaceTextureSurface(int primaryId, int secondaryId) { |
| + public void registerSurfaceTextureSurface( |
| + int surfaceTextureId, int clientId, Surface surface) { |
| + if (callbackType != CALLBACK_FOR_GPU_PROCESS) { |
| + Log.e(TAG, "Illegal callback for non-GPU process."); |
| + return; |
| + } |
| + |
| + Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, clientId); |
| + sSurfaceTextureSurfaceMap.put(key, surface); |
| + } |
| + |
| + @Override |
| + public void unregisterSurfaceTextureSurface( |
| + int surfaceTextureId, int clientId) { |
| + if (callbackType != CALLBACK_FOR_GPU_PROCESS) { |
| + Log.e(TAG, "Illegal callback for non-GPU process."); |
| + return; |
| + } |
| + |
| + Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, clientId); |
| + sSurfaceTextureSurfaceMap.remove(key); |
| + } |
| + |
| + @Override |
| + public SurfaceWrapper getSurfaceTextureSurface(int surfaceTextureId, int clientId) { |
| if (callbackType != CALLBACK_FOR_RENDERER_PROCESS) { |
| Log.e(TAG, "Illegal callback for non-renderer process."); |
| return null; |
| } |
| - if (secondaryId != childProcessId) { |
| + if (clientId != childProcessId) { |
| Log.e(TAG, "Illegal secondaryId for renderer process."); |
| return null; |
| } |
| - Pair<Integer, Integer> key = new Pair<Integer, Integer>(primaryId, secondaryId); |
| - // Note: This removes the surface and passes the ownership to the caller. |
| - Surface surface = sSurfaceTextureSurfaceMap.remove(key); |
| + Pair<Integer, Integer> key = new Pair<Integer, Integer>(surfaceTextureId, clientId); |
|
no sievers
2014/10/06 22:28:27
nit: Can you call the methods above in ChildProces
reveman
2014/10/07 01:00:21
Done.
|
| + Surface surface = sSurfaceTextureSurfaceMap.get(key); |
| if (surface == null) { |
| Log.e(TAG, "Invalid Id for surface texture."); |
| return null; |