[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:16:55 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 4188fde0e616b0e3359e2c3c6c926e99a1cf1567
Author: trey <trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Dec 21 00:36:02 2002 +0000
3133829 - crash leaving page with a running applet
This fixes some holes in how we teardown plugins. An additional fix is expected
from Mike Hay to finish the issue. (3133981)
Reviewed by Richard
* Plugins.subproj/WebPluginController.m:
(-[WebPluginController destroyAllPlugins]): frame=nil, so we don't do any more
messaging back to WK after this step.
(-[WebPluginController showURL:inFrame:]): bail if !frame
(-[WebPluginController showStatus:]): bail if !frame
* WebView.subproj/WebFramePrivate.m:
(-[WebFrame _detachFromParent]): destroy plugins here. We were only doing it
in the non-frame case.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3163 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index d9bb55c..83cec70 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,21 @@
+2002-12-20 Trey Matteson <trey at apple.com>
+
+ 3133829 - crash leaving page with a running applet
+
+ This fixes some holes in how we teardown plugins. An additional fix is expected
+ from Mike Hay to finish the issue. (3133981)
+
+ Reviewed by Richard
+
+ * Plugins.subproj/WebPluginController.m:
+ (-[WebPluginController destroyAllPlugins]): frame=nil, so we don't do any more
+ messaging back to WK after this step.
+ (-[WebPluginController showURL:inFrame:]): bail if !frame
+ (-[WebPluginController showStatus:]): bail if !frame
+ * WebView.subproj/WebFramePrivate.m:
+ (-[WebFrame _detachFromParent]): destroy plugins here. We were only doing it
+ in the non-frame case.
+
=== Alexander-43 ===
2002-12-20 Trey Matteson <trey at apple.com>
diff --git a/WebKit/Plugins.subproj/WebPluginController.m b/WebKit/Plugins.subproj/WebPluginController.m
index 2ab0e39..b882860 100644
--- a/WebKit/Plugins.subproj/WebPluginController.m
+++ b/WebKit/Plugins.subproj/WebPluginController.m
@@ -83,6 +83,10 @@
[views makeObjectsPerformSelector:@selector(removeFromSuperviewWithoutNeedingDisplay)];
[views makeObjectsPerformSelector:@selector(pluginDestroy)];
[views removeAllObjects];
+
+ // after this point, do not try to do anything with the frame, even if we get some
+ // late arriving messages from the plugin
+ frame = nil;
}
- (void)windowWillClose:(NSNotification *)notification
@@ -94,7 +98,7 @@
- (void)showURL:(NSURL *)URL inFrame:(NSString *)target
{
- if ( !URL ){
+ if ( !URL || !frame ){
return;
}
@@ -105,7 +109,7 @@
- (void)showStatus:(NSString *)message
{
- if(!message){
+ if(!message || !frame){
return;
}
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index fa1cec8..ab0da96 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -335,7 +335,10 @@ Repeat load of the same URL (by any other means of navigation other than the rel
{
WebBridge *bridge = _private->bridge;
_private->bridge = nil;
-
+
+ // Destroy plug-ins before blowing away the view.
+ [_private->pluginController destroyAllPlugins];
+
[self stopLoading];
[self _saveScrollPositionToItem:[_private currentItem]];
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list