[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