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

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

Issue 10702137: Replaced static URLRequestHTTPJob factory with non-static protocol handler for HTTP jobs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed nits Created 8 years, 5 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/file_util.h" 9 #include "base/file_util.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 15 matching lines...) Expand all
26 #include "chrome/common/chrome_switches.h" 26 #include "chrome/common/chrome_switches.h"
27 #include "chrome/common/pref_names.h" 27 #include "chrome/common/pref_names.h"
28 #include "chrome/common/url_constants.h" 28 #include "chrome/common/url_constants.h"
29 #include "content/public/browser/browser_thread.h" 29 #include "content/public/browser/browser_thread.h"
30 #include "content/public/browser/notification_service.h" 30 #include "content/public/browser/notification_service.h"
31 #include "content/public/browser/resource_context.h" 31 #include "content/public/browser/resource_context.h"
32 #include "net/base/server_bound_cert_service.h" 32 #include "net/base/server_bound_cert_service.h"
33 #include "net/ftp/ftp_network_layer.h" 33 #include "net/ftp/ftp_network_layer.h"
34 #include "net/http/http_cache.h" 34 #include "net/http/http_cache.h"
35 #include "net/url_request/ftp_protocol_handler.h" 35 #include "net/url_request/ftp_protocol_handler.h"
36 #include "net/url_request/http_protocol_handler.h"
36 #include "net/url_request/url_request_job_factory.h" 37 #include "net/url_request/url_request_job_factory.h"
37 #include "webkit/quota/special_storage_policy.h" 38 #include "webkit/quota/special_storage_policy.h"
38 39
39 using content::BrowserThread; 40 using content::BrowserThread;
40 41
41 ProfileImplIOData::Handle::Handle(Profile* profile) 42 ProfileImplIOData::Handle::Handle(Profile* profile)
42 : io_data_(new ProfileImplIOData), 43 : io_data_(new ProfileImplIOData),
43 profile_(profile), 44 profile_(profile),
44 initialized_(false) { 45 initialized_(false) {
45 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 46 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 448
448 main_job_factory_.reset(new net::URLRequestJobFactory); 449 main_job_factory_.reset(new net::URLRequestJobFactory);
449 media_request_job_factory_.reset(new net::URLRequestJobFactory); 450 media_request_job_factory_.reset(new net::URLRequestJobFactory);
450 extensions_job_factory_.reset(new net::URLRequestJobFactory); 451 extensions_job_factory_.reset(new net::URLRequestJobFactory);
451 452
452 net::URLRequestJobFactory* job_factories[3]; 453 net::URLRequestJobFactory* job_factories[3];
453 job_factories[0] = main_job_factory_.get(); 454 job_factories[0] = main_job_factory_.get();
454 job_factories[1] = media_request_job_factory_.get(); 455 job_factories[1] = media_request_job_factory_.get();
455 job_factories[2] = extensions_job_factory_.get(); 456 job_factories[2] = extensions_job_factory_.get();
456 457
457 net::FtpAuthCache* ftp_auth_caches[3]; 458 bool set_protocol = main_job_factory_->SetProtocolHandler(
458 ftp_auth_caches[0] = main_context->ftp_auth_cache(); 459 chrome::kHttpScheme,
459 ftp_auth_caches[1] = media_request_context_->ftp_auth_cache(); 460 new net::HttpProtocolHandler(main_cache,
460 ftp_auth_caches[2] = extensions_context->ftp_auth_cache(); 461 network_delegate(),
462 io_thread_globals->throttler_manager.get(),
463 main_context->accept_language(),
464 main_context->accept_charset(),
465 cookie_store,
466 fraudulent_certificate_reporter(),
467 main_context->ssl_config_service(),
468 transport_security_state()));
469 DCHECK(set_protocol);
470 set_protocol = media_request_job_factory_->SetProtocolHandler(
471 chrome::kHttpScheme,
472 new net::HttpProtocolHandler(media_cache,
473 network_delegate(),
474 io_thread_globals->throttler_manager.get(),
475 main_context->accept_language(),
476 main_context->accept_charset(),
477 cookie_store,
478 fraudulent_certificate_reporter(),
479 main_context->ssl_config_service(),
480 transport_security_state()));
481 DCHECK(set_protocol);
482 set_protocol = extensions_job_factory_->SetProtocolHandler(
483 chrome::kHttpScheme,
484 new net::HttpProtocolHandler(NULL,
485 NULL,
486 io_thread_globals->throttler_manager.get(),
487 main_context->accept_language(),
488 main_context->accept_charset(),
489 extensions_cookie_store,
490 NULL,
491 main_context->ssl_config_service(),
492 transport_security_state()));
493 DCHECK(set_protocol);
494 CreateFtpProtocolHandler(job_factories[0],
495 main_context->ftp_auth_cache(),
496 network_delegate());
497 CreateFtpProtocolHandler(job_factories[1],
498 media_request_context_->ftp_auth_cache(),
499 network_delegate());
500 CreateFtpProtocolHandler(job_factories[2],
501 extensions_context->ftp_auth_cache(),
502 NULL);
461 503
462 for (int i = 0; i < 3; i++) { 504 for (int i = 0; i < 3; i++) {
463 SetUpJobFactoryDefaults(job_factories[i]); 505 SetUpJobFactoryDefaults(job_factories[i]);
464 CreateFtpProtocolHandler(job_factories[i], ftp_auth_caches[i]);
465 job_factories[i]->AddInterceptor( 506 job_factories[i]->AddInterceptor(
466 new chrome_browser_net::ConnectInterceptor(predictor_.get())); 507 new chrome_browser_net::ConnectInterceptor(predictor_.get()));
467 } 508 }
468 509
469 main_context->set_job_factory(main_job_factory_.get()); 510 main_context->set_job_factory(main_job_factory_.get());
470 media_request_context_->set_job_factory(media_request_job_factory_.get()); 511 media_request_context_->set_job_factory(media_request_job_factory_.get());
471 extensions_context->set_job_factory(extensions_job_factory_.get()); 512 extensions_context->set_job_factory(extensions_job_factory_.get());
472 513
473 lazy_params_.reset(); 514 lazy_params_.reset();
474 } 515 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 const std::string& app_id) const { 600 const std::string& app_id) const {
560 // We create per-app contexts on demand, unlike the others above. 601 // We create per-app contexts on demand, unlike the others above.
561 ChromeURLRequestContext* app_request_context = 602 ChromeURLRequestContext* app_request_context =
562 InitializeAppRequestContext(main_context, app_id); 603 InitializeAppRequestContext(main_context, app_id);
563 DCHECK(app_request_context); 604 DCHECK(app_request_context);
564 return app_request_context; 605 return app_request_context;
565 } 606 }
566 607
567 void ProfileImplIOData::CreateFtpProtocolHandler( 608 void ProfileImplIOData::CreateFtpProtocolHandler(
568 net::URLRequestJobFactory* job_factory, 609 net::URLRequestJobFactory* job_factory,
569 net::FtpAuthCache* ftp_auth_cache) const { 610 net::FtpAuthCache* ftp_auth_cache,
570 job_factory->SetProtocolHandler( 611 net::NetworkDelegate* network_delegate) const {
612 bool set_protocol = job_factory->SetProtocolHandler(
571 chrome::kFtpScheme, 613 chrome::kFtpScheme,
572 new net::FtpProtocolHandler(network_delegate(), 614 new net::FtpProtocolHandler(network_delegate,
573 ftp_factory_.get(), 615 ftp_factory_.get(),
574 ftp_auth_cache)); 616 ftp_auth_cache));
617 DCHECK(set_protocol);
575 } 618 }
576 619
577 void ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread( 620 void ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread(
578 base::Time time) { 621 base::Time time) {
579 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 622 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
580 LazyInitialize(); 623 LazyInitialize();
581 624
582 DCHECK(transport_security_state()); 625 DCHECK(transport_security_state());
583 transport_security_state()->DeleteSince(time); 626 transport_security_state()->DeleteSince(time);
584 DCHECK(http_server_properties_manager()); 627 DCHECK(http_server_properties_manager());
585 http_server_properties_manager()->Clear(); 628 http_server_properties_manager()->Clear();
586 } 629 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698