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

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: Moved IPC to RenderFrame(Host) 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 ac9c104186399a21c227fb973109ff9a09f1d04f..8dab9fe5fc0c38fa13d3c91e205842f9309d8fc0 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);
@@ -2514,6 +2523,8 @@ public class ContentViewCore
@CalledByNative
private void onRenderProcessChange() {
attachImeAdapter();
+ // Immediately sync closed caption settings to the new render process.
+ mSystemCaptioningBridge.syncToDelegate();
}
/**
@@ -2821,6 +2832,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) {
@@ -3217,6 +3242,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