Reviewed by Adele Peterson.
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Sep 2007 23:26:27 +0000 (23:26 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Sep 2007 23:26:27 +0000 (23:26 +0000)
        Fixed <rdar://problem/5507476> Promote cache model SPI to API

        Promoted cache model SPI to API. This was just a move, with some small
        edits to the documentation (changing 'application' to 'WebView' in
        some cases, since the interface is now per-WebView).

        * WebView/WebPreferences.h:
        * WebView/WebPreferences.m:
        (-[WebPreferences setCacheModel:]):
        (-[WebPreferences cacheModel]):
        * WebView/WebPreferencesPrivate.h:

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

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

index 1c7fa47c601e6ce04bfc31ea2cebe4c6516aa7d0..f153e6b78be9fb81132e0f3de803d42a3e6fef2e 100644 (file)
@@ -1,3 +1,19 @@
+2007-09-26  Geoffrey Garen  <ggaren@apple.com>
+
+        Reviewed by Adele Peterson.
+        
+        Fixed <rdar://problem/5507476> Promote cache model SPI to API
+        
+        Promoted cache model SPI to API. This was just a move, with some small 
+        edits to the documentation (changing 'application' to 'WebView' in 
+        some cases, since the interface is now per-WebView).
+
+        * WebView/WebPreferences.h:
+        * WebView/WebPreferences.m:
+        (-[WebPreferences setCacheModel:]):
+        (-[WebPreferences cacheModel]):
+        * WebView/WebPreferencesPrivate.h:
+
 2007-09-24  Timothy Hatcher  <timothy@apple.com>
 
         Reviewed by Darin.
index f3b91f0f9e53c73b2c87913584075dcd599e5420..1988acc09c96bee78ca27f4351e2be18ea37a176 100644 (file)
 
 #import <Foundation/Foundation.h>
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
+#define WebNSUInteger unsigned int
+#else
+#define WebNSUInteger NSUInteger
+#endif
+
+/*!
+@enum WebCacheModel
+
+@abstract Specifies a usage model for a WebView, which WebKit will use to 
+determine its caching behavior.
+
+@constant WebCacheModelDocumentViewer Appropriate for a WebView displaying 
+a fixed document -- like a splash screen, a chat document, or a word processing 
+document -- with no UI for navigation. The WebView will behave like any other 
+view, releasing resources when they are no longer referenced. Remote resources, 
+if any, will be cached to disk. This is the most memory-efficient setting.
+
+Examples: iChat, Mail, TextMate, Growl.
+
+@constant WebCacheModelDocumentBrowser Appropriate for a WebView displaying 
+a browsable series of documents with a UI for navigating between them -- for 
+example, a reference materials browser or a website designer. The WebView will 
+cache a reasonable number of resources and previously viewed documents in 
+memory and/or on disk.
+
+Examples: Dictionary, Help Viewer, Coda.
+
+@constant WebCacheModelPrimaryWebBrowser Appropriate for a WebView in the 
+application that acts as the user's primary web browser. The WebView will cache
+a very large number of resources and previously viewed documents in memory 
+and/or on disk.
+
+Examples: Safari, OmniWeb, Shiira.
+*/
+enum {
+    WebCacheModelDocumentViewer = 0,
+    WebCacheModelDocumentBrowser = 1,
+    WebCacheModelPrimaryWebBrowser = 2
+};
+typedef WebNSUInteger WebCacheModel;
+
 @class WebPreferencesPrivate;
 
 extern NSString *WebPreferencesChangedNotification;
@@ -360,4 +402,41 @@ extern NSString *WebPreferencesChangedNotification;
 */
 - (BOOL)usesPageCache;
 
+/*!
+@method setCacheModel:
+
+@abstract Specifies a usage model for a WebView, which WebKit will use to 
+determine its caching behavior.
+
+@param cacheModel The WebView's usage model for WebKit. If necessary, WebKit 
+will prune its caches to match cacheModel.
+
+@discussion Research indicates that users tend to browse within clusters of 
+documents that hold resources in common, and to revisit previously visited 
+documents. WebKit and the frameworks below it include built-in caches that take 
+advantage of these patterns, substantially improving document load speed in 
+browsing situations. The WebKit cache model controls the behaviors of all of 
+these caches, including NSURLCache and the various WebCore caches.
+
+Applications with a browsing interface can improve document load speed 
+substantially by specifying WebCacheModelDocumentBrowser. Applications without 
+a browsing interface can reduce memory usage substantially by specifying 
+WebCacheModelDocumentViewer.
+
+If setCacheModel: is not called, WebKit will select a cache model automatically.
+*/
+- (void)setCacheModel:(WebCacheModel)cacheModel;
+
+/*!
+@method cacheModel:
+
+@abstract Returns the usage model according to which WebKit determines its 
+caching behavior.
+
+@result The usage model.
+*/
+- (WebCacheModel)cacheModel;
+
 @end
+
+#undef WebNSUInteger
index 5bb7f1b77abc64b0c86e270f92b8ebf7024d0f33..eb64966e17c37b84e016ad87679615f337b93410 100644 (file)
@@ -691,6 +691,17 @@ static WebCacheModel cacheModelForMainBundle(void)
     return [self _boolValueForKey:WebKitUsesPageCachePreferenceKey];
 }
 
