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

cblu cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:17:24 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 93dc811495297caad1064ca28affa9c071d23578
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jun 7 19:49:54 2002 +0000

    Summary
    
    	Made IFWebController a class.
            Fixed all places where IFWebController was referred to as a protocol.
            Renamed IFBaseWebController files to IFWebController.
            IFWebController.h replaces IFWebBaseController.h.
    
    	Added support for IEPL plug-ins.
    
    WebCore:
    
    	* kwq/KWQKHTMLPart.mm:
    	(KWQKHTMLPartImpl::requestFrame):
    	* kwq/KWQKHTMLPartBrowserExtension.mm:
    	(KHTMLPartBrowserExtension::createNewWindow):
    	* kwq/KWQKloader.mm:
    	(-[URLLoadClient IFURLHandle:resourceDidFailLoadingWithResult:]):
    	(-[URLLoadClient IFURLHandle:didRedirectToURL:]):
    	(KWQLoaderImpl::serveRequest):
    	* kwq/external.h:
    
    WebKit:
    
    	* Panels.subproj/IFStandardPanels.m:
    	(-[IFStandardPanels _didStartLoadingURL:inController:]):
    	(-[IFStandardPanels _didStopLoadingURL:inController:]):
    	* Panels.subproj/IFStandardPanelsPrivate.h:
    	* Plugins.subproj/IFNullPluginView.mm:
    	(-[IFNullPluginView drawRect:]):
    	* Plugins.subproj/IFPlugin.h:
    	* Plugins.subproj/IFPlugin.m:
    	(-[IFPlugin _getPluginInfoForResourceFile:]):
    	(-[IFPlugin initWithPath:]):
    	(-[IFPlugin load]):
    	(-[IFPlugin description]):
    	* Plugins.subproj/IFPluginStream.mm:
    	(-[IFPluginStream IFURLHandleResourceDidBeginLoading:]):
    	(-[IFPluginStream IFURLHandleResourceDidFinishLoading:data:]):
    	(-[IFPluginStream IFURLHandleResourceDidCancelLoading:]):
    	(-[IFPluginStream IFURLHandle:resourceDidFailLoadingWithResult:]):
    	(-[IFPluginStream IFURLHandle:didRedirectToURL:]):
    	* Plugins.subproj/IFPluginView.h:
    	* Plugins.subproj/IFPluginView.mm:
    	(-[IFPluginView initWithFrame:plugin:url:mime:arguments:mode:]):
    	(-[IFPluginView webController]):
    	* WebKit.pbproj/project.pbxproj:
    	* WebView.subproj/IFBaseWebController.h: Removed.
    	* WebView.subproj/IFBaseWebController.mm: Removed.
    	* WebView.subproj/IFBaseWebControllerPrivate.h: Removed.
    	* WebView.subproj/IFBaseWebControllerPrivate.mm: Removed.
    	* WebView.subproj/IFMainURLHandleClient.mm:
    	(-[IFMainURLHandleClient IFURLHandleResourceDidBeginLoading:]):
    	(-[IFMainURLHandleClient IFURLHandleResourceDidCancelLoading:]):
    	(-[IFMainURLHandleClient IFURLHandleResourceDidFinishLoading:data:]):
    	(-[IFMainURLHandleClient IFURLHandle:resourceDataDidBecomeAvailable:]):
    	(-[IFMainURLHandleClient IFURLHandle:resourceDidFailLoadingWithResult:]):
    	(-[IFMainURLHandleClient IFURLHandle:didRedirectToURL:]):
    	* WebView.subproj/IFWebController.h:
    	* WebView.subproj/IFWebController.mm: Added.
    	(-[IFWebController init]):
    	(-[IFWebController initWithView:provisionalDataSource:]):
    	(-[IFWebController dealloc]):
    	(-[IFWebController setDirectsAllLinksToSystemBrowser:]):
    	(-[IFWebController directsAllLinksToSystemBrowser]):
    	(-[IFWebController createFrameNamed:for:inParent:inScrollView:]):
    	(-[IFWebController setStatusText:forDataSource:]):
    	(-[IFWebController statusTextForDataSource:]):
    	(-[IFWebController openNewWindowWithURL:]):
    	(-[IFWebController receivedProgress:forResource:fromDataSource:]):
    	(-[IFWebController receivedError:forResource:partialProgress:fromDataSource:]):
    	(-[IFWebController provideLocationChangeHandlerForFrame:]):
    	(-[IFWebController receivedPageTitle:forDataSource:]):
    	(-[IFWebController serverRedirectTo:forDataSource:]):
    	(-[IFWebController _frameForDataSource:fromFrame:]):
    	(-[IFWebController frameForDataSource:]):
    	(-[IFWebController _frameForView:fromFrame:]):
    	(-[IFWebController frameForView:]):
    	(-[IFWebController frameNamed:]):
    	(-[IFWebController mainFrame]):
    	(-[IFWebController pluginNotFoundForMIMEType:pluginPageURL:]):
    	(-[IFWebController provideLocationChangeHandlerForFrame:andURL:]):
    	(-[IFWebController URLPolicyForURL:]):
    	(-[IFWebController unableToImplementURLPolicyForURL:error:]):
    	(-[IFWebController haveContentPolicy:andPath:forLocationChangeHandler:]):
    	(-[IFWebController stopAnimatedImages]):
    	(-[IFWebController startAnimatedImages]):
    	(-[IFWebController stopAnimatedImageLooping]):
    	(-[IFWebController startAnimatedImageLooping]):
    	* WebView.subproj/IFWebControllerPrivate.h: Added.
    	* WebView.subproj/IFWebControllerPrivate.mm: Added.
    	(-[IFWebControllerPrivate init]):
    	(-[IFWebControllerPrivate _clearControllerReferences:]):
    	(-[IFWebControllerPrivate dealloc]):
    	(-[IFWebController _receivedProgress:forResource:fromDataSource:]):
    	(-[IFWebController _mainReceivedProgress:forResource:fromDataSource:]):
    	(-[IFWebController _receivedError:forResource:partialProgress:fromDataSource:]):
    	(-[IFWebController _mainReceivedError:forResource:partialProgress:fromDataSource:]):
    	(-[IFWebController _didStartLoading:]):
    	(-[IFWebController _didStopLoading:]):
    	* WebView.subproj/IFWebDataSource.h:
    	* WebView.subproj/IFWebDataSource.mm:
    	(-[IFWebDataSource controller]):
    	* WebView.subproj/IFWebDataSourcePrivate.h:
    	* WebView.subproj/IFWebDataSourcePrivate.mm:
    	(-[IFWebDataSource _setController:]):
    	* WebView.subproj/IFWebFrame.h:
    	* WebView.subproj/IFWebFrame.mm:
    	(-[IFWebFrame initWithName:view:provisionalDataSource:controller:]):
    	(-[IFWebFrame controller]):
    	(-[IFWebFrame setController:]):
    	(-[IFWebFrame frameNamed:]):
    	* WebView.subproj/IFWebFramePrivate.h:
    	* WebView.subproj/IFWebFramePrivate.mm:
    	(-[IFWebFramePrivate setController:]):
    	(-[IFWebFrame _setController:]):
    	* WebView.subproj/IFWebView.h:
    	* WebView.subproj/IFWebView.mm:
    	(-[IFWebView controller]):
    	* WebView.subproj/IFWebViewPrivate.h:
    	* WebView.subproj/IFWebViewPrivate.mm:
    	(-[IFWebView _setController:]):
    
    WebBrowser:
    
    	* BrowserDocument.h:
    	* WebController.h:
    	* WebController.m:
    	(-[WebController openNewWindowWithURL:]):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1292 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 3ffe006..c73487c 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,20 @@
+2002-06-07  Chris Blumenberg  <cblu at apple.com>
+
+        Made IFWebController a class.
+        Fixed all places where IFWebController was referred to as a protocol.
+        Renamed IFBaseWebController files to IFWebController.
+        IFWebController.h replaces IFWebBaseController.h.
+
+	* kwq/KWQKHTMLPart.mm:
+	(KWQKHTMLPartImpl::requestFrame):
+	* kwq/KWQKHTMLPartBrowserExtension.mm:
+	(KHTMLPartBrowserExtension::createNewWindow):
+	* kwq/KWQKloader.mm:
+	(-[URLLoadClient IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[URLLoadClient IFURLHandle:didRedirectToURL:]):
+	(KWQLoaderImpl::serveRequest):
+	* kwq/external.h:
+
 === Alexander-8 ===
 
 2002-06-07  Darin Adler  <darin at apple.com>
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 3ffe006..c73487c 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,20 @@
+2002-06-07  Chris Blumenberg  <cblu at apple.com>
+
+        Made IFWebController a class.
+        Fixed all places where IFWebController was referred to as a protocol.
+        Renamed IFBaseWebController files to IFWebController.
+        IFWebController.h replaces IFWebBaseController.h.
+
+	* kwq/KWQKHTMLPart.mm:
+	(KWQKHTMLPartImpl::requestFrame):
+	* kwq/KWQKHTMLPartBrowserExtension.mm:
+	(KHTMLPartBrowserExtension::createNewWindow):
+	* kwq/KWQKloader.mm:
+	(-[URLLoadClient IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[URLLoadClient IFURLHandle:didRedirectToURL:]):
+	(KWQLoaderImpl::serveRequest):
+	* kwq/external.h:
+
 === Alexander-8 ===
 
 2002-06-07  Darin Adler  <darin at apple.com>
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 3ffe006..c73487c 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,20 @@
+2002-06-07  Chris Blumenberg  <cblu at apple.com>
+
+        Made IFWebController a class.
+        Fixed all places where IFWebController was referred to as a protocol.
+        Renamed IFBaseWebController files to IFWebController.
+        IFWebController.h replaces IFWebBaseController.h.
+
+	* kwq/KWQKHTMLPart.mm:
+	(KWQKHTMLPartImpl::requestFrame):
+	* kwq/KWQKHTMLPartBrowserExtension.mm:
+	(KHTMLPartBrowserExtension::createNewWindow):
+	* kwq/KWQKloader.mm:
+	(-[URLLoadClient IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[URLLoadClient IFURLHandle:didRedirectToURL:]):
+	(KWQLoaderImpl::serveRequest):
+	* kwq/external.h:
+
 === Alexander-8 ===
 
 2002-06-07  Darin Adler  <darin at apple.com>
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index bf5d634..adec8dc 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -472,7 +472,7 @@ bool KWQKHTMLPartImpl::requestFrame( khtml::RenderPart *frame, const QString &ur
         IFWebDataSource *oldDataSource, *newDataSource;
         NSURL *childURL;
         IFWebFrame *newFrame;
-        id <IFWebController> controller;
+        IFWebController *controller;
         HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(frame->element());
                 
         childURL = part->completeURL(url).getNSURL();
diff --git a/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm b/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
index 3074544..dd861b1 100644
--- a/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
+++ b/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
@@ -58,7 +58,7 @@ void KHTMLPartBrowserExtension::createNewWindow(const KURL &url,
 						const KParts::WindowArgs &winArgs, 
 						KParts::ReadOnlyPart **part)
 { 
-    id<IFWebController> newController = [[m_part->impl->getDataSource() controller] openNewWindowWithURL:url.getNSURL()];
+    IFWebController *newController = [[m_part->impl->getDataSource() controller] openNewWindowWithURL:url.getNSURL()];
     if (part != NULL) {
 	*part = [[[newController mainFrame] provisionalDataSource] _part];
     }
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.mm b/WebCore/kwq/KWQKHTMLPartImpl.mm
index bf5d634..adec8dc 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.mm
+++ b/WebCore/kwq/KWQKHTMLPartImpl.mm
@@ -472,7 +472,7 @@ bool KWQKHTMLPartImpl::requestFrame( khtml::RenderPart *frame, const QString &ur
         IFWebDataSource *oldDataSource, *newDataSource;
         NSURL *childURL;
         IFWebFrame *newFrame;
-        id <IFWebController> controller;
+        IFWebController *controller;
         HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(frame->element());
                 
         childURL = part->completeURL(url).getNSURL();
diff --git a/WebCore/kwq/KWQKloader.mm b/WebCore/kwq/KWQKloader.mm
index f317341..92a0c55 100644
--- a/WebCore/kwq/KWQKloader.mm
+++ b/WebCore/kwq/KWQKloader.mm
@@ -189,9 +189,9 @@ void WCSetIFLoadProgressMakeFunc(WCIFLoadProgressMakeFunc func)
     job->setError(1);
     m_loader->slotFinished(job);
 
-    [(IFBaseWebController *)controller _receivedError: result forResource: [job->url() absoluteString] partialProgress: loadProgress fromDataSource: m_dataSource];
+    [(IFWebController *)controller _receivedError: result forResource: [job->url() absoluteString] partialProgress: loadProgress fromDataSource: m_dataSource];
 
-    [(IFBaseWebController *)controller _didStopLoading:job->url()];
+    [(IFWebController *)controller _didStopLoading:job->url()];
 
     delete job;
 }
@@ -208,8 +208,8 @@ void WCSetIFLoadProgressMakeFunc(WCIFLoadProgressMakeFunc func)
     [m_dataSource _setFinalURL: url];
     
     [(id <IFLocationChangeHandler>)[m_dataSource controller] serverRedirectTo: url forDataSource: m_dataSource];
-    [(IFBaseWebController *)[m_dataSource controller] _didStopLoading:oldURL];
-    [(IFBaseWebController *)[m_dataSource controller] _didStartLoading:url];
+    [(IFWebController *)[m_dataSource controller] _didStopLoading:oldURL];
+    [(IFWebController *)[m_dataSource controller] _didStartLoading:url];
 }
 
 @end
@@ -242,7 +242,7 @@ void KWQLoaderImpl::serveRequest(Request *req, KIO::TransferJob *job)
         IFError *error = [IFError errorWithCode:IFURLHandleResultBadURLError inDomain:IFErrorCodeDomainWebFoundation isTerminal:YES];
 
         id <IFLoadHandler> controller = [((URLLoadClient *)req->client)->m_dataSource controller];
-        [(IFBaseWebController *)controller _receivedError: error forResource: urlString partialProgress: nil fromDataSource: ((URLLoadClient *)req->client)->m_dataSource];
+        [(IFWebController *)controller _receivedError: error forResource: urlString partialProgress: nil fromDataSource: ((URLLoadClient *)req->client)->m_dataSource];
     }
     else {
         [((URLLoadClient *)req->client)->m_dataSource _addURLHandle: job->handle()];
diff --git a/WebCore/kwq/KWQLoader.mm b/WebCore/kwq/KWQLoader.mm
index f317341..92a0c55 100644
--- a/WebCore/kwq/KWQLoader.mm
+++ b/WebCore/kwq/KWQLoader.mm
@@ -189,9 +189,9 @@ void WCSetIFLoadProgressMakeFunc(WCIFLoadProgressMakeFunc func)
     job->setError(1);
     m_loader->slotFinished(job);
 
-    [(IFBaseWebController *)controller _receivedError: result forResource: [job->url() absoluteString] partialProgress: loadProgress fromDataSource: m_dataSource];
+    [(IFWebController *)controller _receivedError: result forResource: [job->url() absoluteString] partialProgress: loadProgress fromDataSource: m_dataSource];
 
-    [(IFBaseWebController *)controller _didStopLoading:job->url()];
+    [(IFWebController *)controller _didStopLoading:job->url()];
 
     delete job;
 }
@@ -208,8 +208,8 @@ void WCSetIFLoadProgressMakeFunc(WCIFLoadProgressMakeFunc func)
     [m_dataSource _setFinalURL: url];
     
     [(id <IFLocationChangeHandler>)[m_dataSource controller] serverRedirectTo: url forDataSource: m_dataSource];
-    [(IFBaseWebController *)[m_dataSource controller] _didStopLoading:oldURL];
-    [(IFBaseWebController *)[m_dataSource controller] _didStartLoading:url];
+    [(IFWebController *)[m_dataSource controller] _didStopLoading:oldURL];
+    [(IFWebController *)[m_dataSource controller] _didStartLoading:url];
 }
 
 @end
@@ -242,7 +242,7 @@ void KWQLoaderImpl::serveRequest(Request *req, KIO::TransferJob *job)
         IFError *error = [IFError errorWithCode:IFURLHandleResultBadURLError inDomain:IFErrorCodeDomainWebFoundation isTerminal:YES];
 
         id <IFLoadHandler> controller = [((URLLoadClient *)req->client)->m_dataSource controller];
-        [(IFBaseWebController *)controller _receivedError: error forResource: urlString partialProgress: nil fromDataSource: ((URLLoadClient *)req->client)->m_dataSource];
+        [(IFWebController *)controller _receivedError: error forResource: urlString partialProgress: nil fromDataSource: ((URLLoadClient *)req->client)->m_dataSource];
     }
     else {
         [((URLLoadClient *)req->client)->m_dataSource _addURLHandle: job->handle()];
diff --git a/WebCore/kwq/KWQLoaderImpl.mm b/WebCore/kwq/KWQLoaderImpl.mm
index f317341..92a0c55 100644
--- a/WebCore/kwq/KWQLoaderImpl.mm
+++ b/WebCore/kwq/KWQLoaderImpl.mm
@@ -189,9 +189,9 @@ void WCSetIFLoadProgressMakeFunc(WCIFLoadProgressMakeFunc func)
     job->setError(1);
     m_loader->slotFinished(job);
 
-    [(IFBaseWebController *)controller _receivedError: result forResource: [job->url() absoluteString] partialProgress: loadProgress fromDataSource: m_dataSource];
+    [(IFWebController *)controller _receivedError: result forResource: [job->url() absoluteString] partialProgress: loadProgress fromDataSource: m_dataSource];
 
-    [(IFBaseWebController *)controller _didStopLoading:job->url()];
+    [(IFWebController *)controller _didStopLoading:job->url()];
 
     delete job;
 }
@@ -208,8 +208,8 @@ void WCSetIFLoadProgressMakeFunc(WCIFLoadProgressMakeFunc func)
     [m_dataSource _setFinalURL: url];
     
     [(id <IFLocationChangeHandler>)[m_dataSource controller] serverRedirectTo: url forDataSource: m_dataSource];
-    [(IFBaseWebController *)[m_dataSource controller] _didStopLoading:oldURL];
-    [(IFBaseWebController *)[m_dataSource controller] _didStartLoading:url];
+    [(IFWebController *)[m_dataSource controller] _didStopLoading:oldURL];
+    [(IFWebController *)[m_dataSource controller] _didStartLoading:url];
 }
 
 @end
