Reviewed by Maciej.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Nov 2004 22:04:26 +0000 (22:04 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Nov 2004 22:04:26 +0000 (22:04 +0000)
        - various small cleanups

        * khtml/xml/dom_docimpl.h: Added policyBaseURL and setPolicyBaseURL.
        * khtml/html/html_documentimpl.h: Removed policyBaseURL and setPolicyBaseURL.

        * khtml/xml/xml_tokenizer.h: Marked isWaitingForScripts const.
        * khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::isWaitingForScripts): Marked const.
        * khtml/html/htmltokenizer.h: Marked isWaitingForScripts const.
        * khtml/html/htmltokenizer.cpp:
        (khtml::HTMLTokenizer::isWaitingForScripts): Marked const.
        (khtml::HTMLTokenizer::setOnHold): Took out extraneous line of code.

        * khtml/khtml_part.h: Removed docImpl function.
        * khtml/khtml_part.cpp: Ditto.

        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): Simplified code that implements
        the "redirect during onload" optimization. Now uses isScheduledLocationChangePending.

        * kwq/KWQKHTMLPart.h: Removed now-unused _firstResponderAtMouseDownTime.
        * kwq/KWQKHTMLPart.mm: Removed _firstResponderAtMouseDownTime (forgot to land this
        part of the change last time, which is why the build broke).
        (KWQKHTMLPart::updatePolicyBaseURL): Use xmlDocImpl instead of docImpl.
        (KWQKHTMLPart::setPolicyBaseURL): Ditto.
        (KWQKHTMLPart::keyEvent): Ditto.
        (KWQKHTMLPart::dispatchCPPEvent): Ditto.
        (KWQKHTMLPart::bodyBackgroundColor): Ditto.

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

12 files changed:
WebCore/ChangeLog-2005-08-23
WebCore/khtml/html/html_documentimpl.h
WebCore/khtml/html/htmltokenizer.cpp
WebCore/khtml/html/htmltokenizer.h
WebCore/khtml/khtml_part.cpp
WebCore/khtml/khtml_part.h
WebCore/khtml/xml/dom_docimpl.cpp
WebCore/khtml/xml/dom_docimpl.h
WebCore/khtml/xml/xml_tokenizer.cpp
WebCore/khtml/xml/xml_tokenizer.h
WebCore/kwq/KWQKHTMLPart.h
WebCore/kwq/KWQKHTMLPart.mm

index 959810d..3e4b492 100644 (file)
@@ -1,3 +1,34 @@
+2004-11-12  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - various small cleanups
+
+        * khtml/xml/dom_docimpl.h: Added policyBaseURL and setPolicyBaseURL.
+        * khtml/html/html_documentimpl.h: Removed policyBaseURL and setPolicyBaseURL.
+
+        * khtml/xml/xml_tokenizer.h: Marked isWaitingForScripts const.
+        * khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::isWaitingForScripts): Marked const.
+        * khtml/html/htmltokenizer.h: Marked isWaitingForScripts const.
+        * khtml/html/htmltokenizer.cpp:
+        (khtml::HTMLTokenizer::isWaitingForScripts): Marked const.
+        (khtml::HTMLTokenizer::setOnHold): Took out extraneous line of code.
+
+        * khtml/khtml_part.h: Removed docImpl function.
+        * khtml/khtml_part.cpp: Ditto.
+
+        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): Simplified code that implements
+        the "redirect during onload" optimization. Now uses isScheduledLocationChangePending.
+
+        * kwq/KWQKHTMLPart.h: Removed now-unused _firstResponderAtMouseDownTime.
+        * kwq/KWQKHTMLPart.mm: Removed _firstResponderAtMouseDownTime (forgot to land this
+        part of the change last time, which is why the build broke).
+        (KWQKHTMLPart::updatePolicyBaseURL): Use xmlDocImpl instead of docImpl.
+        (KWQKHTMLPart::setPolicyBaseURL): Ditto.
+        (KWQKHTMLPart::keyEvent): Ditto.
+        (KWQKHTMLPart::dispatchCPPEvent): Ditto.
+        (KWQKHTMLPart::bodyBackgroundColor): Ditto.
+
 2004-11-12  Chris Blumenberg  <cblu@apple.com>
 
        <rdar://problem/3843312> REGRESSION: Tabbing into content area puts insertion point at start, should go to where it last was
index 2925d21..c0a9ac3 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003 Apple Computer, Inc.
+ * Copyright (C) 2004 Apple Computer, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -49,10 +49,6 @@ public:
     DOMString lastModified() const;
     DOMString cookie() const;
     void setCookie( const DOMString &);
-#if APPLE_CHANGES
-    DOMString policyBaseURL() const { return m_policyBaseURL; }
-    void setPolicyBaseURL(const DOMString &s) { m_policyBaseURL = s; }
-#endif
 
     void setBody(HTMLElementImpl *_body, int& exceptioncode);
 
@@ -81,10 +77,6 @@ private:
      // we actually store ints inside the pointer value itself; would use void *
     // but that makes the template unhappy.
     QDict<char> namedImageAndFormCounts;
