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

Side by Side Diff: ios/chrome/browser/browser_state/chrome_browser_state_io_data.cc

Issue 1742293003: Remove isolated app code from iOS's chrome_browser_state_io_data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 9 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/chrome/browser/browser_state/chrome_browser_state_io_data.h" 5 #include "ios/chrome/browser/browser_state/chrome_browser_state_io_data.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 sync_disabled_.Init(sync_driver::prefs::kSyncManaged, pref_service); 124 sync_disabled_.Init(sync_driver::prefs::kSyncManaged, pref_service);
125 sync_disabled_.MoveToThread(io_task_runner); 125 sync_disabled_.MoveToThread(io_task_runner);
126 126
127 signin_allowed_.Init(prefs::kSigninAllowed, pref_service); 127 signin_allowed_.Init(prefs::kSigninAllowed, pref_service);
128 signin_allowed_.MoveToThread(io_task_runner); 128 signin_allowed_.MoveToThread(io_task_runner);
129 } 129 }
130 130
131 initialized_on_UI_thread_ = true; 131 initialized_on_UI_thread_ = true;
132 } 132 }
133 133
134 ChromeBrowserStateIOData::AppRequestContext::AppRequestContext() {}
135
136 void ChromeBrowserStateIOData::AppRequestContext::SetCookieStore(
137 net::CookieStore* cookie_store) {
138 cookie_store_ = cookie_store;
139 set_cookie_store(cookie_store);
140 }
141
142 void ChromeBrowserStateIOData::AppRequestContext::SetHttpTransactionFactory(
143 scoped_ptr<net::HttpTransactionFactory> http_factory) {
144 http_factory_ = std::move(http_factory);
145 set_http_transaction_factory(http_factory_.get());
146 }
147
148 void ChromeBrowserStateIOData::AppRequestContext::SetJobFactory(
149 scoped_ptr<net::URLRequestJobFactory> job_factory) {
150 job_factory_ = std::move(job_factory);
151 set_job_factory(job_factory_.get());
152 }
153
154 ChromeBrowserStateIOData::AppRequestContext::~AppRequestContext() {
155 AssertNoURLRequests();
156 }
157
158 ChromeBrowserStateIOData::ProfileParams::ProfileParams() 134 ChromeBrowserStateIOData::ProfileParams::ProfileParams()
159 : io_thread(nullptr), browser_state(nullptr) {} 135 : io_thread(nullptr), browser_state(nullptr) {}
160 136
161 ChromeBrowserStateIOData::ProfileParams::~ProfileParams() {} 137 ChromeBrowserStateIOData::ProfileParams::~ProfileParams() {}
162 138
163 ChromeBrowserStateIOData::ChromeBrowserStateIOData( 139 ChromeBrowserStateIOData::ChromeBrowserStateIOData(
164 ios::ChromeBrowserStateType browser_state_type) 140 ios::ChromeBrowserStateType browser_state_type)
165 : initialized_(false), 141 : initialized_(false),
166 initialized_on_UI_thread_(false), 142 initialized_on_UI_thread_(false),
167 browser_state_type_(browser_state_type) { 143 browser_state_type_(browser_state_type) {
168 DCHECK_CURRENTLY_ON(web::WebThread::UI); 144 DCHECK_CURRENTLY_ON(web::WebThread::UI);
169 } 145 }
170 146
171 ChromeBrowserStateIOData::~ChromeBrowserStateIOData() { 147 ChromeBrowserStateIOData::~ChromeBrowserStateIOData() {
172 if (web::WebThread::IsMessageLoopValid(web::WebThread::IO)) 148 if (web::WebThread::IsMessageLoopValid(web::WebThread::IO))
173 DCHECK_CURRENTLY_ON(web::WebThread::IO); 149 DCHECK_CURRENTLY_ON(web::WebThread::IO);
174 150
175 // Pull the contents of the request context maps onto the stack for sanity
176 // checking of values in a minidump. http://crbug.com/260425
177 size_t num_app_contexts = app_request_context_map_.size();
178 size_t current_context = 0;
179 static const size_t kMaxCachedContexts = 20;
180 net::URLRequestContext* app_context_cache[kMaxCachedContexts] = {0};
181 void* app_context_vtable_cache[kMaxCachedContexts] = {0};
182 void* tmp_vtable = nullptr;
183 base::debug::Alias(&num_app_contexts);
184 base::debug::Alias(&current_context);
185 base::debug::Alias(app_context_cache);
186 base::debug::Alias(app_context_vtable_cache);
187 base::debug::Alias(&tmp_vtable);
188
189 current_context = 0;
190 for (URLRequestContextMap::const_iterator
191 it = app_request_context_map_.begin();
192 current_context < kMaxCachedContexts &&
193 it != app_request_context_map_.end();
194 ++it, ++current_context) {
195 app_context_cache[current_context] = it->second;
196 memcpy(&app_context_vtable_cache[current_context],
197 static_cast<void*>(it->second), sizeof(void*));
198 }
199
200 // Destroy certificate_report_sender_ before main_request_context_, 151 // Destroy certificate_report_sender_ before main_request_context_,
201 // since the former has a reference to the latter. 152 // since the former has a reference to the latter.
202 if (transport_security_state_) 153 if (transport_security_state_)
203 transport_security_state_->SetReportSender(nullptr); 154 transport_security_state_->SetReportSender(nullptr);
204 certificate_report_sender_.reset(); 155 certificate_report_sender_.reset();
205 156
206 // TODO(ajwong): These AssertNoURLRequests() calls are unnecessary since they 157 // TODO(ajwong): These AssertNoURLRequests() calls are unnecessary since they
207 // are already done in the URLRequestContext destructor. 158 // are already done in the URLRequestContext destructor.
208 if (main_request_context_) 159 if (main_request_context_)
209 main_request_context_->AssertNoURLRequests(); 160 main_request_context_->AssertNoURLRequests();
210
211 current_context = 0;
212 for (URLRequestContextMap::iterator it = app_request_context_map_.begin();
213 it != app_request_context_map_.end(); ++it) {
214 if (current_context < kMaxCachedContexts) {
215 CHECK_EQ(app_context_cache[current_context], it->second);
216 memcpy(&tmp_vtable, static_cast<void*>(it->second), sizeof(void*));
217 CHECK_EQ(app_context_vtable_cache[current_context], tmp_vtable);
218 }
219 it->second->AssertNoURLRequests();
220 delete it->second;
221 current_context++;
222 }
223 } 161 }
224 162
225 // static 163 // static
226 bool ChromeBrowserStateIOData::IsHandledProtocol(const std::string& scheme) { 164 bool ChromeBrowserStateIOData::IsHandledProtocol(const std::string& scheme) {
227 DCHECK_EQ(scheme, base::ToLowerASCII(scheme)); 165 DCHECK_EQ(scheme, base::ToLowerASCII(scheme));
228 static const char* const kProtocolList[] = { 166 static const char* const kProtocolList[] = {
229 url::kFileScheme, kChromeUIScheme, url::kDataScheme, url::kAboutScheme, 167 url::kFileScheme, kChromeUIScheme, url::kDataScheme, url::kAboutScheme,
230 }; 168 };
231 for (size_t i = 0; i < arraysize(kProtocolList); ++i) { 169 for (size_t i = 0; i < arraysize(kProtocolList); ++i) {
232 if (scheme == kProtocolList[i]) 170 if (scheme == kProtocolList[i])
(...skipping 14 matching lines...) Expand all
247 } 185 }
248 protocol_handlers->clear(); 186 protocol_handlers->clear();
249 } 187 }
250 188
251 net::URLRequestContext* ChromeBrowserStateIOData::GetMainRequestContext() 189 net::URLRequestContext* ChromeBrowserStateIOData::GetMainRequestContext()
252 const { 190 const {
253 DCHECK(initialized_); 191 DCHECK(initialized_);
254 return main_request_context_.get(); 192 return main_request_context_.get();
255 } 193 }
256 194
257 net::URLRequestContext* ChromeBrowserStateIOData::GetIsolatedAppRequestContext(
258 net::URLRequestContext* main_context,
259 const base::FilePath& partition_path) const {
260 DCHECK(initialized_);
261 net::URLRequestContext* context = nullptr;
262 if (ContainsKey(app_request_context_map_, partition_path)) {
263 context = app_request_context_map_[partition_path];
264 } else {
265 context = AcquireIsolatedAppRequestContext(main_context);
266 app_request_context_map_[partition_path] = context;
267 }
268 DCHECK(context);
269 return context;
270 }
271
272 content_settings::CookieSettings* ChromeBrowserStateIOData::GetCookieSettings() 195 content_settings::CookieSettings* ChromeBrowserStateIOData::GetCookieSettings()
273 const { 196 const {
274 DCHECK(initialized_); 197 DCHECK(initialized_);
275 return cookie_settings_.get(); 198 return cookie_settings_.get();
276 } 199 }
277 200
278 HostContentSettingsMap* ChromeBrowserStateIOData::GetHostContentSettingsMap() 201 HostContentSettingsMap* ChromeBrowserStateIOData::GetHostContentSettingsMap()
279 const { 202 const {
280 DCHECK(initialized_); 203 DCHECK(initialized_);
281 return host_content_settings_map_.get(); 204 return host_content_settings_map_.get();
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 return scoped_ptr<net::HttpCache>( 406 return scoped_ptr<net::HttpCache>(
484 new net::HttpCache(session, std::move(main_backend), true)); 407 new net::HttpCache(session, std::move(main_backend), true));
485 } 408 }
486 409
487 scoped_ptr<net::HttpCache> ChromeBrowserStateIOData::CreateHttpFactory( 410 scoped_ptr<net::HttpCache> ChromeBrowserStateIOData::CreateHttpFactory(
488 net::HttpNetworkSession* shared_session, 411 net::HttpNetworkSession* shared_session,
489 scoped_ptr<net::HttpCache::BackendFactory> backend) const { 412 scoped_ptr<net::HttpCache::BackendFactory> backend) const {
490 return scoped_ptr<net::HttpCache>( 413 return scoped_ptr<net::HttpCache>(
491 new net::HttpCache(shared_session, std::move(backend), true)); 414 new net::HttpCache(shared_session, std::move(backend), true));
492 } 415 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698