Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
index 6d6c9016d2909c8adb5e4479640b67d730cb700d..0bbe7a658d1ae3a97931b4efe78c462f85fdf648 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
@@ -16,7 +16,6 @@ import android.graphics.Bitmap; |
import android.graphics.Canvas; |
import android.graphics.Color; |
import android.graphics.Rect; |
-import android.graphics.RectF; |
import android.net.Uri; |
import android.os.Build; |
import android.os.Bundle; |
@@ -339,6 +338,7 @@ public class ContentViewCore |
private final ObserverList<GestureStateListener> mGestureStateListeners; |
private final RewindableIterator<GestureStateListener> mGestureStateListenersIterator; |
private ZoomControlsDelegate mZoomControlsDelegate; |
+ private ExternalVideoSurfaceDelegate mExternalVideoSurfaceDelegate; |
private PopupZoomer mPopupZoomer; |
@@ -709,6 +709,19 @@ public class ContentViewCore |
@Override |
public void updateZoomControls() {} |
}; |
+ mExternalVideoSurfaceDelegate = new ExternalVideoSurfaceDelegate() { |
+ @Override |
+ public void requestExternalVideoSurface(int playerId) {} |
+ @Override |
+ public void releaseExternalVideoSurface(int playerId) {} |
+ @Override |
+ public void onExternalVideoSurfacePositionChanged( |
+ int playerId, float left, float top, float right, float bottom) {} |
+ @Override |
+ public void onRenderCoordinatesChanged() {} |
+ @Override |
+ public void destroy() {} |
+ }; |
mNativeContentViewCore = nativeInit( |
nativeWebContents, viewAndroidNativePointer, windowNativePointer); |
@@ -850,6 +863,7 @@ public class ContentViewCore |
mRetainedJavaScriptObjects.clear(); |
unregisterAccessibilityContentObserver(); |
mGestureStateListeners.clear(); |
+ mExternalVideoSurfaceDelegate.destroy(); |
} |
private void unregisterAccessibilityContentObserver() { |
@@ -2104,6 +2118,10 @@ public class ContentViewCore |
mZoomControlsDelegate = zoomControlsDelegate; |
} |
+ public void setExternalVideoSurfaceDelegate(ExternalVideoSurfaceDelegate delegate) { |
Ted C
2014/02/14 18:32:52
although other places don't have it, all public me
ycheo (away)
2014/02/18 08:35:56
Removed.
|
+ mExternalVideoSurfaceDelegate = delegate; |
+ } |
+ |
public void updateMultiTouchZoomSupport(boolean supportsMultiTouchZoom) { |
mContentViewGestureHandler.updateMultiTouchSupport(supportsMultiTouchZoom); |
} |
@@ -2560,8 +2578,7 @@ public class ContentViewCore |
mBrowserAccessibilityManager.notifyFrameInfoInitialized(); |
} |
- // Update geometry for external video surface. |
- getContentViewClient().onGeometryChanged(-1, null); |
+ mExternalVideoSurfaceDelegate.onRenderCoordinatesChanged(); |
Ted C
2014/02/14 18:32:52
Hmm...this is so close to not needing to be in Con
ycheo (away)
2014/02/18 08:35:56
Done.
|
} |
@CalledByNative |
@@ -3256,10 +3273,20 @@ public class ContentViewCore |
} |
@CalledByNative |
- private void notifyExternalSurface( |
- int playerId, boolean isRequest, float x, float y, float width, float height) { |
- if (isRequest) getContentViewClient().onExternalVideoSurfaceRequested(playerId); |
- getContentViewClient().onGeometryChanged(playerId, new RectF(x, y, x + width, y + height)); |
+ private void requestExternalVideoSurface(int playerId) { |
+ mExternalVideoSurfaceDelegate.requestExternalVideoSurface(playerId); |
+ } |
+ |
+ @CalledByNative |
+ private void releaseExternalVideoSurface(int playerId) { |
+ mExternalVideoSurfaceDelegate.releaseExternalVideoSurface(playerId); |
+ } |
+ |
+ @CalledByNative |
+ private void notifyExternalVideoSurfacePositionChanged( |
+ int playerId, float x, float y, float width, float height) { |
+ mExternalVideoSurfaceDelegate.onExternalVideoSurfacePositionChanged( |
+ playerId, x, y, x + width, y + height); |
} |
public void extractSmartClipData(int x, int y, int width, int height) { |