-
-#if APPLE_CHANGES
-    DOMString m_policyBaseURL;
-#endif
 };
 
 }; //namespace
index 8bf47d4..1c6a805 100644 (file)
@@ -2042,7 +2042,7 @@ void HTMLTokenizer::notifyFinished(CachedObject */*finishedObj*/)
     }
 }
 
-bool HTMLTokenizer::isWaitingForScripts()
+bool HTMLTokenizer::isWaitingForScripts() const
 {
     return loadingExtScript;
 }
@@ -2056,7 +2056,6 @@ void HTMLTokenizer::setSrc(const TokenizerString &source)
 
 void HTMLTokenizer::setOnHold(bool _onHold)
 {
-    if (onHold == _onHold) return;
     onHold = _onHold;
 }
 
index e0ca963..02112b8 100644 (file)
@@ -130,7 +130,8 @@ public:
 
     virtual void write(const TokenizerString &str, bool appendData);
     virtual void finish();
-    virtual void setOnHold(bool _onHold);
+    virtual void setOnHold(bool onHold);
+    virtual bool isWaitingForScripts() const;
     virtual void stopped();
     virtual bool processingData() const;
 
@@ -179,7 +180,6 @@ protected:
     // from CachedObjectClient
     void notifyFinished(CachedObject *finishedObj);
 
-    virtual bool isWaitingForScripts();
 protected:
     // Internal buffers
     ///////////////////
index a3afc53..d86bbfb 100644 (file)
@@ -1095,13 +1095,6 @@ bool KHTMLPart::openFile()
   return true;
 }
 
