Index: chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java |
index 3397d3f3e8ec7f691bb4709c76fccfffcd42516a..ecdf6d87dc461c46a521f5629cbcd4f2602f1a56 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java |
@@ -21,6 +21,9 @@ public class PermissionDialogDelegate { |
/** The native-side counterpart of this class */ |
private long mNativeDelegatePtr; |
+ /** The controller for this class */ |
+ private PermissionDialogController mDialogController; |
+ |
/** The tab for which to create the dialog. */ |
private Tab mTab; |
@@ -103,6 +106,20 @@ public class PermissionDialogDelegate { |
nativeLinkClicked(mNativeDelegatePtr); |
} |
+ public void setDialogController(PermissionDialogController controller) { |
+ mDialogController = controller; |
+ } |
+ |
+ /** |
+ * Called from C++ by |nativeDelegatePtr| to destroy the dialog. |
+ */ |
+ @CalledByNative |
+ private void dismissFromNative() { |
+ assert mNativeDelegatePtr != 0; |
+ mNativeDelegatePtr = 0; |
+ mDialogController.dismissFromNative(this); |
+ } |
+ |
/** |
* Called from C++ by |nativeDelegatePtr| to instantiate this class. |
* |