83 soup_cookie_jar_set_cookie_with_first_party(jar, origin.get(), firstParty.get(), value.utf8().data());
94
95 // Get existing cookies for this origin.
96 GSList* existingCookies = soup_cookie_jar_get_cookie_list(jar, origin.get(), TRUE);
97
98 Vector<String> cookies;
99 value.split('\n', cookies);
100 const size_t cookiesCount = cookies.size();
101 for (size_t i = 0; i < cookiesCount; ++i) {
102 GOwnPtr<SoupCookie> cookie(soup_cookie_parse(cookies[i].utf8().data(), origin.get()));
103 if (!cookie)
104 continue;
105
106 // Make sure the cookie is not httpOnly since such cookies should not be set from JavaScript.
107 if (soup_cookie_get_http_only(cookie.get()))
108 continue;
109
110 // Make sure we do not overwrite httpOnly cookies from JavaScript.
111 SoupCookie* existingCookie = findCookieInList(existingCookies, soup_cookie_get_name(cookie.get()), soup_cookie_get_path(cookie.get()));
112 if (existingCookie && soup_cookie_get_http_only(existingCookie))
113 continue;
114
115 soup_cookie_jar_add_cookie_with_first_party(jar, firstParty.get(), cookie.release());
116 }
117
118 soup_cookies_free(existingCookies);