[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
cblu
cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:39:57 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 81a2a504067f6ad16489690fddf97dcbaf990e6d
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu May 1 21:44:36 2003 +0000
WebKit:
Fixed: 3234888 - REGRESSION: "can't add a plug-in to a defunct WebPluginController" error, then crash
Fixed: 3226392 - REGRESSION: Safari crashed while loading Java applet at PopCap.com
Reviewed by darin.
* WebView.subproj/WebFramePrivate.h:
* WebView.subproj/WebFramePrivate.m:
(-[WebFrame setController:]): fixed comment
* WebView.subproj/WebView.m:
(-[WebView dealloc]): call [self _close]
* WebView.subproj/WebViewPrivate.h:
* WebView.subproj/WebViewPrivate.m:
(-[WebViewPrivate dealloc]): let the WebView class clear the frames
(-[WebView _close]): remove self from controller set and detach and release frame
WebBrowser:
Fixed: 3234888 - REGRESSION: "can't add a plug-in to a defunct WebPluginController" error, then crash
Fixed: 3226392 - REGRESSION: Safari crashed while loading Java applet at PopCap.com
Reviewed by darin.
* BrowserWebController.m:
(-[BrowserWebController close]): call [self _close]
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index f59fb8e..37920ae 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,20 @@
+2003-05-01 Chris Blumenberg <cblu at apple.com>
+
+ Fixed: 3234888 - REGRESSION: "can't add a plug-in to a defunct WebPluginController" error, then crash
+ Fixed: 3226392 - REGRESSION: Safari crashed while loading Java applet at PopCap.com
+
+ Reviewed by darin.
+
+ * WebView.subproj/WebFramePrivate.h:
+ * WebView.subproj/WebFramePrivate.m:
+ (-[WebFrame setController:]): fixed comment
+ * WebView.subproj/WebView.m:
+ (-[WebView dealloc]): call [self _close]
+ * WebView.subproj/WebViewPrivate.h:
+ * WebView.subproj/WebViewPrivate.m:
+ (-[WebViewPrivate dealloc]): let the WebView class clear the frames
+ (-[WebView _close]): remove self from controller set and detach and release frame
+
=== Safari-77 ===
2003-05-01 John Sullivan <sullivan at apple.com>
diff --git a/WebKit/WebView.subproj/WebFramePrivate.h b/WebKit/WebView.subproj/WebFramePrivate.h
index f20ea7d..8d0c807 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.h
+++ b/WebKit/WebView.subproj/WebFramePrivate.h
@@ -107,7 +107,6 @@ typedef enum {
- (void)setController: (WebView *)controller;
- (void)_setName:(NSString *)name;
- (WebFrame *)_descendantFrameNamed:(NSString *)name;
-- (void)_controllerWillBeDeallocated;
- (void)_detachFromParent;
- (void)_closeOldDataSources;
- (void)_setController: (WebView *)controller;
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index 477cb5b..66d85e3 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -251,12 +251,11 @@ Repeat load of the same URL (by any other means of navigation other than the rel
- (void)setController: (WebView *)controller
{
- // To set controller to nil, we have to use _controllerWillBeDeallocated, not this.
+ // To set controller to nil, we have to use _detachFromParent, not this.
ASSERT(controller);
[_private setController: controller];
}
-
// helper method used in various nav cases below
- (void)_addBackForwardItemClippedAtTarget:(BOOL)doClip
{
@@ -359,11 +358,6 @@ Repeat load of the same URL (by any other means of navigation other than the rel
return nil;
}
-- (void)_controllerWillBeDeallocated
-{
- [self _detachFromParent];
-}
-
- (void)_detachChildren
{
// Note we have to be careful to remove the kids as we detach each one,
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index e06455c..2f1740c 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -130,10 +130,8 @@ NSString *WebElementLinkTitleKey = @"WebElementLinkTitle";
- (void)dealloc
{
- if (_private->controllerSetName != nil) {
- [WebControllerSets removeController:self fromSetNamed:_private->controllerSetName];
- }
-
+ [self _close];
+
--WebControllerCount;
[[NSNotificationCenter defaultCenter] removeObserver:self];
diff --git a/WebKit/WebView.subproj/WebViewPrivate.h b/WebKit/WebView.subproj/WebViewPrivate.h
index b950170..15c8cb2 100644
--- a/WebKit/WebView.subproj/WebViewPrivate.h
+++ b/WebKit/WebView.subproj/WebViewPrivate.h
@@ -161,6 +161,8 @@ Could be worth adding to the API.
- _UIDelegateForwarder;
- (void)_registerDraggedTypes;
+
+- (void)_close;
@end
@interface _WebSafeForwarder : NSObject
diff --git a/WebKit/WebView.subproj/WebViewPrivate.m b/WebKit/WebView.subproj/WebViewPrivate.m
index 431614e..65cf50d 100644
--- a/WebKit/WebView.subproj/WebViewPrivate.m
+++ b/WebKit/WebView.subproj/WebViewPrivate.m
@@ -45,31 +45,10 @@
return self;
}
-- (void)_clearControllerReferences: (WebFrame *)aFrame
-{
- NSArray *frames;
- WebFrame *nextFrame;
- int i, count;
-
- [[aFrame dataSource] _setController: nil];
- [[aFrame frameView] _setController: nil];
- [aFrame _setController: nil];
-
- // Walk the frame tree, niling the controller.
- frames = [aFrame childFrames];
- count = [frames count];
- for (i = 0; i < count; i++){
- nextFrame = [frames objectAtIndex: i];
- [self _clearControllerReferences: nextFrame];
- }
-}
-
- (void)dealloc
{
- [self _clearControllerReferences: mainFrame];
- [mainFrame _controllerWillBeDeallocated];
+ ASSERT(!mainFrame);
- [mainFrame release];
[backForwardList release];
[applicationNameForUserAgent release];
[userAgentOverride release];
@@ -78,8 +57,6 @@
[userAgent[i] release];
}
- [controllerSetName release];
-
[preferences release];
[settings release];
[hostWindow release];
@@ -110,6 +87,18 @@
return [[WebFileTypeMappings sharedMappings] preferredExtensionForMIMEType:type];
}
+- (void)_close
+{
+ if (_private->controllerSetName != nil) {
+ [WebControllerSets removeController:self fromSetNamed:_private->controllerSetName];
+ [_private->controllerSetName release];
+ _private->controllerSetName = nil;
+ }
+
+ [_private->mainFrame _detachFromParent];
+ [_private->mainFrame release];
+ _private->mainFrame = nil;
+}
- (WebFrame *)_createFrameNamed:(NSString *)fname inParent:(WebFrame *)parent allowsScrolling:(BOOL)allowsScrolling
{
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list