@@ -242,7 +242,7 @@ void KWQLoaderImpl::serveRequest(Request *req, KIO::TransferJob *job)
         IFError *error = [IFError errorWithCode:IFURLHandleResultBadURLError inDomain:IFErrorCodeDomainWebFoundation isTerminal:YES];
 
         id <IFLoadHandler> controller = [((URLLoadClient *)req->client)->m_dataSource controller];
-        [(IFBaseWebController *)controller _receivedError: error forResource: urlString partialProgress: nil fromDataSource: ((URLLoadClient *)req->client)->m_dataSource];
+        [(IFWebController *)controller _receivedError: error forResource: urlString partialProgress: nil fromDataSource: ((URLLoadClient *)req->client)->m_dataSource];
     }
     else {
         [((URLLoadClient *)req->client)->m_dataSource _addURLHandle: job->handle()];
diff --git a/WebCore/kwq/external.h b/WebCore/kwq/external.h
index 91f4072..91e8aee 100644
--- a/WebCore/kwq/external.h
+++ b/WebCore/kwq/external.h
@@ -42,15 +42,14 @@ namespace khtml {
 @class IFError;
 @class IFURLHandle;
 @class IFLoadProgress;
+ at protocol IFLocationChangeHandler;
 
- at protocol IFWebController
+ at interface IFWebController <IFLocationChangeHandler>
 - (IFWebFrame *)createFrameNamed: (NSString *)name for: (IFWebDataSource *)dataSource inParent: (IFWebDataSource *)dataSource inScrollView: (BOOL)inScrollView;
 - (IFWebFrame *)frameNamed: (NSString *)name;
 - (IFWebFrame *)mainFrame;
-- (id<IFWebController>)openNewWindowWithURL: (NSURL *)url;
- at end
+- (IFWebController *)openNewWindowWithURL: (NSURL *)url;
 
- at interface IFBaseWebController
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_receivedError: (IFError *)error forResource: (NSString *)resourceDescription partialProgress: (IFLoadProgress *)progress fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_mainReceivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
@@ -67,7 +66,7 @@ namespace khtml {
 - initWithURL: (NSURL *)url;
 - (void)setFrame: (IFWebFrame *)fName;
 - (IFWebFrame *)webFrame;
-- (id <IFWebController>)controller;
+- (IFWebController *)controller;
 - frameNamed: (NSString *)f;
 - (BOOL)frameExists: (NSString *)f;
 - (void)_setParent: (IFWebDataSource *)p;
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 9cf5233..97c37ae 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,111 @@
+2002-06-07  Chris Blumenberg  <cblu at apple.com>
+
+	Made IFWebController a class.
+        Fixed all places where IFWebController was referred to as a protocol.
+        Renamed IFBaseWebController files to IFWebController.
+        IFWebController.h replaces IFWebBaseController.h.
+
+	Added support for IEPL plug-ins.
+
+	* Panels.subproj/IFStandardPanels.m:
+	(-[IFStandardPanels _didStartLoadingURL:inController:]):
+	(-[IFStandardPanels _didStopLoadingURL:inController:]):
+	* Panels.subproj/IFStandardPanelsPrivate.h:
+	* Plugins.subproj/IFNullPluginView.mm:
+	(-[IFNullPluginView drawRect:]):
+	* Plugins.subproj/IFPlugin.h:
+	* Plugins.subproj/IFPlugin.m:
+	(-[IFPlugin _getPluginInfoForResourceFile:]):
+	(-[IFPlugin initWithPath:]):
+	(-[IFPlugin load]):
+	(-[IFPlugin description]):
+	* Plugins.subproj/IFPluginStream.mm:
+	(-[IFPluginStream IFURLHandleResourceDidBeginLoading:]):
+	(-[IFPluginStream IFURLHandleResourceDidFinishLoading:data:]):
+	(-[IFPluginStream IFURLHandleResourceDidCancelLoading:]):
+	(-[IFPluginStream IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[IFPluginStream IFURLHandle:didRedirectToURL:]):
+	* Plugins.subproj/IFPluginView.h:
+	* Plugins.subproj/IFPluginView.mm:
+	(-[IFPluginView initWithFrame:plugin:url:mime:arguments:mode:]):
+	(-[IFPluginView webController]):
+	* WebKit.pbproj/project.pbxproj:
+	* WebView.subproj/IFBaseWebController.h: Removed.
+	* WebView.subproj/IFBaseWebController.mm: Removed.
+	* WebView.subproj/IFBaseWebControllerPrivate.h: Removed.
+	* WebView.subproj/IFBaseWebControllerPrivate.mm: Removed.
+	* WebView.subproj/IFMainURLHandleClient.mm:
+	(-[IFMainURLHandleClient IFURLHandleResourceDidBeginLoading:]):
+	(-[IFMainURLHandleClient IFURLHandleResourceDidCancelLoading:]):
+	(-[IFMainURLHandleClient IFURLHandleResourceDidFinishLoading:data:]):
+	(-[IFMainURLHandleClient IFURLHandle:resourceDataDidBecomeAvailable:]):
+	(-[IFMainURLHandleClient IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[IFMainURLHandleClient IFURLHandle:didRedirectToURL:]):
+	* WebView.subproj/IFWebController.h:
+	* WebView.subproj/IFWebController.mm: Added.
+	(-[IFWebController init]):
+	(-[IFWebController initWithView:provisionalDataSource:]):
+	(-[IFWebController dealloc]):
+	(-[IFWebController setDirectsAllLinksToSystemBrowser:]):
+	(-[IFWebController directsAllLinksToSystemBrowser]):
+	(-[IFWebController createFrameNamed:for:inParent:inScrollView:]):
+	(-[IFWebController setStatusText:forDataSource:]):
+	(-[IFWebController statusTextForDataSource:]):
+	(-[IFWebController openNewWindowWithURL:]):
+	(-[IFWebController receivedProgress:forResource:fromDataSource:]):
+	(-[IFWebController receivedError:forResource:partialProgress:fromDataSource:]):
+	(-[IFWebController provideLocationChangeHandlerForFrame:]):
+	(-[IFWebController receivedPageTitle:forDataSource:]):
+	(-[IFWebController serverRedirectTo:forDataSource:]):
+	(-[IFWebController _frameForDataSource:fromFrame:]):
+	(-[IFWebController frameForDataSource:]):
+	(-[IFWebController _frameForView:fromFrame:]):
+	(-[IFWebController frameForView:]):
+	(-[IFWebController frameNamed:]):
+	(-[IFWebController mainFrame]):
+	(-[IFWebController pluginNotFoundForMIMEType:pluginPageURL:]):
+	(-[IFWebController provideLocationChangeHandlerForFrame:andURL:]):
+	(-[IFWebController URLPolicyForURL:]):
+	(-[IFWebController unableToImplementURLPolicyForURL:error:]):
+	(-[IFWebController haveContentPolicy:andPath:forLocationChangeHandler:]):
+	(-[IFWebController stopAnimatedImages]):
+	(-[IFWebController startAnimatedImages]):
+	(-[IFWebController stopAnimatedImageLooping]):
+	(-[IFWebController startAnimatedImageLooping]):
+	* WebView.subproj/IFWebControllerPrivate.h: Added.
+	* WebView.subproj/IFWebControllerPrivate.mm: Added.
+	(-[IFWebControllerPrivate init]):
+	(-[IFWebControllerPrivate _clearControllerReferences:]):
+	(-[IFWebControllerPrivate dealloc]):
+	(-[IFWebController _receivedProgress:forResource:fromDataSource:]):
+	(-[IFWebController _mainReceivedProgress:forResource:fromDataSource:]):
+	(-[IFWebController _receivedError:forResource:partialProgress:fromDataSource:]):
+	(-[IFWebController _mainReceivedError:forResource:partialProgress:fromDataSource:]):
+	(-[IFWebController _didStartLoading:]):
+	(-[IFWebController _didStopLoading:]):
+	* WebView.subproj/IFWebDataSource.h:
+	* WebView.subproj/IFWebDataSource.mm:
+	(-[IFWebDataSource controller]):
+	* WebView.subproj/IFWebDataSourcePrivate.h:
+	* WebView.subproj/IFWebDataSourcePrivate.mm:
+	(-[IFWebDataSource _setController:]):
+	* WebView.subproj/IFWebFrame.h:
+	* WebView.subproj/IFWebFrame.mm:
+	(-[IFWebFrame initWithName:view:provisionalDataSource:controller:]):
+	(-[IFWebFrame controller]):
+	(-[IFWebFrame setController:]):
+	(-[IFWebFrame frameNamed:]):
+	* WebView.subproj/IFWebFramePrivate.h:
+	* WebView.subproj/IFWebFramePrivate.mm:
+	(-[IFWebFramePrivate setController:]):
+	(-[IFWebFrame _setController:]):
+	* WebView.subproj/IFWebView.h:
+	* WebView.subproj/IFWebView.mm:
+	(-[IFWebView controller]):
+	* WebView.subproj/IFWebViewPrivate.h:
+	* WebView.subproj/IFWebViewPrivate.mm:
+	(-[IFWebView _setController:]):
+
 === Alexander-8 ===
 
 2002-06-06  Darin Adler  <darin at apple.com>
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 9cf5233..97c37ae 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,111 @@
+2002-06-07  Chris Blumenberg  <cblu at apple.com>
+
+	Made IFWebController a class.
+        Fixed all places where IFWebController was referred to as a protocol.
+        Renamed IFBaseWebController files to IFWebController.
+        IFWebController.h replaces IFWebBaseController.h.
+
+	Added support for IEPL plug-ins.
+
+	* Panels.subproj/IFStandardPanels.m:
+	(-[IFStandardPanels _didStartLoadingURL:inController:]):
+	(-[IFStandardPanels _didStopLoadingURL:inController:]):
+	* Panels.subproj/IFStandardPanelsPrivate.h:
+	* Plugins.subproj/IFNullPluginView.mm:
+	(-[IFNullPluginView drawRect:]):
+	* Plugins.subproj/IFPlugin.h:
+	* Plugins.subproj/IFPlugin.m:
+	(-[IFPlugin _getPluginInfoForResourceFile:]):
+	(-[IFPlugin initWithPath:]):
+	(-[IFPlugin load]):
+	(-[IFPlugin description]):
+	* Plugins.subproj/IFPluginStream.mm:
+	(-[IFPluginStream IFURLHandleResourceDidBeginLoading:]):
+	(-[IFPluginStream IFURLHandleResourceDidFinishLoading:data:]):
+	(-[IFPluginStream IFURLHandleResourceDidCancelLoading:]):
+	(-[IFPluginStream IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[IFPluginStream IFURLHandle:didRedirectToURL:]):
+	* Plugins.subproj/IFPluginView.h:
+	* Plugins.subproj/IFPluginView.mm:
+	(-[IFPluginView initWithFrame:plugin:url:mime:arguments:mode:]):
+	(-[IFPluginView webController]):
+	* WebKit.pbproj/project.pbxproj:
+	* WebView.subproj/IFBaseWebController.h: Removed.
+	* WebView.subproj/IFBaseWebController.mm: Removed.
+	* WebView.subproj/IFBaseWebControllerPrivate.h: Removed.
+	* WebView.subproj/IFBaseWebControllerPrivate.mm: Removed.
+	* WebView.subproj/IFMainURLHandleClient.mm:
+	(-[IFMainURLHandleClient IFURLHandleResourceDidBeginLoading:]):
+	(-[IFMainURLHandleClient IFURLHandleResourceDidCancelLoading:]):
+	(-[IFMainURLHandleClient IFURLHandleResourceDidFinishLoading:data:]):
+	(-[IFMainURLHandleClient IFURLHandle:resourceDataDidBecomeAvailable:]):
+	(-[IFMainURLHandleClient IFURLHandle:resourceDidFailLoadingWithResult:]):
+	(-[IFMainURLHandleClient IFURLHandle:didRedirectToURL:]):
+	* WebView.subproj/IFWebController.h:
+	* WebView.subproj/IFWebController.mm: Added.
+	(-[IFWebController init]):
+	(-[IFWebController initWithView:provisionalDataSource:]):
+	(-[IFWebController dealloc]):
+	(-[IFWebController setDirectsAllLinksToSystemBrowser:]):
+	(-[IFWebController directsAllLinksToSystemBrowser]):
+	(-[IFWebController createFrameNamed:for:inParent:inScrollView:]):
+	(-[IFWebController setStatusText:forDataSource:]):
+	(-[IFWebController statusTextForDataSource:]):
+	(-[IFWebController openNewWindowWithURL:]):
+	(-[IFWebController receivedProgress:forResource:fromDataSource:]):
+	(-[IFWebController receivedError:forResource:partialProgress:fromDataSource:]):
+	(-[IFWebController provideLocationChangeHandlerForFrame:]):
+	(-[IFWebController receivedPageTitle:forDataSource:]):
+	(-[IFWebController serverRedirectTo:forDataSource:]):
+	(-[IFWebController _frameForDataSource:fromFrame:]):
+	(-[IFWebController frameForDataSource:]):
+	(-[IFWebController _frameForView:fromFrame:]):
+	(-[IFWebController frameForView:]):
+	(-[IFWebController frameNamed:]):
+	(-[IFWebController mainFrame]):
+	(-[IFWebController pluginNotFoundForMIMEType:pluginPageURL:]):
+	(-[IFWebController provideLocationChangeHandlerForFrame:andURL:]):
+	(-[IFWebController URLPolicyForURL:]):
+	(-[IFWebController unableToImplementURLPolicyForURL:error:]):
+	(-[IFWebController haveContentPolicy:andPath:forLocationChangeHandler:]):
+	(-[IFWebController stopAnimatedImages]):
+	(-[IFWebController startAnimatedImages]):
+	(-[IFWebController stopAnimatedImageLooping]):
+	(-[IFWebController startAnimatedImageLooping]):
+	* WebView.subproj/IFWebControllerPrivate.h: Added.
+	* WebView.subproj/IFWebControllerPrivate.mm: Added.
+	(-[IFWebControllerPrivate init]):
+	(-[IFWebControllerPrivate _clearControllerReferences:]):
+	(-[IFWebControllerPrivate dealloc]):
+	(-[IFWebController _receivedProgress:forResource:fromDataSource:]):
+	(-[IFWebController _mainReceivedProgress:forResource:fromDataSource:]):
+	(-[IFWebController _receivedError:forResource:partialProgress:fromDataSource:]):
+	(-[IFWebController _mainReceivedError:forResource:partialProgress:fromDataSource:]):
+	(-[IFWebController _didStartLoading:]):
+	(-[IFWebController _didStopLoading:]):
+	* WebView.subproj/IFWebDataSource.h:
+	* WebView.subproj/IFWebDataSource.mm:
+	(-[IFWebDataSource controller]):
+	* WebView.subproj/IFWebDataSourcePrivate.h:
+	* WebView.subproj/IFWebDataSourcePrivate.mm:
+	(-[IFWebDataSource _setController:]):
+	* WebView.subproj/IFWebFrame.h:
+	* WebView.subproj/IFWebFrame.mm:
+	(-[IFWebFrame initWithName:view:provisionalDataSource:controller:]):
+	(-[IFWebFrame controller]):
+	(-[IFWebFrame setController:]):
+	(-[IFWebFrame frameNamed:]):
+	* WebView.subproj/IFWebFramePrivate.h:
+	* WebView.subproj/IFWebFramePrivate.mm:
+	(-[IFWebFramePrivate setController:]):
+	(-[IFWebFrame _setController:]):
+	* WebView.subproj/IFWebView.h:
+	* WebView.subproj/IFWebView.mm:
+	(-[IFWebView controller]):
+	* WebView.subproj/IFWebViewPrivate.h:
+	* WebView.subproj/IFWebViewPrivate.mm:
+	(-[IFWebView _setController:]):
+
 === Alexander-8 ===
 
 2002-06-06  Darin Adler  <darin at apple.com>
diff --git a/WebKit/Panels.subproj/IFStandardPanels.m b/WebKit/Panels.subproj/IFStandardPanels.m
index 62d06f0..362fb75 100644
--- a/WebKit/Panels.subproj/IFStandardPanels.m
+++ b/WebKit/Panels.subproj/IFStandardPanels.m
@@ -143,7 +143,7 @@ static void initSharedStandardPanels(void)
     }
 }
 
--(void)_didStartLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller
+-(void)_didStartLoadingURL:(NSURL *)url inController:(IFWebController *)controller
 {
     NSCountedSet *set = [_privatePanels->urlContainers objectForKey:url];
 
@@ -155,7 +155,7 @@ static void initSharedStandardPanels(void)
     [set addObject:controller];
 }
 
--(void)_didStopLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller
+-(void)_didStopLoadingURL:(NSURL *)url inController:(IFWebController *)controller
 {
     NSCountedSet *set = [_privatePanels->urlContainers objectForKey:url];
 
diff --git a/WebKit/Panels.subproj/IFStandardPanelsPrivate.h b/WebKit/Panels.subproj/IFStandardPanelsPrivate.h
index 9812dec..da97eea 100644
--- a/WebKit/Panels.subproj/IFStandardPanelsPrivate.h
+++ b/WebKit/Panels.subproj/IFStandardPanelsPrivate.h
@@ -9,7 +9,7 @@
 
 @interface IFStandardPanels (Private)
 
--(void)_didStartLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller;
--(void)_didStopLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller;
+-(void)_didStartLoadingURL:(NSURL *)url inController:(IFWebController *)controller;
+-(void)_didStopLoadingURL:(NSURL *)url inController:(IFWebController *)controller;
 
 @end
diff --git a/WebKit/Panels.subproj/WebStandardPanels.m b/WebKit/Panels.subproj/WebStandardPanels.m
index 62d06f0..362fb75 100644
--- a/WebKit/Panels.subproj/WebStandardPanels.m
+++ b/WebKit/Panels.subproj/WebStandardPanels.m
@@ -143,7 +143,7 @@ static void initSharedStandardPanels(void)
     }
 }
 
--(void)_didStartLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller
+-(void)_didStartLoadingURL:(NSURL *)url inController:(IFWebController *)controller
 {
     NSCountedSet *set = [_privatePanels->urlContainers objectForKey:url];
 
@@ -155,7 +155,7 @@ static void initSharedStandardPanels(void)
     [set addObject:controller];
 }
 
--(void)_didStopLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller
+-(void)_didStopLoadingURL:(NSURL *)url inController:(IFWebController *)controller
 {
     NSCountedSet *set = [_privatePanels->urlContainers objectForKey:url];
 
diff --git a/WebKit/Panels.subproj/WebStandardPanelsPrivate.h b/WebKit/Panels.subproj/WebStandardPanelsPrivate.h
index 9812dec..da97eea 100644
--- a/WebKit/Panels.subproj/WebStandardPanelsPrivate.h
+++ b/WebKit/Panels.subproj/WebStandardPanelsPrivate.h
@@ -9,7 +9,7 @@
 
 @interface IFStandardPanels (Private)
 
--(void)_didStartLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller;
--(void)_didStopLoadingURL:(NSURL *)url inController:(id<IFWebController>)controller;
+-(void)_didStartLoadingURL:(NSURL *)url inController:(IFWebController *)controller;
+-(void)_didStopLoadingURL:(NSURL *)url inController:(IFWebController *)controller;
 
 @end
diff --git a/WebKit/Plugins.subproj/IFNullPluginView.mm b/WebKit/Plugins.subproj/IFNullPluginView.mm
index 5252612..e4d81db 100644
--- a/WebKit/Plugins.subproj/IFNullPluginView.mm
+++ b/WebKit/Plugins.subproj/IFNullPluginView.mm
@@ -6,7 +6,6 @@
 #import "IFNullPluginView.h"
 #import "WCPluginWidget.h"
 #import "IFWebView.h"
-#import "IFBaseWebController.h"
 #import "IFWebController.h"
 
 static BOOL imageLoaded = NO;
@@ -58,7 +57,7 @@ static NSImage *image = nil;
 
 - (void)drawRect:(NSRect)rect {
     IFWebView *webView;
-    IFBaseWebController *webController;
+    IFWebController *webController;
     
     [super drawRect:rect];
     if(!errorSent){
diff --git a/WebKit/Plugins.subproj/IFPlugin.h b/WebKit/Plugins.subproj/IFPlugin.h
index 0bfaad3..52a7079 100644
--- a/WebKit/Plugins.subproj/IFPlugin.h
+++ b/WebKit/Plugins.subproj/IFPlugin.h
@@ -56,8 +56,7 @@
 }
 
 - initWithPath:(NSString *)pluginPath;
-- (void)getPluginInfoForResourceFile:(SInt16)resRef;
-- (void)load;
+- (BOOL)load;
 - (void)unload;
 - (NSString *)mimeTypeForURL:(NSString *)URL;
 - (NSString *)path;
diff --git a/WebKit/Plugins.subproj/IFPlugin.m b/WebKit/Plugins.subproj/IFPlugin.m
index 676c55f..344304d 100644
--- a/WebKit/Plugins.subproj/IFPlugin.m
+++ b/WebKit/Plugins.subproj/IFPlugin.m
@@ -33,59 +33,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
 
 @implementation IFPlugin
 
-- initWithPath:(NSString *)pluginPath
-{
-    NSFileManager *fileManager;
-    NSDictionary *fileInfo;
-    SInt16 resRef;
-    FSRef fref;
-    OSErr err;
-    UInt32 type;
-    CFURLRef pluginURL;
-        
-    fileManager = [NSFileManager defaultManager];
-    fileInfo = [fileManager fileAttributesAtPath:pluginPath traverseLink:YES];
-    if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeRegular"]){  // plug-in with resource fork
-        if([[fileInfo objectForKey:@"NSFileHFSTypeCode"] unsignedLongValue] == 1112690764){ // 1112690764 = 'BRPL'
-            err = FSPathMakeRef((UInt8 *)[pluginPath cString], &fref, NULL);
-            if(err != noErr){
-                WEBKITDEBUG("IFPlugin: FSPathMakeRef failed. Error=%d\n", err);
-                return nil;
-            }
-            resRef = FSOpenResFile(&fref, fsRdPerm);
-            if(resRef <= noErr){
-                WEBKITDEBUG("IFPlugin: FSOpenResFile failed. Can't open resource file: %s, Error=%d\n", [pluginPath lossyCString], err);
-                return nil;
-            }
-            [self getPluginInfoForResourceFile:resRef];
-            isBundle = FALSE;
-        }else return nil;
-        
-    }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){ //bundle plug-in
-        pluginURL = CFURLCreateWithFileSystemPath(NULL, (CFStringRef)pluginPath, kCFURLPOSIXPathStyle, TRUE);
-        bundle = CFBundleCreate(NULL, pluginURL);
-        CFBundleGetPackageInfo(bundle, &type, NULL);
-        if(type == 1112690764){  // 1112690764 = 'BRPL'
-            resRef = CFBundleOpenBundleResourceMap(bundle);
-            [self getPluginInfoForResourceFile:resRef];
-            isBundle = TRUE;
-        }else{
-            return nil;
-        }
-        CFRelease(pluginURL);
-    }else{
-        return nil;
-    }
-    
-    filename = [pluginPath lastPathComponent];
-    path = pluginPath;
-    [path retain];
-    [filename retain];
-    isLoaded = FALSE;
-    return self;
-}
-
-- (void)getPluginInfoForResourceFile:(SInt16)resRef
+- (void)_getPluginInfoForResourceFile:(SInt16)resRef
 {
     Str255 theString;
     char temp[255], description[255];
@@ -101,6 +49,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
         if(!strcmp(temp, "")) break;
         mime = [NSMutableArray arrayWithCapacity:3];
         [mimeTypes insertObject:mime atIndex:i];
+        
         //FIXME: Because our JS engine poops on semi-colons, I'm removing ";version=1.3"
         //Scott Adler is checking if semi-colons are allowed to be in mime-types
         if(!strcmp(temp, "application/x-java-applet;version=1.3")){
@@ -123,17 +72,72 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     }
     GetIndString(theString, 126, 1);
     CopyPascalStringToC(theString, description);
-    pluginDescription = [NSString stringWithCString:description];
-    [pluginDescription retain];
+    pluginDescription = [[NSString stringWithCString:description] retain];
     
     GetIndString(theString, 126, 2); 
     CopyPascalStringToC(theString, temp);
-    name = [NSString stringWithCString:temp]; // plugin's name
-    [name retain];
+    name = [[NSString stringWithCString:temp] retain]; // plugin's name
     [mimeTypes retain];
 }
 
-- (void)load
+- initWithPath:(NSString *)pluginPath
+{
+    NSFileManager *fileManager;
+    NSDictionary *fileInfo;
+    SInt16 resRef;
+    FSRef fref;
+    OSErr err;
+    UInt32 type;
+    CFURLRef pluginURL;
+        
+    fileManager = [NSFileManager defaultManager];
+    fileInfo = [fileManager fileAttributesAtPath:pluginPath traverseLink:YES];
+    
+    // single-file plug-in with resource fork
+    if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeRegular"]){
+        if([[fileInfo objectForKey:@"NSFileHFSTypeCode"] unsignedLongValue] == FOUR_CHAR_CODE('BRPL') ||
+           [[fileInfo objectForKey:@"NSFileHFSTypeCode"] unsignedLongValue] == FOUR_CHAR_CODE('IEPL')){
+           
+            err = FSPathMakeRef((UInt8 *)[pluginPath cString], &fref, NULL);
+            if(err != noErr){
+                WEBKITDEBUG("IFPlugin: FSPathMakeRef failed. Error=%d\n", err);
+                return nil;
+            }
+            
+            resRef = FSOpenResFile(&fref, fsRdPerm);
+            if(resRef <= noErr){
+                WEBKITDEBUG("IFPlugin: FSOpenResFile failed. Can't open resource file: %s, Error=%d\n", [pluginPath lossyCString], err);
+                return nil;
+            }
+            
+            [self _getPluginInfoForResourceFile:resRef];
+            isBundle = NO;
+        }else return nil;
+        
+    }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){ //bundle plug-in
+        pluginURL = CFURLCreateWithFileSystemPath(NULL, (CFStringRef)pluginPath, kCFURLPOSIXPathStyle, TRUE);
+        bundle = CFBundleCreate(NULL, pluginURL);
+        CFBundleGetPackageInfo(bundle, &type, NULL);
+        
+        if(type == FOUR_CHAR_CODE('BRPL') || type == FOUR_CHAR_CODE('IEPL') ){  // 1112690764 = 'BRPL'
+            resRef = CFBundleOpenBundleResourceMap(bundle);
+            [self _getPluginInfoForResourceFile:resRef];
+            isBundle = YES;
+        }else{
+            return nil;
+        }
+        CFRelease(pluginURL);
+    }else{
+        return nil;
+    }
+    
+    filename = [[pluginPath lastPathComponent] retain];
+    path = [pluginPath retain];
+    isLoaded = NO;
+    return self;
+}
+
+- (BOOL)load
 {    
     OSErr err;
     FSSpec spec;
@@ -147,9 +151,9 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     NSFileHandle *executableFile;
     NSData *data;
     
-    if(isLoaded){
-        return;
-    }
+    if(isLoaded)
+        return YES;
+
     if(isBundle){ //CFM or Mach-o bundle
         tempBundle = [NSBundle bundleWithPath:path];
         executableFile = [NSFileHandle fileHandleForReadingAtPath:[tempBundle executablePath]];
@@ -165,35 +169,44 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
         }
         [executableFile closeFile];
         didLoad = CFBundleLoadExecutable(bundle);
-        if (!didLoad) {
-            return;
-        }
+        if (!didLoad)
+            return NO;
+
         if(isCFM){
             pluginMainFunc = (mainFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("main") );
+            if(!pluginMainFunc)
+                return NO;
         }else{
             NP_Initialize = (initializeFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("NP_Initialize") );
             NP_GetEntryPoints = (getEntryPointsFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("NP_GetEntryPoints") );
             NPP_Shutdown = (NPP_ShutdownProcPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("NP_Shutdown") );
+            if(!NP_Initialize || !NP_GetEntryPoints || !NPP_Shutdown)
+                return NO;
         }
     }else{ // single CFM file
         err = FSPathMakeRef((UInt8 *)[path cString], &fref, NULL);
         if(err != noErr){
             WEBKITDEBUG("IFPlugin: load: FSPathMakeRef failed. Error=%d\n", err);
-            return;
+            return NO;
         }
         err = FSGetCatalogInfo(&fref, kFSCatInfoNone, NULL, NULL, &spec, NULL);
         if(err != noErr){
             WEBKITDEBUG("IFPlugin: load: FSGetCatalogInfo failed. Error=%d\n", err);
-            return;
+            return NO;
         }
         err = GetDiskFragment(&spec, 0, kCFragGoesToEOF, nil, kPrivateCFragCopy, &connID, (Ptr *)&pluginMainFunc, nil);
         if(err != noErr){
             WEBKITDEBUG("IFPlugin: load: GetDiskFragment failed. Error=%d\n", err);
-            return;
+            return NO;
         }
         pluginMainFunc = (mainFuncPtr)functionPointerForTVector((TransitionVector)pluginMainFunc);
+        if(!pluginMainFunc)
+            return NO;
+            
         isCFM = TRUE;
     }
+    
+    // swap function table stage
     if(isCFM){
         browserFuncs.version = 11;
         browserFuncs.size = sizeof(NPNetscapeFuncs);
@@ -285,6 +298,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     }
     WEBKITDEBUG("Plugin Loaded\n");
     isLoaded = TRUE;
+    return YES;
 }
 
 - (void)unload
