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 3088b167aa357309421fb6efa99c398c2927aa46..1874acb321f5a6ced06b70427ab52e0e4d265dba 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 |
@@ -912,6 +912,18 @@ public class ChildProcessLauncher { |
} |
@Override |
+ public void fulfillScopedSurfaceRequest(long requestId, Surface surface) { |
+ // Do not allow a malicious renderer to connect to a producer. This is only used |
+ // from stream textures managed by the GPU process. |
+ if (callbackType != CALLBACK_FOR_GPU_PROCESS) { |
+ Log.e(TAG, "Illegal callback for non-GPU process."); |
+ return; |
+ } |
+ |
+ nativeCompleteScopedSurfaceRequest(requestId, surface); |
+ } |
+ |
+ @Override |
public SurfaceWrapper getViewSurface(int surfaceId) { |
// Do not allow a malicious renderer to get to our view surface. |
if (callbackType != CALLBACK_FOR_GPU_PROCESS) { |
@@ -1059,5 +1071,6 @@ public class ChildProcessLauncher { |
private static native void nativeOnChildProcessStarted(long clientContext, int pid); |
private static native void nativeEstablishSurfacePeer( |
int pid, Surface surface, int primaryID, int secondaryID); |
+ private static native void nativeCompleteScopedSurfaceRequest(long requestId, Surface surface); |
private static native boolean nativeIsSingleProcess(); |
} |