summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/renderer_webstoragearea_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/renderer_webstoragearea_impl.cc')
-rw-r--r--chrome/renderer/renderer_webstoragearea_impl.cc22
1 files changed, 12 insertions, 10 deletions
diff --git a/chrome/renderer/renderer_webstoragearea_impl.cc b/chrome/renderer/renderer_webstoragearea_impl.cc
index 20ce740..e1a9fb9 100644
--- a/chrome/renderer/renderer_webstoragearea_impl.cc
+++ b/chrome/renderer/renderer_webstoragearea_impl.cc
@@ -1,6 +1,6 @@
-// Copyright (c) 2009 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.
+// 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 "chrome/renderer/renderer_webstoragearea_impl.h"
@@ -9,10 +9,12 @@
#include "chrome/renderer/render_view.h"
#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/WebKit/chromium/public/WebURL.h"
+#include "third_party/WebKit/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) {
@@ -48,18 +50,18 @@ WebString RendererWebStorageAreaImpl::getItem(const WebString& key) {
void RendererWebStorageAreaImpl::setItem(
const WebString& key, const WebString& value, const WebURL& url,
WebStorageArea::Result& result, WebString& old_value_webkit) {
+ int32 routing_id = RenderThread::RoutingIDForCurrentContext();
+ CHECK(routing_id != MSG_ROUTING_CONTROL);
+
NullableString16 old_value;
- RenderThread::current()->Send(
- new ViewHostMsg_DOMStorageSetItem(storage_area_id_, key, value, url,
- &result, &old_value));
+ RenderThread::current()->SendAndRunNestedMessageLoop(
+ new ViewHostMsg_DOMStorageSetItem(routing_id, storage_area_id_, key,
+ value, url, &result, &old_value));
old_value_webkit = old_value;
if (result == WebStorageArea::ResultBlockedByPolicy) {
- RenderView* view =
- RenderView::FromWebView(WebFrame::frameForCurrentContext()->view());
- DCHECK(view);
RenderThread::current()->Send(new ViewHostMsg_ContentBlocked(
- view->routing_id(), CONTENT_SETTINGS_TYPE_COOKIES));
+ routing_id, CONTENT_SETTINGS_TYPE_COOKIES));
}
}