Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(250)

Unified Diff: content/renderer/renderer_webstoragearea_impl.cc

Issue 6915017: Chrome side to allow WebKit layer to use WebPermissionClient to check if access to local storage ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/renderer_webstoragearea_impl.cc
===================================================================
--- content/renderer/renderer_webstoragearea_impl.cc (revision 83945)
+++ content/renderer/renderer_webstoragearea_impl.cc (working copy)
@@ -4,6 +4,9 @@
#include "content/renderer/renderer_webstoragearea_impl.h"
+// TODO(jam): temporary include until webkit merge
+#include "chrome/renderer/content_settings_observer.h"
+
#include "content/common/dom_storage_messages.h"
#include "content/renderer/render_thread.h"
#include "content/renderer/render_view.h"
@@ -17,7 +20,8 @@
using WebKit::WebView;
RendererWebStorageAreaImpl::RendererWebStorageAreaImpl(
- int64 namespace_id, const WebString& origin) {
+ int64 namespace_id, const WebString& origin, DOMStorageType storage_type)
+ : storage_type_(storage_type) {
RenderThread::current()->Send(
new DOMStorageHostMsg_StorageAreaId(namespace_id, origin,
&storage_area_id_));
@@ -54,17 +58,25 @@
int32 render_view_id = MSG_ROUTING_CONTROL;
if (web_frame) {
RenderView* render_view = RenderView::FromWebView(web_frame->view());
- if (render_view)
+ if (render_view) {
render_view_id = render_view->routing_id();
+
+ // TODO(jam): remove after merge
+ ContentSettingsObserver* content_setting =
+ ContentSettingsObserver::Get(render_view);
+ if (!content_setting->AllowStorage(
+ web_frame, storage_type_ == DOM_STORAGE_LOCAL)) {
+ result = WebStorageArea::ResultBlockedByQuota;
+ old_value_webkit = NullableString16();
+ return;
+ }
+ }
}
DCHECK(render_view_id != MSG_ROUTING_CONTROL);
NullableString16 old_value;
- IPC::SyncMessage* message =
- new DOMStorageHostMsg_SetItem(render_view_id, storage_area_id_, key,
- value, url, &result, &old_value);
- // NOTE: This may pump events (see RenderThread::Send).
- RenderThread::current()->Send(message);
+ RenderThread::current()->Send(new DOMStorageHostMsg_SetItem(
+ render_view_id, storage_area_id_, key, value, url, &result, &old_value));
old_value_webkit = old_value;
}
« no previous file with comments | « content/renderer/renderer_webstoragearea_impl.h ('k') | content/renderer/renderer_webstoragenamespace_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698