[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:55:16 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 22345689b7b5891c7b314b3044582dd232ee29f1
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Feb 7 02:00:41 2002 +0000

    Fixed allocation problems.  Implemented parent->child management
        for datasource correctly.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@596 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 48f41ec..c8795d8 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,19 @@
+2002-02-06  Richard Williamson  <rjw at apple.com>
+
+    Fixed allocation problems.  Implemented parent->child management
+    for datasource correctly.
+    
+	* WebView.subproj/IFBaseWebController.mm: (-[IFBaseWebController
+	changeLocationTo:forFrame:]):
+	* WebView.subproj/IFWebDataSource.mm: (-[IFWebDataSource addFrame:]):
+	* WebView.subproj/IFWebDataSourcePrivate.h:
+	* WebView.subproj/IFWebDataSourcePrivate.mm: (-[IFWebDataSource
+	_setController:]), (-[IFWebDataSource _part]), (-[IFWebDataSource _setParent:]):
+	* WebView.subproj/IFWebFrame.h:
+	* WebView.subproj/IFWebFrame.m: (-[IFWebFrame _setRenderFramePart:]),
+	(-[IFWebFrame _renderFramePart]):
+	* WebView.subproj/IFWebView.mm: (-[IFWebView dataSourceChanged:]):
+
 2002-02-05  Richard Williamson  <rjw at apple.com>
 
     Updated controller API to reflect frames.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 48f41ec..c8795d8 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,19 @@
+2002-02-06  Richard Williamson  <rjw at apple.com>
+
+    Fixed allocation problems.  Implemented parent->child management
+    for datasource correctly.
+    
+	* WebView.subproj/IFBaseWebController.mm: (-[IFBaseWebController
+	changeLocationTo:forFrame:]):
+	* WebView.subproj/IFWebDataSource.mm: (-[IFWebDataSource addFrame:]):
+	* WebView.subproj/IFWebDataSourcePrivate.h:
+	* WebView.subproj/IFWebDataSourcePrivate.mm: (-[IFWebDataSource
+	_setController:]), (-[IFWebDataSource _part]), (-[IFWebDataSource _setParent:]):
+	* WebView.subproj/IFWebFrame.h:
+	* WebView.subproj/IFWebFrame.m: (-[IFWebFrame _setRenderFramePart:]),
+	(-[IFWebFrame _renderFramePart]):
+	* WebView.subproj/IFWebView.mm: (-[IFWebView dataSourceChanged:]):
+
 2002-02-05  Richard Williamson  <rjw at apple.com>
 
     Updated controller API to reflect frames.
diff --git a/WebKit/WebView.subproj/IFBaseWebController.mm b/WebKit/WebView.subproj/IFBaseWebController.mm
index d58f7b8..670dcd4 100644
--- a/WebKit/WebView.subproj/IFBaseWebController.mm
+++ b/WebKit/WebView.subproj/IFBaseWebController.mm
@@ -230,12 +230,16 @@
 - (void)changeLocationTo: (NSURL *)url forFrame: (IFWebFrame *)frame
 {
     IFWebDataSource *dataSource = [[[IFWebDataSource alloc] initWithURL: url] autorelease];
+    IFWebDataSource *oldDataSource;
     
+    oldDataSource = [frame dataSource];
+    [dataSource _setParent: [oldDataSource parent]];
     [dataSource _setController: self];
     [frame setDataSource: dataSource];
+    
     [[frame view] dataSourceChanged: dataSource];
     
-    [dataSource startLoading: YES];
+    //[dataSource startLoading: YES];
 }
 
 
diff --git a/WebKit/WebView.subproj/IFWebDataSource.mm b/WebKit/WebView.subproj/IFWebDataSource.mm
index baf8748..9061b23 100644
--- a/WebKit/WebView.subproj/IFWebDataSource.mm
+++ b/WebKit/WebView.subproj/IFWebDataSource.mm
@@ -120,6 +120,7 @@
 
     if (data->frames == nil)
         data->frames = [[NSMutableDictionary alloc] init];
+    [[frame dataSource] _setParent: self];   
     [data->frames setObject: frame forKey: [frame name]];    
 }
 
