diff options
Diffstat (limited to 'chrome/renderer/renderer_webstoragearea_impl.cc')
-rw-r--r-- | chrome/renderer/renderer_webstoragearea_impl.cc | 22 |
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)); } } |