Index: content/child/permissions/permission_dispatcher.cc |
diff --git a/content/child/permissions/permission_dispatcher.cc b/content/child/permissions/permission_dispatcher.cc |
index eb5ac4538f0f9caf86adea7769ed9ab016e18e7b..9a79872a95e4e185c80ed307badd1f637eab5453 100644 |
--- a/content/child/permissions/permission_dispatcher.cc |
+++ b/content/child/permissions/permission_dispatcher.cc |
@@ -9,6 +9,7 @@ |
#include "content/public/common/service_registry.h" |
#include "third_party/WebKit/public/platform/WebURL.h" |
#include "third_party/WebKit/public/platform/modules/permissions/WebPermissionObserver.h" |
+#include "third_party/WebKit/public/web/WebUserGestureIndicator.h" |
using blink::WebPermissionObserver; |
@@ -26,6 +27,8 @@ PermissionName GetPermissionName(blink::WebPermissionType type) { |
return PERMISSION_NAME_PUSH_NOTIFICATIONS; |
case blink::WebPermissionTypeMidiSysEx: |
return PERMISSION_NAME_MIDI_SYSEX; |
+ case blink::WebPermissionTypeDurableStorage: |
+ return PERMISSION_NAME_DURABLE_STORAGE; |
default: |
// The default statement is only there to prevent compilation failures if |
// WebPermissionType enum gets extended. |
@@ -105,6 +108,18 @@ PermissionDispatcher::PermissionDispatcher(ServiceRegistry* service_registry) |
PermissionDispatcher::~PermissionDispatcher() { |
} |
+void PermissionDispatcher::requestDurablePermission(const blink::WebURL& origin, |
+ blink::WebPermissionQueryCallback* callback) { |
+ int request_id = pending_callbacks_.Add( |
+ new CallbackInformation(callback, kNoWorkerThread)); |
+ GetPermissionServicePtr()->RequestPermission( |
+ PERMISSION_NAME_DURABLE_STORAGE, origin.string().utf8(), |
+ blink::WebUserGestureIndicator::isProcessingUserGesture(), |
+ base::Bind(&PermissionDispatcher::OnQueryPermission, |
+ base::Unretained(this), |
+ request_id)); |
+} |
+ |
void PermissionDispatcher::queryPermission( |
blink::WebPermissionType type, |
const blink::WebURL& origin, |