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

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

Issue 10913265: Redo the Storage Partition directory layout to support guest tags and origin based partitions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix typo Created 8 years, 3 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 13 matching lines...) Expand all
24 #include "chrome/browser/profiles/profile.h" 24 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/browser/ui/webui/chrome_url_data_manager_backend.h" 25 #include "chrome/browser/ui/webui/chrome_url_data_manager_backend.h"
26 #include "chrome/common/chrome_constants.h" 26 #include "chrome/common/chrome_constants.h"
27 #include "chrome/common/chrome_notification_types.h" 27 #include "chrome/common/chrome_notification_types.h"
28 #include "chrome/common/chrome_switches.h" 28 #include "chrome/common/chrome_switches.h"
29 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
30 #include "chrome/common/url_constants.h" 30 #include "chrome/common/url_constants.h"
31 #include "content/public/browser/browser_thread.h" 31 #include "content/public/browser/browser_thread.h"
32 #include "content/public/browser/notification_service.h" 32 #include "content/public/browser/notification_service.h"
33 #include "content/public/browser/resource_context.h" 33 #include "content/public/browser/resource_context.h"
34 #include "content/public/browser/storage_partition.h"
34 #include "net/base/server_bound_cert_service.h" 35 #include "net/base/server_bound_cert_service.h"
35 #include "net/ftp/ftp_network_layer.h" 36 #include "net/ftp/ftp_network_layer.h"
36 #include "net/http/http_cache.h" 37 #include "net/http/http_cache.h"
37 #include "net/url_request/file_protocol_handler.h" 38 #include "net/url_request/file_protocol_handler.h"
38 #include "net/url_request/ftp_protocol_handler.h" 39 #include "net/url_request/ftp_protocol_handler.h"
39 #include "net/url_request/url_request_job_factory_impl.h" 40 #include "net/url_request/url_request_job_factory_impl.h"
40 #include "webkit/quota/special_storage_policy.h" 41 #include "webkit/quota/special_storage_policy.h"
41 42
42 using content::BrowserThread; 43 using content::BrowserThread;
43 44
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 } 88 }
88 89
89 void ProfileImplIOData::Handle::Init( 90 void ProfileImplIOData::Handle::Init(
90 const FilePath& cookie_path, 91 const FilePath& cookie_path,
91 const FilePath& server_bound_cert_path, 92 const FilePath& server_bound_cert_path,
92 const FilePath& cache_path, 93 const FilePath& cache_path,
93 int cache_max_size, 94 int cache_max_size,
94 const FilePath& media_cache_path, 95 const FilePath& media_cache_path,
95 int media_cache_max_size, 96 int media_cache_max_size,
96 const FilePath& extensions_cookie_path, 97 const FilePath& extensions_cookie_path,
97 const FilePath& app_path, 98 const FilePath& profile_path,
98 const FilePath& infinite_cache_path, 99 const FilePath& infinite_cache_path,
99 chrome_browser_net::Predictor* predictor, 100 chrome_browser_net::Predictor* predictor,
100 PrefService* local_state, 101 PrefService* local_state,
101 IOThread* io_thread, 102 IOThread* io_thread,
102 bool restore_old_session_cookies, 103 bool restore_old_session_cookies,
103 quota::SpecialStoragePolicy* special_storage_policy) { 104 quota::SpecialStoragePolicy* special_storage_policy) {
104 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 105 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
105 DCHECK(!io_data_->lazy_params_.get()); 106 DCHECK(!io_data_->lazy_params_.get());
106 DCHECK(predictor); 107 DCHECK(predictor);
107 108
108 LazyParams* lazy_params = new LazyParams; 109 LazyParams* lazy_params = new LazyParams;
109 110
110 lazy_params->cookie_path = cookie_path; 111 lazy_params->cookie_path = cookie_path;
111 lazy_params->server_bound_cert_path = server_bound_cert_path; 112 lazy_params->server_bound_cert_path = server_bound_cert_path;
112 lazy_params->cache_path = cache_path; 113 lazy_params->cache_path = cache_path;
113 lazy_params->cache_max_size = cache_max_size; 114 lazy_params->cache_max_size = cache_max_size;
114 lazy_params->media_cache_path = media_cache_path; 115 lazy_params->media_cache_path = media_cache_path;
115 lazy_params->media_cache_max_size = media_cache_max_size; 116 lazy_params->media_cache_max_size = media_cache_max_size;
116 lazy_params->extensions_cookie_path = extensions_cookie_path; 117 lazy_params->extensions_cookie_path = extensions_cookie_path;
117 lazy_params->infinite_cache_path = infinite_cache_path; 118 lazy_params->infinite_cache_path = infinite_cache_path;
118 lazy_params->restore_old_session_cookies = restore_old_session_cookies; 119 lazy_params->restore_old_session_cookies = restore_old_session_cookies;
119 lazy_params->special_storage_policy = special_storage_policy; 120 lazy_params->special_storage_policy = special_storage_policy;
120 121
121 io_data_->lazy_params_.reset(lazy_params); 122 io_data_->lazy_params_.reset(lazy_params);
122 123
123 // Keep track of isolated app path and cache sizes separately so we can use 124 // Keep track of profile path and cache sizes separately so we can use them
124 // them on demand. 125 // on demand when creating storage isolated URLRequestContextGetters.
125 io_data_->app_path_ = app_path; 126 io_data_->profile_path_ = profile_path;
126 io_data_->app_cache_max_size_ = cache_max_size; 127 io_data_->app_cache_max_size_ = cache_max_size;
127 io_data_->app_media_cache_max_size_ = media_cache_max_size; 128 io_data_->app_media_cache_max_size_ = media_cache_max_size;
128 129
129 io_data_->predictor_.reset(predictor); 130 io_data_->predictor_.reset(predictor);
130 131
131 if (!main_request_context_getter_) { 132 if (!main_request_context_getter_) {
132 main_request_context_getter_ = 133 main_request_context_getter_ =
133 ChromeURLRequestContextGetter::CreateOriginal( 134 ChromeURLRequestContextGetter::CreateOriginal(
134 profile_, io_data_); 135 profile_, io_data_);
135 } 136 }
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 ChromeURLRequestContext* main_context, 504 ChromeURLRequestContext* main_context,
504 const std::string& app_id) const { 505 const std::string& app_id) const {
505 // If this is for a guest process, we should not persist cookies and http 506 // If this is for a guest process, we should not persist cookies and http
506 // cache. 507 // cache.
507 bool is_guest_process = (app_id.find("guest-") != std::string::npos); 508 bool is_guest_process = (app_id.find("guest-") != std::string::npos);
508 509
509 // Copy most state from the main context. 510 // Copy most state from the main context.
510 AppRequestContext* context = new AppRequestContext(load_time_stats()); 511 AppRequestContext* context = new AppRequestContext(load_time_stats());
511 context->CopyFrom(main_context); 512 context->CopyFrom(main_context);
512 513
513 FilePath app_path = app_path_.AppendASCII(app_id); 514 using content::StoragePartition;
515 FilePath app_path =
516 profile_path_.Append(StoragePartition::GetPartitionPath(app_id));
517
514 FilePath cookie_path = app_path.Append(chrome::kCookieFilename); 518 FilePath cookie_path = app_path.Append(chrome::kCookieFilename);
515 FilePath cache_path = app_path.Append(chrome::kCacheDirname); 519 FilePath cache_path = app_path.Append(chrome::kCacheDirname);
516 520
517 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); 521 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
518 // Only allow Record Mode if we are in a Debug build or where we are running 522 // Only allow Record Mode if we are in a Debug build or where we are running
519 // a cycle, and the user has limited control. 523 // a cycle, and the user has limited control.
520 bool record_mode = command_line.HasSwitch(switches::kRecordMode) && 524 bool record_mode = command_line.HasSwitch(switches::kRecordMode) &&
521 (chrome::kRecordModeEnabled || 525 (chrome::kRecordModeEnabled ||
522 command_line.HasSwitch(switches::kVisitURLs)); 526 command_line.HasSwitch(switches::kVisitURLs));
523 bool playback_mode = command_line.HasSwitch(switches::kPlaybackMode); 527 bool playback_mode = command_line.HasSwitch(switches::kPlaybackMode);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 const std::string& app_id) const { 580 const std::string& app_id) const {
577 // If this is for a guest process, we do not persist storage, so we can 581 // If this is for a guest process, we do not persist storage, so we can
578 // simply use the app's in-memory cache (like off-the-record mode). 582 // simply use the app's in-memory cache (like off-the-record mode).
579 if (app_id.find("guest-") != std::string::npos) 583 if (app_id.find("guest-") != std::string::npos)
580 return original_context; 584 return original_context;
581 585
582 // Copy most state from the original context. 586 // Copy most state from the original context.
583 MediaRequestContext* context = new MediaRequestContext(load_time_stats()); 587 MediaRequestContext* context = new MediaRequestContext(load_time_stats());
584 context->CopyFrom(original_context); 588 context->CopyFrom(original_context);
585 589
586 FilePath app_path = app_path_.AppendASCII(app_id); 590 using content::StoragePartition;
591 FilePath app_path =
592 profile_path_.Append(StoragePartition::GetPartitionPath(app_id));
587 FilePath cache_path; 593 FilePath cache_path;
588 int cache_max_size = app_media_cache_max_size_; 594 int cache_max_size = app_media_cache_max_size_;
589 if (app_id.empty()) { 595 if (app_id.empty()) {
590 // lazy_params_ is only valid for the default media context creation. 596 // lazy_params_ is only valid for the default media context creation.
591 cache_path = lazy_params_->media_cache_path; 597 cache_path = lazy_params_->media_cache_path;
592 cache_max_size = lazy_params_->media_cache_max_size; 598 cache_max_size = lazy_params_->media_cache_max_size;
593 } else { 599 } else {
594 cache_path = app_path.Append(chrome::kMediaCacheDirname); 600 cache_path = app_path.Append(chrome::kMediaCacheDirname);
595 } 601 }
596 602
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 void ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread( 665 void ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread(
660 base::Time time) { 666 base::Time time) {
661 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 667 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
662 LazyInitialize(); 668 LazyInitialize();
663 669
664 DCHECK(transport_security_state()); 670 DCHECK(transport_security_state());
665 transport_security_state()->DeleteSince(time); 671 transport_security_state()->DeleteSince(time);
666 DCHECK(http_server_properties_manager()); 672 DCHECK(http_server_properties_manager());
667 http_server_properties_manager()->Clear(); 673 http_server_properties_manager()->Clear();
668 } 674 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_impl_io_data.h ('k') | content/browser/storage_partition_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698