@@ -390,31 +404,10 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     return pluginDescription;
 }
 - (NSString *)description{
-    NSMutableString *desc;
     
-    desc = [NSMutableString stringWithCapacity:100];
-    [desc appendString:@"\n"];
-    [desc appendString:@"name: "];
-    [desc appendString:name];
-    [desc appendString:@"\n"];
-    [desc appendString:@"path: "];
-    [desc appendString:path];
-    [desc appendString:@"\n"];
-    [desc appendString:@"isLoaded: "];
-    if(isLoaded){
-        [desc appendString:@"TRUE\n"];
-    }else{
-        [desc appendString:@"FALSE\n"];
-    }
-    [desc appendString:@"mimeTypes: "];
-    [desc appendString:[mimeTypes description]];
-    [desc appendString:@"\n"];
-    [desc appendString:@"pluginDescription: "];
-    [desc appendString:pluginDescription];
-    [desc appendString:@"\n"];
-    return desc;
+    return [NSString stringWithFormat:@"name: %@\npath: %@\nisLoaded: %d\nmimeTypes:\n%@\npluginDescription:%@",
+        name, path, isLoaded, [mimeTypes description], pluginDescription];
 }
-
 @end
 
 
diff --git a/WebKit/Plugins.subproj/IFPluginStream.mm b/WebKit/Plugins.subproj/IFPluginStream.mm
index 89e0b46..2dcc1c6 100644
--- a/WebKit/Plugins.subproj/IFPluginStream.mm
+++ b/WebKit/Plugins.subproj/IFPluginStream.mm
@@ -7,8 +7,7 @@
 #import <WebFoundation/WebFoundation.h>
 #import <WebKitDebug.h>
 #import <WebKit/IFLoadProgress.h>
