top level:
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Sep 2002 14:50:00 +0000 (14:50 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Sep 2002 14:50:00 +0000 (14:50 +0000)
        * Tests/WebFoundation-Misc/ifnsurlextensions-test.m: Remove uneeded
include of NSURLPathUtilities.h.

WebCore:

        * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
        * WebCorePrefix.h: Remove NSURLPathUtilities.h include.

Use even more of the KHTML code so we get referrers in one more place.

        * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.

        * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
        * khtml/khtml_part.cpp:
        (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
        (KHTMLPart::requestObject): Ditto.
        (KHTMLPart::processObjectRequest): Ditto.

        * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
        * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.

        * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
openURLNotify.

        * kwq/khtml/khtml_ext.h: Add openURLNotify.
        * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
        * kwq/KWQKHTMLPartBrowserExtension.mm:
        (KHTMLPartBrowserExtension::openURLNotify): Implement.

        * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
Changed name from requestFrame. Do less work.

        * kwq/qt/qtimer.h: Add singleShot.
        * kwq/KWQTimer.mm:
        (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
Used to implement singleShot.
        (-[KWQSingleShotTimerTarget dealloc]): Ditto.
        (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
        (QTimer::singleShot): Added.

        * kwq/qt/qmap.h: Add contains.

        * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
        * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
and prependNode.
        * kwq/KWQValueListImpl.mm:
        (KWQValueListImpl::appendNode): Add iterator.
        (KWQValueListImpl::prependNode): Add iterator.

        * kwq/kparts/part.h: Add openURL.

WebKit:

Prep work for fixes to the text encoding for subframes.

        * WebCoreSupport.subproj/WebBridge.h: Remove [loadURL:withParent:].
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
Added referrer parameter.

        * WebView.subproj/WebController.h: Add new methods, not implemented yet.
        * WebView.subproj/WebController.m:
        (-[WebController supportsTextEncoding]): Here is one.
        (-[WebController setCustomTextEncoding:]): Another.
        (-[WebController resetTextEncoding]): Etc.
        (-[WebController hasCustomTextEncoding]): Etc.
        (-[WebController customTextEncoding]): Etc.

        * WebView.subproj/WebDataSource.h:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource startLoading]): Remove the forceRefresh flag.
This is now controlled by the WebResourceRequest.
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDataSourcePrivate.m:
        (-[WebDataSource _startLoading]): Same for this private version.
        * WebView.subproj/WebFrame.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame startLoading]): Remove the forceRefresh flag.
        (-[WebFrame reload]): Remove the forceRefresh flag.
A reload without a forceRefresh is only used internally, not requested
by the caller.

        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _transitionToCommitted]): Add handling for the case where we
reload, but allow stale data.
        (-[WebFrame _isLoadComplete]): Ditto.
        (-[WebFrame _reloadAllowingStaleData]): Placeholder, not implemented yet.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView setTextEncoding:]): Update for new API, but this is going away.
        (-[WebHTMLView setDefaultTextEncoding]): Ditto.

WebBrowser:

        * BrowserDocument.m: (-[BrowserDocument refresh:]):
Call the new [reload] instead of the old [reload:].

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@2057 268f45cc-cd09-0410-ab3c-d52691b4dbfc

48 files changed:
WebCore/ChangeLog-2002-12-03
WebCore/ChangeLog-2003-10-25
WebCore/ChangeLog-2005-08-23
WebCore/WebCorePrefix.h
WebCore/khtml/khtml_part.cpp
WebCore/khtml/rendering/render_frames.cpp
WebCore/khtml/rendering/render_frames.h
WebCore/kwq/KWQAssertions.h
WebCore/kwq/KWQKHTMLPart.h
WebCore/kwq/KWQKHTMLPart.mm
WebCore/kwq/KWQKHTMLPartBrowserExtension.h
WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
WebCore/kwq/KWQKHTMLPartImpl.h
WebCore/kwq/KWQKHTMLPartImpl.mm
WebCore/kwq/KWQKPartsBrowserExtension.h
WebCore/kwq/KWQKPartsPart.h
WebCore/kwq/KWQMap.h
WebCore/kwq/KWQTimer.h
WebCore/kwq/KWQTimer.mm
WebCore/kwq/KWQValueList.h
WebCore/kwq/KWQValueListImpl.h
WebCore/kwq/KWQValueListImpl.mm
WebCore/kwq/WebCoreBridge.h
WebCore/kwq/khtml/khtml_ext.h
WebCore/kwq/kparts/browserextension.h
WebCore/kwq/kparts/part.h
WebCore/kwq/qt/qmap.h
WebCore/kwq/qt/qtimer.h
WebCore/kwq/qt/qvaluelist.h
WebKit/ChangeLog
WebKit/ChangeLog-2002-12-03
WebKit/WebCoreSupport.subproj/WebBridge.h
WebKit/WebCoreSupport.subproj/WebBridge.m
WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
WebKit/WebView.subproj/WebController.h
WebKit/WebView.subproj/WebController.m
WebKit/WebView.subproj/WebDataSource.h
WebKit/WebView.subproj/WebDataSource.m
WebKit/WebView.subproj/WebDataSourcePrivate.h
WebKit/WebView.subproj/WebDataSourcePrivate.m
WebKit/WebView.subproj/WebFrame.h
WebKit/WebView.subproj/WebFrame.m
WebKit/WebView.subproj/WebFramePrivate.h
WebKit/WebView.subproj/WebFramePrivate.m
WebKit/WebView.subproj/WebHTMLView.m
WebKit/WebView.subproj/WebView.h
WebKit/WebView.subproj/WebView.m

