| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/renderer/renderer_webstoragearea_impl.h" | |
| 6 | |
| 7 #include "chrome/renderer/render_thread.h" | |
| 8 #include "chrome/renderer/render_view.h" | |
| 9 #include "content/common/dom_storage_messages.h" | |
| 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" | |
| 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" | |
| 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | |
| 13 | |
| 14 using WebKit::WebFrame; | |
| 15 using WebKit::WebString; | |
| 16 using WebKit::WebURL; | |
| 17 using WebKit::WebView; | |
| 18 | |
| 19 RendererWebStorageAreaImpl::RendererWebStorageAreaImpl( | |
| 20 int64 namespace_id, const WebString& origin) { | |
| 21 RenderThread::current()->Send( | |
| 22 new DOMStorageHostMsg_StorageAreaId(namespace_id, origin, | |
| 23 &storage_area_id_)); | |
| 24 } | |
| 25 | |
| 26 RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() { | |
| 27 } | |
| 28 | |
| 29 unsigned RendererWebStorageAreaImpl::length() { | |
| 30 unsigned length; | |
| 31 RenderThread::current()->Send( | |
| 32 new DOMStorageHostMsg_Length(storage_area_id_, &length)); | |
| 33 return length; | |
| 34 } | |
| 35 | |
| 36 WebString RendererWebStorageAreaImpl::key(unsigned index) { | |
| 37 NullableString16 key; | |
| 38 RenderThread::current()->Send( | |
| 39 new DOMStorageHostMsg_Key(storage_area_id_, index, &key)); | |
| 40 return key; | |
| 41 } | |
| 42 | |
| 43 WebString RendererWebStorageAreaImpl::getItem(const WebString& key) { | |
| 44 NullableString16 value; | |
| 45 RenderThread::current()->Send( | |
| 46 new DOMStorageHostMsg_GetItem(storage_area_id_, key, &value)); | |
| 47 return value; | |
| 48 } | |
| 49 | |
| 50 void RendererWebStorageAreaImpl::setItem( | |
| 51 const WebString& key, const WebString& value, const WebURL& url, | |
| 52 WebStorageArea::Result& result, WebString& old_value_webkit, | |
| 53 WebFrame* web_frame) { | |
| 54 int32 render_view_id = MSG_ROUTING_CONTROL; | |
| 55 if (web_frame) { | |
| 56 RenderView* render_view = RenderView::FromWebView(web_frame->view()); | |
| 57 if (render_view) | |
| 58 render_view_id = render_view->routing_id(); | |
| 59 } | |
| 60 DCHECK(render_view_id != MSG_ROUTING_CONTROL); | |
| 61 | |
| 62 NullableString16 old_value; | |
| 63 IPC::SyncMessage* message = | |
| 64 new DOMStorageHostMsg_SetItem(render_view_id, storage_area_id_, key, | |
| 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; | |
| 69 } | |
| 70 | |
| 71 void RendererWebStorageAreaImpl::removeItem( | |
| 72 const WebString& key, const WebURL& url, WebString& old_value_webkit) { | |
| 73 NullableString16 old_value; | |
| 74 RenderThread::current()->Send( | |
| 75 new DOMStorageHostMsg_RemoveItem(storage_area_id_, key, url, &old_value)); | |
| 76 old_value_webkit = old_value; | |
| 77 } | |
| 78 | |
| 79 void RendererWebStorageAreaImpl::clear( | |
| 80 const WebURL& url, bool& cleared_something) { | |
| 81 RenderThread::current()->Send( | |
| 82 new DOMStorageHostMsg_Clear(storage_area_id_, url, &cleared_something)); | |
| 83 } | |
| OLD | NEW |