-#import <WebKit/IFBaseWebController.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebController.h>
 
 static NSString *getCarbonPath(NSString *posixPath);
@@ -91,7 +90,7 @@ static NSString *getCarbonPath(NSString *posixPath);
 
 - (void)IFURLHandleResourceDidBeginLoading:(IFURLHandle *)sender
 {
-    [(IFBaseWebController *)[view webController] _didStartLoading:URL];
+    [(IFWebController *)[view webController] _didStartLoading:URL];
 }
 
 - (void)IFURLHandle:(IFURLHandle *)sender resourceDataDidBecomeAvailable:(NSData *)data
@@ -180,7 +179,7 @@ static NSString *getCarbonPath(NSString *posixPath);
     [loadProgress release];
     
     [self stop];
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
 }
 
 - (void)IFURLHandleResourceDidCancelLoading:(IFURLHandle *)sender
@@ -194,7 +193,7 @@ static NSString *getCarbonPath(NSString *posixPath);
     [loadProgress release];
     
     [self stop];
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
 }
 
 - (void)IFURLHandle:(IFURLHandle *)sender resourceDidFailLoadingWithResult:(IFError *)result
@@ -209,13 +208,13 @@ static NSString *getCarbonPath(NSString *posixPath);
     [loadProgress release];
     
     [self stop];
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
 }
 
 - (void)IFURLHandle:(IFURLHandle *)sender didRedirectToURL:(NSURL *)url
 {
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
-    [(IFBaseWebController *)[view webController] _didStartLoading:url];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStartLoading:url];
 }
 
 
diff --git a/WebKit/Plugins.subproj/IFPluginView.h b/WebKit/Plugins.subproj/IFPluginView.h
index 4acaa47..f8ea6d7 100644
--- a/WebKit/Plugins.subproj/IFPluginView.h
+++ b/WebKit/Plugins.subproj/IFPluginView.h
@@ -12,7 +12,7 @@
 @class IFPluginNullEventSender;
 @class IFWebDataSource;
 @class IFPlugin;
- at protocol IFWebController;
+ at class IFWebController;
 
 @interface IFPluginView : NSView
 {
@@ -20,7 +20,7 @@
     unsigned argsCount;
     char **cAttributes, **cValues;
     
-    id <IFWebController> webController;
+    IFWebController *webController;
     IFWebDataSource *webDataSource;
     IFWebFrame *webFrame;
     
@@ -55,7 +55,7 @@
 - (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments mode:(uint16)mode;
 -(void)stop;
 - (IFWebDataSource *)webDataSource;
-- (id <IFWebController>) webController;
+- (IFWebController *)webController;
 +(void)getCarbonEvent:(EventRecord *)carbonEvent;
 
 - (NPP_NewStreamProcPtr)NPP_NewStream;
diff --git a/WebKit/Plugins.subproj/IFPluginView.mm b/WebKit/Plugins.subproj/IFPluginView.mm
index 00b8692..f7fc791 100644
--- a/WebKit/Plugins.subproj/IFPluginView.mm
+++ b/WebKit/Plugins.subproj/IFPluginView.mm
@@ -25,7 +25,6 @@
 #import <IFPlugin.h>
 #import <qwidget.h>
 #import <IFWebView.h>
-#import <IFBaseWebController.h>
 #import <IFPluginNullEventSender.h>
 #import "IFNullPluginView.h"
 
@@ -282,7 +281,8 @@ static char *newCString(NSString *string)
     srcURL = [theURL retain];
     
     // load the plug-in if it is not already loaded
-    [plugin load];
+    if(![plugin load])
+        return nil;
     
     // copy function pointers
     NPP_New = 		[plugin NPP_New];
@@ -500,7 +500,7 @@ static char *newCString(NSString *string)
     return webDataSource;
 }
 
-- (id <IFWebController>) webController
+- (IFWebController *) webController
 {
     return webController;
 }
diff --git a/WebKit/Plugins.subproj/WebNullPluginView.m b/WebKit/Plugins.subproj/WebNullPluginView.m
index 5252612..e4d81db 100644
--- a/WebKit/Plugins.subproj/WebNullPluginView.m
+++ b/WebKit/Plugins.subproj/WebNullPluginView.m
@@ -6,7 +6,6 @@
 #import "IFNullPluginView.h"
 #import "WCPluginWidget.h"
 #import "IFWebView.h"
-#import "IFBaseWebController.h"
 #import "IFWebController.h"
 
 static BOOL imageLoaded = NO;
@@ -58,7 +57,7 @@ static NSImage *image = nil;
 
 - (void)drawRect:(NSRect)rect {
     IFWebView *webView;
-    IFBaseWebController *webController;
+    IFWebController *webController;
     
     [super drawRect:rect];
     if(!errorSent){
diff --git a/WebKit/Plugins.subproj/WebPlugin.h b/WebKit/Plugins.subproj/WebPlugin.h
index 0bfaad3..52a7079 100644
--- a/WebKit/Plugins.subproj/WebPlugin.h
+++ b/WebKit/Plugins.subproj/WebPlugin.h
@@ -56,8 +56,7 @@
 }
 
 - initWithPath:(NSString *)pluginPath;
-- (void)getPluginInfoForResourceFile:(SInt16)resRef;
-- (void)load;
+- (BOOL)load;
 - (void)unload;
 - (NSString *)mimeTypeForURL:(NSString *)URL;
 - (NSString *)path;
diff --git a/WebKit/Plugins.subproj/WebPlugin.m b/WebKit/Plugins.subproj/WebPlugin.m
index 676c55f..344304d 100644
--- a/WebKit/Plugins.subproj/WebPlugin.m
+++ b/WebKit/Plugins.subproj/WebPlugin.m
@@ -33,59 +33,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
 
 @implementation IFPlugin
 
-- initWithPath:(NSString *)pluginPath
-{
-    NSFileManager *fileManager;
-    NSDictionary *fileInfo;
-    SInt16 resRef;
-    FSRef fref;
-    OSErr err;
-    UInt32 type;
-    CFURLRef pluginURL;
-        
-    fileManager = [NSFileManager defaultManager];
-    fileInfo = [fileManager fileAttributesAtPath:pluginPath traverseLink:YES];
-    if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeRegular"]){  // plug-in with resource fork
-        if([[fileInfo objectForKey:@"NSFileHFSTypeCode"] unsignedLongValue] == 1112690764){ // 1112690764 = 'BRPL'
-            err = FSPathMakeRef((UInt8 *)[pluginPath cString], &fref, NULL);
-            if(err != noErr){
-                WEBKITDEBUG("IFPlugin: FSPathMakeRef failed. Error=%d\n", err);
-                return nil;
-            }
-            resRef = FSOpenResFile(&fref, fsRdPerm);
-            if(resRef <= noErr){
-                WEBKITDEBUG("IFPlugin: FSOpenResFile failed. Can't open resource file: %s, Error=%d\n", [pluginPath lossyCString], err);
-                return nil;
-            }
-            [self getPluginInfoForResourceFile:resRef];
-            isBundle = FALSE;
-        }else return nil;
-        
-    }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){ //bundle plug-in
-        pluginURL = CFURLCreateWithFileSystemPath(NULL, (CFStringRef)pluginPath, kCFURLPOSIXPathStyle, TRUE);
-        bundle = CFBundleCreate(NULL, pluginURL);
-        CFBundleGetPackageInfo(bundle, &type, NULL);
-        if(type == 1112690764){  // 1112690764 = 'BRPL'
-            resRef = CFBundleOpenBundleResourceMap(bundle);
-            [self getPluginInfoForResourceFile:resRef];
-            isBundle = TRUE;
-        }else{
-            return nil;
-        }
-        CFRelease(pluginURL);
-    }else{
-        return nil;
-    }
-    
-    filename = [pluginPath lastPathComponent];
-    path = pluginPath;
-    [path retain];
-    [filename retain];
-    isLoaded = FALSE;
-    return self;
-}
-
-- (void)getPluginInfoForResourceFile:(SInt16)resRef
+- (void)_getPluginInfoForResourceFile:(SInt16)resRef
 {
     Str255 theString;
     char temp[255], description[255];
@@ -101,6 +49,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
         if(!strcmp(temp, "")) break;
         mime = [NSMutableArray arrayWithCapacity:3];
         [mimeTypes insertObject:mime atIndex:i];
+        
         //FIXME: Because our JS engine poops on semi-colons, I'm removing ";version=1.3"
         //Scott Adler is checking if semi-colons are allowed to be in mime-types
         if(!strcmp(temp, "application/x-java-applet;version=1.3")){
@@ -123,17 +72,72 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     }
     GetIndString(theString, 126, 1);
     CopyPascalStringToC(theString, description);
-    pluginDescription = [NSString stringWithCString:description];
-    [pluginDescription retain];
+    pluginDescription = [[NSString stringWithCString:description] retain];
     
     GetIndString(theString, 126, 2); 
     CopyPascalStringToC(theString, temp);
-    name = [NSString stringWithCString:temp]; // plugin's name
-    [name retain];
+    name = [[NSString stringWithCString:temp] retain]; // plugin's name
     [mimeTypes retain];
 }
 
-- (void)load
+- initWithPath:(NSString *)pluginPath
+{
+    NSFileManager *fileManager;
+    NSDictionary *fileInfo;
+    SInt16 resRef;
+    FSRef fref;
+    OSErr err;
+    UInt32 type;
+    CFURLRef pluginURL;
+        
+    fileManager = [NSFileManager defaultManager];
+    fileInfo = [fileManager fileAttributesAtPath:pluginPath traverseLink:YES];
+    
+    // single-file plug-in with resource fork
+    if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeRegular"]){
+        if([[fileInfo objectForKey:@"NSFileHFSTypeCode"] unsignedLongValue] == FOUR_CHAR_CODE('BRPL') ||
+           [[fileInfo objectForKey:@"NSFileHFSTypeCode"] unsignedLongValue] == FOUR_CHAR_CODE('IEPL')){
+           
+            err = FSPathMakeRef((UInt8 *)[pluginPath cString], &fref, NULL);
+            if(err != noErr){
+                WEBKITDEBUG("IFPlugin: FSPathMakeRef failed. Error=%d\n", err);
+                return nil;
+            }
+            
+            resRef = FSOpenResFile(&fref, fsRdPerm);
+            if(resRef <= noErr){
+                WEBKITDEBUG("IFPlugin: FSOpenResFile failed. Can't open resource file: %s, Error=%d\n", [pluginPath lossyCString], err);
+                return nil;
+            }
+            
+            [self _getPluginInfoForResourceFile:resRef];
+            isBundle = NO;
+        }else return nil;
+        
+    }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){ //bundle plug-in
+        pluginURL = CFURLCreateWithFileSystemPath(NULL, (CFStringRef)pluginPath, kCFURLPOSIXPathStyle, TRUE);
+        bundle = CFBundleCreate(NULL, pluginURL);
+        CFBundleGetPackageInfo(bundle, &type, NULL);
+        
+        if(type == FOUR_CHAR_CODE('BRPL') || type == FOUR_CHAR_CODE('IEPL') ){  // 1112690764 = 'BRPL'
+            resRef = CFBundleOpenBundleResourceMap(bundle);
+            [self _getPluginInfoForResourceFile:resRef];
+            isBundle = YES;
+        }else{
+            return nil;
+        }
+        CFRelease(pluginURL);
+    }else{
+        return nil;
+    }
+    
+    filename = [[pluginPath lastPathComponent] retain];
+    path = [pluginPath retain];
+    isLoaded = NO;
+    return self;
+}
+
+- (BOOL)load
 {    
     OSErr err;
     FSSpec spec;
@@ -147,9 +151,9 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     NSFileHandle *executableFile;
     NSData *data;
     
-    if(isLoaded){
-        return;
-    }
+    if(isLoaded)
+        return YES;
+
     if(isBundle){ //CFM or Mach-o bundle
         tempBundle = [NSBundle bundleWithPath:path];
         executableFile = [NSFileHandle fileHandleForReadingAtPath:[tempBundle executablePath]];
@@ -165,35 +169,44 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
         }
         [executableFile closeFile];
         didLoad = CFBundleLoadExecutable(bundle);
-        if (!didLoad) {
-            return;
-        }
+        if (!didLoad)
+            return NO;
+
         if(isCFM){
             pluginMainFunc = (mainFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("main") );
+            if(!pluginMainFunc)
+                return NO;
         }else{
             NP_Initialize = (initializeFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("NP_Initialize") );
             NP_GetEntryPoints = (getEntryPointsFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("NP_GetEntryPoints") );
             NPP_Shutdown = (NPP_ShutdownProcPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("NP_Shutdown") );
+            if(!NP_Initialize || !NP_GetEntryPoints || !NPP_Shutdown)
+                return NO;
         }
     }else{ // single CFM file
         err = FSPathMakeRef((UInt8 *)[path cString], &fref, NULL);
         if(err != noErr){
             WEBKITDEBUG("IFPlugin: load: FSPathMakeRef failed. Error=%d\n", err);
-            return;
+            return NO;
         }
         err = FSGetCatalogInfo(&fref, kFSCatInfoNone, NULL, NULL, &spec, NULL);
         if(err != noErr){
             WEBKITDEBUG("IFPlugin: load: FSGetCatalogInfo failed. Error=%d\n", err);
-            return;
+            return NO;
         }
         err = GetDiskFragment(&spec, 0, kCFragGoesToEOF, nil, kPrivateCFragCopy, &connID, (Ptr *)&pluginMainFunc, nil);
         if(err != noErr){
             WEBKITDEBUG("IFPlugin: load: GetDiskFragment failed. Error=%d\n", err);
-            return;
+            return NO;
         }
         pluginMainFunc = (mainFuncPtr)functionPointerForTVector((TransitionVector)pluginMainFunc);
+        if(!pluginMainFunc)
+            return NO;
+            
         isCFM = TRUE;
     }
