summaryrefslogtreecommitdiffstats
path: root/content/renderer/renderer_webstoragearea_impl.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-18 01:33:34 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-18 01:33:34 +0000
commitacb94729d3aa35ec833c922ade31340229770d60 (patch)
tree7c26a239c8b9e09b78f809a308e081329625c8b2 /content/renderer/renderer_webstoragearea_impl.cc
parent4874aae4718d407f7f4de1b71f0c02b9a2065474 (diff)
downloadchromium_src-acb94729d3aa35ec833c922ade31340229770d60.zip
chromium_src-acb94729d3aa35ec833c922ade31340229770d60.tar.gz
chromium_src-acb94729d3aa35ec833c922ade31340229770d60.tar.bz2
Move the renderer_web* files to content.
TBR=avi Review URL: http://codereview.chromium.org/6713024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78643 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/renderer_webstoragearea_impl.cc')
-rw-r--r--content/renderer/renderer_webstoragearea_impl.cc83
1 files changed, 83 insertions, 0 deletions
diff --git a/content/renderer/renderer_webstoragearea_impl.cc b/content/renderer/renderer_webstoragearea_impl.cc
new file mode 100644
index 0000000..07d225c
--- /dev/null
+++ b/content/renderer/renderer_webstoragearea_impl.cc
@@ -0,0 +1,83 @@
+// 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 "content/renderer/renderer_webstoragearea_impl.h"
+
+#include "chrome/renderer/render_thread.h"
+#include "chrome/renderer/render_view.h"
+#include "content/common/dom_storage_messages.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
+
+using WebKit::WebFrame;
+using WebKit::WebString;
+using WebKit::WebURL;
+using WebKit::WebView;
+
+RendererWebStorageAreaImpl::RendererWebStorageAreaImpl(
+ int64 namespace_id, const WebString& origin) {
+ RenderThread::current()->Send(
+ new DOMStorageHostMsg_StorageAreaId(namespace_id, origin,
+ &storage_area_id_));
+}
+
+RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() {
+}
+
+unsigned RendererWebStorageAreaImpl::length() {
+ unsigned length;
+ RenderThread::current()->Send(
+ new DOMStorageHostMsg_Length(storage_area_id_, &length));
+ return length;
+}
+
+WebString RendererWebStorageAreaImpl::key(unsigned index) {
+ NullableString16 key;
+ RenderThread::current()->Send(
+ new DOMStorageHostMsg_Key(storage_area_id_, index, &key));
+ return key;
+}
+
+WebString RendererWebStorageAreaImpl::getItem(const WebString& key) {
+ NullableString16 value;
+ RenderThread::current()->Send(
+ new DOMStorageHostMsg_GetItem(storage_area_id_, key, &value));
+ return value;
+}
+
+void RendererWebStorageAreaImpl::setItem(
+ const WebString& key, const WebString& value, const WebURL& url,
+ WebStorageArea::Result& result, WebString& old_value_webkit,
+ WebFrame* web_frame) {
+ int32 render_view_id = MSG_ROUTING_CONTROL;
+ if (web_frame) {
+ RenderView* render_view = RenderView::FromWebView(web_frame->view());
+ if (render_view)
+ render_view_id = render_view->routing_id();
+ }
+ 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);
+ old_value_webkit = old_value;
+}
+
+void RendererWebStorageAreaImpl::removeItem(
+ const WebString& key, const WebURL& url, WebString& old_value_webkit) {
+ NullableString16 old_value;
+ RenderThread::current()->Send(
+ new DOMStorageHostMsg_RemoveItem(storage_area_id_, key, url, &old_value));
+ old_value_webkit = old_value;
+}
+
+void RendererWebStorageAreaImpl::clear(
+ const WebURL& url, bool& cleared_something) {
+ RenderThread::current()->Send(
+ new DOMStorageHostMsg_Clear(storage_area_id_, url, &cleared_something));
+}