summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/database_permission_request.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/renderer_host/database_permission_request.h')
-rw-r--r--chrome/browser/renderer_host/database_permission_request.h31
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);
};