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

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

Issue 182993003: Add the ability for DevTools to wrap network transactions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 6 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 | Annotate | Revision Log
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 DCHECK(app_iter != app_request_context_getter_map_.end()); 289 DCHECK(app_iter != app_request_context_getter_map_.end());
290 ChromeURLRequestContextGetter* app_context = app_iter->second.get(); 290 ChromeURLRequestContextGetter* app_context = app_iter->second.get();
291 ChromeURLRequestContextGetter* context = 291 ChromeURLRequestContextGetter* context =
292 ChromeURLRequestContextGetter::CreateForIsolatedMedia( 292 ChromeURLRequestContextGetter::CreateForIsolatedMedia(
293 profile_, app_context, io_data_, descriptor); 293 profile_, app_context, io_data_, descriptor);
294 isolated_media_request_context_getter_map_[descriptor] = context; 294 isolated_media_request_context_getter_map_[descriptor] = context;
295 295
296 return context; 296 return context;
297 } 297 }
298 298
299 DevToolsNetworkController*
300 ProfileImplIOData::Handle::GetDevToolsNetworkController() const {
301 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
302 return io_data_->network_controller();
303 }
304
299 void ProfileImplIOData::Handle::ClearNetworkingHistorySince( 305 void ProfileImplIOData::Handle::ClearNetworkingHistorySince(
300 base::Time time, 306 base::Time time,
301 const base::Closure& completion) { 307 const base::Closure& completion) {
302 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 308 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
303 LazyInitialize(); 309 LazyInitialize();
304 310
305 BrowserThread::PostTask( 311 BrowserThread::PostTask(
306 BrowserThread::IO, FROM_HERE, 312 BrowserThread::IO, FROM_HERE,
307 base::Bind( 313 base::Bind(
308 &ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread, 314 &ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread,
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 main_context->set_server_bound_cert_service(server_bound_cert_service); 473 main_context->set_server_bound_cert_service(server_bound_cert_service);
468 474
469 net::HttpCache::DefaultBackend* main_backend = 475 net::HttpCache::DefaultBackend* main_backend =
470 new net::HttpCache::DefaultBackend( 476 new net::HttpCache::DefaultBackend(
471 net::DISK_CACHE, 477 net::DISK_CACHE,
472 ChooseCacheBackendType(), 478 ChooseCacheBackendType(),
473 lazy_params_->cache_path, 479 lazy_params_->cache_path,
474 lazy_params_->cache_max_size, 480 lazy_params_->cache_max_size,
475 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE) 481 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE)
476 .get()); 482 .get());
477 net::HttpNetworkSession::Params network_session_params; 483 scoped_ptr<net::HttpCache> main_cache = CreateMainHttpFactory(
478 PopulateNetworkSessionParams(profile_params, &network_session_params); 484 profile_params, main_backend);
479 net::HttpCache* main_cache = new net::HttpCache(
480 network_session_params, main_backend);
481 main_cache->InitializeInfiniteCache(lazy_params_->infinite_cache_path); 485 main_cache->InitializeInfiniteCache(lazy_params_->infinite_cache_path);
482 486
483 #if defined(OS_ANDROID) || defined(OS_IOS) 487 #if defined(OS_ANDROID) || defined(OS_IOS)
484 #if defined(SPDY_PROXY_AUTH_VALUE) 488 #if defined(SPDY_PROXY_AUTH_VALUE)
485 data_reduction_proxy::DataReductionProxySettings:: 489 data_reduction_proxy::DataReductionProxySettings::
486 InitDataReductionProxySession( 490 InitDataReductionProxySession(
487 main_cache->GetSession(), 491 main_cache->GetSession(),
488 io_thread_globals->data_reduction_proxy_params.get()); 492 io_thread_globals->data_reduction_proxy_params.get());
489 #endif 493 #endif
490 #endif 494 #endif
491 495
492 if (chrome_browser_net::ShouldUseInMemoryCookiesAndCache()) { 496 if (chrome_browser_net::ShouldUseInMemoryCookiesAndCache()) {
493 main_cache->set_mode( 497 main_cache->set_mode(
494 chrome_browser_net::IsCookieRecordMode() ? 498 chrome_browser_net::IsCookieRecordMode() ?
495 net::HttpCache::RECORD : net::HttpCache::PLAYBACK); 499 net::HttpCache::RECORD : net::HttpCache::PLAYBACK);
496 } 500 }
497 501
498 main_http_factory_.reset(main_cache); 502 main_http_factory_.reset(main_cache.release());
499 main_context->set_http_transaction_factory(main_cache); 503 main_context->set_http_transaction_factory(main_http_factory_.get());
500 504
501 #if !defined(DISABLE_FTP_SUPPORT) 505 #if !defined(DISABLE_FTP_SUPPORT)
502 ftp_factory_.reset( 506 ftp_factory_.reset(
503 new net::FtpNetworkLayer(io_thread_globals->host_resolver.get())); 507 new net::FtpNetworkLayer(io_thread_globals->host_resolver.get()));
504 #endif // !defined(DISABLE_FTP_SUPPORT) 508 #endif // !defined(DISABLE_FTP_SUPPORT)
505 509
506 scoped_ptr<net::URLRequestJobFactoryImpl> main_job_factory( 510 scoped_ptr<net::URLRequestJobFactoryImpl> main_job_factory(
507 new net::URLRequestJobFactoryImpl()); 511 new net::URLRequestJobFactoryImpl());
508 InstallProtocolHandlers(main_job_factory.get(), protocol_handlers); 512 InstallProtocolHandlers(main_job_factory.get(), protocol_handlers);
509 main_job_factory_ = SetUpJobFactoryDefaults( 513 main_job_factory_ = SetUpJobFactoryDefaults(
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 app_backend = new net::HttpCache::DefaultBackend( 609 app_backend = new net::HttpCache::DefaultBackend(
606 net::DISK_CACHE, 610 net::DISK_CACHE,
607 ChooseCacheBackendType(), 611 ChooseCacheBackendType(),
608 cache_path, 612 cache_path,
609 app_cache_max_size_, 613 app_cache_max_size_,
610 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE) 614 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE)
611 .get()); 615 .get());
612 } 616 }
613 net::HttpNetworkSession* main_network_session = 617 net::HttpNetworkSession* main_network_session =
614 main_http_factory_->GetSession(); 618 main_http_factory_->GetSession();
615 net::HttpCache* app_http_cache = 619 scoped_ptr<net::HttpCache> app_http_cache =
616 new net::HttpCache(main_network_session, app_backend); 620 CreateHttpFactory(main_network_session, app_backend);
617 621
618 scoped_refptr<net::CookieStore> cookie_store = NULL; 622 scoped_refptr<net::CookieStore> cookie_store = NULL;
619 if (partition_descriptor.in_memory) { 623 if (partition_descriptor.in_memory) {
620 cookie_store = content::CreateCookieStore(content::CookieStoreConfig()); 624 cookie_store = content::CreateCookieStore(content::CookieStoreConfig());
621 } else if (chrome_browser_net::ShouldUseInMemoryCookiesAndCache()) { 625 } else if (chrome_browser_net::ShouldUseInMemoryCookiesAndCache()) {
622 // Don't use existing cookies and use an in-memory store. 626 // Don't use existing cookies and use an in-memory store.
623 // TODO(creis): We should have a cookie delegate for notifying the cookie 627 // TODO(creis): We should have a cookie delegate for notifying the cookie
624 // extensions API, but we need to update it to understand isolated apps 628 // extensions API, but we need to update it to understand isolated apps
625 // first. 629 // first.
626 cookie_store = content::CreateCookieStore(content::CookieStoreConfig()); 630 cookie_store = content::CreateCookieStore(content::CookieStoreConfig());
(...skipping 14 matching lines...) Expand all
641 content::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES, 645 content::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES,
642 NULL, NULL); 646 NULL, NULL);
643 cookie_config.crypto_delegate = 647 cookie_config.crypto_delegate =
644 chrome_browser_net::GetCookieCryptoDelegate(); 648 chrome_browser_net::GetCookieCryptoDelegate();
645 cookie_store = content::CreateCookieStore(cookie_config); 649 cookie_store = content::CreateCookieStore(cookie_config);
646 } 650 }
647 651
648 // Transfer ownership of the cookies and cache to AppRequestContext. 652 // Transfer ownership of the cookies and cache to AppRequestContext.
649 context->SetCookieStore(cookie_store.get()); 653 context->SetCookieStore(cookie_store.get());
650 context->SetHttpTransactionFactory( 654 context->SetHttpTransactionFactory(
651 scoped_ptr<net::HttpTransactionFactory>(app_http_cache)); 655 scoped_ptr<net::HttpTransactionFactory>(
656 app_http_cache.PassAs<net::HttpTransactionFactory>()));
652 657
653 scoped_ptr<net::URLRequestJobFactoryImpl> job_factory( 658 scoped_ptr<net::URLRequestJobFactoryImpl> job_factory(
654 new net::URLRequestJobFactoryImpl()); 659 new net::URLRequestJobFactoryImpl());
655 InstallProtocolHandlers(job_factory.get(), protocol_handlers); 660 InstallProtocolHandlers(job_factory.get(), protocol_handlers);
656 scoped_ptr<net::URLRequestJobFactory> top_job_factory( 661 scoped_ptr<net::URLRequestJobFactory> top_job_factory(
657 SetUpJobFactoryDefaults(job_factory.Pass(), 662 SetUpJobFactoryDefaults(job_factory.Pass(),
658 request_interceptors.Pass(), 663 request_interceptors.Pass(),
659 protocol_handler_interceptor.Pass(), 664 protocol_handler_interceptor.Pass(),
660 network_delegate(), 665 network_delegate(),
661 ftp_factory_.get())); 666 ftp_factory_.get()));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 net::HttpCache::BackendFactory* media_backend = 699 net::HttpCache::BackendFactory* media_backend =
695 new net::HttpCache::DefaultBackend( 700 new net::HttpCache::DefaultBackend(
696 net::MEDIA_CACHE, 701 net::MEDIA_CACHE,
697 ChooseCacheBackendType(), 702 ChooseCacheBackendType(),
698 cache_path, 703 cache_path,
699 cache_max_size, 704 cache_max_size,
700 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE) 705 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE)
701 .get()); 706 .get());
702 net::HttpNetworkSession* main_network_session = 707 net::HttpNetworkSession* main_network_session =
703 main_http_factory_->GetSession(); 708 main_http_factory_->GetSession();
704 scoped_ptr<net::HttpTransactionFactory> media_http_cache( 709 scoped_ptr<net::HttpCache> media_http_cache =
705 new net::HttpCache(main_network_session, media_backend)); 710 CreateHttpFactory(main_network_session, media_backend);
706 711
707 // Transfer ownership of the cache to MediaRequestContext. 712 // Transfer ownership of the cache to MediaRequestContext.
708 context->SetHttpTransactionFactory(media_http_cache.Pass()); 713 context->SetHttpTransactionFactory(
714 media_http_cache.PassAs<net::HttpTransactionFactory>());
709 715
710 // Note that we do not create a new URLRequestJobFactory because 716 // Note that we do not create a new URLRequestJobFactory because
711 // the media context should behave exactly like its parent context 717 // the media context should behave exactly like its parent context
712 // in all respects except for cache behavior on media subresources. 718 // in all respects except for cache behavior on media subresources.
713 // The CopyFrom() step above means that our media context will use 719 // The CopyFrom() step above means that our media context will use
714 // the same URLRequestJobFactory instance that our parent context does. 720 // the same URLRequestJobFactory instance that our parent context does.
715 721
716 return context; 722 return context;
717 } 723 }
718 724
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 domain_reliability::DomainReliabilityClearMode mode, 774 domain_reliability::DomainReliabilityClearMode mode,
769 const base::Closure& completion) { 775 const base::Closure& completion) {
770 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 776 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
771 DCHECK(initialized()); 777 DCHECK(initialized());
772 778
773 if (domain_reliability_monitor_) 779 if (domain_reliability_monitor_)
774 domain_reliability_monitor_->ClearBrowsingData(mode); 780 domain_reliability_monitor_->ClearBrowsingData(mode);
775 781
776 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, completion); 782 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, completion);
777 } 783 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_impl_io_data.h ('k') | chrome/browser/profiles/profile_io_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698