Merge "Add app-level usesCleartextTraffic manifest attribute."

This commit is contained in:
Alex Klyubin
2015-03-19 16:10:20 +00:00
committed by Gerrit Code Review
3 changed files with 35 additions and 0 deletions

View File

@@ -333,6 +333,18 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
*/ */
public static final int FLAG_FULL_BACKUP_ONLY = 1<<26; public static final int FLAG_FULL_BACKUP_ONLY = 1<<26;
/**
* Value for {@link #flags}: {@code true} if the application may use cleartext network traffic
* (e.g., HTTP rather than HTTPS; WebSockets rather than WebSockets Secure; XMPP, IMAP, STMP
* without STARTTLS or TLS). If {@code false}, the app declares that it does not intend to use
* cleartext network traffic, in which case platform components (e.g., HTTP stacks,
* {@code WebView}, {@code MediaPlayer}) will refuse app's requests to use cleartext traffic.
* Third-party libraries are encouraged to honor this flag as well.
*
* @hide
*/
public static final int FLAG_USES_CLEARTEXT_TRAFFIC = 1<<27;
/** /**
* Value for {@link #flags}: true if code from this application will need to be * Value for {@link #flags}: true if code from this application will need to be
* loaded into other applications' processes. On devices that support multiple * loaded into other applications' processes. On devices that support multiple

View File

@@ -2549,6 +2549,12 @@ public class PackageParser {
ai.flags |= ApplicationInfo.FLAG_LARGE_HEAP; ai.flags |= ApplicationInfo.FLAG_LARGE_HEAP;
} }
if (sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_usesCleartextTraffic,
true)) {
ai.flags |= ApplicationInfo.FLAG_USES_CLEARTEXT_TRAFFIC;
}
if (sa.getBoolean( if (sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_supportsRtl, com.android.internal.R.styleable.AndroidManifestApplication_supportsRtl,
false /* default is no RTL support*/)) { false /* default is no RTL support*/)) {

View File

@@ -389,6 +389,15 @@
with the same {@link android.R.attr#taskAffinity} as it has. --> with the same {@link android.R.attr#taskAffinity} as it has. -->
<attr name="allowTaskReparenting" format="boolean" /> <attr name="allowTaskReparenting" format="boolean" />
<!-- Declare that this application may use cleartext traffic (e.g., HTTP rather than HTTPS;
WebSockets rather than WebSockets Secure; XMPP, IMAP, STMP without STARTTLS or TLS).
Defaults to true. If set to false {@code false}, the app declares that it does not
intend to use cleartext network traffic, in which case platform components (e.g.,
HTTP stacks, {@code WebView}, {@code MediaPlayer}) will refuse app's requests to use
cleartext traffic. Third-party libraries are encouraged to honor this flag as well.
@hide -->
<attr name="usesCleartextTraffic" format="boolean" />
<!-- Declare that code from this application will need to be loaded into other <!-- Declare that code from this application will need to be loaded into other
applications' processes. On devices that support multiple instruction sets, applications' processes. On devices that support multiple instruction sets,
this implies the code might be loaded into a process that's using any of the devices this implies the code might be loaded into a process that's using any of the devices
@@ -1133,6 +1142,14 @@
"com.google". --> "com.google". -->
<attr name="requiredAccountType" format="string"/> <attr name="requiredAccountType" format="string"/>
<attr name="isGame" /> <attr name="isGame" />
<!-- Declare that this application may use cleartext traffic (e.g., HTTP rather than HTTPS;
WebSockets rather than WebSockets Secure; XMPP, IMAP, STMP without STARTTLS or TLS).
Defaults to true. If set to false {@code false}, the app declares that it does not
intend to use cleartext network traffic, in which case platform components (e.g.,
HTTP stacks, {@code WebView}, {@code MediaPlayer}) will refuse app's requests to use
cleartext traffic. Third-party libraries are encouraged to honor this flag as well.
@hide -->
<attr name="usesCleartextTraffic" />
<attr name="multiArch" /> <attr name="multiArch" />
</declare-styleable> </declare-styleable>