| 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();
|
| }
|
|
|