From f259dc9eb559c53132d40c030fce4e94ea28803e Mon Sep 17 00:00:00 2001 From: prabakarviji Date: Mon, 11 Jul 2016 21:02:17 +0530 Subject: [PATCH 1/5] Mixed content issue fixed --- .../facebook/react/views/webview/ReactWebViewManager.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index 11350d16e246..8737cd6a271e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -21,6 +21,7 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.webkit.WebChromeClient; +import android.webkit.WebSettings; import com.facebook.react.views.webview.events.TopLoadingErrorEvent; import com.facebook.react.views.webview.events.TopLoadingFinishEvent; @@ -255,6 +256,10 @@ protected WebView createViewInstance(ThemedReactContext reactContext) { WebView.setWebContentsDebuggingEnabled(true); } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); + } + return webView; } From c2a625b4c2b4263ac786a7ed526807cbde164444 Mon Sep 17 00:00:00 2001 From: prabakarviji Date: Thu, 14 Jul 2016 12:49:35 +0530 Subject: [PATCH 2/5] Added 'enableMixedContentMode' as props --- Libraries/Components/WebView/WebView.android.js | 8 ++++++++ .../react/views/webview/ReactWebViewManager.java | 11 +++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Libraries/Components/WebView/WebView.android.js b/Libraries/Components/WebView/WebView.android.js index 005048113e2b..1fadefbce617 100644 --- a/Libraries/Components/WebView/WebView.android.js +++ b/Libraries/Components/WebView/WebView.android.js @@ -153,6 +153,12 @@ var WebView = React.createClass({ * start playing. The default value is `false`. */ mediaPlaybackRequiresUserAction: PropTypes.bool, + + /** + * Used on Android(5.0+), controls whether Mixed content mode is enabled or not + * @platform android + */ + enableMixedContentMode: PropTypes.bool, }, getInitialState: function() { @@ -167,6 +173,7 @@ var WebView = React.createClass({ return { javaScriptEnabled : true, scalesPageToFit: true, + enableMixedContentMode: false, }; }, @@ -229,6 +236,7 @@ var WebView = React.createClass({ onLoadingError={this.onLoadingError} testID={this.props.testID} mediaPlaybackRequiresUserAction={this.props.mediaPlaybackRequiresUserAction} + enableMixedContentMode={this.props.enableMixedContentMode} />; return ( diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index 8737cd6a271e..2caefe709c87 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -256,10 +256,6 @@ protected WebView createViewInstance(ThemedReactContext reactContext) { WebView.setWebContentsDebuggingEnabled(true); } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); - } - return webView; } @@ -297,6 +293,13 @@ public void setInjectedJavaScript(WebView view, @Nullable String injectedJavaScr ((ReactWebView) view).setInjectedJavaScript(injectedJavaScript); } + @ReactProp(name = "enableMixedContentMode") + public void setMixedContentMode(WebView view, boolean enabled) { + if (enabled == true && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + view.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); + } + } + @ReactProp(name = "source") public void setSource(WebView view, @Nullable ReadableMap source) { if (source != null) { From 1a302f9f25ccecd15f274bd02791c1a33de6d70e Mon Sep 17 00:00:00 2001 From: prabakarviji Date: Thu, 14 Jul 2016 14:18:57 +0530 Subject: [PATCH 3/5] removed '==true' --- .../com/facebook/react/views/webview/ReactWebViewManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index 2caefe709c87..4e55ab277f19 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -295,7 +295,7 @@ public void setInjectedJavaScript(WebView view, @Nullable String injectedJavaScr @ReactProp(name = "enableMixedContentMode") public void setMixedContentMode(WebView view, boolean enabled) { - if (enabled == true && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (enabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { view.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); } } From 94bc13723c97d42b416190c916a00d9358975fc4 Mon Sep 17 00:00:00 2001 From: prabakarviji Date: Thu, 14 Jul 2016 14:47:12 +0530 Subject: [PATCH 4/5] renamed enableMixedContentMode props as mixedContentModeEnabled --- Libraries/Components/WebView/WebView.android.js | 6 +++--- .../facebook/react/views/webview/ReactWebViewManager.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Libraries/Components/WebView/WebView.android.js b/Libraries/Components/WebView/WebView.android.js index 1fadefbce617..1d9e76ef64f6 100644 --- a/Libraries/Components/WebView/WebView.android.js +++ b/Libraries/Components/WebView/WebView.android.js @@ -158,7 +158,7 @@ var WebView = React.createClass({ * Used on Android(5.0+), controls whether Mixed content mode is enabled or not * @platform android */ - enableMixedContentMode: PropTypes.bool, + mixedContentModeEnabled: PropTypes.bool, }, getInitialState: function() { @@ -173,7 +173,7 @@ var WebView = React.createClass({ return { javaScriptEnabled : true, scalesPageToFit: true, - enableMixedContentMode: false, + mixedContentModeEnabled: false, }; }, @@ -236,7 +236,7 @@ var WebView = React.createClass({ onLoadingError={this.onLoadingError} testID={this.props.testID} mediaPlaybackRequiresUserAction={this.props.mediaPlaybackRequiresUserAction} - enableMixedContentMode={this.props.enableMixedContentMode} + mixedContentModeEnabled={this.props.mixedContentModeEnabled} />; return ( diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index 4e55ab277f19..5733a2ba9e33 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -293,7 +293,7 @@ public void setInjectedJavaScript(WebView view, @Nullable String injectedJavaScr ((ReactWebView) view).setInjectedJavaScript(injectedJavaScript); } - @ReactProp(name = "enableMixedContentMode") + @ReactProp(name = "mixedContentModeEnabled") public void setMixedContentMode(WebView view, boolean enabled) { if (enabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { view.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); From c08ab5acde82fd7cbefc03f4a1aba2ea2c0606d1 Mon Sep 17 00:00:00 2001 From: prabakarviji Date: Thu, 14 Jul 2016 15:00:20 +0530 Subject: [PATCH 5/5] renamed method name as setMixedContentModeEnabled --- .../com/facebook/react/views/webview/ReactWebViewManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index 5733a2ba9e33..272a1b140526 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -294,7 +294,7 @@ public void setInjectedJavaScript(WebView view, @Nullable String injectedJavaScr } @ReactProp(name = "mixedContentModeEnabled") - public void setMixedContentMode(WebView view, boolean enabled) { + public void setMixedContentModeEnabled(WebView view, boolean enabled) { if (enabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { view.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); }