| Index: trunk/src/chrome/browser/net/cookie_store_util.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/net/cookie_store_util.cc (revision 219785)
|
| +++ trunk/src/chrome/browser/net/cookie_store_util.cc (working copy)
|
| @@ -1,141 +0,0 @@
|
| -// Copyright 2013 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/browser/net/cookie_store_util.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "base/command_line.h"
|
| -#include "chrome/browser/browser_process.h"
|
| -#include "chrome/browser/chrome_notification_types.h"
|
| -#include "chrome/browser/net/chrome_cookie_notification_details.h"
|
| -#include "chrome/browser/net/evicted_domain_cookie_counter.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/profiles/profile_manager.h"
|
| -#include "chrome/common/chrome_constants.h"
|
| -#include "chrome/common/chrome_switches.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "content/public/browser/cookie_store_factory.h"
|
| -#include "content/public/browser/notification_service.h"
|
| -#include "content/public/common/content_constants.h"
|
| -#include "extensions/common/constants.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace {
|
| -
|
| -class ChromeCookieMonsterDelegate : public net::CookieMonsterDelegate {
|
| - public:
|
| - explicit ChromeCookieMonsterDelegate(Profile* profile)
|
| - : profile_getter_(
|
| - base::Bind(&GetProfileOnUI, g_browser_process->profile_manager(),
|
| - profile)) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(profile);
|
| - }
|
| -
|
| - // net::CookieMonster::Delegate implementation.
|
| - virtual void OnCookieChanged(
|
| - const net::CanonicalCookie& cookie,
|
| - bool removed,
|
| - net::CookieMonster::Delegate::ChangeCause cause) OVERRIDE {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&ChromeCookieMonsterDelegate::OnCookieChangedAsyncHelper,
|
| - this, cookie, removed, cause));
|
| - }
|
| -
|
| - private:
|
| - virtual ~ChromeCookieMonsterDelegate() {}
|
| -
|
| - static Profile* GetProfileOnUI(ProfileManager* profile_manager,
|
| - Profile* profile) {
|
| - if (profile_manager->IsValidProfile(profile))
|
| - return profile;
|
| - return NULL;
|
| - }
|
| -
|
| - void OnCookieChangedAsyncHelper(
|
| - const net::CanonicalCookie& cookie,
|
| - bool removed,
|
| - net::CookieMonster::Delegate::ChangeCause cause) {
|
| - Profile* profile = profile_getter_.Run();
|
| - if (profile) {
|
| - ChromeCookieDetails cookie_details(&cookie, removed, cause);
|
| - content::NotificationService::current()->Notify(
|
| - chrome::NOTIFICATION_COOKIE_CHANGED,
|
| - content::Source<Profile>(profile),
|
| - content::Details<ChromeCookieDetails>(&cookie_details));
|
| - }
|
| - }
|
| -
|
| - const base::Callback<Profile*(void)> profile_getter_;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -namespace chrome_browser_net {
|
| -
|
| -bool IsCookieRecordMode() {
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - // Only allow Record Mode if we are in a Debug build or where we are running
|
| - // a cycle, and the user has limited control.
|
| - return command_line.HasSwitch(switches::kRecordMode) &&
|
| - (chrome::kRecordModeEnabled ||
|
| - command_line.HasSwitch(switches::kVisitURLs));
|
| -}
|
| -
|
| -bool ShouldUseInMemoryCookiesAndCache() {
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - return IsCookieRecordMode() ||
|
| - command_line.HasSwitch(switches::kPlaybackMode);
|
| -}
|
| -
|
| -net::CookieMonsterDelegate* CreateCookieDelegate(Profile* profile) {
|
| - return new EvictedDomainCookieCounter(
|
| - new ChromeCookieMonsterDelegate(profile));
|
| -}
|
| -
|
| -void SetCookieStoreConfigs(
|
| - const base::FilePath& partition_path,
|
| - bool in_memory_partition,
|
| - bool is_default_partition,
|
| - content::CookieStoreConfig::SessionCookieMode session_cookie_mode,
|
| - quota::SpecialStoragePolicy* storage_policy,
|
| - net::CookieMonsterDelegate* cookie_delegate,
|
| - content::BrowserContext::CookieSchemeMap* configs) {
|
| - using content::CookieStoreConfig;
|
| - configs->clear();
|
| -
|
| - bool in_memory = in_memory_partition ||
|
| - chrome_browser_net::ShouldUseInMemoryCookiesAndCache();
|
| -
|
| - if (in_memory) {
|
| - (*configs)[content::BrowserContext::kDefaultCookieScheme] =
|
| - CookieStoreConfig(base::FilePath(),
|
| - CookieStoreConfig::EPHEMERAL_SESSION_COOKIES,
|
| - storage_policy,
|
| - cookie_delegate);
|
| - } else {
|
| - (*configs)[content::BrowserContext::kDefaultCookieScheme] =
|
| - CookieStoreConfig(partition_path.Append(content::kCookieFilename),
|
| - session_cookie_mode,
|
| - storage_policy,
|
| - cookie_delegate);
|
| - }
|
| -
|
| - // Handle adding the extensions cookie store.
|
| - if (is_default_partition) {
|
| - if (in_memory) {
|
| - (*configs)[extensions::kExtensionScheme] = CookieStoreConfig();
|
| - } else {
|
| - base::FilePath cookie_path = partition_path.Append(
|
| - chrome::kExtensionsCookieFilename);
|
| - (*configs)[extensions::kExtensionScheme] =
|
| - CookieStoreConfig(cookie_path, session_cookie_mode, NULL, NULL);
|
| - }
|
| - }
|
| -}
|
| -
|
| -} // namespace chrome_browser_net
|
|
|