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

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:55:47 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 9809576b01317fab3f36c090779075a99a4667a5
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Oct 29 06:51:33 2002 +0000

    	- fixed 3070484 -- icon rollovers are very slow on Mac OS X website
    
    	The problem was simply that the part didn't know it was complete.
    	To let it know, I hooked up some loader signals, and now it works.
    
            * khtml/khtml_part.cpp:
            (KHTMLPart::init): Create the KWQKHTMLPart a little earlier so we have
    	a chance to initialize the cache before it's used.
            (KHTMLPart::slotLoaderRequestStarted): Take this out of ifdefs.
            (KHTMLPart::slotLoaderRequestDone): Ditto.
    
            * khtml/misc/loader.h: Add a KWQLoader pointer to the loader.
            * khtml/misc/loader.cpp:
            (Loader::Loader): Create a KWQLoader;
            (Loader::~Loader): Destroy the KWQLoader.
            (Loader::load): Take out ifdefs around code that emits requestStarted.
    
            * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init().
    
            * kwq/KWQLoader.h: Add a class KWQLoader, with three signals in it.
            * kwq/KWQLoader.mm: (KWQLoader::KWQLoader): Initialize the three signals.
    
            * kwq/KWQSignalStubs.mm:
            (Loader::requestDone): Emit the signal using KWQLoader.
            (Loader::requestFailed): Ditto.
            (Loader::requestStarted): Ditto.
    
            * kwq/KWQSlot.h: Add an overload for slots with loader and cached object
    	parameters so we can handle the new slots.
            * kwq/KWQSlot.mm:
            (KWQSlot::KWQSlot): Added slotLoaderRequestDone and slotLoaderRequestStarted.
            (KWQSlot::call): Added the new overload to handle those two signals.
    
            * kwq/KWQSignal.h: Add an overload for signals with loader and cached object
    	parameters so we can handle the new signals.
            * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
    
            * kwq/KWQObject.mm: (QObject::connect): Remove the special casing that
    	prevents complaints about slotLoaderRequestDone and slotLoaderRequestStarted,
    	since we support those now.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2501 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 6528247..4809489 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,5 +1,48 @@
 2002-10-28  Darin Adler  <darin at apple.com>
 
+	- fixed 3070484 -- icon rollovers are very slow on Mac OS X website
+
+	The problem was simply that the part didn't know it was complete.
+	To let it know, I hooked up some loader signals, and now it works.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Create the KWQKHTMLPart a little earlier so we have
+	a chance to initialize the cache before it's used.
+        (KHTMLPart::slotLoaderRequestStarted): Take this out of ifdefs.
+        (KHTMLPart::slotLoaderRequestDone): Ditto.
+
+        * khtml/misc/loader.h: Add a KWQLoader pointer to the loader.
+        * khtml/misc/loader.cpp:
+        (Loader::Loader): Create a KWQLoader;
+        (Loader::~Loader): Destroy the KWQLoader.
+        (Loader::load): Take out ifdefs around code that emits requestStarted.
+
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init().
+
+        * kwq/KWQLoader.h: Add a class KWQLoader, with three signals in it.
+        * kwq/KWQLoader.mm: (KWQLoader::KWQLoader): Initialize the three signals.
+
+        * kwq/KWQSignalStubs.mm:
+        (Loader::requestDone): Emit the signal using KWQLoader.
+        (Loader::requestFailed): Ditto.
+        (Loader::requestStarted): Ditto.
+
+        * kwq/KWQSlot.h: Add an overload for slots with loader and cached object
+	parameters so we can handle the new slots.
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot): Added slotLoaderRequestDone and slotLoaderRequestStarted.
+        (KWQSlot::call): Added the new overload to handle those two signals.
+
+        * kwq/KWQSignal.h: Add an overload for signals with loader and cached object
+	parameters so we can handle the new signals.
+        * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
+
+        * kwq/KWQObject.mm: (QObject::connect): Remove the special casing that
+	prevents complaints about slotLoaderRequestDone and slotLoaderRequestStarted,
+	since we support those now.
+
+2002-10-28  Darin Adler  <darin at apple.com>
+
 	- fixed storage leak of items in QListBox
 
         * kwq/KWQListBox.h: Added private deleteItems method.
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 6528247..4809489 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,48 @@
 2002-10-28  Darin Adler  <darin at apple.com>
 