diff --git a/WebKit/WebView.subproj/IFWebDataSourcePrivate.h b/WebKit/WebView.subproj/IFWebDataSourcePrivate.h
index 4261790..7865388 100644
--- a/WebKit/WebView.subproj/IFWebDataSourcePrivate.h
+++ b/WebKit/WebView.subproj/IFWebDataSourcePrivate.h
@@ -32,4 +32,5 @@
 @interface IFWebDataSource (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller;
 - (KHTMLPart *)_part;
+- (void)_setParent: (IFWebDataSource *)p;
 @end
diff --git a/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm b/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
index 6eec0b5..d3ce900 100644
--- a/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
+++ b/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
@@ -42,8 +42,8 @@
 @implementation IFWebDataSource (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller
 {
-    if (((IFWebDataSourcePrivate *)_dataSourcePrivate)->parent != nil)
-        [NSException raise:IFRuntimeError format:@"IFWebDataSource::_setController: called not called on main data source."];
+    //if (((IFWebDataSourcePrivate *)_dataSourcePrivate)->parent != nil)
+        //[NSException raise:IFRuntimeError format:@"IFWebDataSource::_setController: called not called on main data source."];
     ((IFWebDataSourcePrivate *)_dataSourcePrivate)->controller = controller;
     ((IFWebDataSourcePrivate *)_dataSourcePrivate)->part->setDataSource (self);
 }
@@ -54,4 +54,9 @@
     return ((IFWebDataSourcePrivate *)_dataSourcePrivate)->part;
 }
 
+- (void)_setParent: (IFWebDataSource *)p
+{
+    ((IFWebDataSourcePrivate *)_dataSourcePrivate)->parent = [p retain];
+}
+
 @end
diff --git a/WebKit/WebView.subproj/IFWebFrame.h b/WebKit/WebView.subproj/IFWebFrame.h
index cd2b361..bf0fe3a 100644
--- a/WebKit/WebView.subproj/IFWebFrame.h
+++ b/WebKit/WebView.subproj/IFWebFrame.h
@@ -11,14 +11,21 @@
 
 @interface IFWebFrame : NSObject
 {
+    // FIXME:  Create private class for ivars.
     NSString *name;
     id view;
     IFWebDataSource *dataSource;
+    void *renderFramePart;
 }
+
 - initWithName: (NSString *)name view: view dataSource: (IFWebDataSource *)dataSource;
 - (NSString *)name;
 - (void)setView: view;
 - view;
 - (void)setDataSource: (IFWebDataSource *)ds;
 - (IFWebDataSource *)dataSource;
+
+// private
+- (void)_setRenderFramePart: (void *)p;
+- (void *)_renderFramePart;
 @end
diff --git a/WebKit/WebView.subproj/IFWebFrame.m b/WebKit/WebView.subproj/IFWebFrame.m
index 6893bb6..676366b 100644
--- a/WebKit/WebView.subproj/IFWebFrame.m
+++ b/WebKit/WebView.subproj/IFWebFrame.m
@@ -62,5 +62,14 @@
     [dataSource setFrame: self];
 }
 
+- (void)_setRenderFramePart: (void *)p
+{
+    renderFramePart = p;
+}
+
+- (void *)_renderFramePart
+{
+    return renderFramePart;
+}
 
 @end
diff --git a/WebKit/WebView.subproj/IFWebView.mm b/WebKit/WebView.subproj/IFWebView.mm
index bb9f4d8..b5269c6 100644
--- a/WebKit/WebView.subproj/IFWebView.mm
+++ b/WebKit/WebView.subproj/IFWebView.mm
@@ -55,7 +55,10 @@
     IFWebViewPrivate *data = ((IFWebViewPrivate *)_viewPrivate);
     NSRect r = [self frame];
     
