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

Unified Diff: chrome/browser/net/chrome_url_request_context.cc

Issue 149705: Added an observer for 'pref::kDefaultCharset' change I forgot to add in rXXXX... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/net/chrome_url_request_context.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/chrome_url_request_context.cc
===================================================================
--- chrome/browser/net/chrome_url_request_context.cc (revision 20790)
+++ chrome/browser/net/chrome_url_request_context.cc (working copy)
@@ -271,8 +271,10 @@
// Set up Accept-Language and Accept-Charset header values
accept_language_ = net::HttpUtil::GenerateAcceptLanguageHeader(
WideToASCII(prefs_->GetString(prefs::kAcceptLanguages)));
- accept_charset_ = net::HttpUtil::GenerateAcceptCharsetHeader(
- WideToASCII(prefs_->GetString(prefs::kDefaultCharset)));
+ std::string default_charset =
+ WideToASCII(prefs_->GetString(prefs::kDefaultCharset));
+ accept_charset_ =
+ net::HttpUtil::GenerateAcceptCharsetHeader(default_charset);
// At this point, we don't know the charset of the referring page
// where a url request originates from. This is used to get a suggested
@@ -286,7 +288,7 @@
// have an *arguably* better default charset for interpreting a raw 8bit
// C-D header field. It means the native OS codepage fallback in
// net_util::GetSuggestedFilename is unlikely to be taken.
- referrer_charset_ = accept_charset_;
+ referrer_charset_ = default_charset;
wtc 2009/07/16 01:14:47 Question: so referrer_charset_ should contain a si
cookie_policy_.SetType(net::CookiePolicy::FromInt(
prefs_->GetInteger(prefs::kCookieBehavior)));
@@ -309,6 +311,7 @@
prefs_->AddPrefObserver(prefs::kAcceptLanguages, this);
prefs_->AddPrefObserver(prefs::kCookieBehavior, this);
+ prefs_->AddPrefObserver(prefs::kDefaultCharset, this);
if (!is_off_the_record_) {
registrar_.Add(this, NotificationType::EXTENSIONS_LOADED,
@@ -340,6 +343,13 @@
NewRunnableMethod(this,
&ChromeURLRequestContext::OnCookiePolicyChange,
policy_type));
+ } else if (*pref_name_in == prefs::kDefaultCharset) {
+ std::string default_charset =
+ WideToASCII(prefs->GetString(prefs::kDefaultCharset));
+ g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE,
+ NewRunnableMethod(this,
+ &ChromeURLRequestContext::OnDefaultCharsetChange,
+ default_charset));
}
} else if (NotificationType::EXTENSIONS_LOADED == type) {
ExtensionPaths* new_paths = new ExtensionPaths;
@@ -367,6 +377,7 @@
// Unregister for pref notifications.
prefs_->RemovePrefObserver(prefs::kAcceptLanguages, this);
prefs_->RemovePrefObserver(prefs::kCookieBehavior, this);
+ prefs_->RemovePrefObserver(prefs::kDefaultCharset, this);
prefs_ = NULL;
registrar_.RemoveAll();
@@ -432,6 +443,15 @@
cookie_policy_.SetType(type);
}
+void ChromeURLRequestContext::OnDefaultCharsetChange(
+ const std::string& default_charset) {
+ DCHECK(MessageLoop::current() ==
+ ChromeThread::GetMessageLoop(ChromeThread::IO));
+ referrer_charset_ = default_charset;
+ accept_charset_ =
+ net::HttpUtil::GenerateAcceptCharsetHeader(default_charset);
+}
+
void ChromeURLRequestContext::OnNewExtensions(ExtensionPaths* new_paths) {
extension_paths_.insert(new_paths->begin(), new_paths->end());
delete new_paths;
« no previous file with comments | « chrome/browser/net/chrome_url_request_context.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698