+	- fixed 3070484 -- icon rollovers are very slow on Mac OS X website
+
+	The problem was simply that the part didn't know it was complete.
+	To let it know, I hooked up some loader signals, and now it works.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Create the KWQKHTMLPart a little earlier so we have
+	a chance to initialize the cache before it's used.
+        (KHTMLPart::slotLoaderRequestStarted): Take this out of ifdefs.
+        (KHTMLPart::slotLoaderRequestDone): Ditto.
+
+        * khtml/misc/loader.h: Add a KWQLoader pointer to the loader.
+        * khtml/misc/loader.cpp:
+        (Loader::Loader): Create a KWQLoader;
+        (Loader::~Loader): Destroy the KWQLoader.
+        (Loader::load): Take out ifdefs around code that emits requestStarted.
+
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init().
+
+        * kwq/KWQLoader.h: Add a class KWQLoader, with three signals in it.
+        * kwq/KWQLoader.mm: (KWQLoader::KWQLoader): Initialize the three signals.
+
+        * kwq/KWQSignalStubs.mm:
+        (Loader::requestDone): Emit the signal using KWQLoader.
+        (Loader::requestFailed): Ditto.
+        (Loader::requestStarted): Ditto.
+
+        * kwq/KWQSlot.h: Add an overload for slots with loader and cached object
+	parameters so we can handle the new slots.
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot): Added slotLoaderRequestDone and slotLoaderRequestStarted.
+        (KWQSlot::call): Added the new overload to handle those two signals.
+
+        * kwq/KWQSignal.h: Add an overload for signals with loader and cached object
+	parameters so we can handle the new signals.
+        * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
+
+        * kwq/KWQObject.mm: (QObject::connect): Remove the special casing that
+	prevents complaints about slotLoaderRequestDone and slotLoaderRequestStarted,
+	since we support those now.
+
+2002-10-28  Darin Adler  <darin at apple.com>
+
 	- fixed storage leak of items in QListBox
 
         * kwq/KWQListBox.h: Added private deleteItems method.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 6528247..4809489 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,48 @@
 2002-10-28  Darin Adler  <darin at apple.com>
 
+	- fixed 3070484 -- icon rollovers are very slow on Mac OS X website
+
+	The problem was simply that the part didn't know it was complete.
+	To let it know, I hooked up some loader signals, and now it works.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Create the KWQKHTMLPart a little earlier so we have
+	a chance to initialize the cache before it's used.
+        (KHTMLPart::slotLoaderRequestStarted): Take this out of ifdefs.
+        (KHTMLPart::slotLoaderRequestDone): Ditto.
+
+        * khtml/misc/loader.h: Add a KWQLoader pointer to the loader.
+        * khtml/misc/loader.cpp:
+        (Loader::Loader): Create a KWQLoader;
+        (Loader::~Loader): Destroy the KWQLoader.
+        (Loader::load): Take out ifdefs around code that emits requestStarted.
+
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init().
+
+        * kwq/KWQLoader.h: Add a class KWQLoader, with three signals in it.
+        * kwq/KWQLoader.mm: (KWQLoader::KWQLoader): Initialize the three signals.
+
+        * kwq/KWQSignalStubs.mm:
+        (Loader::requestDone): Emit the signal using KWQLoader.
+        (Loader::requestFailed): Ditto.
+        (Loader::requestStarted): Ditto.
+
+        * kwq/KWQSlot.h: Add an overload for slots with loader and cached object
+	parameters so we can handle the new slots.
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot): Added slotLoaderRequestDone and slotLoaderRequestStarted.
+        (KWQSlot::call): Added the new overload to handle those two signals.
+
+        * kwq/KWQSignal.h: Add an overload for signals with loader and cached object
+	parameters so we can handle the new signals.
+        * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
+
+        * kwq/KWQObject.mm: (QObject::connect): Remove the special casing that
+	prevents complaints about slotLoaderRequestDone and slotLoaderRequestStarted,
+	since we support those now.
+
+2002-10-28  Darin Adler  <darin at apple.com>
+
 	- fixed storage leak of items in QListBox
 
         * kwq/KWQListBox.h: Added private deleteItems method.
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index c265e84..5d78b16 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -234,6 +234,10 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
   d->m_popupMenuXML = KXMLGUIFactory::readConfigFile( locate( "data", "khtml/khtml_popupmenu.rc", KHTMLFactory::instance() ) );
 #endif
 
