1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file.
4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/importer/toolbar_importer_utils.h"
6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string>
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <vector>
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/string_split.h"
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/profiles/profile.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "googleurl/src/gurl.h"
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "net/base/cookie_store.h"
14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "net/url_request/url_request_context_getter.h"
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace {
17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenconst char kGoogleDomainUrl[] = "http://.google.com/";
18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenconst char kGoogleDomainSecureCookieId[] = "SID=";
19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenconst char kSplitStringToken = ';';
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace toolbar_importer_utils {
23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenbool IsGoogleGAIACookieInstalled() {
25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  net::CookieStore* store =
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      Profile::GetDefaultRequestContext()->DONTUSEME_GetCookieStore();
27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  GURL url(kGoogleDomainUrl);
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  net::CookieOptions options;
29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  options.set_include_httponly();  // The SID cookie might be httponly.
30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  std::string cookies = store->GetCookiesWithOptions(url, options);
31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  std::vector<std::string> cookie_list;
32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  base::SplitString(cookies, kSplitStringToken, &cookie_list);
33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  for (std::vector<std::string>::iterator current = cookie_list.begin();
34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen       current != cookie_list.end();
35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen       ++current) {
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    size_t position = (*current).find(kGoogleDomainSecureCookieId);
37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    if (0 == position)
38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      return true;
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  }
40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  return false;
41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}  // namespace toolbar_importer_utils
44