[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