index ad8374a..57239f3 100644 (file)
@@ -1,4 +1,52 @@
-2002-09-12  Richard Williamson (Local)  <rjw@apple.com>
+2002-09-12  Darin Adler  <darin@apple.com>
+
+        * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
+        * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
+
+       Use even more of the KHTML code so we get referrers in one more place.
+
+        * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
+
+        * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
+        (KHTMLPart::requestObject): Ditto.
+        (KHTMLPart::processObjectRequest): Ditto.
+
+        * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
+        * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
+
+        * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
+       openURLNotify.
+
+        * kwq/khtml/khtml_ext.h: Add openURLNotify.
+        * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
+        * kwq/KWQKHTMLPartBrowserExtension.mm:
+        (KHTMLPartBrowserExtension::openURLNotify): Implement.
+
+        * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
+       Changed name from requestFrame. Do less work.
+
+        * kwq/qt/qtimer.h: Add singleShot.
+        * kwq/KWQTimer.mm:
+        (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
+       Used to implement singleShot.
+        (-[KWQSingleShotTimerTarget dealloc]): Ditto.
+        (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
+        (QTimer::singleShot): Added.
+
+        * kwq/qt/qmap.h: Add contains.
+
+        * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
+        * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
+       and prependNode.
+        * kwq/KWQValueListImpl.mm:
+        (KWQValueListImpl::appendNode): Add iterator.
+        (KWQValueListImpl::prependNode): Add iterator.
+
+        * kwq/kparts/part.h: Add openURL.
+
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Rewrite of khtml selection drawing code.  Now does
         a delta between old and new selection and only
index ad8374a..57239f3 100644 (file)
@@ -1,4 +1,52 @@
-2002-09-12  Richard Williamson (Local)  <rjw@apple.com>
+2002-09-12  Darin Adler  <darin@apple.com>
+
+        * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
+        * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
+
+       Use even more of the KHTML code so we get referrers in one more place.
+
+        * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
+
+        * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
+        (KHTMLPart::requestObject): Ditto.
+        (KHTMLPart::processObjectRequest): Ditto.
+
+        * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
+        * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
+
+        * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
+       openURLNotify.
+
+        * kwq/khtml/khtml_ext.h: Add openURLNotify.
+        * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
+        * kwq/KWQKHTMLPartBrowserExtension.mm:
+        (KHTMLPartBrowserExtension::openURLNotify): Implement.
+
+        * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
+       Changed name from requestFrame. Do less work.
+
+        * kwq/qt/qtimer.h: Add singleShot.
+        * kwq/KWQTimer.mm:
+        (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
+       Used to implement singleShot.
+        (-[KWQSingleShotTimerTarget dealloc]): Ditto.
+        (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
+        (QTimer::singleShot): Added.
+
+        * kwq/qt/qmap.h: Add contains.
+
+        * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
+        * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
+       and prependNode.
+        * kwq/KWQValueListImpl.mm:
+        (KWQValueListImpl::appendNode): Add iterator.
+        (KWQValueListImpl::prependNode): Add iterator.
+
+        * kwq/kparts/part.h: Add openURL.
+
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Rewrite of khtml selection drawing code.  Now does
         a delta between old and new selection and only
index ad8374a..57239f3 100644 (file)
@@ -1,4 +1,52 @@
-2002-09-12  Richard Williamson (Local)  <rjw@apple.com>
+2002-09-12  Darin Adler  <darin@apple.com>
+
+        * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
+        * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
+
+       Use even more of the KHTML code so we get referrers in one more place.
+
+        * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
+
+        * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
+        (KHTMLPart::requestObject): Ditto.
+        (KHTMLPart::processObjectRequest): Ditto.
+
+        * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
+        * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
+
+        * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
+       openURLNotify.
+
+        * kwq/khtml/khtml_ext.h: Add openURLNotify.
+        * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
+        * kwq/KWQKHTMLPartBrowserExtension.mm:
+        (KHTMLPartBrowserExtension::openURLNotify): Implement.
+
+        * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
+       Changed name from requestFrame. Do less work.
+
+        * kwq/qt/qtimer.h: Add singleShot.
+        * kwq/KWQTimer.mm:
+        (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
+       Used to implement singleShot.
+        (-[KWQSingleShotTimerTarget dealloc]): Ditto.
+        (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
+        (QTimer::singleShot): Added.
+
+        * kwq/qt/qmap.h: Add contains.
+
+        * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
+        * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
+       and prependNode.
+        * kwq/KWQValueListImpl.mm:
+        (KWQValueListImpl::appendNode): Add iterator.
+        (KWQValueListImpl::prependNode): Add iterator.
+
+        * kwq/kparts/part.h: Add openURL.
+
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Rewrite of khtml selection drawing code.  Now does
         a delta between old and new selection and only
index a877611..f8e4ef9 100644 (file)
@@ -37,8 +37,6 @@
 
 #ifdef __OBJC__
 
-#import <Foundation/NSURLPathUtilities.h>
-
 #import <Cocoa/Cocoa.h>
 
 #endif
index 995bd1c..a382fa1 100644 (file)
@@ -2117,14 +2117,16 @@ void KHTMLPart::slotClearSelection()
 }
 
 #ifdef APPLE_CHANGES
+
 void KHTMLPart::overURL( const QString &url, const QString &target, int modifierState )
-#else
-void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPressed )
-#endif
 {
-#ifdef APPLE_CHANGES
   impl->overURL(url, target, modifierState);
+}
+
 #else
+
+void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPressed )
+{
   if ( !d->m_kjsStatusBarText.isEmpty() && !shiftPressed ) {
     emit onURL( url );
     emit setStatusBarText( d->m_kjsStatusBarText );
@@ -2285,9 +2287,10 @@ void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPr
 #endif
     emit setStatusBarText(u.htmlURL() + extra);
   }
-#endif
 }
 
+#endif // APPLE_CHANGES
+
 void KHTMLPart::urlSelected( const QString &url, int button, int state, const QString &_target,
                              KParts::URLArgs args )
 {
@@ -2607,9 +2610,6 @@ void KHTMLPart::updateActions()
 bool KHTMLPart::requestFrame( khtml::RenderPart *frame, const QString &url, const QString &frameName,
                               const QStringList &params, bool isIFrame )
 {
-#ifdef APPLE_CHANGES
-  return impl->requestFrame(frame, url, frameName, params, isIFrame);
-#else
 //  kdDebug( 6050 ) << "childRequest( ..., " << url << ", " << frameName << " )" << endl;
   FrameIt it = d->m_frames.find( frameName );
   if ( it == d->m_frames.end() )
@@ -2624,6 +2624,7 @@ bool KHTMLPart::requestFrame( khtml::RenderPart *frame, const QString &url, cons
   (*it).m_frame = frame;
   (*it).m_params = params;
 
+#ifndef APPLE_CHANGES
   // Support for <frame src="javascript:string">
   if ( url.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 )
   {
@@ -2634,8 +2635,8 @@ bool KHTMLPart::requestFrame( khtml::RenderPart *frame, const QString &url, cons
        myurl.setPath(res.asString());
       return processObjectRequest(&(*it), myurl, QString("text/html") );
   }
-  return requestObject( &(*it), completeURL( url ));
 #endif // APPLE_CHANGES
+  return requestObject( &(*it), completeURL( url ));
 }
 
 #ifdef APPLE_CHANGES
@@ -2650,9 +2651,6 @@ QString KHTMLPart::requestFrameName()
 bool KHTMLPart::requestObject( khtml::RenderPart *frame, const QString &url, const QString &serviceType,
                                const QStringList &params )
 {
-#ifdef APPLE_CHANGES
-  return impl->requestObject(frame, url, serviceType, params);
-#else
   if (url.isEmpty())
     return false;
   khtml::ChildFrame child;
@@ -2664,16 +2662,14 @@ bool KHTMLPart::requestObject( khtml::RenderPart *frame, const QString &url, con
   KParts::URLArgs args;
   args.serviceType = serviceType;
   return requestObject( &(*it), completeURL( url ), args );
-#endif
 }
 
 bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const KParts::URLArgs &_args )
 {
-#ifdef APPLE_CHANGES
-  return false;
-#else
+#ifndef APPLE_CHANGES
   if (!checkLinkSecurity(url))
     return false;
+#endif
   if ( child->m_bPreloaded )
   {
     // kdDebug(6005) << "KHTMLPart::requestObject preload" << endl;
@@ -2686,8 +2682,10 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
 
   KParts::URLArgs args( _args );
 
+#ifndef APPLE_CHANGES
   if ( child->m_run )
     child->m_run->abort();
+#endif
 
   if ( child->m_part && !args.reload && urlcmp( child->m_part->url().url(), url.url(), true, true ) )
     args.serviceType = child->m_serviceType;
@@ -2708,6 +2706,9 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
   if ((url.isEmpty() || url.url() == "about:blank") && args.serviceType.isEmpty())
     args.serviceType = QString::fromLatin1( "text/html" );
 
+#ifdef APPLE_CHANGES
+  return processObjectRequest( child, url, args.serviceType );
+#else
   if ( args.serviceType.isEmpty() ) {
     child->m_run = new KHTMLRun( this, child, url, child->m_args,
                                  child->m_type != khtml::ChildFrame::Frame );
@@ -2718,8 +2719,6 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
 #endif
 }
 
-#ifndef APPLE_CHANGES
-
 bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url, const QString &mimetype )
 {
   //kdDebug( 6050 ) << "KHTMLPart::processObjectRequest trying to create part for " << mimetype << endl;
@@ -2746,7 +2745,11 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
 
   if ( !child->m_services.contains( mimetype ) )
   {
+#ifdef APPLE_CHANGES
+    KParts::ReadOnlyPart *part = impl->createPart(*child, url, mimetype);
+#else
     KParts::ReadOnlyPart *part = createPart( d->m_view->viewport(), child->m_name.ascii(), this, child->m_name.ascii(), mimetype, child->m_serviceName, child->m_services, child->m_params );
+#endif
 
     if ( !part )
     {
@@ -2761,7 +2764,9 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
     //CRITICAL STUFF
     if ( child->m_part )
     {
+#ifndef APPLE_CHANGES
       partManager()->removePart( (KParts::ReadOnlyPart *)child->m_part );
+#endif
       delete (KParts::ReadOnlyPart *)child->m_part;
     }
 
@@ -2769,10 +2774,12 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
     if ( child->m_frame )
       child->m_frame->setWidget( part->widget() );
 
+#ifndef APPLE_CHANGES
     if ( child->m_type != khtml::ChildFrame::Object )
       partManager()->addPart( part, false );
 //  else
 //      kdDebug(6005) << "AH! NO FRAME!!!!!" << endl;
+#endif
 
     child->m_part = part;
     assert( ((void*) child->m_part) != 0);
@@ -2793,6 +2800,7 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
                part, SLOT( slotParentCompleted() ) );
     }
 
+#ifndef APPLE_CHANGES
     child->m_extension = KParts::BrowserExtension::childObject( part );
 
     if ( child->m_extension )
@@ -2822,6 +2830,7 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
 
       child->m_extension->setBrowserInterface( d->m_extension->browserInterface() );
     }
+#endif
   }
 
   checkEmitLoadEvent();
@@ -2877,6 +2886,8 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
       return true;
 }
 
+#ifndef APPLE_CHANGES
+
 KParts::ReadOnlyPart *KHTMLPart::createPart( QWidget *parentWidget, const char *widgetName,
                                              QObject *parent, const char *name, const QString &mimetype,
                                              QString &serviceName, QStringList &serviceTypes,
index 4043bc7..6f59fe1 100644 (file)
@@ -582,15 +582,11 @@ void RenderPart::setWidget( QWidget *widget )
     slotViewCleared();
 }
 
-#ifndef APPLE_CHANGES
-
 bool RenderPart::partLoadingErrorNotify(khtml::ChildFrame *, const KURL& , const QString& )
 {
     return false;
 }
 
-#endif // APPLE_CHANGES
-
 short RenderPart::intrinsicWidth() const
 {
     return 300;
@@ -814,8 +810,6 @@ void RenderPartObject::close()
     RenderPart::close();
 }
 
-#ifndef APPLE_CHANGES
-
 bool RenderPartObject::partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType )
 {
     KHTMLPart *part = static_cast<KHTMLView *>(m_view)->part();
@@ -900,8 +894,6 @@ void RenderPartObject::slotPartLoadingErrorNotify()
     }
 }
 
-#endif // APPLE_CHANGES
-
 // duplication of RenderFormElement... FIX THIS!
 short RenderPartObject::calcReplacedWidth(bool* ieHack) const
 {
index 7d48909..77df68b 100644 (file)
@@ -97,7 +97,6 @@ public:
 
     virtual void setWidget( QWidget *widget );
 
-#ifndef APPLE_CHANGES
     /**
      * Called by KHTMLPart to notify the frame object that loading the
      * part was not successfuly. (called either asyncroniously after a
@@ -110,7 +109,6 @@ public:
      * and the url was successfully opened.
      */
     virtual bool partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType );
-#endif
 
     virtual short intrinsicWidth() const;
     virtual int intrinsicHeight() const;
@@ -153,9 +151,7 @@ public:
     virtual short calcReplacedWidth(bool* ieHack=0) const;
     virtual int   calcReplacedHeight() const;
 
-#ifndef APPLE_CHANGES
     virtual bool partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType );
-#endif
 
 public slots:
     void slotViewCleared();
index 187c55a..61bc643 100644 (file)
@@ -78,6 +78,10 @@ void KWQLog(const char *file, int line, const char *function, KWQLogChannel *cha
 }
 #endif
 
+// CRASH -- gets us into the debugger or the crash reporter -- signals are ignored by the crash reporter so we must do better
+
+#define CRASH() *(int *)0x0badbeef = 0
+
 // ASSERT, ASSERT_WITH_MESSAGE, ASSERT_NOT_REACHED
 
 #if ASSERT_DISABLED
@@ -91,18 +95,18 @@ void KWQLog(const char *file, int line, const char *function, KWQLogChannel *cha
 #define ASSERT(assertion) do \
     if (!(assertion)) { \
         KWQReportAssertionFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__, #assertion); \
-        raise(SIGQUIT); \
+        CRASH(); \
     } \
 while (0)
 #define ASSERT_WITH_MESSAGE(assertion, formatAndArgs...) do \
     if (!(assertion)) { \
         KWQReportAssertionFailureWithMessage(__FILE__, __LINE__, __PRETTY_FUNCTION__, #assertion, formatAndArgs); \
-        raise(SIGQUIT); \
+        CRASH(); \
     } \
 while (0)
 #define ASSERT_NOT_REACHED() do { \
     KWQReportAssertionFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__, 0); \
-    raise(SIGQUIT); \
+    CRASH(); \
 } while (0)
 
 #endif
@@ -118,7 +122,7 @@ while (0)
 #define ASSERT_ARG(argName, assertion) do \
     if (!(assertion)) { \
         KWQReportArgumentAssertionFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__, #argName, #assertion); \
-        raise(SIGQUIT); \
+        CRASH(); \
     } \
 while (0)
 
@@ -131,7 +135,7 @@ while (0)
 #else
 #define FATAL(formatAndArgs...) do { \
     KWQReportFatalError(__FILE__, __LINE__, __PRETTY_FUNCTION__, formatAndArgs); \
-    raise(SIGQUIT); \
+    CRASH(); \
 } while (0)
 #endif
 
index 6f2b4b1..498cd6e 100644 (file)
@@ -45,6 +45,7 @@ namespace DOM {
 }
 
 namespace khtml {
+    class ChildFrame;
     class RenderObject;
     class RenderPart;
 }
@@ -81,8 +82,8 @@ public:
     void setStatusBarText(const QString &status);
 
     void urlSelected(const KURL &url, int button, int state, const KParts::URLArgs &args);
-    bool requestFrame(khtml::RenderPart *frame, const QString &url, const QString &frameName, const QStringList &params, bool isIFrame);
     bool requestObject(khtml::RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args);
+    KParts::ReadOnlyPart *createPart(const khtml::ChildFrame &child, const KURL &url, const QString &mimeType);
 
     void submitForm(const KURL &url, const KParts::URLArgs &);
 
index 96e6e6c..eef196d 100644 (file)
@@ -49,6 +49,7 @@ using khtml::RenderWidget;
 
 using KIO::Job;
 
+using KParts::ReadOnlyPart;
 using KParts::URLArgs;
 
 void KHTMLPart::onURL(const QString &)
@@ -207,55 +208,22 @@ void KWQKHTMLPartImpl::urlSelected(const KURL &url, int button, int state, const
     [targetBridge loadURL:cocoaURL referrer:referrer(args)];
 }
 
-bool KWQKHTMLPartImpl::requestFrame( RenderPart *frame, const QString &url, const QString &frameName,
-                                     const QStringList &params, bool isIFrame )
+ReadOnlyPart *KWQKHTMLPartImpl::createPart(const ChildFrame &child, const KURL &url, const QString &mimeType)
 {
-    ASSERT([_bridge frameNamed:frameName.getNSString()] == nil);
-
-    NSURL *childURL = part->completeURL(url).getNSURL();
+    LOG(Frames, "name %s", child.m_name.ascii());
+    
+    NSURL *childURL = url.getNSURL();
     if (childURL == nil) {
         // FIXME: Do we need to report an error to someone?
-        return false;
+        return 0;
     }
     
-    LOG(Frames, "name %s", frameName.ascii());
-    
-    HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(frame->element());
-    WebCoreBridge *childBridge = [_bridge createChildFrameNamed:frameName.getNSString() withURL:childURL
-                                 renderPart:frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
-                                 marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
-
-    if (!childBridge) {
-        return false;
-    }
-    
-    ChildFrame childFrame;
-    childFrame.m_name = frameName;
-    childFrame.m_type = isIFrame ? khtml::ChildFrame::IFrame : khtml::ChildFrame::Frame;
-    childFrame.m_frame = frame;
-    childFrame.m_params = params;
-    childFrame.m_part = [childBridge part];
-    d->m_frames.append(childFrame);
-
-#ifdef _SUPPORT_JAVASCRIPT_URL_    
-    if ( url.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 && !isIFrame )
-    {
-        // static cast is safe as of isIFrame being false.
-        // but: shouldn't we support this javascript hack for iframes aswell?
-        RenderFrame* rf = static_cast<RenderFrame*>(frame);
-        assert(rf);
-        QVariant res = executeScript( DOM::Node(rf->frameImpl()), url.right( url.length() - 11) );
-        if ( res.type() == QVariant::String ) {
-            KURL myurl;
-            myurl.setProtocol("javascript");
-            myurl.setPath(res.asString());
-            return processObjectRequest(&(*it), myurl, QString("text/html") );
-        }
-        return false;
-    }
-#endif
-
-    return true;
+    HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(child.m_frame->element());
+    WebCoreBridge *childBridge = [_bridge createChildFrameNamed:child.m_name.getNSString()
+        withURL:childURL referrer:referrer(child.m_args)
+        renderPart:child.m_frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
+        marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
+    return [childBridge part];
 }
 
 bool KWQKHTMLPartImpl::requestObject(RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args)
index 9069422..262b2ef 100644 (file)
@@ -37,6 +37,7 @@ public:
     
     virtual void openURLRequest(const KURL &, 
                                const KParts::URLArgs &args = KParts::URLArgs());
+    virtual void openURLNotify();
      
     virtual void createNewWindow(const KURL &url, 
                                 const KParts::URLArgs &urlArgs = KParts::URLArgs());
index e9f0951..dbdfbc6 100644 (file)
@@ -38,6 +38,10 @@ void KHTMLPartBrowserExtension::openURLRequest(const KURL &url,
     m_part->impl->openURLRequest(url, args);
 }
 
+void KHTMLPartBrowserExtension::openURLNotify()
+{
+}
+
 void KHTMLPartBrowserExtension::createNewWindow(const KURL &url, 
                                                const KParts::URLArgs &urlArgs) 
 {
index 6f2b4b1..498cd6e 100644 (file)
@@ -45,6 +45,7 @@ namespace DOM {
 }
 
 namespace khtml {
+    class ChildFrame;
     class RenderObject;
     class RenderPart;
 }
@@ -81,8 +82,8 @@ public:
     void setStatusBarText(const QString &status);
 
     void urlSelected(const KURL &url, int button, int state, const KParts::URLArgs &args);
-    bool requestFrame(khtml::RenderPart *frame, const QString &url, const QString &frameName, const QStringList &params, bool isIFrame);
     bool requestObject(khtml::RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args);
+    KParts::ReadOnlyPart *createPart(const khtml::ChildFrame &child, const KURL &url, const QString &mimeType);
 
     void submitForm(const KURL &url, const KParts::URLArgs &);
 
index 96e6e6c..eef196d 100644 (file)
@@ -49,6 +49,7 @@ using khtml::RenderWidget;
 
 using KIO::Job;
 
+using KParts::ReadOnlyPart;
 using KParts::URLArgs;
 
 void KHTMLPart::onURL(const QString &)
@@ -207,55 +208,22 @@ void KWQKHTMLPartImpl::urlSelected(const KURL &url, int button, int state, const
     [targetBridge loadURL:cocoaURL referrer:referrer(args)];
 }
 
-bool KWQKHTMLPartImpl::requestFrame( RenderPart *frame, const QString &url, const QString &frameName,
-                                     const QStringList &params, bool isIFrame )
+ReadOnlyPart *KWQKHTMLPartImpl::createPart(const ChildFrame &child, const KURL &url, const QString &mimeType)
 {
-    ASSERT([_bridge frameNamed:frameName.getNSString()] == nil);
-
-    NSURL *childURL = part->completeURL(url).getNSURL();
+    LOG(Frames, "name %s", child.m_name.ascii());
+    
+    NSURL *childURL = url.getNSURL();
     if (childURL == nil) {
         // FIXME: Do we need to report an error to someone?
-        return false;
+        return 0;
     }
     
-    LOG(Frames, "name %s", frameName.ascii());
-    
-    HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(frame->element());
-    WebCoreBridge *childBridge = [_bridge createChildFrameNamed:frameName.getNSString() withURL:childURL
-                                 renderPart:frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
-                                 marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
-
-    if (!childBridge) {
-        return false;
-    }
-    
-    ChildFrame childFrame;
-    childFrame.m_name = frameName;
-    childFrame.m_type = isIFrame ? khtml::ChildFrame::IFrame : khtml::ChildFrame::Frame;
-    childFrame.m_frame = frame;
-    childFrame.m_params = params;
-    childFrame.m_part = [childBridge part];
-    d->m_frames.append(childFrame);
-
-#ifdef _SUPPORT_JAVASCRIPT_URL_    
-    if ( url.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 && !isIFrame )
-    {
-        // static cast is safe as of isIFrame being false.
-        // but: shouldn't we support this javascript hack for iframes aswell?
-        RenderFrame* rf = static_cast<RenderFrame*>(frame);
-        assert(rf);
-        QVariant res = executeScript( DOM::Node(rf->frameImpl()), url.right( url.length() - 11) );
-        if ( res.type() == QVariant::String ) {
-            KURL myurl;
-            myurl.setProtocol("javascript");
-            myurl.setPath(res.asString());
-            return processObjectRequest(&(*it), myurl, QString("text/html") );
-        }
-        return false;
-    }
-#endif
-
-    return true;
+    HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(child.m_frame->element());
+    WebCoreBridge *childBridge = [_bridge createChildFrameNamed:child.m_name.getNSString()
+        withURL:childURL referrer:referrer(child.m_args)
+        renderPart:child.m_frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
+        marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
+    return [childBridge part];
 }
 
 bool KWQKHTMLPartImpl::requestObject(RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args)
index 23bdaa9..4db7a67 100644 (file)
@@ -56,15 +56,17 @@ struct URLArgs {
     bool doPost() const { return m_doPost; }
     void setDoPost(bool post) { m_doPost = post; }
     
-    void setLockHistory(bool) { }
+    bool lockHistory() const { return m_lockHistory; }
+    void setLockHistory(bool lock) { m_lockHistory = lock; }
 
     QMap<QString, QString> &metaData() { return m_metadata; }
     const QMap<QString, QString> &metaData() const { return m_metadata; }
 
 private:
-    QMap<QString, QString> m_metadata;
-    bool m_doPost;
     QString m_contentType;
+    bool m_doPost;
+    bool m_lockHistory;
+    QMap<QString, QString> m_metadata;
 
 };
 
@@ -95,6 +97,7 @@ public:
      BrowserInterface *browserInterface() const { return 0; }
      
      virtual void openURLRequest(const KURL &, const KParts::URLArgs &args = KParts::URLArgs()) = 0;
+     virtual void openURLNotify() = 0;
      
      virtual void createNewWindow(const KURL &url, 
                                  const KParts::URLArgs &urlArgs = KParts::URLArgs()) = 0;
index b99e44c..c025dac 100644 (file)
@@ -72,6 +72,7 @@ public:
     QObject *parent() const { return m_parent; }
     void setInstance(KInstance *, bool) { }
     
+    virtual bool openURL(const KURL &) = 0;
     virtual bool closeURL() = 0;
 
 private:
index 1e79c79..6f91e42 100644 (file)
@@ -224,6 +224,12 @@ public:
            return ConstIterator(end());
        }
     }
+    
+    bool contains(const K &key) const
+    {
+       QMapNode<K,V> tmp(key, V());
+       return findInternal(&tmp);
+    }
 
     QMap<K,V>& operator=(const QMap<K,V>&map)
     {
index b106291..fbc4e87 100644 (file)
@@ -44,7 +44,9 @@ public:
     void start(int msec, bool singleShot = false);
     void stop();
     void fire();
-
+    
+    static void singleShot(int msec, QObject *receiver, const char *member);
+    
     // This is just a hack used by KWQKHTMLPartImpl. The monitor function
     // gets called when the timer starts and when it is stopped before firing,
     // but not when the timer fires.
index 408c51a..cf8112a 100644 (file)
 - (void)timerFired:(id)userInfo;
 @end
 
+@interface KWQSingleShotTimerTarget : NSObject
+{
+    KWQSlot *slot;
+}
++ (KWQSingleShotTimerTarget *)targetWithQObject:(QObject *)object member:(const char *)member;
+- (void)timerFired:(id)userInfo;
+@end
+
 @implementation KWQTimerTarget
 
 + (KWQTimerTarget *)targetWithQTimer:(QTimer *)t
 
 @end
 
+@implementation KWQSingleShotTimerTarget
+
++ (KWQSingleShotTimerTarget *)targetWithQObject:(QObject *)object member:(const char *)member
+{
+    KWQSingleShotTimerTarget *target = [[[self alloc] init] autorelease];
+    target->slot = new KWQSlot(object, member);
+    return target;
+}
+
+- (void)dealloc
+{
+    delete slot;
+    [super dealloc];
+}
+
+- (void)timerFired:(id)userInfo
+{
+    slot->call();
+}
+
+@end
+
 QTimer::QTimer()
     : m_timer(nil), m_monitorFunction(0), m_timeoutSignal(this, SIGNAL(timeout()))
 {
@@ -106,3 +136,13 @@ void QTimer::fire()
         m_timer = nil;
     }
 }
+
+void QTimer::singleShot(int msec, QObject *receiver, const char *member)
+{
+    [NSTimer scheduledTimerWithTimeInterval:(msec / 1000.0)
+                                     target:[KWQSingleShotTimerTarget targetWithQObject:receiver member:member]
+                                   selector:@selector(timerFired:)
+                                   userInfo:nil
+                                    repeats:NO];
+}
+
index 97b526b..ebdabfa 100644 (file)
@@ -100,8 +100,8 @@ public:
     uint count() const { return impl.count(); }
     bool isEmpty() const { return impl.isEmpty(); }
 
-    void append(const T &val) { impl.appendNode(new QValueListNode<T>(val)); } 
-    void prepend(const T &val) { impl.prependNode(new QValueListNode<T>(val)); } 
+    Iterator append(const T &val) { return impl.appendNode(new QValueListNode<T>(val)); } 
+    Iterator prepend(const T &val) { return impl.prependNode(new QValueListNode<T>(val)); } 
     void remove(const T &val) { QValueListNode<T> node(val); impl.removeEqualNodes(&node, nodesEqual); }
     uint contains(const T &val) const { QValueListNode<T> node(val); return impl.containsEqualNodes(&node, nodesEqual); }
 
index 419af11..e0d5315 100644 (file)
@@ -68,8 +68,8 @@ public:
     uint count() const;
     bool isEmpty() const;
 
-    void appendNode(KWQValueListNodeImpl *node);
-    void prependNode(KWQValueListNodeImpl *node);
+    KWQValueListIteratorImpl appendNode(KWQValueListNodeImpl *node);
+    KWQValueListIteratorImpl prependNode(KWQValueListNodeImpl *node);
     void removeEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *));
     uint containsEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const;
 
index dbefc00..e2e8406 100644 (file)
@@ -201,7 +201,7 @@ bool KWQValueListImpl::isEmpty() const
     return d->count == 0;
 }
 
-void KWQValueListImpl::appendNode(KWQValueListNodeImpl *node)
+KWQValueListIteratorImpl KWQValueListImpl::appendNode(KWQValueListNodeImpl *node)
 {
     copyOnWrite();
 
@@ -222,9 +222,11 @@ void KWQValueListImpl::appendNode(KWQValueListNodeImpl *node)
     }
 
     d->count++;
+    
+    return node;
 }
 
