WebKit:
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Sep 2004 17:56:45 +0000 (17:56 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Sep 2004 17:56:45 +0000 (17:56 +0000)
        Reviewed by Chris.

        - WebKit part of fix for <rdar://problem/3415264>
        Default encoding should initially be set to current system encoding

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
        new SPI that sets the initial value of the default text encoding to
        be the system encoding, with a special-case conversion of MacRoman->Latin1.
        This is not done automatically for WebKit clients for fear of breaking them.

        * WebView.subproj/WebPreferencesPrivate.h:
        declare new SPI

WebBrowser:

        Reviewed by Chris.

        - WebBrowser part of fix for <rdar://problem/3415264>
        Default encoding should initially be set to current system encoding

        * AppController.m:
        (-[AppController applicationDidFinishLaunching:]):
        call new SPI -[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7659 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebView.subproj/WebPreferences.m
WebKit/WebView.subproj/WebPreferencesPrivate.h

index 1f5b790c5b60a2f32ec1f0784230a4169205edd2..e570841d0fe024df3f25aef59753c772803730d4 100644 (file)
@@ -1,3 +1,19 @@
+2004-09-23  John Sullivan  <sullivan@apple.com>
+
+        Reviewed by Chris.
+        
+        - WebKit part of fix for <rdar://problem/3415264> 
+        Default encoding should initially be set to current system encoding
+
+        * WebView.subproj/WebPreferences.m:
+        (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
+        new SPI that sets the initial value of the default text encoding to
+        be the system encoding, with a special-case conversion of MacRoman->Latin1.
+        This is not done automatically for WebKit clients for fear of breaking them.
+        
+        * WebView.subproj/WebPreferencesPrivate.h:
+        declare new SPI
+
 2004-09-23  Darin Adler  <darin@apple.com>
 
         Reviewed by Ken.
index cd7767835765374681921fed238e4e7c872c6d4d..3d4c6fbca3b1a4ff1c3228998d2f3f94e1fe2e15 100644 (file)
@@ -580,6 +580,27 @@ static NSMutableDictionary *webPreferencesInstances = nil;
                     userInfo:nil];
 }
 
+- (void)_setInitialDefaultTextEncodingToSystemEncoding
+{
+    CFStringEncoding encoding = CFStringGetSystemEncoding();
+    
+    // MacRoman is a special case; maybe we will learn that there should be other special cases later.
+    if (encoding == kCFStringEncodingMacRoman) {
+        encoding = kCFStringEncodingISOLatin1;
+    }
+    
+    NSString *name = (NSString *)CFStringConvertEncodingToIANACharSetName(encoding);
+    
+    // fall back to latin1 if necessary
+    if (name == nil) {
+        name = (NSString *)CFStringConvertEncodingToIANACharSetName(kCFStringEncodingISOLatin1);
+    }
+    
+    [[NSUserDefaults standardUserDefaults] registerDefaults:
+        [NSDictionary dictionaryWithObject:name
+                                    forKey:WebKitDefaultTextEncodingNamePreferenceKey]];
+}
+
 static NSString *classIBCreatorID = nil;
 
 + (void)_setIBCreatorID:(NSString *)string
index ab20c43dd6d5fe7f5b15fd7a81a6a5e6e34a96a3..4a97d358789e40b12e2a03c659f8fc6c1b48d8da 100644 (file)
@@ -14,6 +14,6 @@
 + (void)_setInstance:(WebPreferences *)instance forIdentifier:(NSString *)identifier;
 + (void)_removeReferenceForIdentifier:(NSString *)identifier;
 - (NSTimeInterval)_backForwardCacheExpirationInterval;
-
+- (void)_setInitialDefaultTextEncodingToSystemEncoding;
 + (void)_setIBCreatorID:(NSString *)string;
 @end