| Index: chrome/browser/chrome_content_browser_client.cc
|
| ===================================================================
|
| --- chrome/browser/chrome_content_browser_client.cc (revision 192622)
|
| +++ chrome/browser/chrome_content_browser_client.cc (working copy)
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/command_line.h"
|
| +#include "base/lazy_instance.h"
|
| #include "base/path_service.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "base/strings/string_tokenizer.h"
|
| @@ -180,6 +181,10 @@
|
|
|
| namespace {
|
|
|
| +// Cached version of the locale so we can return the locale on the I/O
|
| +// thread.
|
| +base::LazyInstance<std::string> g_io_thread_application_locale;
|
| +
|
| const char* kPredefinedAllowedSocketOrigins[] = {
|
| "okddffdblfhhnmhodogpojmfkjmhinfp", // Test SSH Client
|
| "pnhechapfaindjhompbnflcldabbghjo", // HTerm App (SSH Client)
|
| @@ -461,6 +466,11 @@
|
| return effective_url;
|
| }
|
|
|
| +void SetApplicationLocaleOnIOThread(const std::string& locale) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| + g_io_thread_application_locale.Get() = locale;
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace chrome {
|
| @@ -487,6 +497,25 @@
|
| PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| }
|
|
|
| +// static
|
| +void ChromeContentBrowserClient::SetApplicationLocale(
|
| + const std::string& locale) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| +
|
| + // This object is guaranteed to outlive all threads so we don't have to
|
| + // worry about the lack of refcounting and can just post as Unretained.
|
| + //
|
| + // The common case is that this function is called early in Chrome startup
|
| + // before any threads are created (it will also be called later if the user
|
| + // changes the pref). In this case, there will be no threads created and
|
| + // posting will fail. When there are no threads, we can just set the string
|
| + // without worrying about threadsafety.
|
| + if (!BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&SetApplicationLocaleOnIOThread, locale))) {
|
| + g_io_thread_application_locale.Get() = locale;
|
| + }
|
| +}
|
| +
|
| content::BrowserMainParts* ChromeContentBrowserClient::CreateBrowserMainParts(
|
| const content::MainFunctionParams& parameters) {
|
| ChromeBrowserMainParts* main_parts;
|
| @@ -1263,7 +1292,7 @@
|
|
|
| std::string ChromeContentBrowserClient::GetApplicationLocale() {
|
| if (BrowserThread::CurrentlyOn(BrowserThread::IO))
|
| - return io_thread_application_locale_;
|
| + return g_io_thread_application_locale.Get();
|
| return g_browser_process->GetApplicationLocale();
|
| }
|
|
|
| @@ -1901,13 +1930,6 @@
|
| Value::CreateStringValue(value));
|
| }
|
|
|
| -void ChromeContentBrowserClient::ClearInspectorSettings(RenderViewHost* rvh) {
|
| - content::BrowserContext* browser_context =
|
| - rvh->GetProcess()->GetBrowserContext();
|
| - Profile::FromBrowserContext(browser_context)->GetPrefs()->
|
| - ClearPref(prefs::kWebKitInspectorSettings);
|
| -}
|
| -
|
| void ChromeContentBrowserClient::BrowserURLHandlerCreated(
|
| BrowserURLHandler* handler) {
|
| // Add the default URL handlers.
|
| @@ -2167,29 +2189,4 @@
|
| }
|
| #endif
|
|
|
| -void ChromeContentBrowserClient::SetApplicationLocale(
|
| - const std::string& locale) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -
|
| - // This object is guaranteed to outlive all threads so we don't have to
|
| - // worry about the lack of refcounting and can just post as Unretained.
|
| - //
|
| - // The common case is that this function is called early in Chrome startup
|
| - // before any threads are created (it will also be called later if the user
|
| - // changes the pref). In this case, there will be no threads created and
|
| - // posting will fail. When there are no threads, we can just set the string
|
| - // without worrying about threadsafety.
|
| - if (!BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(
|
| - &ChromeContentBrowserClient::SetApplicationLocaleOnIOThread,
|
| - base::Unretained(this), locale)))
|
| - io_thread_application_locale_ = locale;
|
| -}
|
| -
|
| -void ChromeContentBrowserClient::SetApplicationLocaleOnIOThread(
|
| - const std::string& locale) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - io_thread_application_locale_ = locale;
|
| -}
|
| -
|
| } // namespace chrome
|
|
|