From 8a78fd4d9572dff95432fcc4ba0e87563415b728 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 17 Jan 2012 14:36:46 -0800 Subject: AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes. AccessibilityEvent and AccessibilityNodeInfo have a property className which is set to the source Java class. This is problematic since leads to leaking private classes which would allow an accessibility service to load classes from other packages. This is strongly undesirable since not trusted code can be loaded, and hence executed, in the accessibility service. To address that the class name is set to the most concrete framework class extended by the info/event source. bug:5878943 Change-Id: I7b3114ece8772ea2773f5151e21b8a6f2006882a --- core/java/android/widget/MediaController.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/java/android/widget/MediaController.java') diff --git a/core/java/android/widget/MediaController.java b/core/java/android/widget/MediaController.java index f2ea3fc..fc35f05 100644 --- a/core/java/android/widget/MediaController.java +++ b/core/java/android/widget/MediaController.java @@ -31,6 +31,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityNodeInfo; import android.widget.SeekBar.OnSeekBarChangeListener; import com.android.internal.policy.PolicyManager; @@ -592,6 +594,18 @@ public class MediaController extends FrameLayout { super.setEnabled(enabled); } + @Override + public void onInitializeAccessibilityEvent(AccessibilityEvent event) { + super.onInitializeAccessibilityEvent(event); + event.setClassName(MediaController.class.getName()); + } + + @Override + public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { + super.onInitializeAccessibilityNodeInfo(info); + info.setClassName(MediaController.class.getName()); + } + private View.OnClickListener mRewListener = new View.OnClickListener() { public void onClick(View v) { int pos = mPlayer.getCurrentPosition(); -- cgit v1.1