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

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

Issue 1002473003: Expose text track settings in Content and implement for Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix CQ Issues Created 5 years, 9 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 6480eef72332275ff08daf0cb9c4f04cf7bb3000..bda063139472ade41111cb629c2b52aa1803c6e1 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
@@ -61,6 +61,9 @@ import org.chromium.content.R;
import org.chromium.content.browser.ScreenOrientationListener.ScreenOrientationObserver;
import org.chromium.content.browser.accessibility.AccessibilityInjector;
import org.chromium.content.browser.accessibility.BrowserAccessibilityManager;
+import org.chromium.content.browser.accessibility.captioning.CaptioningBridgeFactory;
+import org.chromium.content.browser.accessibility.captioning.SystemCaptioningBridge;
+import org.chromium.content.browser.accessibility.captioning.TextTrackSettings;
import org.chromium.content.browser.input.AdapterInputConnection;
import org.chromium.content.browser.input.GamepadList;
import org.chromium.content.browser.input.ImeAdapter;
@@ -528,6 +531,10 @@ public class ContentViewCore
// System accessibility service.
private final AccessibilityManager mAccessibilityManager;
+ // Notifies the ContentViewCore when platform closed caption settings have changed
+ // if they are supported. Otherwise does nothing.
+ private final SystemCaptioningBridge mSystemCaptioningBridge;
+
// Accessibility touch exploration state.
private boolean mTouchExplorationEnabled;
@@ -627,6 +634,7 @@ public class ContentViewCore
mRenderCoordinates.setDeviceScaleFactor(deviceScaleFactor);
mAccessibilityManager = (AccessibilityManager)
getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
+ mSystemCaptioningBridge = CaptioningBridgeFactory.create(this);
mGestureStateListeners = new ObserverList<GestureStateListener>();
mGestureStateListenersIterator = mGestureStateListeners.rewindableIterator();
@@ -970,6 +978,7 @@ public class ContentViewCore
if (mNativeContentViewCore != 0) {
nativeOnJavaContentViewCoreDestroyed(mNativeContentViewCore);
}
+ mSystemCaptioningBridge.destroy();
mWebContentsObserver.destroy();
mWebContentsObserver = null;
setSmartClipDataListener(null);
@@ -2515,6 +2524,8 @@ public class ContentViewCore
@CalledByNative
private void onRenderProcessChange() {
attachImeAdapter();
+ // Immediately sync closed caption settings to the new render process.
+ mSystemCaptioningBridge.syncToDelegate();
}
/**
@@ -2822,6 +2833,20 @@ public class ContentViewCore
}
/**
+ * Set closed captioning text track style settings.
+ *
+ * @param settings The TextTrackSettings object containing the new settings.
+ */
+ @TargetApi(Build.VERSION_CODES.KITKAT)
+ public void setTextTrackSettings(TextTrackSettings settings) {
+ if (mNativeContentViewCore == 0) return;
+ nativeSetTextTrackSettings(mNativeContentViewCore, settings.getTextTrackBackgroundColor(),
+ settings.getTextTrackFontFamily(), settings.getTextTrackFontStyle(),
+ settings.getTextTrackFontVariant(), settings.getTextTrackTextColor(),
+ settings.getTextTrackTextShadow(), settings.getTextTrackTextSize());
+ }
+
+ /**
* @see View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)
*/
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
@@ -3218,6 +3243,11 @@ public class ContentViewCore
private native void nativeSetAccessibilityEnabled(
long nativeContentViewCoreImpl, boolean enabled);
+ private native void nativeSetTextTrackSettings(long nativeContentViewCoreImpl,
+ String textTrackBackgroundColor, String textTrackFontFamily, String textTrackFontStyle,
+ String textTrackFontVariant, String textTrackTextColor, String textTrackTextShadow,
+ String textTrackTextSize);
+
private native void nativeExtractSmartClipData(long nativeContentViewCoreImpl,
int x, int y, int w, int h);

Powered by Google App Engine
This is Rietveld 408576698