-    if (data->widget)
+    // Only delete the widget if we're the top level widget.  In other
+    // cases the widget is associated with a RenderFrame which will
+    // delete it's widget.
+    if ([dataSource isMainDocument] && data->widget)
         delete data->widget;
 
     // Nasty!  Setup the cross references between the KHTMLView and
diff --git a/WebKit/WebView.subproj/WebDataSource.m b/WebKit/WebView.subproj/WebDataSource.m
index baf8748..9061b23 100644
--- a/WebKit/WebView.subproj/WebDataSource.m
+++ b/WebKit/WebView.subproj/WebDataSource.m
@@ -120,6 +120,7 @@
 
     if (data->frames == nil)
         data->frames = [[NSMutableDictionary alloc] init];
+    [[frame dataSource] _setParent: self];   
     [data->frames setObject: frame forKey: [frame name]];    
 }
 
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.h b/WebKit/WebView.subproj/WebDataSourcePrivate.h
index 4261790..7865388 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.h
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.h
@@ -32,4 +32,5 @@
 @interface IFWebDataSource (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller;
 - (KHTMLPart *)_part;
+- (void)_setParent: (IFWebDataSource *)p;
 @end
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.m b/WebKit/WebView.subproj/WebDataSourcePrivate.m
index 6eec0b5..d3ce900 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.m
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.m
@@ -42,8 +42,8 @@
 @implementation IFWebDataSource (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller
 {
-    if (((IFWebDataSourcePrivate *)_dataSourcePrivate)->parent != nil)
-        [NSException raise:IFRuntimeError format:@"IFWebDataSource::_setController: called not called on main data source."];
+    //if (((IFWebDataSourcePrivate *)_dataSourcePrivate)->parent != nil)
+        //[NSException raise:IFRuntimeError format:@"IFWebDataSource::_setController: called not called on main data source."];
     ((IFWebDataSourcePrivate *)_dataSourcePrivate)->controller = controller;
     ((IFWebDataSourcePrivate *)_dataSourcePrivate)->part->setDataSource (self);
 }
@@ -54,4 +54,9 @@
     return ((IFWebDataSourcePrivate *)_dataSourcePrivate)->part;
 }
 
+- (void)_setParent: (IFWebDataSource *)p
+{
+    ((IFWebDataSourcePrivate *)_dataSourcePrivate)->parent = [p retain];
+}
+
 @end
diff --git a/WebKit/WebView.subproj/WebFrame.h b/WebKit/WebView.subproj/WebFrame.h
index cd2b361..bf0fe3a 100644
--- a/WebKit/WebView.subproj/WebFrame.h
+++ b/WebKit/WebView.subproj/WebFrame.h
@@ -11,14 +11,21 @@
 
 @interface IFWebFrame : NSObject
 {
+    // FIXME:  Create private class for ivars.
     NSString *name;
     id view;
     IFWebDataSource *dataSource;
+    void *renderFramePart;
 }
+
 - initWithName: (NSString *)name view: view dataSource: (IFWebDataSource *)dataSource;
 - (NSString *)name;
 - (void)setView: view;
 - view;
 - (void)setDataSource: (IFWebDataSource *)ds;
 - (IFWebDataSource *)dataSource;
+
+// private
+- (void)_setRenderFramePart: (void *)p;
+- (void *)_renderFramePart;
 @end
diff --git a/WebKit/WebView.subproj/WebFrameView.m b/WebKit/WebView.subproj/WebFrameView.m
index bb9f4d8..b5269c6 100644
--- a/WebKit/WebView.subproj/WebFrameView.m
+++ b/WebKit/WebView.subproj/WebFrameView.m
@@ -55,7 +55,10 @@
     IFWebViewPrivate *data = ((IFWebViewPrivate *)_viewPrivate);
     NSRect r = [self frame];
     
-    if (data->widget)
+    // Only delete the widget if we're the top level widget.  In other
+    // cases the widget is associated with a RenderFrame which will
+    // delete it's widget.
+    if ([dataSource isMainDocument] && data->widget)
         delete data->widget;
 
     // Nasty!  Setup the cross references between the KHTMLView and

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list