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

Side by Side Diff: ios/crnet/crnet_environment.mm

Issue 2206283003: [Cronet] Add CrNet.setUserAgent method on iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@crnetgn
Patch Set: Sync Created 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/crnet/crnet_environment.h" 5 #include "ios/crnet/crnet_environment.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 GetHttpNetworkSession(GetMainContextGetter()->GetURLRequestContext()); 257 GetHttpNetworkSession(GetMainContextGetter()->GetURLRequestContext());
258 258
259 if (http_network_session) { 259 if (http_network_session) {
260 net::SpdySessionPool *spdy_session_pool = 260 net::SpdySessionPool *spdy_session_pool =
261 http_network_session->spdy_session_pool(); 261 http_network_session->spdy_session_pool();
262 if (spdy_session_pool) 262 if (spdy_session_pool)
263 spdy_session_pool->CloseCurrentSessions(net::ERR_ABORTED); 263 spdy_session_pool->CloseCurrentSessions(net::ERR_ABORTED);
264 } 264 }
265 } 265 }
266 266
267 CrNetEnvironment::CrNetEnvironment(const std::string& user_agent_product_name) 267 CrNetEnvironment::CrNetEnvironment(const std::string& user_agent,
268 bool user_agent_partial)
268 : spdy_enabled_(false), 269 : spdy_enabled_(false),
269 quic_enabled_(false), 270 quic_enabled_(false),
270 sdch_enabled_(false), 271 sdch_enabled_(false),
271 main_context_(new net::URLRequestContext), 272 main_context_(new net::URLRequestContext),
272 user_agent_product_name_(user_agent_product_name), 273 user_agent_(user_agent),
274 user_agent_partial_(user_agent_partial),
273 net_log_(new net::NetLog) {} 275 net_log_(new net::NetLog) {}
274 276
275 void CrNetEnvironment::Install() { 277 void CrNetEnvironment::Install() {
276 // Threads setup. 278 // Threads setup.
277 network_cache_thread_.reset(new base::Thread("Chrome Network Cache Thread")); 279 network_cache_thread_.reset(new base::Thread("Chrome Network Cache Thread"));
278 network_cache_thread_->StartWithOptions( 280 network_cache_thread_->StartWithOptions(
279 base::Thread::Options(base::MessageLoop::TYPE_IO, 0)); 281 base::Thread::Options(base::MessageLoop::TYPE_IO, 0));
280 network_io_thread_.reset(new base::Thread("Chrome Network IO Thread")); 282 network_io_thread_.reset(new base::Thread("Chrome Network IO Thread"));
281 network_io_thread_->StartWithOptions( 283 network_io_thread_->StartWithOptions(
282 base::Thread::Options(base::MessageLoop::TYPE_IO, 0)); 284 base::Thread::Options(base::MessageLoop::TYPE_IO, 0));
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 @"Localizable", 377 @"Localizable",
376 bundle, 378 bundle,
377 @"en-US,en", 379 @"en-US,en",
378 @"These values are copied from Chrome's .xtb files, so the same " 380 @"These values are copied from Chrome's .xtb files, so the same "
379 "values are used in the |Accept-Language| header. Key name matches " 381 "values are used in the |Accept-Language| header. Key name matches "
380 "Chrome's."); 382 "Chrome's.");
381 if (acceptableLanguages == Nil) 383 if (acceptableLanguages == Nil)
382 acceptableLanguages = @"en-US,en"; 384 acceptableLanguages = @"en-US,en";
383 std::string acceptable_languages = 385 std::string acceptable_languages =
384 [acceptableLanguages cStringUsingEncoding:NSUTF8StringEncoding]; 386 [acceptableLanguages cStringUsingEncoding:NSUTF8StringEncoding];
385 std::string user_agent = 387 if (user_agent_partial_) {
386 web::BuildUserAgentFromProduct(user_agent_product_name_); 388 user_agent_ = web::BuildUserAgentFromProduct(user_agent_);
389 user_agent_partial_ = false;
390 }
387 // Set the user agent through NSUserDefaults. This sets it for both 391 // Set the user agent through NSUserDefaults. This sets it for both
388 // UIWebViews and WKWebViews, and javascript calls to navigator.userAgent 392 // UIWebViews and WKWebViews, and javascript calls to navigator.userAgent
389 // return this value. 393 // return this value.
390 [[NSUserDefaults standardUserDefaults] registerDefaults:@{ 394 [[NSUserDefaults standardUserDefaults] registerDefaults:@{
391 @"UserAgent" : [NSString stringWithUTF8String:user_agent.c_str()] 395 @"UserAgent" : [NSString stringWithUTF8String:user_agent_.c_str()]
392 }]; 396 }];
393 main_context_->set_http_user_agent_settings( 397 main_context_->set_http_user_agent_settings(
394 new net::StaticHttpUserAgentSettings(acceptable_languages, user_agent)); 398 new net::StaticHttpUserAgentSettings(acceptable_languages, user_agent_));
395 399
396 main_context_->set_ssl_config_service(new net::SSLConfigServiceDefaults); 400 main_context_->set_ssl_config_service(new net::SSLConfigServiceDefaults);
397 main_context_->set_transport_security_state( 401 main_context_->set_transport_security_state(
398 new net::TransportSecurityState()); 402 new net::TransportSecurityState());
399 main_context_->set_cert_transparency_verifier(new net::MultiLogCTVerifier()); 403 main_context_->set_cert_transparency_verifier(new net::MultiLogCTVerifier());
400 main_context_->set_ct_policy_enforcer(new net::CTPolicyEnforcer()); 404 main_context_->set_ct_policy_enforcer(new net::CTPolicyEnforcer());
401 http_server_properties_.reset(new net::HttpServerPropertiesImpl()); 405 http_server_properties_.reset(new net::HttpServerPropertiesImpl());
402 main_context_->set_http_server_properties(http_server_properties_.get()); 406 main_context_->set_http_server_properties(http_server_properties_.get());
403 // TODO(rdsmith): Note that the ".release()" calls below are leaking 407 // TODO(rdsmith): Note that the ".release()" calls below are leaking
404 // the objects in question; this should be fixed by having an object 408 // the objects in question; this should be fixed by having an object
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 497
494 return user_agent_settings->GetUserAgent(); 498 return user_agent_settings->GetUserAgent();
495 } 499 }
496 500
497 void CrNetEnvironment::ClearCache(ClearCacheCallback callback) { 501 void CrNetEnvironment::ClearCache(ClearCacheCallback callback) {
498 PostToNetworkThread( 502 PostToNetworkThread(
499 FROM_HERE, 503 FROM_HERE,
500 base::Bind(&net::ClearHttpCache, main_context_getter_, 504 base::Bind(&net::ClearHttpCache, main_context_getter_,
501 network_io_thread_->task_runner(), base::BindBlock(callback))); 505 network_io_thread_->task_runner(), base::BindBlock(callback)));
502 } 506 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698