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.
5 #include "content/renderer/renderer_webcookiejar_impl.h"
7 #include "base/strings/utf_string_conversions.h"
8 #include "content/common/cookie_data.h"
9 #include "content/common/view_messages.h"
10 #include "content/public/renderer/content_renderer_client.h"
11 #include "content/renderer/render_view_impl.h"
12 #include "third_party/WebKit/public/platform/WebCookie.h"
14 using blink::WebCookie
;
15 using blink::WebString
;
17 using blink::WebVector
;
21 void RendererWebCookieJarImpl::setCookie(
22 const WebURL
& url
, const WebURL
& first_party_for_cookies
,
23 const WebString
& value
) {
24 std::string value_utf8
= base::UTF16ToUTF8(value
);
25 sender_
->Send(new ViewHostMsg_SetCookie(
26 sender_
->GetRoutingID(), url
, first_party_for_cookies
, value_utf8
));
29 WebString
RendererWebCookieJarImpl::cookies(
30 const WebURL
& url
, const WebURL
& first_party_for_cookies
) {
31 std::string value_utf8
;
32 sender_
->Send(new ViewHostMsg_GetCookies(
33 sender_
->GetRoutingID(), url
, first_party_for_cookies
, &value_utf8
));
34 return WebString::fromUTF8(value_utf8
);
37 WebString
RendererWebCookieJarImpl::cookieRequestHeaderFieldValue(
38 const WebURL
& url
, const WebURL
& first_party_for_cookies
) {
39 return cookies(url
, first_party_for_cookies
);
42 void RendererWebCookieJarImpl::rawCookies(
43 const WebURL
& url
, const WebURL
& first_party_for_cookies
,
44 WebVector
<WebCookie
>& raw_cookies
) {
45 std::vector
<CookieData
> cookies
;
46 sender_
->Send(new ViewHostMsg_GetRawCookies(
47 url
, first_party_for_cookies
, &cookies
));
49 WebVector
<WebCookie
> result(cookies
.size());
50 for (size_t i
= 0; i
< cookies
.size(); ++i
) {
51 const CookieData
& c
= cookies
[i
];
52 result
[i
] = WebCookie(WebString::fromUTF8(c
.name
),
53 WebString::fromUTF8(c
.value
),
54 WebString::fromUTF8(c
.domain
),
55 WebString::fromUTF8(c
.path
),
61 raw_cookies
.swap(result
);
64 void RendererWebCookieJarImpl::deleteCookie(
65 const WebURL
& url
, const WebString
& cookie_name
) {
66 std::string cookie_name_utf8
= base::UTF16ToUTF8(cookie_name
);
67 sender_
->Send(new ViewHostMsg_DeleteCookie(url
, cookie_name_utf8
));
70 bool RendererWebCookieJarImpl::cookiesEnabled(
71 const WebURL
& url
, const WebURL
& first_party_for_cookies
) {
72 bool cookies_enabled
= false;
73 sender_
->Send(new ViewHostMsg_CookiesEnabled(
74 sender_
->GetRoutingID(), url
, first_party_for_cookies
, &cookies_enabled
));
75 return cookies_enabled
;
78 } // namespace content