-void KWQValueListImpl::prependNode(KWQValueListNodeImpl *node)
+KWQValueListIteratorImpl KWQValueListImpl::prependNode(KWQValueListNodeImpl *node)
 {
     copyOnWrite();
 
@@ -237,6 +239,8 @@ void KWQValueListImpl::prependNode(KWQValueListNodeImpl *node)
     }
 
     d->count++;
+    
+    return node;
 }
 
 void KWQValueListImpl::removeEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *))
index d47f1f2..30f7923 100644 (file)
@@ -155,7 +155,8 @@ typedef khtml::RenderPart KHTMLRenderPart;
 - (void)setIconURL:(NSURL *)URL withType:(NSString *)string;
 
 - (WebCoreBridge *)createChildFrameNamed:(NSString *)frameName
-    withURL:(NSURL *)URL renderPart:(KHTMLRenderPart *)renderPart
+    withURL:(NSURL *)URL referrer:(NSString *)referrer
+    renderPart:(KHTMLRenderPart *)renderPart
     allowsScrolling:(BOOL)allowsScrolling marginWidth:(int)width marginHeight:(int)height;
 
 - (BOOL)areToolbarsVisible;
index 9069422..262b2ef 100644 (file)
@@ -37,6 +37,7 @@ public:
     
     virtual void openURLRequest(const KURL &, 
                                const KParts::URLArgs &args = KParts::URLArgs());
