summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/database_permission_request.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/renderer_host/database_permission_request.cc')
-rw-r--r--chrome/browser/renderer_host/database_permission_request.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/database_permission_request.cc b/chrome/browser/renderer_host/database_permission_request.cc
new file mode 100644
index 0000000..73a9977
--- /dev/null
+++ b/chrome/browser/renderer_host/database_permission_request.cc
@@ -0,0 +1,38 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/renderer_host/database_permission_request.h"
+
+#include "chrome/browser/chrome_thread.h"
+
+DatabasePermissionRequest::DatabasePermissionRequest(
+ const string16& origin,
+ const string16& database_name,
+ Task* on_allow,
+ Task* on_block)
+ : origin_(origin),
+ database_name_(database_name),
+ on_allow_(on_allow),
+ on_block_(on_block) {
+ DCHECK(on_allow_.get());
+ DCHECK(on_block_.get());
+}
+
+DatabasePermissionRequest::~DatabasePermissionRequest() {
+}
+
+void DatabasePermissionRequest::RequestPermission() {
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE, NewRunnableMethod(
+ this, &DatabasePermissionRequest::RequestPermissionUI));
+}
+
+void DatabasePermissionRequest::RequestPermissionUI() {
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
+ bool allow = false; // TODO(jorlow/darin): Allow user to choose.
+
+ Task* task = allow ? on_allow_.release() : on_block_.release();
+ ChromeThread::PostTask(ChromeThread::IO, FROM_HERE, task);
+}