| Index: chrome/browser/permissions/permission_dialog_delegate.h
|
| diff --git a/chrome/browser/permissions/permission_dialog_delegate.h b/chrome/browser/permissions/permission_dialog_delegate.h
|
| index 76c4b6cd0a420be9eb5ca92698ead55599ca7373..cc04a43f15aa6d83fa89bc3a53f77c3646cb9395 100644
|
| --- a/chrome/browser/permissions/permission_dialog_delegate.h
|
| +++ b/chrome/browser/permissions/permission_dialog_delegate.h
|
| @@ -13,9 +13,9 @@
|
| #include "chrome/browser/media/webrtc/media_stream_devices_controller.h"
|
| #include "chrome/browser/permissions/permission_util.h"
|
| #include "components/content_settings/core/common/content_settings_types.h"
|
| +#include "content/public/browser/web_contents_observer.h"
|
|
|
| using base::android::JavaParamRef;
|
| -using base::android::ScopedJavaLocalRef;
|
|
|
| namespace content {
|
| class WebContents;
|
| @@ -34,7 +34,7 @@ class TabAndroid;
|
| // GroupedPermissionInfoBarDelegate, which will then source all of its data from
|
| // an underlying PermissionPromptAndroid object. At that time, this class will
|
| // also change to wrap a PermissionPromptAndroid.
|
| -class PermissionDialogDelegate {
|
| +class PermissionDialogDelegate : public content::WebContentsObserver {
|
| public:
|
| using PermissionSetCallback = base::Callback<void(bool, PermissionAction)>;
|
|
|
| @@ -72,10 +72,21 @@ class PermissionDialogDelegate {
|
| private:
|
| PermissionDialogDelegate(
|
| TabAndroid* tab,
|
| + content::WebContents* web_contents,
|
| std::unique_ptr<PermissionInfoBarDelegate> infobar_delegate_);
|
| - ~PermissionDialogDelegate();
|
| + ~PermissionDialogDelegate() override;
|
| +
|
| + void CreateJavaDelegate(JNIEnv* env);
|
| +
|
| + // On navigation or page destruction, hide the dialog.
|
| + void DestroyJavaDelegate();
|
| +
|
| + // WebContentsObserver:
|
| + void DidFinishNavigation(
|
| + content::NavigationHandle* navigation_handle) override;
|
| + void WebContentsDestroyed() override;
|
|
|
| - ScopedJavaLocalRef<jobject> CreateJavaDelegate(JNIEnv* env);
|
| + base::android::ScopedJavaGlobalRef<jobject> j_delegate_;
|
|
|
| TabAndroid* tab_;
|
|
|
|
|