Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 00b1ddcb37051d75b2adf9a064e0e206235ad59d..58023f98cca28a63c69732b276840eae5b0ae035 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -3497,6 +3497,22 @@ void RenderFrameImpl::requestStorageQuota( |
QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); |
} |
+void RenderFrameImpl::requestDurability( |
+ WebLocalFrame* frame, |
+ blink::WebStorageQuotaCallbacks callbacks) { |
+ DCHECK(!frame_ || frame_ == frame); |
+ WebSecurityOrigin origin = frame->document().securityOrigin(); |
+ if (origin.isUnique()) { |
+ // Unique origins cannot store persistent state. |
+ callbacks.didFail(blink::WebStorageQuotaErrorAbort); |
+ return; |
+ } |
+ ChildThreadImpl::current()->quota_dispatcher()->RequestDurability( |
+ render_view_->GetRoutingID(), |
+ GURL(origin.toString()), |
+ QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); |
+}; |
+ |
void RenderFrameImpl::willOpenWebSocket(blink::WebSocketHandle* handle) { |
WebSocketBridge* impl = static_cast<WebSocketBridge*>(handle); |
impl->set_render_frame_id(routing_id_); |