Index: chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java |
index 451aa08707dfb250dd531677991cd4d65e8795dd..e7a2e116045905cba2ffba67caf6ce6039d8709f 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java |
@@ -260,7 +260,7 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD |
Intent intent = new Intent(); |
if (mFreProperties != null) intent.putExtras(mFreProperties); |
intent.putExtra(RESULT_CLOSE_APP, true); |
- finishAllFREActivities(Activity.RESULT_CANCELED, intent); |
+ finishAllTheActivities(getLocalClassName(), Activity.RESULT_CANCELED, intent); |
} |
@Override |
@@ -318,7 +318,7 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD |
Intent resultData = new Intent(); |
resultData.putExtras(mFreProperties); |
- finishAllFREActivities(Activity.RESULT_OK, resultData); |
+ finishAllTheActivities(getLocalClassName(), Activity.RESULT_OK, resultData); |
} |
@Override |
@@ -368,11 +368,17 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD |
if (mNativeSideIsInitialized) ChromeApplication.flushPersistentData(); |
} |
- protected static void finishAllFREActivities(int result, Intent data) { |
+ /** |
+ * Finish all the instances of the given Activity. |
+ * @param targetActivity The class name of the target Activity. |
+ * @param result The result code to propagate back to the originating activity. |
+ * @param data The data to propagate back to the originating activity. |
+ */ |
+ protected static void finishAllTheActivities(String targetActivity, int result, Intent data) { |
List<WeakReference<Activity>> activities = ApplicationStatus.getRunningActivities(); |
for (WeakReference<Activity> weakActivity : activities) { |
Activity activity = weakActivity.get(); |
- if (activity instanceof FirstRunActivity) { |
+ if (activity != null && activity.getLocalClassName().equals(targetActivity)) { |
activity.setResult(result, data); |
activity.finish(); |
} |