diff options
author | srivats <srivats@amazon.com> | 2015-07-10 13:42:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-10 20:44:11 +0000 |
commit | 8ee695f141f1468641ab4da1a9dd82db26ec58e4 (patch) | |
tree | de63c6724cccaaba611b73a85a673990cfcf6314 | |
parent | dc89772f119d0043fd30f93789e81c0a59f8ab9a (diff) | |
download | chromium_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}
8 files changed, 40 insertions, 14 deletions
@@ -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( |