+    virtual void openURLNotify();
      
     virtual void createNewWindow(const KURL &url, 
                                 const KParts::URLArgs &urlArgs = KParts::URLArgs());
index 23bdaa9..4db7a67 100644 (file)
@@ -56,15 +56,17 @@ struct URLArgs {
     bool doPost() const { return m_doPost; }
     void setDoPost(bool post) { m_doPost = post; }
     
-    void setLockHistory(bool) { }
+    bool lockHistory() const { return m_lockHistory; }
+    void setLockHistory(bool lock) { m_lockHistory = lock; }
 
     QMap<QString, QString> &metaData() { return m_metadata; }
     const QMap<QString, QString> &metaData() const { return m_metadata; }
 
 private:
-    QMap<QString, QString> m_metadata;
-    bool m_doPost;
     QString m_contentType;
+    bool m_doPost;
+    bool m_lockHistory;
+    QMap<QString, QString> m_metadata;
 
 };
 
@@ -95,6 +97,7 @@ public:
      BrowserInterface *browserInterface() const { return 0; }
      
      virtual void openURLRequest(const KURL &, const KParts::URLArgs &args = KParts::URLArgs()) = 0;
+     virtual void openURLNotify() = 0;
      
      virtual void createNewWindow(const KURL &url, 
                                  const KParts::URLArgs &urlArgs = KParts::URLArgs()) = 0;
