Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(640)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java

Issue 132233042: Enable the embedded L1/EME support in WebView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added ExternalVideoSurfaceDelegate.java. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698