+#if APPLE_CHANGES
+  kwq = new KWQKHTMLPart(this);
+#endif
+
   connect( khtml::Cache::loader(), SIGNAL( requestStarted( khtml::DocLoader*, khtml::CachedObject* ) ),
            this, SLOT( slotLoaderRequestStarted( khtml::DocLoader*, khtml::CachedObject* ) ) );
   connect( khtml::Cache::loader(), SIGNAL( requestDone( khtml::DocLoader*, khtml::CachedObject *) ),
@@ -249,10 +253,6 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
 #if !APPLE_CHANGES
   d->m_dcopobject = new KHTMLPartIface(this);
 #endif
-
-#if APPLE_CHANGES
-  kwq = new KWQKHTMLPart(this);
-#endif
 }
 
 KHTMLPart::~KHTMLPart()
@@ -1508,18 +1508,20 @@ void KHTMLPart::slotFinishedParsing()
   checkCompleted();
 }
 
-#if !APPLE_CHANGES
-
 void KHTMLPart::slotLoaderRequestStarted( khtml::DocLoader* dl, khtml::CachedObject *obj )
 {
   if ( obj && obj->type() == khtml::CachedObject::Image && d->m_doc && d->m_doc->docLoader() == dl ) {
     KHTMLPart* p = this;
     while ( p ) {
+#if !APPLE_CHANGES
       KHTMLPart* op = p;
+#endif
       p->d->m_totalObjectCount++;
       p = p->parentPart();
+#if !APPLE_CHANGES
       if ( !p && d->m_loadedObjects <= d->m_totalObjectCount )
         QTimer::singleShot( 200, op, SLOT( slotProgressUpdate() ) );
+#endif
     }
   }
 }
@@ -1529,17 +1531,23 @@ void KHTMLPart::slotLoaderRequestDone( khtml::DocLoader* dl, khtml::CachedObject
   if ( obj && obj->type() == khtml::CachedObject::Image && d->m_doc && d->m_doc->docLoader() == dl ) {
     KHTMLPart* p = this;
     while ( p ) {
+#if !APPLE_CHANGES
       KHTMLPart* op = p;
+#endif
       p->d->m_loadedObjects++;
       p = p->parentPart();
+#if !APPLE_CHANGES
       if ( !p && d->m_loadedObjects <= d->m_totalObjectCount && d->m_jobPercent >= 100 )
         QTimer::singleShot( 200, op, SLOT( slotProgressUpdate() ) );
+#endif
     }
   }
 
   checkCompleted();
 }
 
+#if !APPLE_CHANGES
+
 void KHTMLPart::slotProgressUpdate()
 {
   int percent;
diff --git a/WebCore/khtml/misc/loader.cpp b/WebCore/khtml/misc/loader.cpp
index 7248efe..c8bfc17 100644
--- a/WebCore/khtml/misc/loader.cpp
+++ b/WebCore/khtml/misc/loader.cpp
@@ -1130,10 +1130,16 @@ Loader::Loader() : QObject()
 {
     m_requestsPending.setAutoDelete( true );
     m_requestsLoading.setAutoDelete( true );
+#if APPLE_CHANGES
+    kwq = new KWQLoader(this);
+#endif
 }
 
 Loader::~Loader()
 {
+#if APPLE_CHANGES
+    delete kwq;
+#endif
 }
 
 void Loader::load(DocLoader* dl, CachedObject *object, bool incremental)
@@ -1141,9 +1147,7 @@ void Loader::load(DocLoader* dl, CachedObject *object, bool incremental)
     Request *req = new Request(dl, object, incremental);
     m_requestsPending.append(req);
 
-#if !APPLE_CHANGES
     emit requestStarted( req->m_docLoader, req->object );
-#endif
 
     servePendingRequests();
 }
