OLD | NEW |
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/net/ios_chrome_http_user_agent_settings.h" | 5 #include "ios/chrome/browser/net/ios_chrome_http_user_agent_settings.h" |
6 | 6 |
7 #include "components/prefs/pref_service.h" | 7 #include "components/prefs/pref_service.h" |
8 #include "ios/chrome/browser/pref_names.h" | 8 #include "ios/chrome/browser/pref_names.h" |
9 #include "ios/web/public/web_client.h" | 9 #include "ios/web/public/web_client.h" |
10 #include "ios/web/public/web_thread.h" | 10 #include "ios/web/public/web_thread.h" |
11 #include "net/http/http_util.h" | 11 #include "net/http/http_util_icu.h" |
12 | 12 |
13 #if !defined(__has_feature) || !__has_feature(objc_arc) | 13 #if !defined(__has_feature) || !__has_feature(objc_arc) |
14 #error "This file requires ARC support." | 14 #error "This file requires ARC support." |
15 #endif | 15 #endif |
16 | 16 |
17 IOSChromeHttpUserAgentSettings::IOSChromeHttpUserAgentSettings( | 17 IOSChromeHttpUserAgentSettings::IOSChromeHttpUserAgentSettings( |
18 PrefService* prefs) { | 18 PrefService* prefs) { |
19 DCHECK_CURRENTLY_ON(web::WebThread::UI); | 19 DCHECK_CURRENTLY_ON(web::WebThread::UI); |
20 pref_accept_language_.Init(prefs::kAcceptLanguages, prefs); | 20 pref_accept_language_.Init(prefs::kAcceptLanguages, prefs); |
21 last_pref_accept_language_ = *pref_accept_language_; | 21 last_pref_accept_language_ = *pref_accept_language_; |
22 last_http_accept_language_ = | 22 last_http_accept_language_ = net::http_util_icu::GenerateAcceptLanguageHeader( |
23 net::HttpUtil::GenerateAcceptLanguageHeader(last_pref_accept_language_); | 23 last_pref_accept_language_); |
24 pref_accept_language_.MoveToThread( | 24 pref_accept_language_.MoveToThread( |
25 web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); | 25 web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); |
26 } | 26 } |
27 | 27 |
28 IOSChromeHttpUserAgentSettings::~IOSChromeHttpUserAgentSettings() { | 28 IOSChromeHttpUserAgentSettings::~IOSChromeHttpUserAgentSettings() { |
29 DCHECK_CURRENTLY_ON(web::WebThread::IO); | 29 DCHECK_CURRENTLY_ON(web::WebThread::IO); |
30 } | 30 } |
31 | 31 |
32 void IOSChromeHttpUserAgentSettings::CleanupOnUIThread() { | 32 void IOSChromeHttpUserAgentSettings::CleanupOnUIThread() { |
33 DCHECK_CURRENTLY_ON(web::WebThread::UI); | 33 DCHECK_CURRENTLY_ON(web::WebThread::UI); |
34 pref_accept_language_.Destroy(); | 34 pref_accept_language_.Destroy(); |
35 } | 35 } |
36 | 36 |
37 std::string IOSChromeHttpUserAgentSettings::GetAcceptLanguage() const { | 37 std::string IOSChromeHttpUserAgentSettings::GetAcceptLanguage() const { |
38 DCHECK_CURRENTLY_ON(web::WebThread::IO); | 38 DCHECK_CURRENTLY_ON(web::WebThread::IO); |
39 std::string new_pref_accept_language = *pref_accept_language_; | 39 std::string new_pref_accept_language = *pref_accept_language_; |
40 if (new_pref_accept_language != last_pref_accept_language_) { | 40 if (new_pref_accept_language != last_pref_accept_language_) { |
41 last_http_accept_language_ = | 41 last_http_accept_language_ = |
42 net::HttpUtil::GenerateAcceptLanguageHeader(new_pref_accept_language); | 42 net::http_util_icu::GenerateAcceptLanguageHeader( |
| 43 new_pref_accept_language); |
43 last_pref_accept_language_ = new_pref_accept_language; | 44 last_pref_accept_language_ = new_pref_accept_language; |
44 } | 45 } |
45 return last_http_accept_language_; | 46 return last_http_accept_language_; |
46 } | 47 } |
47 | 48 |
48 std::string IOSChromeHttpUserAgentSettings::GetUserAgent() const { | 49 std::string IOSChromeHttpUserAgentSettings::GetUserAgent() const { |
49 DCHECK_CURRENTLY_ON(web::WebThread::IO); | 50 DCHECK_CURRENTLY_ON(web::WebThread::IO); |
50 return web::GetWebClient()->GetUserAgent(false); | 51 return web::GetWebClient()->GetUserAgent(false); |
51 } | 52 } |
OLD | NEW |