summaryrefslogtreecommitdiffstats
path: root/src/core/javascript_dialog_manager_qt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/javascript_dialog_manager_qt.h')
-rw-r--r--src/core/javascript_dialog_manager_qt.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/javascript_dialog_manager_qt.h b/src/core/javascript_dialog_manager_qt.h
index de416e03e..69eaf94b1 100644
--- a/src/core/javascript_dialog_manager_qt.h
+++ b/src/core/javascript_dialog_manager_qt.h
@@ -45,7 +45,10 @@
#include "content/public/common/javascript_message_type.h"
#include "qglobal.h"
+#include <QMap>
+#include <QSharedPointer>
+class JavaScriptDialogController;
namespace content {
class WebContents;
}
@@ -62,8 +65,13 @@ public:
virtual void RunBeforeUnloadDialog(content::WebContents *, const base::string16 &messageText, bool isReload,
const content::JavaScriptDialogManager::DialogClosedCallback &callback) Q_DECL_OVERRIDE { Q_UNUSED(messageText); Q_UNUSED(isReload); Q_UNUSED(callback); }
virtual bool HandleJavaScriptDialog(content::WebContents *, bool accept, const base::string16 *promptOverride) Q_DECL_OVERRIDE;
- virtual void CancelActiveAndPendingDialogs(content::WebContents *) Q_DECL_OVERRIDE {}
- virtual void WebContentsDestroyed(content::WebContents *) Q_DECL_OVERRIDE {}
+ virtual void CancelActiveAndPendingDialogs(content::WebContents *contents) Q_DECL_OVERRIDE { removeDialogForContents(contents); }
+ virtual void WebContentsDestroyed(content::WebContents *contents) Q_DECL_OVERRIDE { removeDialogForContents(contents); }
+
+ void removeDialogForContents(content::WebContents *);
+
+private:
+ QMap<content::WebContents *, QSharedPointer<JavaScriptDialogController> > m_activeDialogs;
};