summaryrefslogtreecommitdiffstats
path: root/core/java/android/content
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-07-06 16:35:25 -0700
committerRomain Guy <romainguy@android.com>2009-07-06 16:45:17 -0700
commit870e09fcd2dfdc12ac318962efd28b0420c562bb (patch)
treee96f3395c7176695e7007b21ec054c1e3d5a5e71 /core/java/android/content
parent453dd50e707aa3a4d24240935f3ff7ea0a08dc7a (diff)
downloadframeworks_base-870e09fcd2dfdc12ac318962efd28b0420c562bb.zip
frameworks_base-870e09fcd2dfdc12ac318962efd28b0420c562bb.tar.gz
frameworks_base-870e09fcd2dfdc12ac318962efd28b0420c562bb.tar.bz2
Fixes #1963229. Introduces Context#isRestricted().
A restricted Context is a special type of Context that prevents specific features from being used. For instance, android:onClick, used by View, can be dangerous when used from within apps widgets. By using a restricted Context to inflate apps widgets, widgets providers are prevented from using android:onClick.
Diffstat (limited to 'core/java/android/content')
-rw-r--r--core/java/android/content/Context.java18
-rw-r--r--core/java/android/content/ContextWrapper.java5
2 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index b0396f6..9e37ae4 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -1654,6 +1654,13 @@ public abstract class Context {
* with extreme care!
*/
public static final int CONTEXT_IGNORE_SECURITY = 0x00000002;
+
+ /**
+ * Flag for use with {@link #createPackageContext}: a restricted context may
+ * disable specific features. For instance, a View associated with a restricted
+ * context would ignore particular XML attributes.
+ */
+ public static final int CONTEXT_RESTRICTED = 0x00000004;
/**
* Return a new Context object for the given application name. This
@@ -1682,4 +1689,15 @@ public abstract class Context {
*/
public abstract Context createPackageContext(String packageName,
int flags) throws PackageManager.NameNotFoundException;
+
+ /**
+ * Indicates whether this Context is restricted.
+ *
+ * @return True if this Context is restricted, false otherwise.
+ *
+ * @see #CONTEXT_RESTRICTED
+ */
+ public boolean isRestricted() {
+ return false;
+ }
}
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index 7513b3b..45a082a 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -430,4 +430,9 @@ public class ContextWrapper extends Context {
throws PackageManager.NameNotFoundException {
return mBase.createPackageContext(packageName, flags);
}
+
+ @Override
+ public boolean isRestricted() {
+ return mBase.isRestricted();
+ }
}