+    
+    // swap function table stage
     if(isCFM){
         browserFuncs.version = 11;
         browserFuncs.size = sizeof(NPNetscapeFuncs);
@@ -285,6 +298,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     }
     WEBKITDEBUG("Plugin Loaded\n");
     isLoaded = TRUE;
+    return YES;
 }
 
 - (void)unload
@@ -390,31 +404,10 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     return pluginDescription;
 }
 - (NSString *)description{
-    NSMutableString *desc;
     
-    desc = [NSMutableString stringWithCapacity:100];
-    [desc appendString:@"\n"];
-    [desc appendString:@"name: "];
-    [desc appendString:name];
-    [desc appendString:@"\n"];
-    [desc appendString:@"path: "];
-    [desc appendString:path];
-    [desc appendString:@"\n"];
-    [desc appendString:@"isLoaded: "];
-    if(isLoaded){
-        [desc appendString:@"TRUE\n"];
-    }else{
-        [desc appendString:@"FALSE\n"];
-    }
-    [desc appendString:@"mimeTypes: "];
-    [desc appendString:[mimeTypes description]];
-    [desc appendString:@"\n"];
-    [desc appendString:@"pluginDescription: "];
-    [desc appendString:pluginDescription];
-    [desc appendString:@"\n"];
-    return desc;
+    return [NSString stringWithFormat:@"name: %@\npath: %@\nisLoaded: %d\nmimeTypes:\n%@\npluginDescription:%@",
+        name, path, isLoaded, [mimeTypes description], pluginDescription];
 }
-
 @end
 
 
diff --git a/WebKit/Plugins.subproj/WebPluginStream.m b/WebKit/Plugins.subproj/WebPluginStream.m
index 89e0b46..2dcc1c6 100644
--- a/WebKit/Plugins.subproj/WebPluginStream.m
+++ b/WebKit/Plugins.subproj/WebPluginStream.m
@@ -7,8 +7,7 @@
 #import <WebFoundation/WebFoundation.h>
 #import <WebKitDebug.h>
 #import <WebKit/IFLoadProgress.h>
-#import <WebKit/IFBaseWebController.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebController.h>
 
 static NSString *getCarbonPath(NSString *posixPath);
@@ -91,7 +90,7 @@ static NSString *getCarbonPath(NSString *posixPath);
 
 - (void)IFURLHandleResourceDidBeginLoading:(IFURLHandle *)sender
 {
-    [(IFBaseWebController *)[view webController] _didStartLoading:URL];
+    [(IFWebController *)[view webController] _didStartLoading:URL];
 }
 
 - (void)IFURLHandle:(IFURLHandle *)sender resourceDataDidBecomeAvailable:(NSData *)data
@@ -180,7 +179,7 @@ static NSString *getCarbonPath(NSString *posixPath);
     [loadProgress release];
     
     [self stop];
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
 }
 
 - (void)IFURLHandleResourceDidCancelLoading:(IFURLHandle *)sender
@@ -194,7 +193,7 @@ static NSString *getCarbonPath(NSString *posixPath);
     [loadProgress release];
     
     [self stop];
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
 }
 
 - (void)IFURLHandle:(IFURLHandle *)sender resourceDidFailLoadingWithResult:(IFError *)result
@@ -209,13 +208,13 @@ static NSString *getCarbonPath(NSString *posixPath);
     [loadProgress release];
     
     [self stop];
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
 }
 
 - (void)IFURLHandle:(IFURLHandle *)sender didRedirectToURL:(NSURL *)url
 {
-    [(IFBaseWebController *)[view webController] _didStopLoading:URL];
-    [(IFBaseWebController *)[view webController] _didStartLoading:url];
+    [(IFWebController *)[view webController] _didStopLoading:URL];
+    [(IFWebController *)[view webController] _didStartLoading:url];
 }
 
 
diff --git a/WebKit/Plugins.subproj/WebPluginView.h b/WebKit/Plugins.subproj/WebPluginView.h
index 4acaa47..f8ea6d7 100644
--- a/WebKit/Plugins.subproj/WebPluginView.h
+++ b/WebKit/Plugins.subproj/WebPluginView.h
@@ -12,7 +12,7 @@
 @class IFPluginNullEventSender;
 @class IFWebDataSource;
 @class IFPlugin;
- at protocol IFWebController;
+ at class IFWebController;
 
 @interface IFPluginView : NSView
 {
@@ -20,7 +20,7 @@
     unsigned argsCount;
     char **cAttributes, **cValues;
     
-    id <IFWebController> webController;
+    IFWebController *webController;
     IFWebDataSource *webDataSource;
     IFWebFrame *webFrame;
     
@@ -55,7 +55,7 @@
 - (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments mode:(uint16)mode;
 -(void)stop;
 - (IFWebDataSource *)webDataSource;
-- (id <IFWebController>) webController;
+- (IFWebController *)webController;
 +(void)getCarbonEvent:(EventRecord *)carbonEvent;
 
 - (NPP_NewStreamProcPtr)NPP_NewStream;
diff --git a/WebKit/Plugins.subproj/WebPluginView.m b/WebKit/Plugins.subproj/WebPluginView.m
index 00b8692..f7fc791 100644
--- a/WebKit/Plugins.subproj/WebPluginView.m
+++ b/WebKit/Plugins.subproj/WebPluginView.m
@@ -25,7 +25,6 @@
 #import <IFPlugin.h>
 #import <qwidget.h>
 #import <IFWebView.h>
-#import <IFBaseWebController.h>
 #import <IFPluginNullEventSender.h>
 #import "IFNullPluginView.h"
 
@@ -282,7 +281,8 @@ static char *newCString(NSString *string)
     srcURL = [theURL retain];
     
     // load the plug-in if it is not already loaded
-    [plugin load];
+    if(![plugin load])
+        return nil;
     
     // copy function pointers
     NPP_New = 		[plugin NPP_New];
@@ -500,7 +500,7 @@ static char *newCString(NSString *string)
     return webDataSource;
 }
 
-- (id <IFWebController>) webController
+- (IFWebController *) webController
 {
     return webController;
 }
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index d2e523a..8d76667 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -194,7 +194,6 @@
 				25C29827016E29620ECA149E,
 				2568C72D0174912D0ECA149E,
 				25A5593301A5996D0ECA149E,
-				39446087020F50ED0ECA1767,
 				39446088020F50ED0ECA1767,
 				3944608B020F50ED0ECA1767,
 				3944608C020F50ED0ECA1767,
@@ -630,28 +629,22 @@
 //392
 //393
 //394
-		39446063020F50ED0ECA1767 = {
-			isa = PBXFileReference;
-			name = IFBaseWebController.h;
-			path = WebView.subproj/IFBaseWebController.h;
-			refType = 4;
-		};
 		39446064020F50ED0ECA1767 = {
 			isa = PBXFileReference;
-			name = IFBaseWebController.mm;
-			path = WebView.subproj/IFBaseWebController.mm;
+			name = IFWebController.mm;
+			path = WebView.subproj/IFWebController.mm;
 			refType = 4;
 		};
 		39446065020F50ED0ECA1767 = {
 			isa = PBXFileReference;
-			name = IFBaseWebControllerPrivate.h;
-			path = WebView.subproj/IFBaseWebControllerPrivate.h;
+			name = IFWebControllerPrivate.h;
+			path = WebView.subproj/IFWebControllerPrivate.h;
 			refType = 4;
 		};
 		39446066020F50ED0ECA1767 = {
 			isa = PBXFileReference;
-			name = IFBaseWebControllerPrivate.mm;
-			path = WebView.subproj/IFBaseWebControllerPrivate.mm;
+			name = IFWebControllerPrivate.mm;
+			path = WebView.subproj/IFWebControllerPrivate.mm;
 			refType = 4;
 		};
 		3944606B020F50ED0ECA1767 = {
@@ -780,15 +773,6 @@
 			path = IFURIList.m;
 			refType = 4;
 		};
-		39446087020F50ED0ECA1767 = {
-			fileRef = 39446063020F50ED0ECA1767;
-			isa = PBXBuildFile;
-			settings = {
-				ATTRIBUTES = (
-					Public,
-				);
-			};
-		};
 		39446088020F50ED0ECA1767 = {
 			fileRef = 39446065020F50ED0ECA1767;
 			isa = PBXBuildFile;
@@ -978,10 +962,6 @@
 //9C4
 		9C7CABBB0190A37C0ECA16EA = {
 			children = (
-				39446063020F50ED0ECA1767,
-				39446064020F50ED0ECA1767,
-				39446065020F50ED0ECA1767,
-				39446066020F50ED0ECA1767,
 				3944606B020F50ED0ECA1767,
 				3944606C020F50ED0ECA1767,
 				3944606D020F50ED0ECA1767,
@@ -990,6 +970,9 @@
 				3944606E020F50ED0ECA1767,
 				F5AEBB3D024A527601C1A526,
 				3944606F020F50ED0ECA1767,
+				39446064020F50ED0ECA1767,
+				39446065020F50ED0ECA1767,
+				39446066020F50ED0ECA1767,
 				39446070020F50ED0ECA1767,
 				39446071020F50ED0ECA1767,
 				39446072020F50ED0ECA1767,
diff --git a/WebKit/WebView.subproj/IFBaseWebController.h b/WebKit/WebView.subproj/IFBaseWebController.h
deleted file mode 100644
index 525bc48..0000000
--- a/WebKit/WebView.subproj/IFBaseWebController.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*	
-    IFBaseWebController.h
-    
-    Copyright 2001, 2002 Apple, Inc. All rights reserved.
-*/
-
-#import <Foundation/Foundation.h>
-
- at class IFWebDataSource;
- at class IFWebView;
- at protocol IFWebController;
-
- at class IFBaseWebControllerPrivate;
-
- at interface IFBaseWebController : NSObject <IFWebController>
-{
- at private
-    IFBaseWebControllerPrivate *_private;
-}
-
-// Calls designated initializer with nil arguments.
-- init;
-
-// Designated initializer.
-- initWithView: (IFWebView *)view provisionalDataSource: (IFWebDataSource *)dataSource;
-
-- (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag;
-- (BOOL)directsAllLinksToSystemBrowser;
-
- at end
diff --git a/WebKit/WebView.subproj/IFMainURLHandleClient.mm b/WebKit/WebView.subproj/IFMainURLHandleClient.mm
index e9ffe0c..1956999 100644
--- a/WebKit/WebView.subproj/IFMainURLHandleClient.mm
+++ b/WebKit/WebView.subproj/IFMainURLHandleClient.mm
@@ -9,7 +9,7 @@
 #import <pthread.h>
 
 #import <WebKit/IFLoadProgress.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/WebKitDebug.h>
 #import <WebKit/IFContentHandler.h>
 #import <WebKit/IFDownloadHandler.h>
@@ -70,7 +70,7 @@
 {
     WEBKITDEBUGLEVEL (WEBKIT_LOG_LOADING, "url = %s\n", [[[sender url] absoluteString] cString]);
     url = [[sender url] retain];
-    [(IFBaseWebController *)[dataSource controller] _didStartLoading:url];
+    [(IFWebController *)[dataSource controller] _didStartLoading:url];
 }
 
 
@@ -83,10 +83,10 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = -1;
     loadProgress->bytesSoFar = -1;
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -107,10 +107,10 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = [data length];
     loadProgress->bytesSoFar = [data length];
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -162,7 +162,7 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = contentLength;
     loadProgress->bytesSoFar = contentLengthReceived;
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
 }
@@ -178,8 +178,8 @@
     loadProgress->totalToLoad = [sender contentLength];
     loadProgress->bytesSoFar = [sender contentLengthReceived];
 
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedError: result forResource: [[sender url] absoluteString] 	partialProgress: loadProgress fromDataSource: dataSource];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _mainReceivedError: result forResource: [[sender url] absoluteString] 	partialProgress: loadProgress fromDataSource: dataSource];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -191,8 +191,8 @@
     [dataSource _setFinalURL: URL];
     
     [[dataSource _locationChangeHandler] serverRedirectTo: URL forDataSource: dataSource];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading: url];
-    [(IFBaseWebController *)[dataSource controller] _didStartLoading: URL];
+    [(IFWebController *)[dataSource controller] _didStopLoading: url];
+    [(IFWebController *)[dataSource controller] _didStartLoading: URL];
     [url release];
     url = [URL retain];
 }
diff --git a/WebKit/WebView.subproj/IFWebController.h b/WebKit/WebView.subproj/IFWebController.h
index a4d8a66..e48022f 100644
--- a/WebKit/WebView.subproj/IFWebController.h
+++ b/WebKit/WebView.subproj/IFWebController.h
@@ -22,7 +22,7 @@
     alternate views of the web pages described by IFWebDataSources.  For example, a web
     crawler may implement a IFWebController with no corresponding view.
     
-    IFBaseWebController may be subclassed to modify the behavior of the standard
+    IFWebController may be subclassed to modify the behavior of the standard
     IFWebView and IFWebDataSource.
 
    ============================================================================= 
@@ -33,8 +33,9 @@
 @class IFLoadProgress;
 @class IFWebDataSource;
 @class IFWebFrame;
