Index: chrome/browser/chrome_content_browser_client.h |
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h |
index 9e54f1b3474f9d766bd607b6ec7b2af7c6359ef7..890f1188729060014003fe5044889ee09c59dda2 100644 |
--- a/chrome/browser/chrome_content_browser_client.h |
+++ b/chrome/browser/chrome_content_browser_client.h |
@@ -6,7 +6,10 @@ |
#define CHROME_BROWSER_CHROME_CONTENT_BROWSER_CLIENT_H_ |
#pragma once |
+#include <map> |
+ |
#include "base/compiler_specific.h" |
+#include "base/time.h" |
#include "content/browser/content_browser_client.h" |
class QuotaPermissionContext; |
@@ -15,6 +18,9 @@ namespace chrome { |
class ChromeContentBrowserClient : public content::ContentBrowserClient { |
public: |
+ ChromeContentBrowserClient(); |
+ ~ChromeContentBrowserClient(); |
+ |
virtual void RenderViewHostCreated(RenderViewHost* render_view_host) OVERRIDE; |
virtual void BrowserRenderProcessHostCreated( |
BrowserRenderProcessHost* host) OVERRIDE; |
@@ -46,10 +52,37 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { |
net::CookieOptions* options) OVERRIDE; |
virtual QuotaPermissionContext* CreateQuotaPermissionContext() OVERRIDE; |
virtual void RevealFolderInOS(const FilePath& path) OVERRIDE; |
+ virtual void RunJavaScriptDialog(content::JavaScriptDialogDelegate* delegate, |
+ const GURL& frame_url, |
+ int dialog_flags, |
+ const string16& message_text, |
+ const string16& default_prompt_text, |
+ IPC::Message* reply_message, |
+ bool* did_suppress_message, |
+ Profile* profile) OVERRIDE; |
+ virtual void RunBeforeUnloadDialog( |
+ content::JavaScriptDialogDelegate* delegate, |
+ const string16& message_text, |
+ IPC::Message* reply_msg) OVERRIDE; |
+ virtual void ResetJavaScriptState( |
+ content::JavaScriptDialogDelegate* delegate) OVERRIDE; |
+ |
#if defined(OS_POSIX) && !defined(OS_MACOSX) |
// Can return an optional fd for crash handling, otherwise returns -1. |
virtual int GetCrashSignalFD(const std::string& process_type) OVERRIDE; |
#endif |
+ |
+ private: |
+ class JavaScriptDialogDelegateProxy; |
+ |
+ JavaScriptDialogDelegateProxy* ProxyForDelegate( |
+ content::JavaScriptDialogDelegate* delegate); |
+ |
+ // Mapping between the JavaScriptDialogDelegates and their proxies. The key is |
+ // a void* because the pointer is just a cookie and is never dereferenced. |
+ typedef std::map<void*, JavaScriptDialogDelegateProxy*> |
+ JavaScriptDialogProxyMap; |
+ JavaScriptDialogProxyMap javascript_dialog_proxies_; |
}; |
} // namespace chrome |