index b99e44c..c025dac 100644 (file)
@@ -72,6 +72,7 @@ public:
     QObject *parent() const { return m_parent; }
     void setInstance(KInstance *, bool) { }
     
+    virtual bool openURL(const KURL &) = 0;
     virtual bool closeURL() = 0;
 
 private:
index 1e79c79..6f91e42 100644 (file)
@@ -224,6 +224,12 @@ public:
            return ConstIterator(end());
        }
     }
+    
+    bool contains(const K &key) const
+    {
+       QMapNode<K,V> tmp(key, V());
+       return findInternal(&tmp);
+    }
 
     QMap<K,V>& operator=(const QMap<K,V>&map)
     {
index b106291..fbc4e87 100644 (file)
@@ -44,7 +44,9 @@ public:
     void start(int msec, bool singleShot = false);
     void stop();
     void fire();
-
+    
+    static void singleShot(int msec, QObject *receiver, const char *member);
+    
     // This is just a hack used by KWQKHTMLPartImpl. The monitor function
     // gets called when the timer starts and when it is stopped before firing,
     // but not when the timer fires.
index 97b526b..ebdabfa 100644 (file)
@@ -100,8 +100,8 @@ public:
     uint count() const { return impl.count(); }
     bool isEmpty() const { return impl.isEmpty(); }
 
-    void append(const T &val) { impl.appendNode(new QValueListNode<T>(val)); } 
-    void prepend(const T &val) { impl.prependNode(new QValueListNode<T>(val)); } 
+    Iterator append(const T &val) { return impl.appendNode(new QValueListNode<T>(val)); } 
+    Iterator prepend(const T &val) { return impl.prependNode(new QValueListNode<T>(val)); } 
     void remove(const T &val) { QValueListNode<T> node(val); impl.removeEqualNodes(&node, nodesEqual); }
     uint contains(const T &val) const { QValueListNode<T> node(val); return impl.containsEqualNodes(&node, nodesEqual); }
 
index 2c79b9b..bd0426a 100644 (file)
@@ -1,11 +1,53 @@
-2002-09-12  Richard Williamson (Home)  <rjw@apple.com>
+2002-09-12  Darin Adler  <darin@apple.com>
+
+       Prep work for fixes to the text encoding for subframes.
+
+        * WebCoreSupport.subproj/WebBridge.h: Remove [loadURL:withParent:].
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
+       Added referrer parameter.
+
+        * WebView.subproj/WebController.h: Add new methods, not implemented yet.
+        * WebView.subproj/WebController.m:
+        (-[WebController supportsTextEncoding]): Here is one.
+        (-[WebController setCustomTextEncoding:]): Another.
+        (-[WebController resetTextEncoding]): Etc.
+        (-[WebController hasCustomTextEncoding]): Etc.
+        (-[WebController customTextEncoding]): Etc.
+
+        * WebView.subproj/WebDataSource.h:
+        * WebView.subproj/WebDataSource.m:
+        (-[WebDataSource startLoading]): Remove the forceRefresh flag.
+       This is now controlled by the WebResourceRequest.
+        * WebView.subproj/WebDataSourcePrivate.h:
+        * WebView.subproj/WebDataSourcePrivate.m:
+        (-[WebDataSource _startLoading]): Same for this private version.
+        * WebView.subproj/WebFrame.h:
+        * WebView.subproj/WebFrame.m:
+        (-[WebFrame startLoading]): Remove the forceRefresh flag.
+        (-[WebFrame reload]): Remove the forceRefresh flag.
+       A reload without a forceRefresh is only used internally, not requested
+       by the caller.
+
+        * WebView.subproj/WebFramePrivate.h:
+        * WebView.subproj/WebFramePrivate.m:
+        (-[WebFrame _transitionToCommitted]): Add handling for the case where we
+       reload, but allow stale data.
+        (-[WebFrame _isLoadComplete]): Ditto.
+        (-[WebFrame _reloadAllowingStaleData]): Placeholder, not implemented yet.
+
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView setTextEncoding:]): Update for new API, but this is going away.
+        (-[WebHTMLView setDefaultTextEncoding]): Ditto.
+
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Don't initiate a drag if an autoscroll happened.
         
         * WebView.subproj/WebHTMLView.m:
         (-[WebHTMLView mouseDragged:]):
 
