summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsrivats <srivats@amazon.com>2015-07-10 13:42:57 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-10 20:44:11 +0000
commit8ee695f141f1468641ab4da1a9dd82db26ec58e4 (patch)
treede63c6724cccaaba611b73a85a673990cfcf6314
parentdc89772f119d0043fd30f93789e81c0a59f8ab9a (diff)
downloadchromium_src-8ee695f141f1468641ab4da1a9dd82db26ec58e4.zip
chromium_src-8ee695f141f1468641ab4da1a9dd82db26ec58e4.tar.gz
chromium_src-8ee695f141f1468641ab4da1a9dd82db26ec58e4.tar.bz2
Hook up Android closed captions 'enabled' setting to Blink
Add an API for the Android closed captions state change to be plumbed down to Blink. Blink-side CL: https://codereview.chromium.org/1118613002/ BUG=457850, 388588 Review URL: https://codereview.chromium.org/1110103004 Cr-Commit-Position: refs/heads/master@{#338350}
-rw-r--r--AUTHORS1
-rw-r--r--content/browser/android/content_view_core_impl.cc3
-rw-r--r--content/browser/android/content_view_core_impl.h1
-rw-r--r--content/common/frame_messages.h5
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java9
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate.java8
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/TextTrackSettings.java18
-rw-r--r--content/renderer/render_frame_impl.cc9
8 files changed, 40 insertions, 14 deletions
diff --git a/AUTHORS b/AUTHORS
index b5bbb40..6f15199 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -529,6 +529,7 @@ Sujith S S <sujiths.s@samsung.com>
Sungguk Lim <limasdf@gmail.com>
Sungmann Cho <sungmann.cho@gmail.com>
Sungmann Cho <sungmann.cho@navercorp.com>
+Sunitha Srivatsa <srivats@amazon.com>
Suyash Sengar <suyash.s@samsung.com>
Sunil Ratnu <sunil.ratnu@samsung.com>
Swati Jaiswal <swa.jaiswal@samsung.com>
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc
index 9e70f65..6495133 100644
--- a/content/browser/android/content_view_core_impl.cc
+++ b/content/browser/android/content_view_core_impl.cc
@@ -1281,6 +1281,7 @@ void ContentViewCoreImpl::SetAccessibilityEnabled(JNIEnv* env, jobject obj,
void ContentViewCoreImpl::SetTextTrackSettings(JNIEnv* env,
jobject obj,
+ jboolean textTracksEnabled,
jstring textTrackBackgroundColor,
jstring textTrackFontFamily,
jstring textTrackFontStyle,
@@ -1289,6 +1290,7 @@ void ContentViewCoreImpl::SetTextTrackSettings(JNIEnv* env,
jstring textTrackTextShadow,
jstring textTrackTextSize) {
FrameMsg_TextTrackSettings_Params params;
+ params.text_tracks_enabled = textTracksEnabled;
params.text_track_background_color = ConvertJavaStringToUTF8(
env, textTrackBackgroundColor);
params.text_track_font_family = ConvertJavaStringToUTF8(
@@ -1303,7 +1305,6 @@ void ContentViewCoreImpl::SetTextTrackSettings(JNIEnv* env,
env, textTrackTextShadow);
params.text_track_text_size = ConvertJavaStringToUTF8(
env, textTrackTextSize);
-
web_contents_->GetMainFrame()->SetTextTrackSettings(params);
}
diff --git a/content/browser/android/content_view_core_impl.h b/content/browser/android/content_view_core_impl.h
index d5b4411..4fd76fc 100644
--- a/content/browser/android/content_view_core_impl.h
+++ b/content/browser/android/content_view_core_impl.h
@@ -189,6 +189,7 @@ class ContentViewCoreImpl : public ContentViewCore,
void SetTextTrackSettings(JNIEnv* env,
jobject obj,
+ jboolean textTracksEnabled,
jstring textTrackBackgroundColor,
jstring textTrackFontFamily,
jstring textTrackFontStyle,
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h
index 5acb07d..5d7fef2 100644
--- a/content/common/frame_messages.h
+++ b/content/common/frame_messages.h
@@ -359,6 +359,9 @@ IPC_STRUCT_BEGIN(FrameHostMsg_OpenURL_Params)
IPC_STRUCT_END()
IPC_STRUCT_BEGIN(FrameMsg_TextTrackSettings_Params)
+ // Text tracks on/off state
+ IPC_STRUCT_MEMBER(bool, text_tracks_enabled)
+
// Background color of the text track.
IPC_STRUCT_MEMBER(std::string, text_track_background_color)
@@ -599,7 +602,7 @@ IPC_MESSAGE_ROUTED1(FrameMsg_DidUpdateName, std::string /* name */)
// new origin.
IPC_MESSAGE_ROUTED1(FrameMsg_DidUpdateOrigin, url::Origin /* origin */)
-// Send to the RenderFrame to set text track style settings.
+// Send to the RenderFrame to set text tracks state and style settings.
// Sent for top-level frames.
IPC_MESSAGE_ROUTED1(FrameMsg_SetTextTrackSettings,
FrameMsg_TextTrackSettings_Params /* params */)
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 b524d4f..929e494 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
@@ -2937,7 +2937,8 @@ public class ContentViewCore implements
@Override
public void onSystemCaptioningChanged(TextTrackSettings settings) {
if (mNativeContentViewCore == 0) return;
- nativeSetTextTrackSettings(mNativeContentViewCore, settings.getTextTrackBackgroundColor(),
+ nativeSetTextTrackSettings(mNativeContentViewCore,
+ settings.getTextTracksEnabled(), settings.getTextTrackBackgroundColor(),
settings.getTextTrackFontFamily(), settings.getTextTrackFontStyle(),
settings.getTextTrackFontVariant(), settings.getTextTrackTextColor(),
settings.getTextTrackTextShadow(), settings.getTextTrackTextSize());
@@ -3234,9 +3235,9 @@ public class ContentViewCore implements
long nativeContentViewCoreImpl, boolean enabled);
private native void nativeSetTextTrackSettings(long nativeContentViewCoreImpl,
- String textTrackBackgroundColor, String textTrackFontFamily, String textTrackFontStyle,
- String textTrackFontVariant, String textTrackTextColor, String textTrackTextShadow,
- String textTrackTextSize);
+ boolean textTracksEnabled, 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);
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate.java
index d9b08a77..94d3e3e 100644
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate.java
@@ -32,7 +32,7 @@ public class CaptioningChangeDelegate {
@VisibleForTesting
public static final String DEFAULT_CAPTIONING_PREF_VALUE = "";
- private boolean mTextTrackEnabled;
+ private boolean mTextTracksEnabled;
private String mTextTrackBackgroundColor;
private String mTextTrackFontFamily;
@@ -50,7 +50,7 @@ public class CaptioningChangeDelegate {
* @see android.view.accessibility.CaptioningManager.CaptioningChangeListener#onEnabledChanged
*/
public void onEnabledChanged(boolean enabled) {
- mTextTrackEnabled = enabled;
+ mTextTracksEnabled = enabled;
notifySettingsChanged();
}
@@ -294,8 +294,8 @@ public class CaptioningChangeDelegate {
* @param listener the listener to notify.
*/
public void notifyListener(SystemCaptioningBridgeListener listener) {
- if (mTextTrackEnabled) {
- final TextTrackSettings settings = new TextTrackSettings(
+ if (mTextTracksEnabled) {
+ final TextTrackSettings settings = new TextTrackSettings(mTextTracksEnabled,
mTextTrackBackgroundColor, mTextTrackFontFamily, mTextTrackFontStyle,
mTextTrackFontVariant, mTextTrackTextColor, mTextTrackTextShadow,
mTextTrackTextSize);
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/TextTrackSettings.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/TextTrackSettings.java
index e998600..3726660 100644
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/TextTrackSettings.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/TextTrackSettings.java
@@ -16,6 +16,7 @@ import java.util.Objects;
@TargetApi(Build.VERSION_CODES.KITKAT)
public final class TextTrackSettings {
private static final String DEFAULT_VALUE = "";
+ private boolean mTextTracksEnabled;
private String mTextTrackBackgroundColor;
private String mTextTrackFontFamily;
private String mTextTrackFontStyle;
@@ -26,13 +27,14 @@ public final class TextTrackSettings {
/**
* Constructs a new TextTrackSettings object that will
- * return "" for all text track properties.
+ * return "" for all text track properties and false for textTracksEnabled.
*/
public TextTrackSettings() {}
/**
* Constructs a new TextTrackSettings object
*
+ * @param textTracksEnabled the captions state
* @param textTrackBackgroundColor the background color
* @param textTrackFontFamily the font family
* @param textTrackFontStyle the font style
@@ -41,9 +43,10 @@ public final class TextTrackSettings {
* @param textTrackTextShadow the text shadow
* @param textTrackTextSize the text size
*/
- public TextTrackSettings(String textTrackBackgroundColor, String textTrackFontFamily,
- String textTrackFontStyle, String textTrackFontVariant, String textTrackTextColor,
- String textTrackTextShadow, String textTrackTextSize) {
+ public TextTrackSettings(boolean textTracksEnabled, String textTrackBackgroundColor,
+ String textTrackFontFamily, String textTrackFontStyle, String textTrackFontVariant,
+ String textTrackTextColor, String textTrackTextShadow, String textTrackTextSize) {
+ mTextTracksEnabled = textTracksEnabled;
mTextTrackBackgroundColor = textTrackBackgroundColor;
mTextTrackFontFamily = textTrackFontFamily;
mTextTrackFontStyle = textTrackFontStyle;
@@ -54,6 +57,13 @@ public final class TextTrackSettings {
}
/**
+ * @return true if closed captions are "on"
+ */
+ public boolean getTextTracksEnabled() {
+ return mTextTracksEnabled;
+ }
+
+ /**
* @return the text track background color. Will return "" if the
* value is null
*/
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 7005fdd..5925ef8 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -219,6 +219,7 @@ using blink::WebSecurityOrigin;
using blink::WebSecurityPolicy;
using blink::WebSerializedScriptValue;
using blink::WebServiceWorkerProvider;
+using blink::WebSettings;
using blink::WebStorageQuotaCallbacks;
using blink::WebString;
using blink::WebURL;
@@ -1575,6 +1576,14 @@ void RenderFrameImpl::OnTextTrackSettingsChanged(
DCHECK(!frame_->parent());
if (!render_view_->webview())
return;
+
+ if (params.text_tracks_enabled) {
+ render_view_->webview()->settings()->setTextTrackKindUserPreference(
+ WebSettings::TextTrackKindUserPreference::Captions);
+ } else {
+ render_view_->webview()->settings()->setTextTrackKindUserPreference(
+ WebSettings::TextTrackKindUserPreference::Default);
+ }
render_view_->webview()->settings()->setTextTrackBackgroundColor(
WebString::fromUTF8(params.text_track_background_color));
render_view_->webview()->settings()->setTextTrackFontFamily(