+- (void)setCacheModel:(WebCacheModel)cacheModel
+{
+    [self _setIntegerValue:cacheModel forKey:WebKitCacheModelPreferenceKey];
+    [self setAutomaticallyDetectsCacheModel:NO];
+}
+
+- (WebCacheModel)cacheModel
+{
+    return [self _integerValueForKey:WebKitCacheModelPreferenceKey];
+}
+
 @end
 
 @implementation WebPreferences (WebPrivate)
@@ -735,17 +746,6 @@ static WebCacheModel cacheModelForMainBundle(void)
     [self _setBoolValue:flag forKey:WebKitShrinksStandaloneImagesToFit];
 }
 
-- (void)setCacheModel:(WebCacheModel)cacheModel
-{
-    [self _setIntegerValue:cacheModel forKey:WebKitCacheModelPreferenceKey];
-    [self setAutomaticallyDetectsCacheModel:NO];
-}
-
-- (WebCacheModel)cacheModel
-{
-    return [self _integerValueForKey:WebKitCacheModelPreferenceKey];
-}
-
 - (BOOL)automaticallyDetectsCacheModel
 {
     return _private->automaticallyDetectsCacheModel;
index 5592e8c6577e9e668f846f0d5c277d56c982ed54..67f2f7cb01c1fc788ffd3e10e7460c589ccb454e 100644 (file)
 #import <WebKit/WebPreferences.h>
 #import <Quartz/Quartz.h>
 
-#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
-#define WebNSUInteger unsigned int
-#else
-#define WebNSUInteger NSUInteger
-#endif
-
 // WebKitEditableLinkBehavior needs to match the EditableLinkBehavior enum in WebCore
 typedef enum {
     WebKitEditableLinkDefaultBehavior = 0,
@@ -44,41 +38,6 @@ typedef enum {
     WebKitEditableLinkNeverLive
 } WebKitEditableLinkBehavior;
 
-/*!
-@enum WebCacheModel
-
-@abstract Specifies a usage model for a WebView, which WebKit will use to 
-determine its caching behavior.
-
-@constant WebCacheModelDocumentViewer Appropriate for an application displaying 
-fixed documents -- like splash screens, chat documents, or word processing 
-documents -- with no UI for navigation. The WebView will behave like any other 
-view, releasing resources when they are no longer referenced. Remote resources, 
-if any, will be cached to disk. This is the most memory-efficient setting.
-
-Examples: iChat, Mail, TextMate, Growl.
-
-@constant WebCacheModelDocumentBrowser Appropriate for an application displaying 
-a browsable series of documents with a UI for navigating between them -- for 
-example, a reference materials browser or a website design application. The 
-WebView will cache a reasonable number of resources and previously viewed 
-documents in memory and/or on disk.
-
-Examples: Dictionary, Help Viewer, Coda.
-
-@constant WebCacheModelPrimaryWebBrowser Appropriate for the application that 
-acts as the user's primary web browser. The WebView will cache a very large 
-number of resources and previously viewed documents in memory and/or on disk.
-
-Examples: Safari, OmniWeb, Shiira.
-*/
-enum {
-    WebCacheModelDocumentViewer = 0,
-    WebCacheModelDocumentBrowser = 1,
-    WebCacheModelPrimaryWebBrowser = 2
-};
-typedef WebNSUInteger WebCacheModel;
-
 extern NSString *WebPreferencesChangedNotification;
 extern NSString *WebPreferencesRemovedNotification;
 
@@ -100,41 +59,6 @@ extern NSString *WebPreferencesRemovedNotification;
 - (BOOL)shrinksStandaloneImagesToFit;
 - (void)setShrinksStandaloneImagesToFit:(BOOL)flag;
 
-/*!
-@method setCacheModel:
-
-@abstract Specifies a usage model for a WebView, which WebKit will use to 
-determine its caching behavior.
-
-@param cacheModel The application's usage model for WebKit. If necessary, 
-WebKit will prune its caches to match cacheModel.
-
-@discussion Research indicates that users tend to browse within clusters of 
-documents that hold resources in common, and to revisit previously visited 
-documents. WebKit and the frameworks below it include built-in caches that take 
-advantage of these patterns, substantially improving document load speed in 
-browsing situations. The WebKit cache model controls the behaviors of all of 
-these caches, including NSURLCache and the various WebCore caches.
-
-Applications with a browsing interface can improve document load speed 
-substantially by specifying WebCacheModelDocumentBrowser. Applications without 
-a browsing interface can reduce memory usage substantially by specifying 
-WebCacheModelDocumentViewer.
-
-If setCacheModel: is not called, WebKit will select a cache model automatically.
-*/
-- (void)setCacheModel:(WebCacheModel)cacheModel;
-
-/*!
-@method cacheModel:
-
-@abstract Returns the usage model according to which WebKit determines its 
-caching behavior.
-
-@result The usage model.
-*/
-- (WebCacheModel)cacheModel;
-
 - (BOOL)automaticallyDetectsCacheModel;
 - (void)setAutomaticallyDetectsCacheModel:(BOOL)automaticallyDetectsCacheModel;
 
@@ -179,5 +103,3 @@ caching behavior.
 - (void)didRemoveFromWebView;
 
 @end
-
-#undef WebNSUInteger