Mozilla Home
Privacy
Cookies
Legal
Bugzilla
Browse
Advanced Search
New Bug
Reports
Documentation
Log In
Log In with GitHub
or
Remember me
Browse
Advanced Search
New Bug
Reports
Documentation
Attachment 460173 Details for
Bug 55366
[patch]
Patch 3: Change navigator.language to use Accept-Language
lang-js-55366-3.diff (text/plain), 1.73 KB, created by
Ben Bucksch (:BenB)
(
hide
)
Description:
Patch 3: Change navigator.language to use Accept-Language
Filename:
MIME Type:
Creator:
Ben Bucksch (:BenB)
Size:
1.73 KB
patch
obsolete
>diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp >--- a/dom/base/nsGlobalWindow.cpp >+++ b/dom/base/nsGlobalWindow.cpp >@@ -9854,29 +9854,39 @@ nsNavigator::GetAppName(nsAString& aAppN > return NS_OK; > } > } > > aAppName.AssignLiteral("Netscape"); > return NS_OK; > } > >+/** >+ * Take first value from Accept-Languages (HTTP header), which is >+ * the "content language" freely set by the user in the Pref window. >+ * See RFC 2616, Section 15.1.4 "Privacy Issues Connected to Accept Headers" >+ */ > NS_IMETHODIMP > nsNavigator::GetLanguage(nsAString& aLanguage) > { >- nsresult rv; >- nsCOMPtr<nsIHttpProtocolHandler> >- service(do_GetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &rv)); >- if (NS_SUCCEEDED(rv)) { >- nsCAutoString lang; >- rv = service->GetLanguage(lang); >- CopyASCIItoUTF16(lang, aLanguage); >- } >- >- return rv; >+ // e.g. "de-de,en-us,en" >+ const nsAdoptingString& acceptLang = >+ nsContentUtils::GetLocalizedStringPref("intl.accept_languages"); >+ // take everything before the first "," >+ nsAString::const_iterator startString, startComma, endComma; >+ acceptLang.BeginReading(startString); >+ acceptLang.BeginReading(startComma); >+ acceptLang.EndReading(endComma); >+ if (FindInReadable(NS_LITERAL_STRING(","), startComma, endComma)) >+ aLanguage.Assign(Substring(startString, startComma)); >+ else >+ aLanguage.Assign(acceptLang); >+ NS_ASSERTION(aLanguage.Length() == 2 || aLanguage.Length() == 5, >+ "invalid intl.accept_languages pref"); >+ return NS_OK; > } > > NS_IMETHODIMP > nsNavigator::GetPlatform(nsAString& aPlatform) > { > if (!nsContentUtils::IsCallerTrustedForRead()) { > const nsAdoptingCString& override = > nsContentUtils::GetCharPref("general.platform.override");
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Flags:
bzbarsky
: review-
Actions:
View
|
Diff
|
Review
Attachments on
bug 55366
:
43864
|
460173
|
461774
|
462244
|
462638
|
462663