diff options
Diffstat (limited to 'chrome/browser/renderer_host/database_permission_request.h')
-rw-r--r-- | chrome/browser/renderer_host/database_permission_request.h | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/chrome/browser/renderer_host/database_permission_request.h b/chrome/browser/renderer_host/database_permission_request.h index 7760dcd..5cf391c 100644 --- a/chrome/browser/renderer_host/database_permission_request.h +++ b/chrome/browser/renderer_host/database_permission_request.h @@ -8,38 +8,51 @@ #include "base/ref_counted.h" #include "base/scoped_ptr.h" #include "base/string16.h" +#include "chrome/browser/cookie_prompt_modal_dialog_delegate.h" +#include "chrome/common/content_settings.h" +#include "googleurl/src/gurl.h" +class HostContentSettingsMap; class Task; // This class is fully threadsafe. class DatabasePermissionRequest - : public base::RefCountedThreadSafe<DatabasePermissionRequest> { + : public base::RefCountedThreadSafe<DatabasePermissionRequest>, + public CookiePromptModalDialogDelegate { public: - DatabasePermissionRequest(const string16& origin, + DatabasePermissionRequest(const GURL& url, const string16& database_name, Task* on_allow, - Task* on_block); + Task* on_block, + HostContentSettingsMap* settings_map); ~DatabasePermissionRequest(); - const string16& origin() const { return origin_; } + const GURL& url() const { return url_; } const string16& database_name() const { return database_name_; } // Start the permission request process. void RequestPermission(); + // CookiesPromptViewDelegate methods: + virtual void AllowSiteData(bool remember, bool session_expire); + virtual void BlockSiteData(bool remember); + private: - // Called on the UI thread to pop up UI to request permission to open the - // database. - void RequestPermissionUI(); + void SendResponse(ContentSetting content_setting, bool remember); - // Info to provide the user while asking for permission. - const string16 origin_; + // The URL to get permission for. + const GURL url_; const string16 database_name_; // Set on IO, possibly release()ed on UI, destroyed on IO or UI. scoped_ptr<Task> on_allow_; scoped_ptr<Task> on_block_; + scoped_refptr<HostContentSettingsMap> host_content_settings_map_; + + // Released once we have our answer. + scoped_refptr<DatabasePermissionRequest> self_ref_; + DISALLOW_IMPLICIT_CONSTRUCTORS(DatabasePermissionRequest); }; |