[webkit-changes] cvs commit: WebCore/khtml/xml dom_docimpl.cpp

Timothy thatcher at opensource.apple.com
Thu Nov 10 15:40:55 PST 2005


thatcher    05/11/10 15:40:55

  Modified:    .        Tag: Safari-2-0-branch ChangeLog
               khtml/html Tag: Safari-2-0-branch html_objectimpl.cpp
                        html_objectimpl.h htmlparser.cpp
               khtml/rendering Tag: Safari-2-0-branch render_frames.cpp
               khtml/xml Tag: Safari-2-0-branch dom_docimpl.cpp
  Log:
          Merged fix from TOT to Safari-2-0-branch
  
      2005-11-01  Mitz Pettel  <opendarwin.org at mitzpettel.com>
  
          Reviewed by Dave Hyatt.
          Commited by Tim Hatcher.
  
          Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5256
          Relayout during load causes duplicate plugin part.
  
          This was a problem with <OBJECT>s that contain an <EMBED>, if
          layout happened in the middle of the OBJECT but before the EMBED.
  
          No test case added, requires manual testing.
  
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
          (DOM::HTMLObjectElementImpl::closeRenderer):
          (DOM::HTMLObjectElementImpl::setComplete):
          * khtml/html/html_objectimpl.h:
          (DOM::HTMLObjectElementImpl::isComplete):
          * khtml/html/htmlfactory.cpp:
          (DOM::objectConstructor):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.46  +28 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.1.2.45
  retrieving revision 1.1.2.46
  diff -u -r1.1.2.45 -r1.1.2.46
  --- ChangeLog	10 Nov 2005 23:03:57 -0000	1.1.2.45
  +++ ChangeLog	10 Nov 2005 23:40:49 -0000	1.1.2.46
  @@ -2,6 +2,34 @@
   
           Merged fix from TOT to Safari-2-0-branch
   
  +    2005-11-01  Mitz Pettel  <opendarwin.org at mitzpettel.com>
  +
  +        Reviewed by Dave Hyatt.
  +        Commited by Tim Hatcher.
  +
  +        Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5256
  +        Relayout during load causes duplicate plugin part.
  +
  +        This was a problem with <OBJECT>s that contain an <EMBED>, if 
  +        layout happened in the middle of the OBJECT but before the EMBED.
  +
  +        No test case added, requires manual testing. 
  +
  +        * khtml/html/html_objectimpl.cpp:
  +        (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
  +        (DOM::HTMLObjectElementImpl::closeRenderer):
  +        (DOM::HTMLObjectElementImpl::setComplete):
  +        * khtml/html/html_objectimpl.h:
  +        (DOM::HTMLObjectElementImpl::isComplete):
  +        * khtml/html/htmlfactory.cpp:
  +        (DOM::objectConstructor):
  +        * khtml/rendering/render_frames.cpp:
  +        (RenderPartObject::updateWidget):
  +
  +2005-11-10  Timothy Hatcher  <timothy at apple.com>
  +
  +        Merged fix from TOT to Safari-2-0-branch
  +
       2005-11-09  Dave Hyatt  <hyatt at apple.com>
       
           Fixed <rdar://problem/4237617> selects should be in the tab order
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.60.8.4  +20 -0     WebCore/khtml/html/html_objectimpl.cpp
  
  Index: html_objectimpl.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/html/html_objectimpl.cpp,v
  retrieving revision 1.60.8.3
  retrieving revision 1.60.8.4
  diff -u -r1.60.8.3 -r1.60.8.4
  --- html_objectimpl.cpp	9 Nov 2005 22:37:16 -0000	1.60.8.3
  +++ html_objectimpl.cpp	10 Nov 2005 23:40:52 -0000	1.60.8.4
  @@ -389,6 +389,7 @@
   {
       needWidgetUpdate = false;
       m_useFallbackContent = false;
  +    m_complete = false;
   }
   
   HTMLObjectElementImpl::~HTMLObjectElementImpl()
  @@ -566,6 +567,25 @@
       }
   }
   
  +void HTMLObjectElementImpl::closeRenderer()
  +{
  +    // The parser just reached </object>.
  +    setComplete(true);
  +    
  +    HTMLElementImpl::closeRenderer();
  +}
  +
  +void HTMLObjectElementImpl::setComplete(bool complete)
  +{
  +    if (complete != m_complete) {
  +        m_complete = complete;
  +        if (complete && inDocument() && !m_useFallbackContent) {
  +            needWidgetUpdate = true;
  +            setChanged();
  +        }
  +    }
  +}
  +
   void HTMLObjectElementImpl::detach()
   {
       // Only bother with an unload event if we had a render object.  - dwh
  
  
  
  1.28.8.2  +5 -0      WebCore/khtml/html/html_objectimpl.h
  
  Index: html_objectimpl.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/html/html_objectimpl.h,v
  retrieving revision 1.28.8.1
  retrieving revision 1.28.8.2
  diff -u -r1.28.8.1 -r1.28.8.2
  --- html_objectimpl.h	9 Aug 2005 23:52:13 -0000	1.28.8.1
  +++ html_objectimpl.h	10 Nov 2005 23:40:52 -0000	1.28.8.2
  @@ -130,11 +130,15 @@
       virtual void attach();
       virtual bool rendererIsNeeded(khtml::RenderStyle *);
       virtual khtml::RenderObject *createRenderer(RenderArena *, khtml::RenderStyle *);
  +    virtual void closeRenderer();
       virtual void detach();
       
       virtual void recalcStyle(StyleChange ch);
       virtual void childrenChanged();
   
  +    bool isComplete() const { return m_complete; }
  +    void setComplete(bool complete);
  +
       DocumentImpl* contentDocument() const;
       
       virtual bool isURLAttribute(AttributeImpl *attr) const;
  @@ -158,6 +162,7 @@
   private:
       mutable KJS::Bindings::Instance *objectInstance;
   #endif
  +    bool m_complete;
   };
   
   // -------------------------------------------------------------------------
  
  
  
  1.92.6.5  +7 -0      WebCore/khtml/html/htmlparser.cpp
  
  Index: htmlparser.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/html/htmlparser.cpp,v
  retrieving revision 1.92.6.4
  retrieving revision 1.92.6.5
  diff -u -r1.92.6.4 -r1.92.6.5
  --- htmlparser.cpp	9 Aug 2005 23:52:14 -0000	1.92.6.4
  +++ htmlparser.cpp	10 Nov 2005 23:40:52 -0000	1.92.6.5
  @@ -950,6 +950,13 @@
               scriptElement->setCreatedByParser(true);
               return scriptElement;
           }
  +
  +    case ID_OBJECT:
  +        {
  +            HTMLObjectElementImpl *objectElement = new HTMLObjectElementImpl(document);
  +            objectElement->setComplete(false);
  +            return objectElement;
  +        }
       }
   
       return document->document()->createHTMLElement(t->id);
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.66.8.2  +2 -0      WebCore/khtml/rendering/render_frames.cpp
  
  Index: render_frames.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/rendering/render_frames.cpp,v
  retrieving revision 1.66.8.1
  retrieving revision 1.66.8.2
  diff -u -r1.66.8.1 -r1.66.8.2
  --- render_frames.cpp	9 Aug 2005 23:52:16 -0000	1.66.8.1
  +++ render_frames.cpp	10 Nov 2005 23:40:53 -0000	1.66.8.2
  @@ -678,6 +678,8 @@
   
         HTMLObjectElementImpl *o = static_cast<HTMLObjectElementImpl *>(element());
   
  +      if (!o->isComplete())
  +        return;
         // Check for a child EMBED tag.
         HTMLEmbedElementImpl *embed = 0;
         for (NodeImpl *child = o->firstChild(); child; ) {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.211.6.9 +5 -1      WebCore/khtml/xml/dom_docimpl.cpp
  
  Index: dom_docimpl.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/xml/dom_docimpl.cpp,v
  retrieving revision 1.211.6.8
  retrieving revision 1.211.6.9
  diff -u -r1.211.6.8 -r1.211.6.9
  --- dom_docimpl.cpp	13 Jul 2005 01:02:34 -0000	1.211.6.8
  +++ dom_docimpl.cpp	10 Nov 2005 23:40:54 -0000	1.211.6.9
  @@ -927,7 +927,11 @@
       case ID_EMBED:
           return new HTMLEmbedElementImpl(docPtr());
       case ID_OBJECT:
  -        return new HTMLObjectElementImpl(docPtr());
  +    {
  +        HTMLObjectElementImpl *objectElement = new HTMLObjectElementImpl(docPtr());
  +        objectElement->setComplete(true);
  +        return objectElement;
  +    }
       case ID_PARAM:
           return new HTMLParamElementImpl(docPtr());
       case ID_SCRIPT:
  
  
  



More information about the webkit-changes mailing list