[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
trey
trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:24:17 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit f120802a5ea4a323bc34669ece33e1129b55d90a
Author: trey <trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Feb 10 23:03:41 2003 +0000
Following the recent fix for ensuring that we always have a FormDelegate,
when we need a default policy delegate we use a shared one instead of allocing
a new one each time, which then would leak.
This included getting rid of the initWithWebController: method in the
WebDefaultPolicyDelegate API. The arg was not used.
Reviewed by Richard
* WebKit.pbproj/project.pbxproj: new private header
* WebView.subproj/WebController.m:
(-[WebController policyDelegate]): use shared delegate if none set
* WebView.subproj/WebDefaultPolicyDelegate.h:
* WebView.subproj/WebDefaultPolicyDelegate.m:
(+[WebDefaultPolicyDelegate _sharedWebPolicyDelegate]): return shared instance
* WebView.subproj/WebDefaultPolicyDelegatePrivate.h: Added.
* WebView.subproj/WebFormDelegate.m:
(+[WebFormDelegate _sharedWebFormDelegate]): Trivial renaming of static.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 93c7cfc..6e0eabb 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,24 @@
+2003-02-10 Trey Matteson <trey at apple.com>
+
+ Following the recent fix for ensuring that we always have a FormDelegate,
+ when we need a default policy delegate we use a shared one instead of allocing
+ a new one each time, which then would leak.
+
+ This included getting rid of the initWithWebController: method in the
+ WebDefaultPolicyDelegate API. The arg was not used.
+
+ Reviewed by Richard
+
+ * WebKit.pbproj/project.pbxproj: new private header
+ * WebView.subproj/WebController.m:
+ (-[WebController policyDelegate]): use shared delegate if none set
+ * WebView.subproj/WebDefaultPolicyDelegate.h:
+ * WebView.subproj/WebDefaultPolicyDelegate.m:
+ (+[WebDefaultPolicyDelegate _sharedWebPolicyDelegate]): return shared instance
+ * WebView.subproj/WebDefaultPolicyDelegatePrivate.h: Added.
+ * WebView.subproj/WebFormDelegate.m:
+ (+[WebFormDelegate _sharedWebFormDelegate]): Trivial renaming of static.
+
2003-02-10 Richard Williamson <rjw at apple.com>
Update API issues document.
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index a4264bf..195f0c8 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -98,6 +98,7 @@
9C7CABBB0190A37C0ECA16EA,
0867D69AFE84028FC02AAC07,
034768DFFF38A50411DB9C8B,
+ 2D386AD203F822B500A80166,
);
isa = PBXGroup;
name = WebKit;
@@ -301,6 +302,7 @@
8466AEDE03F1F82100CA2ACA,
8324709A03F32305003026AC,
2D36FD5F03F78F9E00A80166,
+ 2D386AD303F822B500A80166,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -591,6 +593,19 @@
settings = {
};
};
+ 2D386AD203F822B500A80166 = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ name = WebDefaultPolicyDelegatePrivate.h;
+ path = WebView.subproj/WebDefaultPolicyDelegatePrivate.h;
+ refType = 4;
+ };
+ 2D386AD303F822B500A80166 = {
+ fileRef = 2D386AD203F822B500A80166;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
2D81DAB203EB0B2D00A80166 = {
fileEncoding = 30;
isa = PBXFileReference;
diff --git a/WebKit/WebView.subproj/WebController.m b/WebKit/WebView.subproj/WebController.m
index f440999..36dc1b6 100644
--- a/WebKit/WebView.subproj/WebController.m
+++ b/WebKit/WebView.subproj/WebController.m
@@ -13,7 +13,7 @@
#import <WebKit/WebControllerPolicyDelegate.h>
#import <WebKit/WebControllerPrivate.h>
#import <WebKit/WebDataSourcePrivate.h>
-#import <WebKit/WebDefaultPolicyDelegate.h>
+#import <WebKit/WebDefaultPolicyDelegatePrivate.h>
#import <WebKit/WebDocument.h>
#import <WebKit/WebDynamicScrollBarsView.h>
#import <WebKit/WebException.h>
@@ -161,9 +161,8 @@ NSString *WebElementLinkTitleKey = @"WebElementLinkTitle";
- (id<WebControllerPolicyDelegate>)policyDelegate
{
- // FIXME: This leaks!
if (!_private->policyDelegate)
- _private->policyDelegate = [[WebDefaultPolicyDelegate alloc] initWithWebController: self];
+ _private->policyDelegate = [WebDefaultPolicyDelegate _sharedWebPolicyDelegate];
return _private->policyDelegate;
}
diff --git a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h
index 7379459..a3b28f5 100644
--- a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h
+++ b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h
@@ -6,23 +6,11 @@
*/
#import <Foundation/Foundation.h>
- at class WebController;
-
/*!
@class WebDefaultPolicyDelegate
@discussion WebDefaultPolicyDelegate will be used a a WebController's
default policy delegate. It can be subclassed to modify policies.
*/
@interface WebDefaultPolicyDelegate : NSObject <WebControllerPolicyDelegate>
-{
- WebController *webController;
-}
-
-/*!
- @method initWithWebController:
- @param webController The controller that will use this delegate. Note that the controller is not retained.
- @result An initialized WebDefaultPolicyDelegate
-*/
-- initWithWebController: (WebController *)webController;
@end
diff --git a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m
index 63a59e1..783cda3 100644
--- a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m
+++ b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m
@@ -3,7 +3,7 @@
Copyright 2002, Apple Computer, Inc.
*/
#import <WebKit/WebController.h>
-#import <WebKit/WebControllerPolicyDelegate.h>
+#import <WebKit/WebControllerPolicyDelegatePrivate.h>
#import <WebKit/WebDataSource.h>
#import <WebKit/WebDefaultPolicyDelegate.h>
#import <WebKit/WebFrame.h>
@@ -14,11 +14,16 @@
@implementation WebDefaultPolicyDelegate
-- initWithWebController: (WebController *)wc
+static WebDefaultPolicyDelegate *sharedDelegate = nil;
+
+// Return a object with vanilla implementations of the protocol's methods
+// Note this feature relies on our default delegate being stateless
++ (WebDefaultPolicyDelegate *)_sharedWebPolicyDelegate
{
- [super init];
- webController = wc; // Non-retained, like a delegate.
- return self;
+ if (!sharedDelegate) {
+ sharedDelegate = [[WebDefaultPolicyDelegate alloc] init];
+ }
+ return sharedDelegate;
}
- (void)unableToImplementPolicy:(WebPolicyAction)policy error:(WebError *)error forURL:(NSURL *)URL inFrame:(WebFrame *)frame
diff --git a/WebKit/WebView.subproj/WebDefaultPolicyDelegatePrivate.h b/WebKit/WebView.subproj/WebDefaultPolicyDelegatePrivate.h
new file mode 100644
index 0000000..a570890
--- /dev/null
+++ b/WebKit/WebView.subproj/WebDefaultPolicyDelegatePrivate.h
@@ -0,0 +1,13 @@
+/*
+ WebDefaultPolicyDelegatePrivate.h
+ Copyright 2002, Apple Computer, Inc.
+ */
+
+#import <Foundation/Foundation.h>
+
+#import "WebDefaultPolicyDelegate.h"
+
+ at interface WebDefaultPolicyDelegate (WebPrivate)
++ (WebDefaultPolicyDelegate *)_sharedWebPolicyDelegate;
+ at end
+
diff --git a/WebKit/WebView.subproj/WebFormDelegate.m b/WebKit/WebView.subproj/WebFormDelegate.m
index 9a9a381..bf08f1a 100644
--- a/WebKit/WebView.subproj/WebFormDelegate.m
+++ b/WebKit/WebView.subproj/WebFormDelegate.m
@@ -7,16 +7,16 @@
@implementation WebFormDelegate
-static WebFormDelegate *SharedDelegate = nil;
+static WebFormDelegate *sharedDelegate = nil;
// Return a object with NOP implementations of the protocol's methods
// Note this feature relies on our default delegate being stateless
+ (WebFormDelegate *)_sharedWebFormDelegate
{
- if (!SharedDelegate) {
- SharedDelegate = [[WebFormDelegate alloc] init];
+ if (!sharedDelegate) {
+ sharedDelegate = [[WebFormDelegate alloc] init];
}
- return SharedDelegate;
+ return sharedDelegate;
}
- (void)controlTextDidBeginEditing:(NSNotification *)obj inFrame:(WebFrame *)frame { }
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index f440999..36dc1b6 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -13,7 +13,7 @@
#import <WebKit/WebControllerPolicyDelegate.h>
#import <WebKit/WebControllerPrivate.h>
#import <WebKit/WebDataSourcePrivate.h>
-#import <WebKit/WebDefaultPolicyDelegate.h>
+#import <WebKit/WebDefaultPolicyDelegatePrivate.h>
#import <WebKit/WebDocument.h>
#import <WebKit/WebDynamicScrollBarsView.h>
#import <WebKit/WebException.h>
@@ -161,9 +161,8 @@ NSString *WebElementLinkTitleKey = @"WebElementLinkTitle";
- (id<WebControllerPolicyDelegate>)policyDelegate
{
- // FIXME: This leaks!
if (!_private->policyDelegate)
- _private->policyDelegate = [[WebDefaultPolicyDelegate alloc] initWithWebController: self];
+ _private->policyDelegate = [WebDefaultPolicyDelegate _sharedWebPolicyDelegate];
return _private->policyDelegate;
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list