Chromium Code Reviews| 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) { |