diff --git a/WebCore/khtml/misc/loader.h b/WebCore/khtml/misc/loader.h
index 95d95d5..bd2f65b 100644
--- a/WebCore/khtml/misc/loader.h
+++ b/WebCore/khtml/misc/loader.h
@@ -66,6 +66,10 @@ namespace DOM
     class DocumentImpl;
 };
 
+#if APPLE_CHANGES
+class KWQLoader;
+#endif
+
 namespace khtml
 {
     class CachedObject;
@@ -411,6 +415,10 @@ namespace khtml
         // may return 0L
         KIO::Job *jobForRequest( const DOM::DOMString &url ) const;
 
+#if APPLE_CHANGES
+        KWQLoader *kwq;
+#endif
+
     signals:
         void requestStarted( khtml::DocLoader* dl, khtml::CachedObject* obj );
 	void requestDone( khtml::DocLoader* dl, khtml::CachedObject *obj );
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 753904b..91622ae 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -40,6 +40,7 @@
 
 #undef _KWQ_TIMING
 
+using khtml::Cache;
 using khtml::ChildFrame;
 using khtml::Decoder;
 using khtml::RenderObject;
@@ -93,6 +94,7 @@ KWQKHTMLPart::KWQKHTMLPart(KHTMLPart *p)
     , _completedWithBool(p, SIGNAL(completed(bool)))
     , _needsToSetWidgetsAside(false)
 {
+    Cache::init();
     mutableInstances().prepend(this);
     d->m_redirectionTimer.setMonitor(redirectionTimerMonitor, this);
 }
diff --git a/WebCore/kwq/KWQLoader.h b/WebCore/kwq/KWQLoader.h
index defd3fc..2c5cbbe 100644
--- a/WebCore/kwq/KWQLoader.h
+++ b/WebCore/kwq/KWQLoader.h
@@ -23,6 +23,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
+#include "KWQSignal.h"
+
 namespace khtml {
     class CachedObject;
     class DocLoader;
@@ -39,3 +41,12 @@ void KWQCheckCacheObjectStatus(khtml::DocLoader *, khtml::CachedObject *);
 bool KWQCheckIfReloading(khtml::DocLoader *loader);
 void KWQRetainResponse(void *response);
 void KWQReleaseResponse(void *response);
+
+class KWQLoader
+{
+public:
+    KWQLoader(khtml::Loader *);
+    KWQSignal _requestStarted;
+    KWQSignal _requestDone;
+    KWQSignal _requestFailed;
+};
diff --git a/WebCore/kwq/KWQLoader.mm b/WebCore/kwq/KWQLoader.mm
index 5e7dc8b..a30563c 100644
--- a/WebCore/kwq/KWQLoader.mm
+++ b/WebCore/kwq/KWQLoader.mm
@@ -167,4 +167,9 @@ void KWQReleaseResponse(void *response)
     [(id)response release];
 }
 
-
+KWQLoader::KWQLoader(Loader *loader)
+    : _requestStarted(loader, SIGNAL(requestStarted(khtml::DocLoader *, khtml::CachedObject *)))
+    , _requestDone(loader, SIGNAL(requestDone(khtml::DocLoader *, khtml::CachedObject *)))
+    , _requestFailed(loader, SIGNAL(requestFailed(khtml::DocLoader *, khtml::CachedObject *)))
+{
+}
diff --git a/WebCore/kwq/KWQObject.mm b/WebCore/kwq/KWQObject.mm
index c86636a..f590699 100644
--- a/WebCore/kwq/KWQObject.mm
+++ b/WebCore/kwq/KWQObject.mm
@@ -70,8 +70,6 @@ void QObject::connect(const QObject *sender, const char *signalName, const QObje
             && !KWQNamesMatch(member, SLOT(slotHistoryChanged()))
             && !KWQNamesMatch(member, SLOT(slotJobPercent(KIO::Job *, unsigned long)))
             && !KWQNamesMatch(member, SLOT(slotJobSpeed(KIO::Job *, unsigned long)))
-            && !KWQNamesMatch(member, SLOT(slotLoaderRequestDone(khtml::DocLoader *, khtml::CachedObject *)))
-            && !KWQNamesMatch(member, SLOT(slotLoaderRequestStarted(khtml::DocLoader *, khtml::CachedObject *)))
             && !KWQNamesMatch(member, SLOT(slotRedirection(KIO::Job *, const KURL &))) // FIXME: Should implement this one?
             && !KWQNamesMatch(member, SLOT(slotScrollBarMoved()))
             && !KWQNamesMatch(member, SLOT(slotShowDocument(const QString &, const QString &)))
diff --git a/WebCore/kwq/KWQSignal.h b/WebCore/kwq/KWQSignal.h
index 4be7555..05d0a4c 100644
--- a/WebCore/kwq/KWQSignal.h
+++ b/WebCore/kwq/KWQSignal.h
@@ -42,6 +42,7 @@ public:
     void call(int) const;
     void call(const QString &) const;
     void call(KIO::Job *) const;
+    void call(khtml::DocLoader *, khtml::CachedObject *) const;
 
 private:
     // forbid copying and assignment
diff --git a/WebCore/kwq/KWQSignal.mm b/WebCore/kwq/KWQSignal.mm
index ec21627..8f7e05e 100644
--- a/WebCore/kwq/KWQSignal.mm
+++ b/WebCore/kwq/KWQSignal.mm
@@ -30,6 +30,9 @@
 
 using KIO::Job;
 
+using khtml::CachedObject;
+using khtml::DocLoader;
+
 KWQSignal::KWQSignal(QObject *object, const char *name)
     : _object(object), _next(object->_signalListHead), _name(name)
 {
@@ -128,3 +131,15 @@ void KWQSignal::call(Job *j) const
         }
     }
 }
