Changeset 185816 in webkit
- Timestamp:
- Jun 21, 2015 9:25:18 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r185813 r185816 1 2015-06-21 Alexey Proskuryakov <ap@apple.com> 2 3 REGRESSION (r172975): navigator.language unable to tell region for Traditional Chinese users 4 https://bugs.webkit.org/show_bug.cgi?id=146121 5 rdar://problem/21395180 6 7 Reviewed by Darin Adler. 8 9 Revert to previous behavior, which is wrong in many ways, but not as wrong as the new one. 10 11 * platform/mac/Language.mm: 12 (WebCore::httpStyleLanguageCode): 13 (WebCore::platformUserPreferredLanguages): 14 * platform/spi/cf/CFBundleSPI.h: 15 1 16 2015-06-19 Andy Estes <aestes@apple.com> 2 17 -
trunk/Source/WebCore/platform/mac/Language.mm
r172975 r185816 28 28 29 29 #import "BlockExceptions.h" 30 #import "CFBundleSPI.h" 30 31 #import "WebCoreNSStringExtras.h" 31 32 #import <mutex> … … 80 81 static String httpStyleLanguageCode(NSString *language) 81 82 { 82 return [[NSLocale canonicalLanguageIdentifierFromString:canonicalLocaleName(language)] lowercaseString]; 83 SInt32 languageCode; 84 SInt32 regionCode; 85 SInt32 scriptCode; 86 CFStringEncoding stringEncoding; 87 88 // FIXME: This transformation is very wrong: 89 // 1. There is no reason why CFBundle localization names would be at all related to language names as used on the Web. 90 // 2. Script Manager codes cannot represent all languages that are now supported by the platform, so the conversion is lossy. 91 // 3. This should probably match what is sent by the network layer as Accept-Language, but currently, that's implemented separately. 92 CFBundleGetLocalizationInfoForLocalization((CFStringRef)language, &languageCode, ®ionCode, &scriptCode, &stringEncoding); 93 RetainPtr<CFStringRef> preferredLanguageCode = adoptCF(CFBundleCopyLocalizationForLocalizationInfo(languageCode, regionCode, scriptCode, stringEncoding)); 94 if (preferredLanguageCode) 95 language = (NSString *)preferredLanguageCode.get(); 96 97 // Make the string lowercase. 98 NSString *lowercaseLanguageCode = [language lowercaseString]; 99 100 // Turn a '_' into a '-' if it appears after a 2-letter language code. 101 if ([lowercaseLanguageCode length] >= 3 && [lowercaseLanguageCode characterAtIndex:2] == '_') { 102 RetainPtr<NSMutableString> mutableLanguageCode = adoptNS([lowercaseLanguageCode mutableCopy]); 103 [mutableLanguageCode.get() replaceCharactersInRange:NSMakeRange(2, 1) withString:@"-"]; 104 return mutableLanguageCode.get(); 105 } 106 107 return lowercaseLanguageCode; 83 108 } 84 109 -
trunk/Source/WebCore/platform/spi/cf/CFBundleSPI.h
r183209 r185816 37 37 extern "C" { 38 38 void _CFBundleSetupXPCBootstrap(xpc_object_t bootstrap); 39 40 Boolean CFBundleGetLocalizationInfoForLocalization(CFStringRef localizationName, SInt32 *languageCode, SInt32 *regionCode, SInt32 *scriptCode, CFStringEncoding *stringEncoding); 41 CFStringRef CFBundleCopyLocalizationForLocalizationInfo(SInt32 languageCode, SInt32 regionCode, SInt32 scriptCode, CFStringEncoding stringEncoding); 39 42 } 40 43 -
trunk/Tools/ChangeLog
r185806 r185816 1 2015-06-21 Alexey Proskuryakov <ap@apple.com> 2 3 REGRESSION (r172975): navigator.language unable to tell region for Traditional Chinese users 4 https://bugs.webkit.org/show_bug.cgi?id=146121 5 rdar://problem/21395180 6 7 Reviewed by Darin Adler. 8 9 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 10 * TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Added. 11 (-[NavigatorLanguageDelegate webView:didFinishLoadForFrame:]): 12 (TestWebKitAPI::overrideAppleLanguages): 13 (TestWebKitAPI::languageForSystemLanguage): 14 (TestWebKitAPI::TEST): 15 1 16 2015-06-21 Michael Catanzaro <mcatanzaro@igalia.com> 2 17 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r185661 r185816 295 295 E1220DCA155B28AA0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E1220DC9155B287D0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html */; }; 296 296 E194E1BD177E53C7009C4D4E /* StopLoadingFromDidReceiveResponse.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E194E1BC177E534A009C4D4E /* StopLoadingFromDidReceiveResponse.html */; }; 297 E19DB9791B32137C00DB38D4 /* NavigatorLanguage.mm in Sources */ = {isa = PBXBuildFile; fileRef = E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */; }; 297 298 E40019331ACE9B88001B0A2A /* BloomFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E40019301ACE9B5C001B0A2A /* BloomFilter.cpp */; }; 298 299 F660AA1115A5F631003A1243 /* GetInjectedBundleInitializationUserDataCallback_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F660AA0F15A5F624003A1243 /* GetInjectedBundleInitializationUserDataCallback_Bundle.cpp */; }; … … 716 717 E194E1BA177E5145009C4D4E /* StopLoadingFromDidReceiveResponse.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = StopLoadingFromDidReceiveResponse.mm; sourceTree = "<group>"; }; 717 718 E194E1BC177E534A009C4D4E /* StopLoadingFromDidReceiveResponse.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = StopLoadingFromDidReceiveResponse.html; sourceTree = "<group>"; }; 719 E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NavigatorLanguage.mm; sourceTree = "<group>"; }; 718 720 E40019301ACE9B5C001B0A2A /* BloomFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BloomFilter.cpp; sourceTree = "<group>"; }; 719 721 E490296714E2E3A4002BEDD1 /* TypingStyleCrash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TypingStyleCrash.mm; sourceTree = "<group>"; }; … … 1213 1215 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */, 1214 1216 7A99D9931AD4A29D00373141 /* MenuTypesForMouseEvents.mm */, 1217 E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */, 1215 1218 A57A34EF16AF677200C2501F /* PageVisibilityStateWithWindowChanges.mm */, 1216 1219 00BC16851680FE810065F1E5 /* PublicSuffix.mm */, … … 1619 1622 260BA5791B1D2E7B004FA07C /* DFACombiner.cpp in Sources */, 1620 1623 7A99D9941AD4A29D00373141 /* MenuTypesForMouseEvents.mm in Sources */, 1624 E19DB9791B32137C00DB38D4 /* NavigatorLanguage.mm in Sources */, 1621 1625 ); 1622 1626 runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset
for help on using the changeset viewer.