[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:18:00 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 872e16f027c3fef703620d484c3bcdad20a1ca4b
Author: trey <trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Dec 31 05:42:59 2002 +0000
3137110 - REGRESSION: calls from 2nd and subsequent instances of Java 1.4.1 plug-in seem to be ignored
We had previously made changes to "numb" a plugin controller after its frame
was tossed or changed content. We now finish the job by making sure a new
controller is created when we go to a new page with plugins. To so this we
release the old controller whenever we flush the plugins from a page.
Reviewed by Maciej.
* WebView.subproj/WebFramePrivate.m:
(-[WebFrame _detachFromParent]): Call newly factored code.
(-[WebFrame _transitionToCommitted:]): Call newly factored code.
(-[WebFrame _destroyPluginController]): New method to tear down plugins.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3217 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 72a4ffd..4f6f35c 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,5 +1,21 @@
2002-12-30 Trey Matteson <trey at apple.com>
+ 3137110 - REGRESSION: calls from 2nd and subsequent instances of Java 1.4.1 plug-in seem to be ignored
+
+ We had previously made changes to "numb" a plugin controller after its frame
+ was tossed or changed content. We now finish the job by making sure a new
+ controller is created when we go to a new page with plugins. To so this we
+ release the old controller whenever we flush the plugins from a page.
+
+ Reviewed by Maciej.
+
+ * WebView.subproj/WebFramePrivate.m:
+ (-[WebFrame _detachFromParent]): Call newly factored code.
+ (-[WebFrame _transitionToCommitted:]): Call newly factored code.
+ (-[WebFrame _destroyPluginController]): New method to tear down plugins.
+
+2002-12-30 Trey Matteson <trey at apple.com>
+
3135025 - Assertion failure in _transitionToCommitted on espn nba scoreboard
For blank pages we decided that there would be no b/f entry. This means that
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index ba5c0ad..dee053d 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -101,6 +101,8 @@ Repeat load of the same URL (by any other means of navigation other than the rel
- (WebHistoryItem *)_createItemTreeWithTargetFrame:(WebFrame *)targetFrame clippedAtTarget:(BOOL)doClip;
- (void)_resetBackForwardListToCurrent;
+
+- (void)_destroyPluginController;
@end
@implementation WebFramePrivate
@@ -337,7 +339,7 @@ Repeat load of the same URL (by any other means of navigation other than the rel
_private->bridge = nil;
// Destroy plug-ins before blowing away the view.
- [_private->pluginController destroyAllPlugins];
+ [self _destroyPluginController];
[self stopLoading];
[self _saveScrollPositionToItem:[_private currentItem]];
@@ -507,7 +509,7 @@ Repeat load of the same URL (by any other means of navigation other than the rel
ASSERT([self controller] != nil);
// Destroy plug-ins before blowing away the view.
- [_private->pluginController destroyAllPlugins];
+ [self _destroyPluginController];
switch ([self _state]) {
case WebFrameStateProvisional:
@@ -1616,6 +1618,18 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
[[child dataSource] _setOverrideEncoding:[[self dataSource] _overrideEncoding]];
}
+- (void)_destroyPluginController
+{
+ [_private->pluginController destroyAllPlugins];
+ // We flush this PluginController, so if a later page requests one we will make a new one
+ // instead of reusing the old one. Plugin views retain their PluginController, so a
+ // wayward view might try to message an old controller even after we call destroyAllPlugins.
+ // We don't want to have a controller that has to both ignore requests from stale views
+ // and honor those from current views, so it's easiest to make a new controller.
+ [_private->pluginController release];
+ _private->pluginController = nil;
+}
+
- (WebPluginController *)_pluginController
{
if(!_private->pluginController){
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list