+
+void KWQSignal::call(DocLoader *l, CachedObject *o) const
+{
+    if (!_object->_signalsBlocked) {
+        KWQObjectSenderScope senderScope(_object);
+        QValueList<KWQSlot> copiedSlots(_slots);
+        QValueListConstIterator<KWQSlot> end = copiedSlots.end();
+        for (QValueListConstIterator<KWQSlot> it = copiedSlots.begin(); it != end; ++it) {
+            (*it).call(l, o);
+        }
+    }
+}
diff --git a/WebCore/kwq/KWQSignalStubs.mm b/WebCore/kwq/KWQSignalStubs.mm
index 445fccb..5ebb7ea 100644
--- a/WebCore/kwq/KWQSignalStubs.mm
+++ b/WebCore/kwq/KWQSignalStubs.mm
@@ -27,10 +27,30 @@
 #import "loader.h"
 #import "xml_tokenizer.h"
 
-void KHTMLView::cleared() { }
+#import "KWQLoader.h"
 
-void khtml::Loader::requestDone(khtml::DocLoader *, khtml::CachedObject *) { }
-void khtml::Loader::requestFailed(khtml::DocLoader *, khtml::CachedObject *) { }
+using khtml::CachedObject;
+using khtml::DocLoader;
+using khtml::Loader;
+
+void KHTMLView::cleared()
+{
+}
+
+void Loader::requestDone(DocLoader *l, CachedObject *o)
+{
+    kwq->_requestDone.call(l, o);
+}
+
+void Loader::requestFailed(DocLoader *l, CachedObject *o)
+{
+    kwq->_requestFailed.call(l, o);
+}
+
+void Loader::requestStarted(DocLoader *l, CachedObject *o)
+{
+    kwq->_requestStarted.call(l, o);
+}
 
 Tokenizer::Tokenizer()
     : m_finishedParsing(this, SIGNAL(finishedParsing()))
