Mike M. created CB-12780: ---------------------------- Summary: Add option to setMixedContentMode Key: CB-12780 URL: https://issues.apache.org/jira/browse/CB-12780 Project: Apache Cordova Issue Type: New Feature Components: cordova-android Affects Versions: 7.0.0 Reporter: Mike M.
We're currently developing an application that streams audio from a continuous stream over http. We have an existing web application served over https. The audio streams, which are built using HTML5 audio, are served in http only. On Android, the WebView won't load our audio stream because of a mixed content error. According to my research, this is because on Android, as of API level 20, the WebView gets a mixedContentMode of {{MIXED_CONTENT_NEVER_ALLOW}} by default (see the documentation [here|https://developer.android.com/reference/android/webkit/WebSettings.html#setMixedContentMode(int)]. This is especially frustrating as it doesn't match [what modern browsers do|https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content], which is to allow "passive" mixed content that doesn't interact with the page directly like audio/video streams. So in the end, the WebView doesn't behave like the browser, which breaks our application. When I change the API target level to 19, the resource gets loaded successfully. However, sticking with API level 19 isn't a long-term solution. As seen in [the documentation|https://developer.android.com/reference/android/webkit/WebSettings.html#setMixedContentMode(int)], there is a way to let Android treat mixed content like the browser, which involves setting the MixedContentMode WebSetting to {{MIXED_CONTENT_COMPATIBILITY_MODE}}. However, as I understand it (I'm new to Cordova), this would require me to add custom code to the generated android activity code, which is discouraged and which I would prefer not to do. It would be nice if cordova-android added a configuration setting for mixed content which would get translated into setting the MixedContentMode WebSetting. It could look something like: {{code}} <platform name="android"> <preference name="android-mixedContentMode" value="COMPATIBILITY_MODE" /> </platform> {{code}} That would make the code more maintainable and expresses what we need concisely. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org