-2002-09-12  Richard Williamson (Local)  <rjw@apple.com>
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Added absolute position column to render node for 
         render tree view.
index 2c79b9b..bd0426a 100644 (file)
@@ -1,11 +1,53 @@
-2002-09-12  Richard Williamson (Home)  <rjw@apple.com>
+2002-09-12  Darin Adler  <darin@apple.com>
+
+       Prep work for fixes to the text encoding for subframes.
+
+        * WebCoreSupport.subproj/WebBridge.h: Remove [loadURL:withParent:].
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
+       Added referrer parameter.
+
+        * WebView.subproj/WebController.h: Add new methods, not implemented yet.
+        * WebView.subproj/WebController.m:
+        (-[WebController supportsTextEncoding]): Here is one.
+        (-[WebController setCustomTextEncoding:]): Another.
+        (-[WebController resetTextEncoding]): Etc.
+        (-[WebController hasCustomTextEncoding]): Etc.
+        (-[WebController customTextEncoding]): Etc.
+
+        * WebView.subproj/WebDataSource.h:
+        * WebView.subproj/WebDataSource.m:
+        (-[WebDataSource startLoading]): Remove the forceRefresh flag.
+       This is now controlled by the WebResourceRequest.
+        * WebView.subproj/WebDataSourcePrivate.h:
+        * WebView.subproj/WebDataSourcePrivate.m:
+        (-[WebDataSource _startLoading]): Same for this private version.
+        * WebView.subproj/WebFrame.h:
+        * WebView.subproj/WebFrame.m:
+        (-[WebFrame startLoading]): Remove the forceRefresh flag.
+        (-[WebFrame reload]): Remove the forceRefresh flag.
+       A reload without a forceRefresh is only used internally, not requested
+       by the caller.
+
+        * WebView.subproj/WebFramePrivate.h:
+        * WebView.subproj/WebFramePrivate.m:
+        (-[WebFrame _transitionToCommitted]): Add handling for the case where we
+       reload, but allow stale data.
+        (-[WebFrame _isLoadComplete]): Ditto.
+        (-[WebFrame _reloadAllowingStaleData]): Placeholder, not implemented yet.
+
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView setTextEncoding:]): Update for new API, but this is going away.
+        (-[WebHTMLView setDefaultTextEncoding]): Ditto.
+
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Don't initiate a drag if an autoscroll happened.
         
         * WebView.subproj/WebHTMLView.m:
         (-[WebHTMLView mouseDragged:]):
 
-2002-09-12  Richard Williamson (Local)  <rjw@apple.com>
+2002-09-12  Richard Williamson  <rjw@apple.com>
 
         Added absolute position column to render node for 
         render tree view.
index 7a69c70..9f6b6af 100644 (file)
@@ -21,7 +21,5 @@
 - (void)dataSourceChanged;
 - (WebDataSource *)dataSource;
 
-- (void)loadURL:(NSURL *)URL withParent:(WebDataSource *)parent;
-
 @end
 
index f18d906..7fc1a85 100644 (file)
     return [[frame frameNamed:name] _bridge];
 }
 
-- (WebCoreBridge *)createChildFrameNamed:(NSString *)frameName
-    withURL:(NSURL *)URL renderPart:(KHTMLRenderPart *)childRenderPart
-    allowsScrolling:(BOOL)allowsScrolling marginWidth:(int)width marginHeight:(int)height
-{
-    ASSERT(frame != nil);
-    WebFrame *newFrame = [[frame controller] createFrameNamed:frameName for:nil inParent:[self dataSource] allowsScrolling:allowsScrolling];
-    if (newFrame == nil) {
-        return nil;
-    }
-    
-    [[newFrame _bridge] setRenderPart:childRenderPart];
-    
-    [[newFrame webView] _setMarginWidth:width];
-    [[newFrame webView] _setMarginHeight:height];
-    
-    [[newFrame _bridge] loadURL:URL withParent:[self dataSource]];
-    
-    // Set the load type so this load doesn't end up in the back
-    // forward list.
-    [newFrame _setLoadType:WebFrameLoadTypeInternal];
-
-    return [newFrame _bridge];
-}
-
 - (WebCoreBridge *)openNewWindowWithURL:(NSURL *)URL referrer:(NSString *)referrer frameName:(NSString *)name
 {
     ASSERT(frame != nil);
     [request release];
 }
 
-- (void)loadURL:(NSURL *)URL withParent:(WebDataSource *)parent
+- (void)loadURL:(NSURL *)URL referrer:(NSString *)referrer withParent:(WebDataSource *)parent
 {
     WebResourceRequest *request = [[WebResourceRequest alloc] initWithURL:URL];
+    [request setReferrer:referrer];
     [self loadRequest:request withParent:parent];
     [request release];
 }
     [request release];
 }
 
