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

Side by Side 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, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/renderer_webstoragearea_impl.h" 5 #include "content/renderer/renderer_webstoragearea_impl.h"
6 6
7 // TODO(jam): temporary include until webkit merge
8 #include "chrome/renderer/content_settings_observer.h"
9
7 #include "content/common/dom_storage_messages.h" 10 #include "content/common/dom_storage_messages.h"
8 #include "content/renderer/render_thread.h" 11 #include "content/renderer/render_thread.h"
9 #include "content/renderer/render_view.h" 12 #include "content/renderer/render_view.h"
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
13 16
14 using WebKit::WebFrame; 17 using WebKit::WebFrame;
15 using WebKit::WebString; 18 using WebKit::WebString;
16 using WebKit::WebURL; 19 using WebKit::WebURL;
17 using WebKit::WebView; 20 using WebKit::WebView;
18 21
19 RendererWebStorageAreaImpl::RendererWebStorageAreaImpl( 22 RendererWebStorageAreaImpl::RendererWebStorageAreaImpl(
20 int64 namespace_id, const WebString& origin) { 23 int64 namespace_id, const WebString& origin, DOMStorageType storage_type)
24 : storage_type_(storage_type) {
21 RenderThread::current()->Send( 25 RenderThread::current()->Send(
22 new DOMStorageHostMsg_StorageAreaId(namespace_id, origin, 26 new DOMStorageHostMsg_StorageAreaId(namespace_id, origin,
23 &storage_area_id_)); 27 &storage_area_id_));
24 } 28 }
25 29
26 RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() { 30 RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() {
27 } 31 }
28 32
29 unsigned RendererWebStorageAreaImpl::length() { 33 unsigned RendererWebStorageAreaImpl::length() {
30 unsigned length; 34 unsigned length;
(...skipping 16 matching lines...) Expand all
47 return value; 51 return value;
48 } 52 }
49 53
50 void RendererWebStorageAreaImpl::setItem( 54 void RendererWebStorageAreaImpl::setItem(
51 const WebString& key, const WebString& value, const WebURL& url, 55 const WebString& key, const WebString& value, const WebURL& url,
52 WebStorageArea::Result& result, WebString& old_value_webkit, 56 WebStorageArea::Result& result, WebString& old_value_webkit,
53 WebFrame* web_frame) { 57 WebFrame* web_frame) {
54 int32 render_view_id = MSG_ROUTING_CONTROL; 58 int32 render_view_id = MSG_ROUTING_CONTROL;
55 if (web_frame) { 59 if (web_frame) {
56 RenderView* render_view = RenderView::FromWebView(web_frame->view()); 60 RenderView* render_view = RenderView::FromWebView(web_frame->view());
57 if (render_view) 61 if (render_view) {
58 render_view_id = render_view->routing_id(); 62 render_view_id = render_view->routing_id();
63
64 // TODO(jam): remove after merge
65 ContentSettingsObserver* content_setting =
66 ContentSettingsObserver::Get(render_view);
67 if (!content_setting->AllowStorage(
68 web_frame, storage_type_ == DOM_STORAGE_LOCAL)) {
69 result = WebStorageArea::ResultBlockedByQuota;
70 old_value_webkit = NullableString16();
71 return;
72 }
73 }
59 } 74 }
60 DCHECK(render_view_id != MSG_ROUTING_CONTROL); 75 DCHECK(render_view_id != MSG_ROUTING_CONTROL);
61 76
62 NullableString16 old_value; 77 NullableString16 old_value;
63 IPC::SyncMessage* message = 78 RenderThread::current()->Send(new DOMStorageHostMsg_SetItem(
64 new DOMStorageHostMsg_SetItem(render_view_id, storage_area_id_, key, 79 render_view_id, storage_area_id_, key, value, url, &result, &old_value));
65 value, url, &result, &old_value);
66 // NOTE: This may pump events (see RenderThread::Send).
67 RenderThread::current()->Send(message);
68 old_value_webkit = old_value; 80 old_value_webkit = old_value;
69 } 81 }
70 82
71 void RendererWebStorageAreaImpl::removeItem( 83 void RendererWebStorageAreaImpl::removeItem(
72 const WebString& key, const WebURL& url, WebString& old_value_webkit) { 84 const WebString& key, const WebURL& url, WebString& old_value_webkit) {
73 NullableString16 old_value; 85 NullableString16 old_value;
74 RenderThread::current()->Send( 86 RenderThread::current()->Send(
75 new DOMStorageHostMsg_RemoveItem(storage_area_id_, key, url, &old_value)); 87 new DOMStorageHostMsg_RemoveItem(storage_area_id_, key, url, &old_value));
76 old_value_webkit = old_value; 88 old_value_webkit = old_value;
77 } 89 }
78 90
79 void RendererWebStorageAreaImpl::clear( 91 void RendererWebStorageAreaImpl::clear(
80 const WebURL& url, bool& cleared_something) { 92 const WebURL& url, bool& cleared_something) {
81 RenderThread::current()->Send( 93 RenderThread::current()->Send(
82 new DOMStorageHostMsg_Clear(storage_area_id_, url, &cleared_something)); 94 new DOMStorageHostMsg_Clear(storage_area_id_, url, &cleared_something));
83 } 95 }
OLDNEW
« 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