- at protocol IFWebController;
-
+ at class IFWebView;
+ at class IFWebController;
+ at class IFWebControllerPrivate;
 
 /*
    ============================================================================= 
@@ -80,7 +81,7 @@
 // screen goemetry.  Essentially all the 'view' items that are
 
 // FIXME: not strictly a scripting issue
-- (id<IFWebController>)openNewWindowWithURL:(NSURL *)url;
+- (IFWebController *)openNewWindowWithURL:(NSURL *)url;
 @end
 
 /*
@@ -99,7 +100,28 @@ typedef enum {
     IFURLPolicyIgnore
 } IFURLPolicy;
 
- at protocol IFWebController <NSObject, IFResourceProgressHandler, IFScriptContextHandler>
+ at interface IFWebController : NSObject <IFResourceProgressHandler, IFScriptContextHandler>
+{
+ at private
+    IFWebControllerPrivate *_private;
+}
+
+/*
+// Called when the content policy is set to IFContentPolicyShow
++ (id <IFDocumentView>) createViewForMIMEType:(NSString *)MIMEType
+
+// registerClass extends the views that WebKit supports
++ (void) registerClass:(Class)class forMIMEType:(NSString *)MIMEType
+*/
+
+// Calls designated initializer with nil arguments.
+- init;
+
+// Designated initializer.
+- initWithView: (IFWebView *)view provisionalDataSource: (IFWebDataSource *)dataSource;
+
+- (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag;
+- (BOOL)directsAllLinksToSystemBrowser;
 
 // Called when a data source needs to create a frame.  This method encapsulates the
 // specifics of creating and initializaing a view of the appropriate class.
diff --git a/WebKit/WebView.subproj/IFBaseWebController.mm b/WebKit/WebView.subproj/IFWebController.mm
similarity index 89%
copy from WebKit/WebView.subproj/IFBaseWebController.mm
copy to WebKit/WebView.subproj/IFWebController.mm
index 0fb3d0d..8f01fb4 100644
--- a/WebKit/WebView.subproj/IFBaseWebController.mm
+++ b/WebKit/WebView.subproj/IFWebController.mm
@@ -1,9 +1,10 @@
 /*	
-    IFBaseWebController.mm
+    IFWebController.mm
 	Copyright 2001, 2002 Apple, Inc. All rights reserved.
 */
-#import <WebKit/IFBaseWebController.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+
+#import <WebKit/IFWebController.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebFrame.h>
@@ -15,7 +16,19 @@
 
 #import <WebFoundation/WebFoundation.h>
 
- at implementation IFBaseWebController
+ at implementation IFWebController
+
+/*
++ (id <IFDocumentView>) createViewForMIMEType:(NSString *)MIMEType
+{
+    return nil;
+}
+
++ (void) registerClass:(Class)class forMIMEType:(NSString *)MIMEType
+{
+
+}
+*/
 
 - init
 {
@@ -26,7 +39,7 @@
 {
     [super init];
     
-    _private = [[IFBaseWebControllerPrivate alloc] init];
+    _private = [[IFWebControllerPrivate alloc] init];
     _private->mainFrame = [[IFWebFrame alloc] initWithName: @"_top" view: view provisionalDataSource: dataSource controller: self];
 
     return self;
@@ -40,12 +53,12 @@
 
 - (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::setDirectsAllLinksToSystemBrowser: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::setDirectsAllLinksToSystemBrowser: is not implemented"];
 }
 
 - (BOOL)directsAllLinksToSystemBrowser
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::directsAllLinksToSystemBrowser is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::directsAllLinksToSystemBrowser is not implemented"];
     return NO;
 }
 
@@ -81,18 +94,18 @@
 // ---------------------------------------------------------------------
 - (void)setStatusText: (NSString *)text forDataSource: (IFWebDataSource *)dataSource
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::setStatusText:forDataSource: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::setStatusText:forDataSource: is not implemented"];
 }
 
 
 - (NSString *)statusTextForDataSource: (IFWebDataSource *)dataSource
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::statusTextForDataSource: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::statusTextForDataSource: is not implemented"];
     return nil;
 }
 
 
-- (id<IFWebController>)openNewWindowWithURL:(NSURL *)url
+- (IFWebController *)openNewWindowWithURL:(NSURL *)url
 {
     return nil;
 }
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.h b/WebKit/WebView.subproj/IFWebControllerPrivate.h
similarity index 87%
copy from WebKit/WebView.subproj/IFBaseWebControllerPrivate.h
copy to WebKit/WebView.subproj/IFWebControllerPrivate.h
index d246cc6..a169cee 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.h
+++ b/WebKit/WebView.subproj/IFWebControllerPrivate.h
@@ -3,19 +3,19 @@
 	Copyright 2001, Apple, Inc. All rights reserved.
 */
 
-#import <WebKit/IFBaseWebController.h>
+#import <WebKit/IFWebController.h>
 
 @class IFError;
 @class IFLoadProgress;
 @class IFWebFrame;
 
- at interface IFBaseWebControllerPrivate : NSObject
+ at interface IFWebControllerPrivate : NSObject
 {
     IFWebFrame *mainFrame;
 }
 @end
 
- at interface IFBaseWebController (IFPrivate);
+ at interface IFWebController (IFPrivate);
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_receivedError: (IFError *)error forResource: (NSString *)resourceDescription partialProgress: (IFLoadProgress *)progress fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_mainReceivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm b/WebKit/WebView.subproj/IFWebControllerPrivate.mm
similarity index 98%
copy from WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
copy to WebKit/WebView.subproj/IFWebControllerPrivate.mm
index 5a3dc50..cb21f7b 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
+++ b/WebKit/WebView.subproj/IFWebControllerPrivate.mm
@@ -2,7 +2,7 @@
     IFWebController.mm
 	Copyright 2001, Apple, Inc. All rights reserved.
 */
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebFramePrivate.h>
@@ -19,7 +19,7 @@
 #import <WebKit/WebKitDebug.h>
 
 
- at implementation IFBaseWebControllerPrivate
+ at implementation IFWebControllerPrivate
 
 - init 
 {
@@ -59,7 +59,7 @@
 @end
 
 
- at implementation IFBaseWebController (IFPrivate)
+ at implementation IFWebController (IFPrivate)
 
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource
 {
diff --git a/WebKit/WebView.subproj/IFWebDataSource.h b/WebKit/WebView.subproj/IFWebDataSource.h
index 375f8e9..9d1eca6 100644
--- a/WebKit/WebView.subproj/IFWebDataSource.h
+++ b/WebKit/WebView.subproj/IFWebDataSource.h
@@ -18,7 +18,7 @@
 
 @class IFWebFrame;
 @class IFURLHandle;
- at protocol IFWebController;
+ at class IFWebController;
 
 #ifdef TENTATIVE_API
 @class IFLoader;
@@ -82,8 +82,8 @@
 // data source.  Perhaps setController: should be private?  Perhaps the back pointers
 // can be managed externally, i.e. + controllerForDataSource: as a class method on 
 // IFDefaultWebController?
-//- (void)setController: (id <IFWebController>)controller;
-- (id <IFWebController>)controller;
+//- (void)setController: (IFWebController *)controller;
+- (IFWebController *)controller;
 
 // May return nil if not initialized with a URL.
 - (NSURL *)inputURL;
diff --git a/WebKit/WebView.subproj/IFWebDataSource.mm b/WebKit/WebView.subproj/IFWebDataSource.mm
index 366e8df..ee83e49 100644
--- a/WebKit/WebView.subproj/IFWebDataSource.mm
+++ b/WebKit/WebView.subproj/IFWebDataSource.mm
@@ -145,7 +145,7 @@ static id IFWebDataSourceMake(void *url, void *attributes, unsigned flags)
 }
 
 
-- (id <IFWebController>)controller
+- (IFWebController *)controller
 {
     // All data sources used in a document share the same
     // controller.  A single document may have many datasource corresponding to
diff --git a/WebKit/WebView.subproj/IFWebDataSourcePrivate.h b/WebKit/WebView.subproj/IFWebDataSourcePrivate.h
index 7032112..96690b2 100644
--- a/WebKit/WebView.subproj/IFWebDataSourcePrivate.h
+++ b/WebKit/WebView.subproj/IFWebDataSourcePrivate.h
@@ -20,7 +20,7 @@ class KHTMLPart;
     IFWebDataSource *parent;
     NSMutableArray *children;
     
-    id <IFWebController>controller;
+    IFWebController *controller;
     
     // The original URL as requested during initialization.
     NSURL *inputURL;
@@ -73,7 +73,7 @@ class KHTMLPart;
 @end
 
 @interface IFWebDataSource (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (KHTMLPart *)_part;
 - (void)_setParent: (IFWebDataSource *)p;
 - (void)_startLoading: (BOOL)forceRefresh;
diff --git a/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm b/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
index 04c3c08..9dfd5b0 100644
--- a/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
+++ b/WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
@@ -93,7 +93,7 @@
     [self _setLoading: _private->mainHandle || [_private->urlHandles count]];
 }
 
-- (void)_setController: (id <IFWebController>)controller
+- (void)_setController: (IFWebController *)controller
 {
     WEBKIT_ASSERT(_private->part != nil);
     
@@ -286,7 +286,7 @@
 }
 
 
-// This method should only be called by haveContentPolicy in IFBaseWebController
+// This method should only be called by haveContentPolicy in IFWebController
 // and should only be called once.
 - (void) _setContentPolicy:(IFContentPolicy)policy
 {
diff --git a/WebKit/WebView.subproj/IFWebFrame.h b/WebKit/WebView.subproj/IFWebFrame.h
index a141d57..5f920f7 100644
--- a/WebKit/WebView.subproj/IFWebFrame.h
+++ b/WebKit/WebView.subproj/IFWebFrame.h
@@ -10,7 +10,7 @@
 
 @class IFError;
 @class IFWebDataSource;
- at protocol IFWebController;
+ at class IFWebController;
 
 @class IFWebFramePrivate;
 
@@ -20,11 +20,11 @@
     IFWebFramePrivate *_private;
 }
 
-- initWithName: (NSString *)name view: view provisionalDataSource: (IFWebDataSource *)dataSource controller: (id <IFWebController>)controller;
+- initWithName: (NSString *)name view: view provisionalDataSource: (IFWebDataSource *)dataSource controller: (IFWebController *)controller;
 - (NSString *)name;
 
-- (void)setController: (id <IFWebController>)controller;
-- (id <IFWebController>)controller;
+- (void)setController: (IFWebController *)controller;
+- (IFWebController *)controller;
 
 - (void)setView: (id)view;
 - (id)view;
diff --git a/WebKit/WebView.subproj/IFWebFrame.mm b/WebKit/WebView.subproj/IFWebFrame.mm
index 91eecd4..e953671 100644
--- a/WebKit/WebView.subproj/IFWebFrame.mm
+++ b/WebKit/WebView.subproj/IFWebFrame.mm
@@ -9,7 +9,7 @@
 #import <WebKit/IFWebFramePrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebController.h>
 #import <WebKit/IFLocationChangeHandler.h>
 #import <WebKit/IFDownloadHandler.h>
@@ -27,7 +27,7 @@
     return [self initWithName: nil view: nil provisionalDataSource: nil controller: nil];
 }
 
-- initWithName: (NSString *)n view: v provisionalDataSource: (IFWebDataSource *)d controller: (id<IFWebController>)c
+- initWithName: (NSString *)n view: v provisionalDataSource: (IFWebDataSource *)d controller: (IFWebController *)c
 {
     [super init];
 
@@ -87,13 +87,13 @@
     return [_private view];
 }
 
-- (id <IFWebController>)controller
+- (IFWebController *)controller
 {
     return [_private controller];
 }
 
 
-- (void)setController: (id <IFWebController>)controller
+- (void)setController: (IFWebController *)controller
 {
     [_private setController: controller];
 }
@@ -255,7 +255,7 @@
     }
     
     else if ([name isEqualToString:@"_blank"]){
-        id<IFWebController> newController = [[self controller] openNewWindowWithURL: nil];
+        IFWebController *newController = [[self controller] openNewWindowWithURL: nil];
         return [newController mainFrame];
     }
     
diff --git a/WebKit/WebView.subproj/IFWebFramePrivate.h b/WebKit/WebView.subproj/IFWebFramePrivate.h
index 6fd78fe..5177e16 100644
--- a/WebKit/WebView.subproj/IFWebFramePrivate.h
+++ b/WebKit/WebView.subproj/IFWebFramePrivate.h
@@ -42,15 +42,15 @@ typedef enum {
     IFWebDataSource *dataSource;
     IFWebDataSource *provisionalDataSource;
     khtml::RenderPart *renderFramePart;
-    id <IFWebController>controller;
+    IFWebController *controller;
     IFWebFrameState state;
     BOOL scheduledLayoutPending;
 }
 
 - (void)setName: (NSString *)n;
 - (NSString *)name;
-- (void)setController: (id <IFWebController>)c;
-- (id <IFWebController>)controller;
+- (void)setController: (IFWebController *)c;
+- (IFWebController *)controller;
 - (void)setView: v;
 - view;
 - (void)setDataSource: (IFWebDataSource *)d;