+- (WebCoreBridge *)createChildFrameNamed:(NSString *)frameName
+    withURL:(NSURL *)URL referrer:(NSString *)referrer
+    renderPart:(KHTMLRenderPart *)childRenderPart
+    allowsScrolling:(BOOL)allowsScrolling marginWidth:(int)width marginHeight:(int)height
+{
+    ASSERT(frame != nil);
+    WebFrame *newFrame = [[frame controller] createFrameNamed:frameName for:nil inParent:[self dataSource] allowsScrolling:allowsScrolling];
+    if (newFrame == nil) {
+        return nil;
+    }
+    
+    [[newFrame _bridge] setRenderPart:childRenderPart];
+    
+    [[newFrame webView] _setMarginWidth:width];
+    [[newFrame webView] _setMarginHeight:height];
+    
+    [[newFrame _bridge] loadURL:URL referrer:referrer withParent:[self dataSource]];
+    
+    // Set the load type so this load doesn't end up in the back
+    // forward list.
+    [newFrame _setLoadType:WebFrameLoadTypeInternal];
+
+    return [newFrame _bridge];
+}
+
 - (void)reportBadURL:(NSString *)badURL
 {
     WebError *badURLError = [[WebError alloc] initWithErrorCode:WebResultBadURLError
index 26ba9fe..197a8c9 100644 (file)
@@ -73,7 +73,7 @@
     [request setRequestCachePolicy:[[source request] requestCachePolicy]];
     [request setResponseCachePolicy:[[source request] responseCachePolicy]];
     [request setReferrer:referrer];
-    WebResourceHandle *h = [[[WebResourceHandle alloc] initWithRequest:request client:client] autorelease];
+    WebResourceHandle *h = [[WebResourceHandle alloc] initWithRequest:request client:client];
     [request release];
     
     if (h == nil) {
@@ -88,7 +88,7 @@
         return nil;
     }
     
-    client->handle = [h retain];
+    client->handle = h;
     [source _addSubresourceClient:client];
     [client didStartLoadingWithURL:[h URL]];
     [client receivedProgressWithComplete:NO];
index 26ba9fe..197a8c9 100644 (file)
@@ -73,7 +73,7 @@
     [request setRequestCachePolicy:[[source request] requestCachePolicy]];
     [request setResponseCachePolicy:[[source request] responseCachePolicy]];
     [request setReferrer:referrer];
-    WebResourceHandle *h = [[[WebResourceHandle alloc] initWithRequest:request client:client] autorelease];
+    WebResourceHandle *h = [[WebResourceHandle alloc] initWithRequest:request client:client];
     [request release];
     
     if (h == nil) {
@@ -88,7 +88,7 @@
         return nil;
     }
     
-    client->handle = [h retain];
+    client->handle = h;
     [source _addSubresourceClient:client];
     [client didStartLoadingWithURL:[h URL]];
     [client receivedProgressWithComplete:NO];
index c64a70e..28340c7 100644 (file)
@@ -218,4 +218,19 @@ extern NSString *WebContextMenuElementFrameKey;
 // Get the appropriate user-agent string for a particular URL.
 - (NSString *)userAgentForURL:(NSURL *)URL;
 
+// Find out if the current web page supports text encodings.
+- (BOOL)supportsTextEncoding;
+
+// Make the page display with a different text encoding; stops any load in progress.
+// The text encoding passed in overrides the normal text encoding smarts including
+// what's specified in a web page's header or HTTP response.
+// The text encoding automatically goes back to the default when the top level frame
+// changes to a new location.
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding;
+- (void)resetTextEncoding;
+
+// Find out the current state. It's an error to call customTextEncoding if hasCustomTextEncoding is NO.
+- (BOOL)hasCustomTextEncoding;
+- (CFStringEncoding)customTextEncoding;
+
 @end
index 3cee138..6147c90 100644 (file)
@@ -23,7 +23,8 @@
 #import <WebKit/WebPluginDatabase.h>
 #import <WebKit/WebViewPrivate.h>
 
-#import <WebFoundation/WebFoundation.h>
+#import <WebFoundation/WebAssertions.h>
+#import <WebFoundation/WebResourceHandle.h>
 
 NSString * WebContextMenuElementLinkURLKey = @"WebContextLinkURL";
 NSString * WebContextMenuElementLinkLabelKey = @"WebContextLinkLabel";
@@ -443,4 +444,37 @@ NSString * WebContextMenuElementFrameKey = @"WebContextFrame";
     return @"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.0) Gecko/20020715";
 }
 
+- (BOOL)supportsTextEncoding
+{
+    // FIXME: Implement this.
+    return YES;
+}
+
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding
+{
+    // FIXME: Implement this.
+}
+
+- (void)resetTextEncoding
+{
+    // FIXME: Implement this.
+}
+
+- (BOOL)hasCustomTextEncoding
+{
+    // FIXME: Implement this.
+    return NO;
+}
+
+- (CFStringEncoding)customTextEncoding
+{
+    if (![self hasCustomTextEncoding]) {
+        ERROR("must not ask for customTextEncoding is hasCustomTextEncoding is NO");
+        return kCFStringEncodingInvalidId;
+    }
+
+    // FIXME: Implement this.
+    return kCFStringEncodingInvalidId;
+}
+
 @end
index 05d4993..f2b2955 100644 (file)
 
 // Start actually getting (if initialized with a URL) and parsing data. If the data source
 // is still performing a previous load it will be stopped.
-// If forceRefresh is YES the document will load from the net, not the cache.
-- (void)startLoading: (BOOL)forceRefresh;
+- (void)startLoading;
 
 // Cancels any pending loads.  A data source is conceptually only ever loading
 // one document at a time, although one document may have many related
index 411cd62..48f60a5 100644 (file)
 }
 
 
-// Start actually getting (if initialized with a URL) and parsing data. If the data source
-// is still performing a previous load it will be stopped.
-// If forceRefresh is YES the document will load from the net, not the cache.
-- (void)startLoading: (BOOL)forceRefresh
+- (void)startLoading
 {
-    [self _startLoading: forceRefresh];
+    [self _startLoading];
 }
 
 
index 4931235..4862ef6 100644 (file)
 
 - (void)_setResourceData:(NSData *)data;
 - (Class)_representationClass;
-- (void)_setRepresentation: (id<WebDocumentRepresentation>)representation;
-- (void)_setController: (WebController *)controller;
-- (void)_setParent: (WebDataSource *)p;
-- (void)_startLoading: (BOOL)forceRefresh;
+- (void)_setRepresentation:(id<WebDocumentRepresentation>)representation;
+- (void)_setController:(WebController *)controller;
+- (void)_setParent:(WebDataSource *)p;
+- (void)_startLoading;
 - (void)_stopLoading;
 - (BOOL)_isStopping;
 - (void)_recursiveStopLoading;
 - (void)_addSubresourceClient:(WebSubresourceClient *)client;
 - (void)_removeSubresourceClient:(WebSubresourceClient *)client;
-- (void)_setPrimaryLoadComplete: (BOOL)flag;
+- (void)_setPrimaryLoadComplete:(BOOL)flag;
 - (double)_loadingStartedTime;
-- (void)_setTitle: (NSString *)title;
-- (void)_setURL: (NSURL *)URL;
+- (void)_setTitle:(NSString *)title;
+- (void)_setURL:(NSURL *)URL;
 - (void)_setContentPolicy:(WebContentPolicy *)policy;
 - (void)_setContentType:(NSString *)type;
 - (void)_setEncoding:(NSString *)encoding;
 - (void)_layoutChildren;
 - (void)_clearErrors;
-- (void)_setMainDocumentError: (WebError *)error;
-- (void)_addError: (WebError *)error forResource: (NSString *)resourceDescription;
+- (void)_setMainDocumentError:(WebError *)error;
+- (void)_addError:(WebError *)error forResource:(NSString *)resourceDescription;
 + (NSMutableDictionary *)_repTypes;
 + (BOOL)_canShowMIMEType:(NSString *)MIMEType;
 - (void)_loadIcon;
index 4e9434a..8f44d0e 100644 (file)
 }
 
 
