Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: chrome/browser/profiles/profile_impl_io_data.cc

Issue 2874973002: Flush Channel IDs when Cookies get saved to a persistent backend (Closed)
Patch Set: clean up a few things Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "chrome/browser/profiles/profile_impl_io_data.h" 5 #include "chrome/browser/profiles/profile_impl_io_data.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 main_context->set_ct_policy_enforcer( 483 main_context->set_ct_policy_enforcer(
484 io_thread_globals->ct_policy_enforcer.get()); 484 io_thread_globals->ct_policy_enforcer.get());
485 485
486 main_context->set_net_log(io_thread->net_log()); 486 main_context->set_net_log(io_thread->net_log());
487 487
488 main_context->set_http_auth_handler_factory( 488 main_context->set_http_auth_handler_factory(
489 io_thread_globals->http_auth_handler_factory.get()); 489 io_thread_globals->http_auth_handler_factory.get());
490 490
491 main_context->set_proxy_service(proxy_service()); 491 main_context->set_proxy_service(proxy_service());
492 492
493 // Set up cookie store.
494 DCHECK(!lazy_params_->cookie_path.empty());
495
496 content::CookieStoreConfig cookie_config(
497 lazy_params_->cookie_path, lazy_params_->session_cookie_mode,
498 lazy_params_->special_storage_policy.get(),
499 profile_params->cookie_monster_delegate.get());
500 cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate();
501 main_context_storage->set_cookie_store(
502 content::CreateCookieStore(cookie_config));
503
504 // Set up server bound cert service. 493 // Set up server bound cert service.
505 DCHECK(!lazy_params_->channel_id_path.empty()); 494 DCHECK(!lazy_params_->channel_id_path.empty());
506 scoped_refptr<QuotaPolicyChannelIDStore> channel_id_db = 495 scoped_refptr<QuotaPolicyChannelIDStore> channel_id_db =
507 new QuotaPolicyChannelIDStore( 496 new QuotaPolicyChannelIDStore(
508 lazy_params_->channel_id_path, 497 lazy_params_->channel_id_path,
509 base::CreateSequencedTaskRunnerWithTraits( 498 base::CreateSequencedTaskRunnerWithTraits(
510 {base::MayBlock(), base::TaskPriority::BACKGROUND}), 499 {base::MayBlock(), base::TaskPriority::BACKGROUND}),
511 lazy_params_->special_storage_policy.get()); 500 lazy_params_->special_storage_policy.get());
512 main_context_storage->set_channel_id_service( 501 main_context_storage->set_channel_id_service(
513 base::MakeUnique<net::ChannelIDService>( 502 base::MakeUnique<net::ChannelIDService>(
514 new net::DefaultChannelIDStore(channel_id_db.get()))); 503 new net::DefaultChannelIDStore(channel_id_db.get())));
515 504
505 // Set up cookie store.
506 DCHECK(!lazy_params_->cookie_path.empty());
507
508 content::CookieStoreConfig cookie_config(
509 lazy_params_->cookie_path, lazy_params_->session_cookie_mode,
510 lazy_params_->special_storage_policy.get(),
511 profile_params->cookie_monster_delegate.get());
512 cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate();
513 cookie_config.channel_id_service = main_context->channel_id_service();
514 main_context_storage->set_cookie_store(
515 content::CreateCookieStore(cookie_config));
516
516 main_context->cookie_store()->SetChannelIDServiceID( 517 main_context->cookie_store()->SetChannelIDServiceID(
517 main_context->channel_id_service()->GetUniqueID()); 518 main_context->channel_id_service()->GetUniqueID());
518 519
519 std::unique_ptr<net::HttpCache::BackendFactory> main_backend( 520 std::unique_ptr<net::HttpCache::BackendFactory> main_backend(
520 new net::HttpCache::DefaultBackend( 521 new net::HttpCache::DefaultBackend(
521 net::DISK_CACHE, ChooseCacheBackendType(), lazy_params_->cache_path, 522 net::DISK_CACHE, ChooseCacheBackendType(), lazy_params_->cache_path,
522 lazy_params_->cache_max_size, 523 lazy_params_->cache_max_size,
523 BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE))); 524 BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE)));
524 main_context_storage->set_http_network_session( 525 main_context_storage->set_http_network_session(
525 CreateHttpNetworkSession(*profile_params)); 526 CreateHttpNetworkSession(*profile_params));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 579
579 extensions_context->set_net_log(io_thread->net_log()); 580 extensions_context->set_net_log(io_thread->net_log());
580 581
581 content::CookieStoreConfig cookie_config( 582 content::CookieStoreConfig cookie_config(
582 lazy_params_->extensions_cookie_path, 583 lazy_params_->extensions_cookie_path,
583 lazy_params_->session_cookie_mode, 584 lazy_params_->session_cookie_mode,
584 NULL, NULL); 585 NULL, NULL);
585 cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate(); 586 cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate();
586 // Enable cookies for chrome-extension URLs. 587 // Enable cookies for chrome-extension URLs.
587 cookie_config.cookieable_schemes.push_back(extensions::kExtensionScheme); 588 cookie_config.cookieable_schemes.push_back(extensions::kExtensionScheme);
589 cookie_config.channel_id_service = extensions_context->channel_id_service();
588 extensions_cookie_store_ = content::CreateCookieStore(cookie_config); 590 extensions_cookie_store_ = content::CreateCookieStore(cookie_config);
589 extensions_context->set_cookie_store(extensions_cookie_store_.get()); 591 extensions_context->set_cookie_store(extensions_cookie_store_.get());
590 if (extensions_context->channel_id_service()) { 592 if (extensions_context->channel_id_service()) {
591 extensions_cookie_store_->SetChannelIDServiceID( 593 extensions_cookie_store_->SetChannelIDServiceID(
592 extensions_context->channel_id_service()->GetUniqueID()); 594 extensions_context->channel_id_service()->GetUniqueID());
593 } 595 }
594 596
595 std::unique_ptr<net::URLRequestJobFactoryImpl> extensions_job_factory( 597 std::unique_ptr<net::URLRequestJobFactoryImpl> extensions_job_factory(
596 new net::URLRequestJobFactoryImpl()); 598 new net::URLRequestJobFactoryImpl());
597 // TODO(shalev): The extensions_job_factory has a NULL NetworkDelegate. 599 // TODO(shalev): The extensions_job_factory has a NULL NetworkDelegate.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 } else { 635 } else {
634 app_backend.reset(new net::HttpCache::DefaultBackend( 636 app_backend.reset(new net::HttpCache::DefaultBackend(
635 net::DISK_CACHE, ChooseCacheBackendType(), cache_path, 637 net::DISK_CACHE, ChooseCacheBackendType(), cache_path,
636 app_cache_max_size_, 638 app_cache_max_size_,
637 BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE))); 639 BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE)));
638 } 640 }
639 641
640 std::unique_ptr<net::CookieStore> cookie_store; 642 std::unique_ptr<net::CookieStore> cookie_store;
641 scoped_refptr<net::SQLiteChannelIDStore> channel_id_db; 643 scoped_refptr<net::SQLiteChannelIDStore> channel_id_db;
642 if (partition_descriptor.in_memory) { 644 if (partition_descriptor.in_memory) {
643 cookie_store = content::CreateCookieStore(content::CookieStoreConfig()); 645 cookie_path = base::FilePath();
644 } else { 646 }
647 content::CookieStoreConfig cookie_config(
648 cookie_path, content::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES,
649 nullptr, nullptr);
650 if (!partition_descriptor.in_memory) {
645 // Use an app-specific cookie store. 651 // Use an app-specific cookie store.
646 DCHECK(!cookie_path.empty()); 652 DCHECK(!cookie_path.empty());
647 653
648 // TODO(creis): We should have a cookie delegate for notifying the cookie 654 // TODO(creis): We should have a cookie delegate for notifying the cookie
649 // extensions API, but we need to update it to understand isolated apps 655 // extensions API, but we need to update it to understand isolated apps
650 // first. 656 // first.
651 content::CookieStoreConfig cookie_config(
652 cookie_path, content::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES,
653 nullptr, nullptr);
654 cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate(); 657 cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate();
655 cookie_store = content::CreateCookieStore(cookie_config);
656 channel_id_db = new net::SQLiteChannelIDStore( 658 channel_id_db = new net::SQLiteChannelIDStore(
657 channel_id_path, 659 channel_id_path,
658 base::CreateSequencedTaskRunnerWithTraits( 660 base::CreateSequencedTaskRunnerWithTraits(
659 {base::MayBlock(), base::TaskPriority::BACKGROUND})); 661 {base::MayBlock(), base::TaskPriority::BACKGROUND}));
660 } 662 }
661 std::unique_ptr<net::ChannelIDService> channel_id_service( 663 std::unique_ptr<net::ChannelIDService> channel_id_service(
662 new net::ChannelIDService( 664 new net::ChannelIDService(
663 new net::DefaultChannelIDStore(channel_id_db.get()))); 665 new net::DefaultChannelIDStore(channel_id_db.get())));
666 cookie_config.channel_id_service = channel_id_service.get();
667 cookie_store = content::CreateCookieStore(cookie_config);
664 cookie_store->SetChannelIDServiceID(channel_id_service->GetUniqueID()); 668 cookie_store->SetChannelIDServiceID(channel_id_service->GetUniqueID());
665 669
666 // Build a new HttpNetworkSession that uses the new ChannelIDService. 670 // Build a new HttpNetworkSession that uses the new ChannelIDService.
667 // TODO(mmenke): It weird to combine state from 671 // TODO(mmenke): It weird to combine state from
668 // main_request_context_storage() objects and the argumet to this method, 672 // main_request_context_storage() objects and the argumet to this method,
669 // |main_context|. Remove |main_context| as an argument, and just use 673 // |main_context|. Remove |main_context| as an argument, and just use
670 // main_context() instead. 674 // main_context() instead.
671 net::HttpNetworkSession::Params network_params = 675 net::HttpNetworkSession::Params network_params =
672 main_request_context_storage()->http_network_session()->params(); 676 main_request_context_storage()->http_network_session()->params();
673 network_params.channel_id_service = channel_id_service.get(); 677 network_params.channel_id_service = channel_id_service.get();
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 const base::Closure& completion) { 810 const base::Closure& completion) {
807 DCHECK_CURRENTLY_ON(BrowserThread::IO); 811 DCHECK_CURRENTLY_ON(BrowserThread::IO);
808 DCHECK(initialized()); 812 DCHECK(initialized());
809 813
810 DCHECK(transport_security_state()); 814 DCHECK(transport_security_state());
811 // Completes synchronously. 815 // Completes synchronously.
812 transport_security_state()->DeleteAllDynamicDataSince(time); 816 transport_security_state()->DeleteAllDynamicDataSince(time);
813 DCHECK(http_server_properties_manager_); 817 DCHECK(http_server_properties_manager_);
814 http_server_properties_manager_->Clear(completion); 818 http_server_properties_manager_->Clear(completion);
815 } 819 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698