| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 package org.chromium.content.browser; |
| 6 |
| 7 import android.graphics.SurfaceTexture; |
| 8 import android.view.Surface; |
| 9 |
| 10 import org.chromium.base.CalledByNative; |
| 11 import org.chromium.base.JNINamespace; |
| 12 |
| 13 @JNINamespace("content") |
| 14 class BrowserProcessSurfaceTexture { |
| 15 /** |
| 16 * Called from native code to set up the peer surface texture producer in |
| 17 * another process. |
| 18 * |
| 19 * @param pid Process handle of the sandboxed process to share the |
| 20 * SurfaceTexture with. |
| 21 * @param type The type of process that the SurfaceTexture is for. |
| 22 * @param st The SurfaceTexture object to share with the sandboxed process. |
| 23 * @param primaryID Used to route the call to the correct client instance. |
| 24 * @param secondaryID Used to route the call to the correct client instance. |
| 25 */ |
| 26 @SuppressWarnings("unused") |
| 27 @CalledByNative |
| 28 static void establishSurfaceTexturePeer(int pid, int type, SurfaceTexture st
, int primaryID, |
| 29 int secondaryID) { |
| 30 Surface surface = new Surface(st); |
| 31 SandboxedProcessLauncher.establishSurfacePeer(pid, type, surface, primar
yID, secondaryID); |
| 32 |
| 33 // We need to explicitly release the native resource of our newly create
d surface |
| 34 // or the Surface class will print a warning message to the log in its f
inalizer. |
| 35 // This should be ok to do since our caller is responsible for retaining
a |
| 36 // reference to the SurfaceTexture that is being sent across processes a
nd the |
| 37 // receiving end should have retained a reference before the binder call
finished. |
| 38 surface.release(); |
| 39 } |
| 40 } |
| OLD | NEW |