Make navigator.language return the same value as CefSettings.locale (issue #429).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@382 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2011-11-17 18:52:16 +00:00
parent 268675fdbe
commit e7e289a7c6
5 changed files with 16 additions and 6 deletions

View File

@ -14,6 +14,7 @@
#include "browser_devtools_callargs.h"
#include "browser_devtools_client.h"
#include "browser_impl.h"
#include "cef_context.h"
#include "base/bind.h"
#include "base/command_line.h"
@ -32,7 +33,7 @@ BrowserDevToolsClient::BrowserDevToolsClient(CefBrowserImpl* browser,
dev_tools_agent_(agent),
web_view_(browser->UIT_GetWebView()) {
web_tools_frontend_.reset(WebDevToolsFrontend::create(web_view_, this,
WebString::fromUTF8("en-US")));
WebString::fromUTF8(_Context->locale())));
dev_tools_agent_->attach(this);
}

View File

@ -170,7 +170,7 @@ WebKit::WebData BrowserWebKitInit::loadResource(const char* name) {
}
WebKit::WebString BrowserWebKitInit::defaultLocale() {
return ASCIIToUTF16("en-US");
return ASCIIToUTF16(_Context->locale());
}
WebKit::WebStorageNamespace* BrowserWebKitInit::createLocalStorageNamespace(

View File

@ -972,6 +972,15 @@ CefRefPtr<CefBrowserImpl> CefContext::GetBrowserByID(int id)
return NULL;
}
std::string CefContext::locale() const
{
std::string localeStr = CefString(&settings_.locale);
if (!localeStr.empty())
return localeStr;
return "en-US";
}
void CefContext::UIT_FinishShutdown(base::WaitableEvent* browser_shutdown_event,
base::WaitableEvent* uithread_shutdown_event)
{

View File

@ -53,6 +53,9 @@ public:
const CefSettings& settings() const { return settings_; }
// Return the locale specified in CefSettings or the default value of "en-US".
std::string locale() const;
// The BrowserRequestContext object is managed by CefProcessIOThread.
void set_request_context(BrowserRequestContext* request_context)
{ request_context_ = request_context; }

View File

@ -86,10 +86,7 @@ void CefProcessUIThread::Init() {
// Provides path resolution required for locating locale pack files.
ui::RegisterPathProvider();
std::string localeStr = CefString(&settings.locale);
if (localeStr.empty())
localeStr = "en-US";
webkit_glue::InitializeResourceBundle(localeStr);
webkit_glue::InitializeResourceBundle(_Context->locale());
PlatformInit();