summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.cc22
1 files changed, 18 insertions, 4 deletions
diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc
index 5580ab9..504d8f3 100644
--- a/chrome/renderer/renderer_webkitclient_impl.cc
+++ b/chrome/renderer/renderer_webkitclient_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_webkitclient_impl.h"
@@ -21,10 +21,12 @@
#include "chrome/plugin/npobject_util.h"
#include "chrome/renderer/net/render_dns_master.h"
#include "chrome/renderer/render_thread.h"
+#include "chrome/renderer/render_view.h"
#include "chrome/renderer/renderer_webstoragenamespace_impl.h"
#include "chrome/renderer/visitedlink_slave.h"
#include "googleurl/src/gurl.h"
#include "third_party/WebKit/WebKit/chromium/public/WebCookie.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/WebKit/chromium/public/WebStorageEventDispatcher.h"
#include "third_party/WebKit/WebKit/chromium/public/WebString.h"
#include "third_party/WebKit/WebKit/chromium/public/WebURL.h"
@@ -43,6 +45,7 @@
using WebKit::WebApplicationCacheHost;
using WebKit::WebApplicationCacheHostClient;
using WebKit::WebCookie;
+using WebKit::WebFrame;
using WebKit::WebKitClient;
using WebKit::WebStorageArea;
using WebKit::WebStorageEventDispatcher;
@@ -111,10 +114,21 @@ RendererWebKitClientImpl::createMessagePortChannel() {
void RendererWebKitClientImpl::setCookies(const WebURL& url,
const WebURL& first_party_for_cookies,
const WebString& value) {
+ // TODO(darin): Modify WebKit to pass the WebFrame. This code may be reached
+ // when there is no active script context.
+ int routing_id = MSG_ROUTING_CONTROL;
+ if (v8::Context::InContext()) {
+ RenderView* view =
+ RenderView::FromWebView(WebFrame::frameForCurrentContext()->view());
+ DCHECK(view);
+ routing_id = view->routing_id();
+ }
+
std::string value_utf8;
UTF16ToUTF8(value.data(), value.length(), &value_utf8);
RenderThread::current()->Send(
- new ViewHostMsg_SetCookie(url, first_party_for_cookies, value_utf8));
+ new ViewHostMsg_SetCookie(routing_id, url, first_party_for_cookies,
+ value_utf8));
}
WebString RendererWebKitClientImpl::cookies(