diff --git a/WebCore/kwq/KWQSlot.h b/WebCore/kwq/KWQSlot.h
index 0e35b8d..334272f 100644
--- a/WebCore/kwq/KWQSlot.h
+++ b/WebCore/kwq/KWQSlot.h
@@ -34,6 +34,11 @@ namespace KIO {
     class Job;
 }
 
+namespace khtml {
+    class CachedObject;
+    class DocLoader;
+}
+
 // Like strcmp, but ignores spaces.
 bool KWQNamesMatch(const char *a, const char *b);
 
@@ -50,6 +55,7 @@ public:
     void call(int) const;
     void call(const QString &) const;
     void call(KIO::Job *) const;
+    void call(khtml::DocLoader *, khtml::CachedObject *) const;
     
     friend bool operator==(const KWQSlot &, const KWQSlot &);
 
diff --git a/WebCore/kwq/KWQSlot.mm b/WebCore/kwq/KWQSlot.mm
index 2d1c607..7ec58e8 100644
--- a/WebCore/kwq/KWQSlot.mm
+++ b/WebCore/kwq/KWQSlot.mm
@@ -33,6 +33,8 @@
 #import "render_form.h"
 
 using DOM::DocumentImpl;
+using khtml::CachedObject;
+using khtml::DocLoader;
 using khtml::RenderCheckBox;
 using khtml::RenderFileButton;
 using khtml::RenderFormElement;
@@ -51,6 +53,8 @@ enum FunctionNumber {
     slotChildStarted,
     slotClicked,
     slotFinishedParsing,
+    slotLoaderRequestDone,
+    slotLoaderRequestStarted,
     slotParentCompleted,
     slotParentDestroyed,
     slotRedirect,
@@ -86,6 +90,12 @@ KWQSlot::KWQSlot(QObject *object, const char *member) : m_object(0)
     } else if (KWQNamesMatch(member, SLOT(slotFinishedParsing()))) {
         ASSERT(dynamic_cast<KHTMLPart *>(object));
         m_function = slotFinishedParsing;
+    } else if (KWQNamesMatch(member, SLOT(slotLoaderRequestDone(khtml::DocLoader *, khtml::CachedObject *)))) {
+        ASSERT(dynamic_cast<KHTMLPart *>(object));
+        m_function = slotLoaderRequestDone;
+    } else if (KWQNamesMatch(member, SLOT(slotLoaderRequestStarted(khtml::DocLoader *, khtml::CachedObject *)))) {
+        ASSERT(dynamic_cast<KHTMLPart *>(object));
+        m_function = slotLoaderRequestStarted;
     } else if (KWQNamesMatch(member, SLOT(slotParentCompleted()))) {
         ASSERT(dynamic_cast<KHTMLPart *>(object));
         m_function = slotParentCompleted;
@@ -228,6 +238,24 @@ void KWQSlot::call(Job *job) const
     call();
 }
 
+void KWQSlot::call(DocLoader *loader, CachedObject *cachedObject) const
+{
+    if (!m_object) {
+        return;
+    }
+    
+    switch (m_function) {
+        case slotLoaderRequestDone:
+            static_cast<KHTMLPart *>(m_object.pointer())->slotLoaderRequestDone(loader, cachedObject);
+            return;
+        case slotLoaderRequestStarted:
+            static_cast<KHTMLPart *>(m_object.pointer())->slotLoaderRequestStarted(loader, cachedObject);
+            return;
+    }
+    
+    call();
+}
+
 bool operator==(const KWQSlot &a, const KWQSlot &b)
 {
     return a.m_object == b.m_object && (a.m_object == 0 || a.m_function == b.m_function);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list