@@ -63,7 +63,7 @@ typedef enum {
 @end
 
 @interface IFWebFrame (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (void)_setRenderFramePart: (khtml::RenderPart *)p;
 - (khtml::RenderPart *)_renderFramePart;
 - (void)_setDataSource: (IFWebDataSource *)d;
diff --git a/WebKit/WebView.subproj/IFWebFramePrivate.mm b/WebKit/WebView.subproj/IFWebFramePrivate.mm
index 9d40bfc..4364168 100644
--- a/WebKit/WebView.subproj/IFWebFramePrivate.mm
+++ b/WebKit/WebView.subproj/IFWebFramePrivate.mm
@@ -71,8 +71,8 @@ static const char * const stateNames[6] = {
     }
 }
 
-- (id <IFWebController>)controller { return controller; }
-- (void)setController: (id <IFWebController>)c
+- (IFWebController *)controller { return controller; }
+- (void)setController: (IFWebController *)c
 { 
     controller = c; // not retained (yet)
 }
@@ -100,7 +100,7 @@ static const char * const stateNames[6] = {
 
 @implementation IFWebFrame (IFPrivate)
 
-- (void)_setController: (id <IFWebController>)controller
+- (void)_setController: (IFWebController *)controller
 {
     [_private setController: controller];
 }
diff --git a/WebKit/WebView.subproj/IFWebView.h b/WebKit/WebView.subproj/IFWebView.h
index 2eecffd..933968c 100644
--- a/WebKit/WebView.subproj/IFWebView.h
+++ b/WebKit/WebView.subproj/IFWebView.h
@@ -12,7 +12,7 @@
 */
 
 @class IFWebDataSource;
- at protocol IFWebController;
+ at class IFWebController;
 
 @class IFWebViewPrivate;
 
@@ -25,7 +25,7 @@
 - initWithFrame: (NSRect)frame;
 
 // Note that the controller is not retained.
-- (id <IFWebController>)controller;
+- (IFWebController *)controller;
 
 // These methods is typically called by the view's controller when
 // the data source is changed.
diff --git a/WebKit/WebView.subproj/IFWebView.mm b/WebKit/WebView.subproj/IFWebView.mm
index c25521e..a2b43d7 100644
--- a/WebKit/WebView.subproj/IFWebView.mm
+++ b/WebKit/WebView.subproj/IFWebView.mm
@@ -7,7 +7,6 @@
 #import <WebKit/IFWebDataSource.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebController.h>
-#import <WebKit/IFBaseWebController.h>
 #import <WebKit/IFDynamicScrollBarsView.h>
 #import <WebKit/IFException.h>
 #import <WebKit/IFWebCoreViewFactory.h>
@@ -72,7 +71,7 @@
 
 
 // Note that the controller is not retained.
-- (id <IFWebController>)controller
+- (IFWebController *)controller
 {
     return _private->controller;
 }
diff --git a/WebKit/WebView.subproj/IFWebViewPrivate.h b/WebKit/WebView.subproj/IFWebViewPrivate.h
index ed102ee..33764e4 100644
--- a/WebKit/WebView.subproj/IFWebViewPrivate.h
+++ b/WebKit/WebView.subproj/IFWebViewPrivate.h
@@ -14,7 +14,7 @@ class KHTMLView;
 
 @interface IFWebViewPrivate : NSObject
 {
-    id <IFWebController>controller;
+    IFWebController *controller;
     KHTMLView *widget;
     KHTMLView *provisionalWidget;
     NSScrollView *frameScrollView;
@@ -30,7 +30,7 @@ class KHTMLView;
 @end
 
 @interface IFWebView (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (void)_resetWidget;
 - (KHTMLView *)_widget;
 - (KHTMLView *)_provisionalWidget;
diff --git a/WebKit/WebView.subproj/IFWebViewPrivate.mm b/WebKit/WebView.subproj/IFWebViewPrivate.mm
index 89f1728..ca8031f 100644
--- a/WebKit/WebView.subproj/IFWebViewPrivate.mm
+++ b/WebKit/WebView.subproj/IFWebViewPrivate.mm
@@ -63,7 +63,7 @@
     [subviews release];
 }
 
-- (void)_setController: (id <IFWebController>)controller
+- (void)_setController: (IFWebController *)controller
 {
     // Not retained; the controller owns the view.
     _private->controller = controller;    
diff --git a/WebKit/WebView.subproj/WebController.h b/WebKit/WebView.subproj/WebController.h
index a4d8a66..e48022f 100644
--- a/WebKit/WebView.subproj/WebController.h
+++ b/WebKit/WebView.subproj/WebController.h
@@ -22,7 +22,7 @@
     alternate views of the web pages described by IFWebDataSources.  For example, a web
     crawler may implement a IFWebController with no corresponding view.
     
-    IFBaseWebController may be subclassed to modify the behavior of the standard
+    IFWebController may be subclassed to modify the behavior of the standard
     IFWebView and IFWebDataSource.
 
    ============================================================================= 
@@ -33,8 +33,9 @@
 @class IFLoadProgress;
 @class IFWebDataSource;
 @class IFWebFrame;
- at protocol IFWebController;
-
+ at class IFWebView;
+ at class IFWebController;
+ at class IFWebControllerPrivate;
 
 /*
    ============================================================================= 
@@ -80,7 +81,7 @@
 // screen goemetry.  Essentially all the 'view' items that are
 
 // FIXME: not strictly a scripting issue
-- (id<IFWebController>)openNewWindowWithURL:(NSURL *)url;
+- (IFWebController *)openNewWindowWithURL:(NSURL *)url;
 @end
 
 /*
@@ -99,7 +100,28 @@ typedef enum {
     IFURLPolicyIgnore
 } IFURLPolicy;
 
- at protocol IFWebController <NSObject, IFResourceProgressHandler, IFScriptContextHandler>
+ at interface IFWebController : NSObject <IFResourceProgressHandler, IFScriptContextHandler>
+{
+ at private
+    IFWebControllerPrivate *_private;
+}
+
+/*
+// Called when the content policy is set to IFContentPolicyShow
++ (id <IFDocumentView>) createViewForMIMEType:(NSString *)MIMEType
+
+// registerClass extends the views that WebKit supports
++ (void) registerClass:(Class)class forMIMEType:(NSString *)MIMEType
+*/
+
+// Calls designated initializer with nil arguments.
+- init;
+
+// Designated initializer.
+- initWithView: (IFWebView *)view provisionalDataSource: (IFWebDataSource *)dataSource;
+
+- (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag;
+- (BOOL)directsAllLinksToSystemBrowser;
 
 // Called when a data source needs to create a frame.  This method encapsulates the
 // specifics of creating and initializaing a view of the appropriate class.
diff --git a/WebKit/WebView.subproj/IFBaseWebController.mm b/WebKit/WebView.subproj/WebController.m
similarity index 89%
copy from WebKit/WebView.subproj/IFBaseWebController.mm
copy to WebKit/WebView.subproj/WebController.m
index 0fb3d0d..8f01fb4 100644
--- a/WebKit/WebView.subproj/IFBaseWebController.mm
+++ b/WebKit/WebView.subproj/WebController.m
@@ -1,9 +1,10 @@
 /*	
-    IFBaseWebController.mm
+    IFWebController.mm
 	Copyright 2001, 2002 Apple, Inc. All rights reserved.
 */
-#import <WebKit/IFBaseWebController.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+
+#import <WebKit/IFWebController.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebFrame.h>
@@ -15,7 +16,19 @@
 
 #import <WebFoundation/WebFoundation.h>
 
- at implementation IFBaseWebController
+ at implementation IFWebController
+
+/*
++ (id <IFDocumentView>) createViewForMIMEType:(NSString *)MIMEType
+{
+    return nil;
+}
+
++ (void) registerClass:(Class)class forMIMEType:(NSString *)MIMEType
+{
+
+}
+*/
 
 - init
 {
@@ -26,7 +39,7 @@
 {
     [super init];
     
-    _private = [[IFBaseWebControllerPrivate alloc] init];
+    _private = [[IFWebControllerPrivate alloc] init];
     _private->mainFrame = [[IFWebFrame alloc] initWithName: @"_top" view: view provisionalDataSource: dataSource controller: self];
 
     return self;
@@ -40,12 +53,12 @@
 
 - (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::setDirectsAllLinksToSystemBrowser: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::setDirectsAllLinksToSystemBrowser: is not implemented"];
 }
 
 - (BOOL)directsAllLinksToSystemBrowser
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::directsAllLinksToSystemBrowser is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::directsAllLinksToSystemBrowser is not implemented"];
     return NO;
 }
 
@@ -81,18 +94,18 @@
 // ---------------------------------------------------------------------
 - (void)setStatusText: (NSString *)text forDataSource: (IFWebDataSource *)dataSource
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::setStatusText:forDataSource: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::setStatusText:forDataSource: is not implemented"];
 }
 
 
 - (NSString *)statusTextForDataSource: (IFWebDataSource *)dataSource
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::statusTextForDataSource: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::statusTextForDataSource: is not implemented"];
     return nil;
 }
 
 
-- (id<IFWebController>)openNewWindowWithURL:(NSURL *)url
+- (IFWebController *)openNewWindowWithURL:(NSURL *)url
 {
     return nil;
 }
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.h b/WebKit/WebView.subproj/WebControllerPrivate.h
similarity index 87%
copy from WebKit/WebView.subproj/IFBaseWebControllerPrivate.h
copy to WebKit/WebView.subproj/WebControllerPrivate.h
index d246cc6..a169cee 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.h
+++ b/WebKit/WebView.subproj/WebControllerPrivate.h
@@ -3,19 +3,19 @@
 	Copyright 2001, Apple, Inc. All rights reserved.
 */
 
-#import <WebKit/IFBaseWebController.h>
+#import <WebKit/IFWebController.h>
 
 @class IFError;
 @class IFLoadProgress;
 @class IFWebFrame;
 
- at interface IFBaseWebControllerPrivate : NSObject
+ at interface IFWebControllerPrivate : NSObject
 {
     IFWebFrame *mainFrame;
 }
 @end
 
- at interface IFBaseWebController (IFPrivate);
+ at interface IFWebController (IFPrivate);
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_receivedError: (IFError *)error forResource: (NSString *)resourceDescription partialProgress: (IFLoadProgress *)progress fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_mainReceivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm b/WebKit/WebView.subproj/WebControllerPrivate.m
similarity index 98%
copy from WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
copy to WebKit/WebView.subproj/WebControllerPrivate.m
index 5a3dc50..cb21f7b 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
+++ b/WebKit/WebView.subproj/WebControllerPrivate.m
@@ -2,7 +2,7 @@
     IFWebController.mm
 	Copyright 2001, Apple, Inc. All rights reserved.
 */
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebFramePrivate.h>
@@ -19,7 +19,7 @@
 #import <WebKit/WebKitDebug.h>
 
 
- at implementation IFBaseWebControllerPrivate
+ at implementation IFWebControllerPrivate
 
 - init 
 {
@@ -59,7 +59,7 @@
 @end
 
 
- at implementation IFBaseWebController (IFPrivate)
+ at implementation IFWebController (IFPrivate)
 
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource
 {
diff --git a/WebKit/WebView.subproj/WebDataSource.h b/WebKit/WebView.subproj/WebDataSource.h
index 375f8e9..9d1eca6 100644
--- a/WebKit/WebView.subproj/WebDataSource.h
+++ b/WebKit/WebView.subproj/WebDataSource.h
@@ -18,7 +18,7 @@
 
 @class IFWebFrame;
 @class IFURLHandle;
- at protocol IFWebController;
+ at class IFWebController;
 
 #ifdef TENTATIVE_API
 @class IFLoader;
@@ -82,8 +82,8 @@
 // data source.  Perhaps setController: should be private?  Perhaps the back pointers
 // can be managed externally, i.e. + controllerForDataSource: as a class method on 
 // IFDefaultWebController?
-//- (void)setController: (id <IFWebController>)controller;
-- (id <IFWebController>)controller;
+//- (void)setController: (IFWebController *)controller;
+- (IFWebController *)controller;
 
 // May return nil if not initialized with a URL.
 - (NSURL *)inputURL;
diff --git a/WebKit/WebView.subproj/WebDataSource.m b/WebKit/WebView.subproj/WebDataSource.m
index 366e8df..ee83e49 100644
--- a/WebKit/WebView.subproj/WebDataSource.m
+++ b/WebKit/WebView.subproj/WebDataSource.m
@@ -145,7 +145,7 @@ static id IFWebDataSourceMake(void *url, void *attributes, unsigned flags)
 }
 
 
-- (id <IFWebController>)controller
+- (IFWebController *)controller
 {
     // All data sources used in a document share the same
     // controller.  A single document may have many datasource corresponding to
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.h b/WebKit/WebView.subproj/WebDataSourcePrivate.h
index 7032112..96690b2 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.h
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.h
@@ -20,7 +20,7 @@ class KHTMLPart;
     IFWebDataSource *parent;
     NSMutableArray *children;
     
-    id <IFWebController>controller;
+    IFWebController *controller;
     
     // The original URL as requested during initialization.
     NSURL *inputURL;
@@ -73,7 +73,7 @@ class KHTMLPart;
 @end
 
 @interface IFWebDataSource (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (KHTMLPart *)_part;
 - (void)_setParent: (IFWebDataSource *)p;
 - (void)_startLoading: (BOOL)forceRefresh;
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.m b/WebKit/WebView.subproj/WebDataSourcePrivate.m
index 04c3c08..9dfd5b0 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.m
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.m
@@ -93,7 +93,7 @@
     [self _setLoading: _private->mainHandle || [_private->urlHandles count]];
 }
 
-- (void)_setController: (id <IFWebController>)controller
+- (void)_setController: (IFWebController *)controller
 {
     WEBKIT_ASSERT(_private->part != nil);
     
@@ -286,7 +286,7 @@
 }
 
 
-// This method should only be called by haveContentPolicy in IFBaseWebController
+// This method should only be called by haveContentPolicy in IFWebController
 // and should only be called once.
 - (void) _setContentPolicy:(IFContentPolicy)policy
 {
diff --git a/WebKit/WebView.subproj/WebFrame.h b/WebKit/WebView.subproj/WebFrame.h
index a141d57..5f920f7 100644
--- a/WebKit/WebView.subproj/WebFrame.h
+++ b/WebKit/WebView.subproj/WebFrame.h
@@ -10,7 +10,7 @@
 
 @class IFError;
 @class IFWebDataSource;
- at protocol IFWebController;
+ at class IFWebController;
 
 @class IFWebFramePrivate;
 
@@ -20,11 +20,11 @@
     IFWebFramePrivate *_private;
 }
 
-- initWithName: (NSString *)name view: view provisionalDataSource: (IFWebDataSource *)dataSource controller: (id <IFWebController>)controller;
+- initWithName: (NSString *)name view: view provisionalDataSource: (IFWebDataSource *)dataSource controller: (IFWebController *)controller;
 - (NSString *)name;
 
-- (void)setController: (id <IFWebController>)controller;
-- (id <IFWebController>)controller;
+- (void)setController: (IFWebController *)controller;
+- (IFWebController *)controller;
 
 - (void)setView: (id)view;
 - (id)view;
diff --git a/WebKit/WebView.subproj/WebFrame.m b/WebKit/WebView.subproj/WebFrame.m
index 91eecd4..e953671 100644
--- a/WebKit/WebView.subproj/WebFrame.m
+++ b/WebKit/WebView.subproj/WebFrame.m
@@ -9,7 +9,7 @@
 #import <WebKit/IFWebFramePrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebController.h>
 #import <WebKit/IFLocationChangeHandler.h>
 #import <WebKit/IFDownloadHandler.h>
@@ -27,7 +27,7 @@
     return [self initWithName: nil view: nil provisionalDataSource: nil controller: nil];
 }
 
-- initWithName: (NSString *)n view: v provisionalDataSource: (IFWebDataSource *)d controller: (id<IFWebController>)c
+- initWithName: (NSString *)n view: v provisionalDataSource: (IFWebDataSource *)d controller: (IFWebController *)c
 {
     [super init];
 
@@ -87,13 +87,13 @@
     return [_private view];
 }
 
-- (id <IFWebController>)controller
+- (IFWebController *)controller
 {
     return [_private controller];
 }
 
 
-- (void)setController: (id <IFWebController>)controller
+- (void)setController: (IFWebController *)controller
 {
     [_private setController: controller];
 }
@@ -255,7 +255,7 @@
     }
     
     else if ([name isEqualToString:@"_blank"]){
-        id<IFWebController> newController = [[self controller] openNewWindowWithURL: nil];
+        IFWebController *newController = [[self controller] openNewWindowWithURL: nil];
         return [newController mainFrame];
     }
     
diff --git a/WebKit/WebView.subproj/WebFramePrivate.h b/WebKit/WebView.subproj/WebFramePrivate.h
index 6fd78fe..5177e16 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.h
+++ b/WebKit/WebView.subproj/WebFramePrivate.h
@@ -42,15 +42,15 @@ typedef enum {
     IFWebDataSource *dataSource;
     IFWebDataSource *provisionalDataSource;
     khtml::RenderPart *renderFramePart;
-    id <IFWebController>controller;
+    IFWebController *controller;
     IFWebFrameState state;
     BOOL scheduledLayoutPending;
 }
 
 - (void)setName: (NSString *)n;
 - (NSString *)name;
-- (void)setController: (id <IFWebController>)c;
-- (id <IFWebController>)controller;
+- (void)setController: (IFWebController *)c;
+- (IFWebController *)controller;
 - (void)setView: v;
 - view;
 - (void)setDataSource: (IFWebDataSource *)d;
@@ -63,7 +63,7 @@ typedef enum {
 @end
 
 @interface IFWebFrame (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (void)_setRenderFramePart: (khtml::RenderPart *)p;
 - (khtml::RenderPart *)_renderFramePart;
 - (void)_setDataSource: (IFWebDataSource *)d;
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index 9d40bfc..4364168 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -71,8 +71,8 @@ static const char * const stateNames[6] = {
     }
 }
 
-- (id <IFWebController>)controller { return controller; }
-- (void)setController: (id <IFWebController>)c
+- (IFWebController *)controller { return controller; }
+- (void)setController: (IFWebController *)c
 { 
     controller = c; // not retained (yet)
 }
@@ -100,7 +100,7 @@ static const char * const stateNames[6] = {
 
 @implementation IFWebFrame (IFPrivate)
 
-- (void)_setController: (id <IFWebController>)controller
+- (void)_setController: (IFWebController *)controller
 {
     [_private setController: controller];
 }
diff --git a/WebKit/WebView.subproj/WebFrameView.h b/WebKit/WebView.subproj/WebFrameView.h
index 2eecffd..933968c 100644
--- a/WebKit/WebView.subproj/WebFrameView.h
+++ b/WebKit/WebView.subproj/WebFrameView.h
@@ -12,7 +12,7 @@
 */
 
 @class IFWebDataSource;
- at protocol IFWebController;
+ at class IFWebController;
 
 @class IFWebViewPrivate;
 
@@ -25,7 +25,7 @@
 - initWithFrame: (NSRect)frame;
 
 // Note that the controller is not retained.
-- (id <IFWebController>)controller;
+- (IFWebController *)controller;
 
 // These methods is typically called by the view's controller when
 // the data source is changed.
diff --git a/WebKit/WebView.subproj/WebFrameView.m b/WebKit/WebView.subproj/WebFrameView.m
index c25521e..a2b43d7 100644
--- a/WebKit/WebView.subproj/WebFrameView.m
+++ b/WebKit/WebView.subproj/WebFrameView.m
@@ -7,7 +7,6 @@
 #import <WebKit/IFWebDataSource.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebController.h>
-#import <WebKit/IFBaseWebController.h>
 #import <WebKit/IFDynamicScrollBarsView.h>
 #import <WebKit/IFException.h>
 #import <WebKit/IFWebCoreViewFactory.h>
@@ -72,7 +71,7 @@
 
 
 // Note that the controller is not retained.
-- (id <IFWebController>)controller
+- (IFWebController *)controller
 {
     return _private->controller;
 }
diff --git a/WebKit/WebView.subproj/WebFrameViewInternal.h b/WebKit/WebView.subproj/WebFrameViewInternal.h
index ed102ee..33764e4 100644
--- a/WebKit/WebView.subproj/WebFrameViewInternal.h
+++ b/WebKit/WebView.subproj/WebFrameViewInternal.h
@@ -14,7 +14,7 @@ class KHTMLView;
 
 @interface IFWebViewPrivate : NSObject
 {
-    id <IFWebController>controller;
+    IFWebController *controller;
     KHTMLView *widget;
     KHTMLView *provisionalWidget;
     NSScrollView *frameScrollView;
@@ -30,7 +30,7 @@ class KHTMLView;
 @end
 
 @interface IFWebView (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (void)_resetWidget;
 - (KHTMLView *)_widget;
 - (KHTMLView *)_provisionalWidget;
diff --git a/WebKit/WebView.subproj/WebFrameViewPrivate.h b/WebKit/WebView.subproj/WebFrameViewPrivate.h
index ed102ee..33764e4 100644
--- a/WebKit/WebView.subproj/WebFrameViewPrivate.h
+++ b/WebKit/WebView.subproj/WebFrameViewPrivate.h
@@ -14,7 +14,7 @@ class KHTMLView;
 
 @interface IFWebViewPrivate : NSObject
 {
-    id <IFWebController>controller;
+    IFWebController *controller;
     KHTMLView *widget;
     KHTMLView *provisionalWidget;
     NSScrollView *frameScrollView;
@@ -30,7 +30,7 @@ class KHTMLView;
 @end
 
 @interface IFWebView (IFPrivate)
-- (void)_setController: (id <IFWebController>)controller;
+- (void)_setController: (IFWebController *)controller;
 - (void)_resetWidget;
 - (KHTMLView *)_widget;
 - (KHTMLView *)_provisionalWidget;
diff --git a/WebKit/WebView.subproj/WebFrameViewPrivate.m b/WebKit/WebView.subproj/WebFrameViewPrivate.m
index 89f1728..ca8031f 100644
--- a/WebKit/WebView.subproj/WebFrameViewPrivate.m
+++ b/WebKit/WebView.subproj/WebFrameViewPrivate.m
@@ -63,7 +63,7 @@
     [subviews release];
 }
 
-- (void)_setController: (id <IFWebController>)controller
+- (void)_setController: (IFWebController *)controller
 {
     // Not retained; the controller owns the view.
     _private->controller = controller;    
diff --git a/WebKit/WebView.subproj/WebMainResourceClient.m b/WebKit/WebView.subproj/WebMainResourceClient.m
index e9ffe0c..1956999 100644
--- a/WebKit/WebView.subproj/WebMainResourceClient.m
+++ b/WebKit/WebView.subproj/WebMainResourceClient.m
@@ -9,7 +9,7 @@
 #import <pthread.h>
 
 #import <WebKit/IFLoadProgress.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/WebKitDebug.h>
 #import <WebKit/IFContentHandler.h>
 #import <WebKit/IFDownloadHandler.h>
@@ -70,7 +70,7 @@
 {
     WEBKITDEBUGLEVEL (WEBKIT_LOG_LOADING, "url = %s\n", [[[sender url] absoluteString] cString]);
     url = [[sender url] retain];
-    [(IFBaseWebController *)[dataSource controller] _didStartLoading:url];
+    [(IFWebController *)[dataSource controller] _didStartLoading:url];
 }
 
 
@@ -83,10 +83,10 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = -1;
     loadProgress->bytesSoFar = -1;
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -107,10 +107,10 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = [data length];
     loadProgress->bytesSoFar = [data length];
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -162,7 +162,7 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = contentLength;
     loadProgress->bytesSoFar = contentLengthReceived;
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
 }
@@ -178,8 +178,8 @@
     loadProgress->totalToLoad = [sender contentLength];
     loadProgress->bytesSoFar = [sender contentLengthReceived];
 
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedError: result forResource: [[sender url] absoluteString] 	partialProgress: loadProgress fromDataSource: dataSource];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _mainReceivedError: result forResource: [[sender url] absoluteString] 	partialProgress: loadProgress fromDataSource: dataSource];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -191,8 +191,8 @@
     [dataSource _setFinalURL: URL];
     
     [[dataSource _locationChangeHandler] serverRedirectTo: URL forDataSource: dataSource];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading: url];
-    [(IFBaseWebController *)[dataSource controller] _didStartLoading: URL];
+    [(IFWebController *)[dataSource controller] _didStopLoading: url];
+    [(IFWebController *)[dataSource controller] _didStartLoading: URL];
     [url release];
     url = [URL retain];
 }
diff --git a/WebKit/WebView.subproj/WebMainResourceLoader.m b/WebKit/WebView.subproj/WebMainResourceLoader.m
index e9ffe0c..1956999 100644
--- a/WebKit/WebView.subproj/WebMainResourceLoader.m
+++ b/WebKit/WebView.subproj/WebMainResourceLoader.m
@@ -9,7 +9,7 @@
 #import <pthread.h>
 
 #import <WebKit/IFLoadProgress.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/WebKitDebug.h>
 #import <WebKit/IFContentHandler.h>
 #import <WebKit/IFDownloadHandler.h>
@@ -70,7 +70,7 @@
 {
     WEBKITDEBUGLEVEL (WEBKIT_LOG_LOADING, "url = %s\n", [[[sender url] absoluteString] cString]);
     url = [[sender url] retain];
-    [(IFBaseWebController *)[dataSource controller] _didStartLoading:url];
+    [(IFWebController *)[dataSource controller] _didStartLoading:url];
 }
 
 
@@ -83,10 +83,10 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = -1;
     loadProgress->bytesSoFar = -1;
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -107,10 +107,10 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = [data length];
     loadProgress->bytesSoFar = [data length];
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -162,7 +162,7 @@
     IFLoadProgress *loadProgress = [[IFLoadProgress alloc] init];
     loadProgress->totalToLoad = contentLength;
     loadProgress->bytesSoFar = contentLengthReceived;
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
+    [(IFWebController *)[dataSource controller] _mainReceivedProgress: (IFLoadProgress *)loadProgress 
         forResource: [[sender url] absoluteString] fromDataSource: dataSource];
     [loadProgress release];
 }
@@ -178,8 +178,8 @@
     loadProgress->totalToLoad = [sender contentLength];
     loadProgress->bytesSoFar = [sender contentLengthReceived];
 
-    [(IFBaseWebController *)[dataSource controller] _mainReceivedError: result forResource: [[sender url] absoluteString] 	partialProgress: loadProgress fromDataSource: dataSource];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading:url];
+    [(IFWebController *)[dataSource controller] _mainReceivedError: result forResource: [[sender url] absoluteString] 	partialProgress: loadProgress fromDataSource: dataSource];
+    [(IFWebController *)[dataSource controller] _didStopLoading:url];
 }
 
 
@@ -191,8 +191,8 @@
     [dataSource _setFinalURL: URL];
     
     [[dataSource _locationChangeHandler] serverRedirectTo: URL forDataSource: dataSource];
-    [(IFBaseWebController *)[dataSource controller] _didStopLoading: url];
-    [(IFBaseWebController *)[dataSource controller] _didStartLoading: URL];
+    [(IFWebController *)[dataSource controller] _didStopLoading: url];
+    [(IFWebController *)[dataSource controller] _didStartLoading: URL];
     [url release];
     url = [URL retain];
 }