-DOM::HTMLDocumentImpl *KHTMLPart::docImpl() const
-{
-    if ( d && d->m_doc && d->m_doc->isHTMLDocument() )
-        return static_cast<HTMLDocumentImpl*>(d->m_doc);
-    return 0;
-}
-
 DOM::DocumentImpl *KHTMLPart::xmlDocImpl() const
 {
     if ( d )
index 81b24a9..ac2a99b 100644 (file)
@@ -1272,17 +1272,11 @@ private:
 
   DOM::EventListener *createHTMLEventListener( QString code );
 
-#if APPLE_CHANGES
-  public:
-#endif
-
-  DOM::HTMLDocumentImpl *docImpl() const;
+public:
   DOM::DocumentImpl *xmlDocImpl() const;
   void replaceDocImpl(DOM::DocumentImpl* newDoc);
   
-#if APPLE_CHANGES
-  private:
-#endif
+private:
   khtml::ChildFrame *childFrame( const QObject *obj );
 
   khtml::ChildFrame *recursiveFrameRequest( const KURL &url, const KParts::URLArgs &args, bool callParent = true );
index 7a6ff60..e26f5c2 100644 (file)
@@ -1349,10 +1349,10 @@ void DocumentImpl::close()
     // First fire the onload.
     bool doload = !parsing() && m_tokenizer && !m_processingLoadEvent;
     
-    bool wasNotRedirecting = !part() || part()->d->m_scheduledRedirection == noRedirectionScheduled || part()->d->m_scheduledRedirection == historyNavigationScheduled;
+    bool wasLocationChangePending = part() && part()->isScheduledLocationChangePending();
     
-    m_processingLoadEvent = true;
     if (body() && doload) {
+        m_processingLoadEvent = true;
         // We have to clear the tokenizer, in case someone document.write()s from the
         // onLoad event handler, as in Radar 3206524
         delete m_tokenizer;
@@ -1363,16 +1363,16 @@ void DocumentImpl::close()
         if (!ownerElement())
             printf("onload fired at %d\n", elapsedTime());
 #endif
+        m_processingLoadEvent = false;
     }
-    m_processingLoadEvent = false;
     
     // Make sure both the initial layout and reflow happen after the onload
     // fires. This will improve onload scores, and other browsers do it.
     // If they wanna cheat, we can too. -dwh
     
-    bool isRedirectingSoon = view() && view()->part()->d->m_scheduledRedirection != noRedirectionScheduled && view()->part()->d->m_scheduledRedirection != historyNavigationScheduled && view()->part()->d->m_delayRedirect == 0;
+    bool isLocationChangePending = part() && part()->isScheduledLocationChangePending();
     
-    if (doload && wasNotRedirecting && isRedirectingSoon && m_startTime.elapsed() < cLayoutTimerDelay) {
+    if (doload && !wasLocationChangePending && isLocationChangePending && m_startTime.elapsed() < cLayoutTimerDelay) {
        // Just bail out. During the onload we were shifted to another page.
        // i-Bench does this. When this happens don't bother painting or laying out.        
        delete m_tokenizer;
index 11faa0d..3e25c50 100644 (file)
@@ -523,6 +523,9 @@ public:
 
     DOMString domain() const;
     void setDomain( const DOMString &newDomain, bool force = false ); // not part of the DOM
+
+    DOMString policyBaseURL() const { return m_policyBaseURL; }
+    void setPolicyBaseURL(const DOMString &s) { m_policyBaseURL = s; }
     
     // The following implements the rule from HTML 4 for what valid names are.
     // To get this right for all the XML cases, we probably have to improve this or move it
@@ -698,6 +701,8 @@ protected:
     
     QMap<QString, HTMLMapElementImpl *> m_imageMapsByName;
 
+    DOMString m_policyBaseURL;
+
 #if APPLE_CHANGES
 public:
     KWQSignal m_finishedParsing;
index aeb482a..f16d528 100644 (file)
@@ -136,7 +136,7 @@ public:
     virtual void write(const TokenizerString &str, bool);
     virtual void finish();
     virtual void setOnHold(bool onHold);
-    virtual bool isWaitingForScripts();
+    virtual bool isWaitingForScripts() const;
 
 #ifdef KHTML_XSLT
     void setTransformSource(DocumentImpl* doc);
@@ -709,7 +709,7 @@ void XMLTokenizer::notifyFinished(CachedObject *finishedObj)
     }
 }
 
-bool XMLTokenizer::isWaitingForScripts()
+bool XMLTokenizer::isWaitingForScripts() const
 {
     return m_cachedScript != 0;
 }
index b95beec..473f3d7 100644 (file)
@@ -56,7 +56,7 @@ public:
     virtual void write(const TokenizerString &str, bool appendData) = 0;
     virtual void finish() = 0;
     virtual void setOnHold(bool onHold) = 0;
-    virtual bool isWaitingForScripts() = 0;
+    virtual bool isWaitingForScripts() const = 0;
 
     virtual void stopped() {};
     virtual bool processingData() const { return false; }
index 24c0655..106cac9 100644 (file)
@@ -412,7 +412,6 @@ private:
     int _activationEventNumber;
     
     static NSEvent *_currentEvent;
-    static NSResponder *_firstResponderAtMouseDownTime;
 
     KURL _submittedFormURL;
 
index e0a69d7..2bdfd1e 100644 (file)
@@ -160,7 +160,6 @@ using KParts::ReadOnlyPart;
 using KParts::URLArgs;
 
 NSEvent *KWQKHTMLPart::_currentEvent = nil;
-NSResponder *KWQKHTMLPart::_firstResponderAtMouseDownTime = nil;
 
 void KHTMLPart::completed()
 {
@@ -1671,9 +1670,8 @@ QPtrList<KWQKHTMLPart> &KWQKHTMLPart::mutableInstances()
 
 void KWQKHTMLPart::updatePolicyBaseURL()
 {
-    // FIXME: docImpl() returns null for everything other than HTML documents; is this causing problems? -dwh
-    if (parentPart() && parentPart()->docImpl()) {
-        setPolicyBaseURL(parentPart()->docImpl()->policyBaseURL());
+    if (parentPart() && parentPart()->xmlDocImpl()) {
+        setPolicyBaseURL(parentPart()->xmlDocImpl()->policyBaseURL());
     } else {
         setPolicyBaseURL(m_url.url());
     }
@@ -1681,10 +1679,8 @@ void KWQKHTMLPart::updatePolicyBaseURL()
 
 void KWQKHTMLPart::setPolicyBaseURL(const DOMString &s)
 {
-    // FIXME: XML documents will cause this to return null.  docImpl() is
-    // an HTMLdocument only. -dwh
-    if (docImpl())
-        docImpl()->setPolicyBaseURL(s);
+    if (xmlDocImpl())
+        xmlDocImpl()->setPolicyBaseURL(s);
     ConstFrameIt end = d->m_frames.end();
     for (ConstFrameIt it = d->m_frames.begin(); it != end; ++it) {
         ReadOnlyPart *subpart = (*it).m_part;
@@ -1897,11 +1893,11 @@ bool KWQKHTMLPart::keyEvent(NSEvent *event)
         return false;
     }
     NodeImpl *node = doc->focusNode();
-    if (!node && docImpl()) {
-       node = docImpl()->body();
-    }
     if (!node) {
-        return false;
+       node = doc->body();
+        if (!node) {
+            return false;
+        }
     }
     
     if ([event type] == NSKeyDown) {
@@ -2396,8 +2392,8 @@ void KWQKHTMLPart::dragSourceEndedAt(const QPoint &loc, NSDragOperation operatio
 bool KWQKHTMLPart::dispatchCPPEvent(int eventId, KWQClipboard::AccessPolicy policy)
 {
     NodeImpl *target = d->m_selection.start().element();
-    if (!target && docImpl()) {
-        target = docImpl()->body();
+    if (!target && xmlDocImpl()) {
+        target = xmlDocImpl()->body();
     }
     if (!target) {
         return true;
@@ -3707,8 +3703,8 @@ QChar KWQKHTMLPart::backslashAsCurrencySymbol() const
 
 NSColor *KWQKHTMLPart::bodyBackgroundColor() const
 {
-    if (docImpl() && docImpl()->body() && docImpl()->body()->renderer()) {
-        QColor bgColor = docImpl()->body()->renderer()->style()->backgroundColor();
+    if (xmlDocImpl() && xmlDocImpl()->body() && xmlDocImpl()->body()->renderer()) {
+        QColor bgColor = xmlDocImpl()->body()->renderer()->style()->backgroundColor();
         if (bgColor.isValid()) {
             return bgColor.getNSColor();
         }