-- (void)_startLoading: (BOOL)forceRefresh
+- (void)_startLoading
 {
     ASSERT([self _isStopping] == NO);
 
 
     // Fire this guy up.
     if (!_private->mainHandle) {
-        _private->mainClient = [[WebMainResourceClient alloc] initWithDataSource: self];
+        _private->mainClient = [[WebMainResourceClient alloc] initWithDataSource:self];
         _private->mainHandle = [[WebResourceHandle alloc] initWithRequest:_private->request client:_private->mainClient];
     }
     [_private->mainClient didStartLoadingWithURL:[_private->mainHandle URL]];
index 67acda0..d9c51c3 100644 (file)
@@ -73,7 +73,7 @@
 
 /*
 */
-- (void)reload: (BOOL)forceRefresh;
+- (void)reload;
 
 
 /*
index f40e380..8d76858 100644 (file)
     if (self == [[self controller] mainFrame])
         LOG(DocumentLoad, "loading %s", [[[[self provisionalDataSource] originalURL] absoluteString] cString]);
 
-    [_private->provisionalDataSource startLoading:[self _loadType] == WebFrameLoadTypeRefresh];
+    [_private->provisionalDataSource startLoading];
 }
 
 
 }
 
 
-- (void)reload: (BOOL)forceRefresh
+- (void)reload
 {
     WebDataSource *dataSource = [self dataSource];
     WebResourceRequest *request;
     WebDataSource *newDataSource = [[WebDataSource alloc] initWithRequest:request];
     [newDataSource _setParent:[dataSource parent]];
     if ([self setProvisionalDataSource:newDataSource]) {
-       [self _setLoadType:WebFrameLoadTypeRefresh];
+       [self _setLoadType:WebFrameLoadTypeReload];
         [self startLoading];
     }
     [newDataSource release];
index 7ae0189..5d3df40 100644 (file)
@@ -27,15 +27,15 @@ typedef enum {
 } WebFrameState;
 
 typedef enum {
-    WebFrameLoadTypeUninitialized = 0,
-    WebFrameLoadTypeStandard = 1,
-    WebFrameLoadTypeBack = 2,
-    WebFrameLoadTypeForward = 3,
-    WebFrameLoadTypeIndexedBack = 4,
-    WebFrameLoadTypeIndexedForward = 5,
-    WebFrameLoadTypeRefresh = 6,
-    WebFrameLoadTypeInternal = 7,
-    WebFrameLoadTypeIntermediateBack = 8
+    WebFrameLoadTypeStandard,
+    WebFrameLoadTypeBack,
+    WebFrameLoadTypeForward,
+    WebFrameLoadTypeIndexedBack,
+    WebFrameLoadTypeIndexedForward,
+    WebFrameLoadTypeReload,
+    WebFrameLoadTypeReloadAllowingStaleData,
+    WebFrameLoadTypeInternal,
+    WebFrameLoadTypeIntermediateBack
 } WebFrameLoadType;
 
 #define WebFrameStateChangedNotification @"WebFrameStateChangedNotification"
@@ -97,4 +97,6 @@ typedef enum {
 
 - (void)_defersCallbacksChanged;
 
+- (void)_reloadAllowingStaleData;
+
 @end
index 3a59669..6d0d992 100644 (file)
@@ -284,7 +284,7 @@ static const char * const stateNames[] = {
                     [self _restoreScrollPosition];
                     break;
                     
-                case WebFrameLoadTypeRefresh:
+                case WebFrameLoadTypeReload:
                     [self _scrollToTop];
                     break;
     
@@ -301,11 +301,11 @@ static const char * const stateNames[] = {
     
                 case WebFrameLoadTypeInternal:
                     // Do nothing, this was a frame/iframe non user load.
+                case WebFrameLoadTypeReloadAllowingStaleData:
                     break;
                     
                 // FIXME Remove this check when dummy ds is removed.  An exception should be thrown
                 // if we're in the WebFrameLoadTypeUninitialized state.
-                case WebFrameLoadTypeUninitialized:
                 default:
                    ASSERT_NOT_REACHED();
                 }
@@ -462,22 +462,18 @@ static const char * const stateNames[] = {
                         [self _restoreScrollPosition];
                         break;
                         
-                    case WebFrameLoadTypeRefresh:
+                    case WebFrameLoadTypeReload:
                         [self _scrollToTop];
                         break;
         
                     case WebFrameLoadTypeStandard:
                     case WebFrameLoadTypeInternal:
+                    case WebFrameLoadTypeReloadAllowingStaleData:
                         // Do nothing.
                         break;
                         
-                    // FIXME Remove this check when dummy ds is removed.  An exception should be thrown
-                    // if we're in the WebFrameLoadTypeUninitialized state.
-                    case WebFrameLoadTypeUninitialized:
-                        break;
-                        
                     default:
-                        [[NSException exceptionWithName:NSGenericException reason:@"invalid load type during commit transition" userInfo: nil] raise];
+                        ASSERT_NOT_REACHED();
                         break;
                     }
                 }
@@ -704,4 +700,9 @@ static const char * const stateNames[] = {
     [[self dataSource] _defersCallbacksChanged];
 }
 
+- (void)_reloadAllowingStaleData
+{
+    // FIXME: Implement.
+}
+
 @end
index e46f08c..944e56e 100644 (file)
 - (void)setTextEncoding:(CFStringEncoding)encoding
 {
     WebFrame *frame = [self _frame];
-    [frame reload:NO];
+    [frame reload];
     [[frame provisionalDataSource] _setOverrideEncoding:encoding];
 }
 
 - (void)setDefaultTextEncoding
 {
     WebFrame *frame = [self _frame];
-    [frame reload:NO];
+    [frame reload];
     [[frame provisionalDataSource] _setOverrideEncoding:kCFStringEncodingInvalidId];
 }
 
index c64a70e..28340c7 100644 (file)
@@ -218,4 +218,19 @@ extern NSString *WebContextMenuElementFrameKey;
 // Get the appropriate user-agent string for a particular URL.
 - (NSString *)userAgentForURL:(NSURL *)URL;
 
+// Find out if the current web page supports text encodings.
+- (BOOL)supportsTextEncoding;
+
+// Make the page display with a different text encoding; stops any load in progress.
+// The text encoding passed in overrides the normal text encoding smarts including
+// what's specified in a web page's header or HTTP response.
+// The text encoding automatically goes back to the default when the top level frame
+// changes to a new location.
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding;
+- (void)resetTextEncoding;
+
+// Find out the current state. It's an error to call customTextEncoding if hasCustomTextEncoding is NO.
+- (BOOL)hasCustomTextEncoding;
+- (CFStringEncoding)customTextEncoding;
+
 @end
index 3cee138..6147c90 100644 (file)
@@ -23,7 +23,8 @@
 #import <WebKit/WebPluginDatabase.h>
 #import <WebKit/WebViewPrivate.h>
 
-#import <WebFoundation/WebFoundation.h>
+#import <WebFoundation/WebAssertions.h>
+#import <WebFoundation/WebResourceHandle.h>
 
 NSString * WebContextMenuElementLinkURLKey = @"WebContextLinkURL";
 NSString * WebContextMenuElementLinkLabelKey = @"WebContextLinkLabel";
@@ -443,4 +444,37 @@ NSString * WebContextMenuElementFrameKey = @"WebContextFrame";
     return @"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.0) Gecko/20020715";
 }
 
+- (BOOL)supportsTextEncoding
+{
+    // FIXME: Implement this.
+    return YES;
+}
+
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding
+{
+    // FIXME: Implement this.
+}
+
+- (void)resetTextEncoding
+{
+    // FIXME: Implement this.
+}
+
+- (BOOL)hasCustomTextEncoding
+{
+    // FIXME: Implement this.
+    return NO;
+}
+
+- (CFStringEncoding)customTextEncoding
+{
+    if (![self hasCustomTextEncoding]) {
+        ERROR("must not ask for customTextEncoding is hasCustomTextEncoding is NO");
+        return kCFStringEncodingInvalidId;
+    }
+
+    // FIXME: Implement this.
+    return kCFStringEncodingInvalidId;
+}
+
 @end