Changeset 206949 in webkit
- Timestamp:
- Oct 7, 2016 8:31:15 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r206947 r206949 1 2016-10-07 Chris Dumez <cdumez@apple.com> 2 3 window.navigator.language incorrectly returns all lowercase string 4 https://bugs.webkit.org/show_bug.cgi?id=163096 5 6 Reviewed by Darin Adler. 7 8 Update existing test so that it does not lowercase navigator.language 9 before checking it. This way, we can make sure it returns en-US and 10 not en-us. 11 12 * js/dom/navigator-language-expected.txt: 13 * js/dom/navigator-language.html: 14 1 15 2016-10-07 Yusuke Suzuki <utatane.tea@gmail.com> 2 16 -
trunk/LayoutTests/js/dom/navigator-language-expected.txt
r156066 r206949 3 3 4 4 5 PASS language is 'en- us'5 PASS language is 'en-US' 6 6 PASS successfullyParsed is true 7 7 -
trunk/LayoutTests/js/dom/navigator-language.html
r156066 r206949 15 15 } 16 16 17 var language = navigator.language .toLowerCase();17 var language = navigator.language; 18 18 if (language.length == 2) 19 19 shouldBe("language", "'en'"); 20 20 else 21 shouldBe("language", "'en- us'");21 shouldBe("language", "'en-US'"); 22 22 </script> 23 23 <script src="../../resources/js-test-post.js"></script> -
trunk/Source/WTF/ChangeLog
r206871 r206949 1 2016-10-07 Chris Dumez <cdumez@apple.com> 2 3 window.navigator.language incorrectly returns all lowercase string 4 https://bugs.webkit.org/show_bug.cgi?id=163096 5 6 Reviewed by Darin Adler. 7 8 Update platformUserPreferredLanguages() so that it no longer lowercases 9 the string it returns. On Mac, we rely on CFLocale which returns 10 BCP-47 language tags as per: 11 - https://developer.apple.com/reference/corefoundation/1666963-cflocale?language=objc 12 13 * wtf/PlatformUserPreferredLanguagesMac.mm: 14 (WTF::httpStyleLanguageCode): 15 * wtf/PlatformUserPreferredLanguagesUnix.cpp: 16 (WTF::platformLanguage): 17 1 18 2016-10-06 Brent Fulgham <bfulgham@apple.com> 2 19 -
trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesMac.mm
r203141 r206949 81 81 { 82 82 SInt32 languageCode; 83 SInt32 regionCode; 84 SInt32 scriptCode; 83 SInt32 regionCode; 84 SInt32 scriptCode; 85 85 CFStringEncoding stringEncoding; 86 86 87 87 // FIXME: This transformation is very wrong: 88 88 // 1. There is no reason why CFBundle localization names would be at all related to language names as used on the Web. … … 94 94 language = (NSString *)preferredLanguageCode.get(); 95 95 96 // Make the string lowercase.97 NSString *lowercaseLanguageCode = [language lowercaseString];98 99 96 // Turn a '_' into a '-' if it appears after a 2-letter language code 100 if ([l owercaseLanguageCode length] >= 3 && [lowercaseLanguageCode characterAtIndex:2] == '_') {101 RetainPtr<NSMutableString> mutableLanguageCode = adoptNS([l owercaseLanguageCode mutableCopy]);97 if ([language length] >= 3 && [language characterAtIndex:2] == '_') { 98 RetainPtr<NSMutableString> mutableLanguageCode = adoptNS([language mutableCopy]); 102 99 [mutableLanguageCode.get() replaceCharactersInRange:NSMakeRange(2, 1) withString:@"-"]; 103 100 return mutableLanguageCode.get(); 104 101 } 105 102 106 return l owercaseLanguageCode;103 return language; 107 104 } 108 105 -
trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesUnix.cpp
r206295 r206949 37 37 String localeDefault(setlocale(LC_CTYPE, nullptr)); 38 38 if (localeDefault.isEmpty() || equalIgnoringASCIICase(localeDefault, "C") || equalIgnoringASCIICase(localeDefault, "POSIX")) 39 return ASCIILiteral("en- us");39 return ASCIILiteral("en-US"); 40 40 41 String normalizedDefault = localeDefault .convertToASCIILowercase();41 String normalizedDefault = localeDefault; 42 42 normalizedDefault.replace('_', '-'); 43 43 normalizedDefault.truncate(normalizedDefault.find('.')); -
trunk/Source/WebCore/ChangeLog
r206944 r206949 1 2016-10-07 Chris Dumez <cdumez@apple.com> 2 3 window.navigator.language incorrectly returns all lowercase string 4 https://bugs.webkit.org/show_bug.cgi?id=163096 5 6 Reviewed by Darin Adler. 7 8 Update navigator.language so that it no longer returns an all lowercase 9 string (e.g. 'en-us' -> 'en-US'). This matches the behavior of other 10 browsers and the specification which indicate we should return a 11 BCP 47 language tag: 12 - https://html.spec.whatwg.org/#dom-navigator-language 13 - https://tools.ietf.org/html/bcp47 14 15 The other call sites relying on userPreferredLanguages() use case 16 insensitive comparison so they will not break. 17 18 No new tests, updated existing test. 19 20 * platform/Language.h: 21 1 22 2016-10-07 Wenson Hsieh <wenson_hsieh@apple.com> 2 23 -
trunk/Source/WebCore/platform/Language.h
r201970 r206949 33 33 34 34 WEBCORE_EXPORT String defaultLanguage(); // Thread-safe. 35 WEBCORE_EXPORT Vector<String> userPreferredLanguages(); // Thread-safe .35 WEBCORE_EXPORT Vector<String> userPreferredLanguages(); // Thread-safe, returns BCP 47 language tags. 36 36 Vector<String> userPreferredLanguagesOverride(); 37 37 WEBCORE_EXPORT void overrideUserPreferredLanguages(const Vector<String>&);
Note: See TracChangeset
for help on using the changeset viewer.