| Index: chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java b/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java
|
| index 589d8b2404ae513fb706895639cbe8526a364b35..d2f5e5a01a55c916d717327bdad0371d874c7b1c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java
|
| @@ -102,12 +102,14 @@ public class PermissionDialogController implements AndroidPermissionRequester.Re
|
| @Override
|
| public void onAndroidPermissionAccepted() {
|
| mDialogDelegate.onAccept(mSwitchView.isChecked());
|
| + destroyDelegate();
|
| scheduleDisplay();
|
| }
|
|
|
| @Override
|
| public void onAndroidPermissionCanceled() {
|
| mDialogDelegate.onDismiss();
|
| + destroyDelegate();
|
| scheduleDisplay();
|
| }
|
|
|
| @@ -126,7 +128,7 @@ public class PermissionDialogController implements AndroidPermissionRequester.Re
|
| // so act as though the user dismissed it.
|
| if (activity == null) {
|
| mDialogDelegate.onDismiss();
|
| - mDialogDelegate.destroy();
|
| + destroyDelegate();
|
| return;
|
| }
|
|
|
| @@ -208,7 +210,7 @@ public class PermissionDialogController implements AndroidPermissionRequester.Re
|
| } else {
|
| mDialogDelegate.onDismiss();
|
| }
|
| - mDialogDelegate.destroy();
|
| + destroyDelegate();
|
| scheduleDisplay();
|
| }
|
| }
|
| @@ -243,4 +245,9 @@ public class PermissionDialogController implements AndroidPermissionRequester.Re
|
|
|
| return fullString;
|
| }
|
| +
|
| + private void destroyDelegate() {
|
| + mDialogDelegate.destroy();
|
| + mDialogDelegate = null;
|
| + }
|
| }
|
|
|