diff --git a/WebKit/WebView.subproj/WebView.h b/WebKit/WebView.subproj/WebView.h
index a4d8a66..e48022f 100644
--- a/WebKit/WebView.subproj/WebView.h
+++ b/WebKit/WebView.subproj/WebView.h
@@ -22,7 +22,7 @@
     alternate views of the web pages described by IFWebDataSources.  For example, a web
     crawler may implement a IFWebController with no corresponding view.
     
-    IFBaseWebController may be subclassed to modify the behavior of the standard
+    IFWebController may be subclassed to modify the behavior of the standard
     IFWebView and IFWebDataSource.
 
    ============================================================================= 
@@ -33,8 +33,9 @@
 @class IFLoadProgress;
 @class IFWebDataSource;
 @class IFWebFrame;
- at protocol IFWebController;
-
+ at class IFWebView;
+ at class IFWebController;
+ at class IFWebControllerPrivate;
 
 /*
    ============================================================================= 
@@ -80,7 +81,7 @@
 // screen goemetry.  Essentially all the 'view' items that are
 
 // FIXME: not strictly a scripting issue
-- (id<IFWebController>)openNewWindowWithURL:(NSURL *)url;
+- (IFWebController *)openNewWindowWithURL:(NSURL *)url;
 @end
 
 /*
@@ -99,7 +100,28 @@ typedef enum {
     IFURLPolicyIgnore
 } IFURLPolicy;
 
- at protocol IFWebController <NSObject, IFResourceProgressHandler, IFScriptContextHandler>
+ at interface IFWebController : NSObject <IFResourceProgressHandler, IFScriptContextHandler>
+{
+ at private
+    IFWebControllerPrivate *_private;
+}
+
+/*
+// Called when the content policy is set to IFContentPolicyShow
++ (id <IFDocumentView>) createViewForMIMEType:(NSString *)MIMEType
+
+// registerClass extends the views that WebKit supports
++ (void) registerClass:(Class)class forMIMEType:(NSString *)MIMEType
+*/
+
+// Calls designated initializer with nil arguments.
+- init;
+
+// Designated initializer.
+- initWithView: (IFWebView *)view provisionalDataSource: (IFWebDataSource *)dataSource;
+
+- (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag;
+- (BOOL)directsAllLinksToSystemBrowser;
 
 // Called when a data source needs to create a frame.  This method encapsulates the
 // specifics of creating and initializaing a view of the appropriate class.
diff --git a/WebKit/WebView.subproj/IFBaseWebController.mm b/WebKit/WebView.subproj/WebView.m
similarity index 89%
rename from WebKit/WebView.subproj/IFBaseWebController.mm
rename to WebKit/WebView.subproj/WebView.m
index 0fb3d0d..8f01fb4 100644
--- a/WebKit/WebView.subproj/IFBaseWebController.mm
+++ b/WebKit/WebView.subproj/WebView.m
@@ -1,9 +1,10 @@
 /*	
-    IFBaseWebController.mm
+    IFWebController.mm
 	Copyright 2001, 2002 Apple, Inc. All rights reserved.
 */
-#import <WebKit/IFBaseWebController.h>
-#import <WebKit/IFBaseWebControllerPrivate.h>
+
+#import <WebKit/IFWebController.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebFrame.h>
@@ -15,7 +16,19 @@
 
 #import <WebFoundation/WebFoundation.h>
 
- at implementation IFBaseWebController
+ at implementation IFWebController
+
+/*
++ (id <IFDocumentView>) createViewForMIMEType:(NSString *)MIMEType
+{
+    return nil;
+}
+
++ (void) registerClass:(Class)class forMIMEType:(NSString *)MIMEType
+{
+
+}
+*/
 
 - init
 {
@@ -26,7 +39,7 @@
 {
     [super init];
     
-    _private = [[IFBaseWebControllerPrivate alloc] init];
+    _private = [[IFWebControllerPrivate alloc] init];
     _private->mainFrame = [[IFWebFrame alloc] initWithName: @"_top" view: view provisionalDataSource: dataSource controller: self];
 
     return self;
@@ -40,12 +53,12 @@
 
 - (void)setDirectsAllLinksToSystemBrowser: (BOOL)flag
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::setDirectsAllLinksToSystemBrowser: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::setDirectsAllLinksToSystemBrowser: is not implemented"];
 }
 
 - (BOOL)directsAllLinksToSystemBrowser
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::directsAllLinksToSystemBrowser is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::directsAllLinksToSystemBrowser is not implemented"];
     return NO;
 }
 
@@ -81,18 +94,18 @@
 // ---------------------------------------------------------------------
 - (void)setStatusText: (NSString *)text forDataSource: (IFWebDataSource *)dataSource
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::setStatusText:forDataSource: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::setStatusText:forDataSource: is not implemented"];
 }
 
 
 - (NSString *)statusTextForDataSource: (IFWebDataSource *)dataSource
 {
-    [NSException raise:IFMethodNotYetImplemented format:@"IFBaseWebController::statusTextForDataSource: is not implemented"];
+    [NSException raise:IFMethodNotYetImplemented format:@"IFWebController::statusTextForDataSource: is not implemented"];
     return nil;
 }
 
 
-- (id<IFWebController>)openNewWindowWithURL:(NSURL *)url
+- (IFWebController *)openNewWindowWithURL:(NSURL *)url
 {
     return nil;
 }
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.h b/WebKit/WebView.subproj/WebViewPrivate.h
similarity index 87%
rename from WebKit/WebView.subproj/IFBaseWebControllerPrivate.h
rename to WebKit/WebView.subproj/WebViewPrivate.h
index d246cc6..a169cee 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.h
+++ b/WebKit/WebView.subproj/WebViewPrivate.h
@@ -3,19 +3,19 @@
 	Copyright 2001, Apple, Inc. All rights reserved.
 */
 
-#import <WebKit/IFBaseWebController.h>
+#import <WebKit/IFWebController.h>
 
 @class IFError;
 @class IFLoadProgress;
 @class IFWebFrame;
 
- at interface IFBaseWebControllerPrivate : NSObject
+ at interface IFWebControllerPrivate : NSObject
 {
     IFWebFrame *mainFrame;
 }
 @end
 
- at interface IFBaseWebController (IFPrivate);
+ at interface IFWebController (IFPrivate);
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_receivedError: (IFError *)error forResource: (NSString *)resourceDescription partialProgress: (IFLoadProgress *)progress fromDataSource: (IFWebDataSource *)dataSource;
 - (void)_mainReceivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource;
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm b/WebKit/WebView.subproj/WebViewPrivate.m
similarity index 98%
rename from WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
rename to WebKit/WebView.subproj/WebViewPrivate.m
index 5a3dc50..cb21f7b 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
+++ b/WebKit/WebView.subproj/WebViewPrivate.m
@@ -2,7 +2,7 @@
     IFWebController.mm
 	Copyright 2001, Apple, Inc. All rights reserved.
 */
-#import <WebKit/IFBaseWebControllerPrivate.h>
+#import <WebKit/IFWebControllerPrivate.h>
 #import <WebKit/IFWebDataSourcePrivate.h>
 #import <WebKit/IFWebViewPrivate.h>
 #import <WebKit/IFWebFramePrivate.h>
@@ -19,7 +19,7 @@
 #import <WebKit/WebKitDebug.h>
 
 
- at implementation IFBaseWebControllerPrivate
+ at implementation IFWebControllerPrivate
 
 - init 
 {
@@ -59,7 +59,7 @@
 @end
 
 
- at implementation IFBaseWebController (IFPrivate)
+ at implementation IFWebController (IFPrivate)
 
 - (void)_receivedProgress: (IFLoadProgress *)progress forResource: (NSString *)resourceDescription fromDataSource: (IFWebDataSource *)dataSource
 {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list