OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ios/net/cookies/cookie_store_ios.h" | 5 #include "ios/net/cookies/cookie_store_ios.h" |
6 | 6 |
7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 | 280 |
281 #pragma mark - | 281 #pragma mark - |
282 #pragma mark CookieStoreIOS | 282 #pragma mark CookieStoreIOS |
283 | 283 |
284 CookieStoreIOS::CookieStoreIOS( | 284 CookieStoreIOS::CookieStoreIOS( |
285 net::CookieMonster::PersistentCookieStore* persistent_store) | 285 net::CookieMonster::PersistentCookieStore* persistent_store) |
286 : CookieStoreIOS(persistent_store, | 286 : CookieStoreIOS(persistent_store, |
287 [NSHTTPCookieStorage sharedHTTPCookieStorage]) { | 287 [NSHTTPCookieStorage sharedHTTPCookieStorage]) { |
288 } | 288 } |
289 | 289 |
290 CookieStoreIOS::CookieStoreIOS( | |
291 net::CookieMonster::PersistentCookieStore* persistent_store, | |
292 NSHTTPCookieStorage* system_store) | |
293 : cookie_monster_(new net::CookieMonster(persistent_store, nullptr)), | |
294 system_store_(system_store), | |
295 creation_time_manager_(new CookieCreationTimeManager), | |
296 metrics_enabled_(false), | |
297 flush_delay_(base::TimeDelta::FromSeconds(10)), | |
298 synchronization_state_(NOT_SYNCHRONIZED), | |
299 cookie_cache_(new CookieCache()), | |
300 weak_factory_(this) { | |
301 DCHECK(system_store); | |
302 | |
303 NotificationTrampoline::GetInstance()->AddObserver(this); | |
304 | |
305 cookie_monster_->SetPersistSessionCookies(true); | |
306 cookie_monster_->SetForceKeepSessionState(); | |
307 } | |
308 | |
309 CookieStoreIOS::~CookieStoreIOS() { | 290 CookieStoreIOS::~CookieStoreIOS() { |
310 NotificationTrampoline::GetInstance()->RemoveObserver(this); | 291 NotificationTrampoline::GetInstance()->RemoveObserver(this); |
311 } | 292 } |
312 | 293 |
313 // static | 294 // static |
314 std::unique_ptr<CookieStoreIOS> CookieStoreIOS::CreateCookieStore( | 295 std::unique_ptr<CookieStoreIOS> CookieStoreIOS::CreateCookieStore( |
315 NSHTTPCookieStorage* cookie_storage) { | 296 NSHTTPCookieStorage* cookie_storage) { |
316 DCHECK(cookie_storage); | 297 DCHECK(cookie_storage); |
317 // TODO(huey): Update this when CrNet supports multiple cookie jars. | 298 // TODO(huey): Update this when CrNet supports multiple cookie jars. |
318 [cookie_storage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; | 299 [cookie_storage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 // stashed on disk. Do not delete the cookies on the disk in this case. | 698 // stashed on disk. Do not delete the cookies on the disk in this case. |
718 WriteToCookieMonster([system_store_ cookies]); | 699 WriteToCookieMonster([system_store_ cookies]); |
719 } | 700 } |
720 cookie_monster_->FlushStore(closure); | 701 cookie_monster_->FlushStore(closure); |
721 flush_closure_.Cancel(); | 702 flush_closure_.Cancel(); |
722 } | 703 } |
723 | 704 |
724 #pragma mark - | 705 #pragma mark - |
725 #pragma mark Private methods | 706 #pragma mark Private methods |
726 | 707 |
| 708 CookieStoreIOS::CookieStoreIOS( |
| 709 net::CookieMonster::PersistentCookieStore* persistent_store, |
| 710 NSHTTPCookieStorage* system_store) |
| 711 : cookie_monster_(new net::CookieMonster(persistent_store, nullptr)), |
| 712 system_store_(system_store), |
| 713 creation_time_manager_(new CookieCreationTimeManager), |
| 714 metrics_enabled_(false), |
| 715 flush_delay_(base::TimeDelta::FromSeconds(10)), |
| 716 synchronization_state_(NOT_SYNCHRONIZED), |
| 717 cookie_cache_(new CookieCache()), |
| 718 weak_factory_(this) { |
| 719 DCHECK(system_store); |
| 720 |
| 721 NotificationTrampoline::GetInstance()->AddObserver(this); |
| 722 |
| 723 cookie_monster_->SetPersistSessionCookies(true); |
| 724 cookie_monster_->SetForceKeepSessionState(); |
| 725 } |
| 726 |
727 void CookieStoreIOS::ClearSystemStore() { | 727 void CookieStoreIOS::ClearSystemStore() { |
728 DCHECK(thread_checker_.CalledOnValidThread()); | 728 DCHECK(thread_checker_.CalledOnValidThread()); |
729 base::scoped_nsobject<NSArray> copy( | 729 base::scoped_nsobject<NSArray> copy( |
730 [[NSArray alloc] initWithArray:[system_store_ cookies]]); | 730 [[NSArray alloc] initWithArray:[system_store_ cookies]]); |
731 for (NSHTTPCookie* cookie in copy.get()) | 731 for (NSHTTPCookie* cookie in copy.get()) |
732 [system_store_ deleteCookie:cookie]; | 732 [system_store_ deleteCookie:cookie]; |
733 DCHECK_EQ(0u, [[system_store_ cookies] count]); | 733 DCHECK_EQ(0u, [[system_store_ cookies] count]); |
734 creation_time_manager_->Clear(); | 734 creation_time_manager_->Clear(); |
735 } | 735 } |
736 | 736 |
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 weak_factory_.GetWeakPtr(), callback); | 1088 weak_factory_.GetWeakPtr(), callback); |
1089 } | 1089 } |
1090 | 1090 |
1091 base::Closure CookieStoreIOS::WrapClosure(const base::Closure& callback) { | 1091 base::Closure CookieStoreIOS::WrapClosure(const base::Closure& callback) { |
1092 DCHECK(thread_checker_.CalledOnValidThread()); | 1092 DCHECK(thread_checker_.CalledOnValidThread()); |
1093 return base::Bind(&CookieStoreIOS::UpdateCachesAfterClosure, | 1093 return base::Bind(&CookieStoreIOS::UpdateCachesAfterClosure, |
1094 weak_factory_.GetWeakPtr(), callback); | 1094 weak_factory_.GetWeakPtr(), callback); |
1095 } | 1095 } |
1096 | 1096 |
1097 } // namespace net | 1097 } // namespace net |
OLD | NEW |