[webkit-changes] cvs commit: WebCore/kwq DOM.mm

Maciej mjs at opensource.apple.com
Sat Oct 15 20:36:08 PDT 2005


mjs         05/10/15 20:36:08

  Modified:    .        ChangeLog
               khtml/ecma kjs_dom.cpp kjs_dom.h kjs_events.cpp
               khtml/html html_objectimpl.cpp htmlparser.cpp
               khtml/xml dom_nodeimpl.h
               kwq      DOM.mm
  Log:
  	Backed out the following changes, since they are in a range that
  	provably caused a performance regression:
  
  	<rdar://problem/4302874> Denver Regression: crash repeatedly reloading www.supermanhomepage.com
  	<rdar://problem/4302879> Re-land SVG object element fix
  	<rdar://problem/4302880> Re-land isSameNode change
  	<rdar://problem/4065748> Repro crash at http://www.vanaqua.org using menu system (KHTMLParser::setCurrent(DOM::NodeImpl*))
  
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNodeProtoFunc::callAsFunction):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):
          * khtml/ecma/kjs_events.cpp:
          (KJS::JSAbstractEventListener::handleEvent):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLObjectElementImpl::isImageType):
          * khtml/html/htmlparser.cpp:
          (HTMLStackElem::HTMLStackElem):
          (HTMLParser::popNestedHeaderTag):
          (HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
          (HTMLParser::popOneBlock):
          * khtml/xml/dom_nodeimpl.h:
          * kwq/DOM.mm:
  
  Revision  Changes    Path
  1.244     +26 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.243
  retrieving revision 1.244
  diff -u -r1.243 -r1.244
  --- ChangeLog	14 Oct 2005 20:57:51 -0000	1.243
  +++ ChangeLog	16 Oct 2005 03:36:01 -0000	1.244
  @@ -1,3 +1,29 @@
  +2005-10-15  Maciej Stachowiak  <mjs at apple.com>
  +
  +	Backed out the following changes, since they are in a range that
  +	provably caused a performance regression:
  +
  +	<rdar://problem/4302874> Denver Regression: crash repeatedly reloading www.supermanhomepage.com
  +	<rdar://problem/4302879> Re-land SVG object element fix
  +	<rdar://problem/4302880> Re-land isSameNode change
  +	<rdar://problem/4065748> Repro crash at http://www.vanaqua.org using menu system (KHTMLParser::setCurrent(DOM::NodeImpl*))
  +	
  +        * khtml/ecma/kjs_dom.cpp:
  +        (KJS::DOMNodeProtoFunc::callAsFunction):
  +        * khtml/ecma/kjs_dom.h:
  +        (KJS::DOMNode::):
  +        * khtml/ecma/kjs_events.cpp:
  +        (KJS::JSAbstractEventListener::handleEvent):
  +        * khtml/html/html_objectimpl.cpp:
  +        (DOM::HTMLObjectElementImpl::isImageType):
  +        * khtml/html/htmlparser.cpp:
  +        (HTMLStackElem::HTMLStackElem):
  +        (HTMLParser::popNestedHeaderTag):
  +        (HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
  +        (HTMLParser::popOneBlock):
  +        * khtml/xml/dom_nodeimpl.h:
  +        * kwq/DOM.mm:
  +
   2005-10-14  Geoffrey Garen  <ggaren at apple.com>
   
           Style change suggested by Darin.
  
  
  
  1.102     +2 -6      WebCore/khtml/ecma/kjs_dom.cpp
  
  Index: kjs_dom.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/kjs_dom.cpp,v
  retrieving revision 1.101
  retrieving revision 1.102
  diff -u -r1.101 -r1.102
  --- kjs_dom.cpp	5 Oct 2005 07:26:45 -0000	1.101
  +++ kjs_dom.cpp	16 Oct 2005 03:36:04 -0000	1.102
  @@ -88,7 +88,7 @@
   
   // -------------------------------------------------------------------------
   /* Source for DOMNodeProtoTable. Use "make hashtables" to regenerate.
  - at begin DOMNodeProtoTable 14
  + at begin DOMNodeProtoTable 13
     insertBefore	DOMNode::InsertBefore	DontDelete|Function 2
     replaceChild	DOMNode::ReplaceChild	DontDelete|Function 2
     removeChild	DOMNode::RemoveChild	DontDelete|Function 1
  @@ -99,8 +99,6 @@
   # DOM2
     normalize	DOMNode::Normalize	DontDelete|Function 0
     isSupported   DOMNode::IsSupported	DontDelete|Function 2
  -# DOM3
  -  isSameNode    DOMNode::IsSameNode     DontDelete|Function 1
   # from the EventTarget interface
     addEventListener	DOMNode::AddEventListener	DontDelete|Function 3
     removeEventListener	DOMNode::RemoveEventListener	DontDelete|Function 3
  @@ -192,7 +190,7 @@
   }
   
   /* Source for DOMNodeTable. Use "make hashtables" to regenerate.
  - at begin DOMNodeTable 68
  + at begin DOMNodeTable 67
     nodeName	DOMNode::NodeName	DontDelete|ReadOnly
     nodeValue	DOMNode::NodeValue	DontDelete
     nodeType	DOMNode::NodeType	DontDelete|ReadOnly
  @@ -651,8 +649,6 @@
       case DOMNode::IsSupported:
           return Boolean(node.isSupported(args[0]->toString(exec).domString(),
               args[1]->isUndefinedOrNull() ? DOMString() : args[1]->toString(exec).domString()));
  -    case DOMNode::IsSameNode:
  -        return Boolean(node.isSameNode(toNode(args[0])));
       case DOMNode::AddEventListener: {
           JSEventListener *listener = Window::retrieveActive(exec)->getJSEventListener(args[1]);
           if (listener)
  
  
  
  1.53      +1 -1      WebCore/khtml/ecma/kjs_dom.h
  
  Index: kjs_dom.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/kjs_dom.h,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- kjs_dom.h	5 Oct 2005 07:26:45 -0000	1.52
  +++ kjs_dom.h	16 Oct 2005 03:36:04 -0000	1.53
  @@ -69,7 +69,7 @@
              Attributes, NamespaceURI, Prefix, LocalName, OwnerDocument, InsertBefore,
              ReplaceChild, RemoveChild, AppendChild, HasAttributes, HasChildNodes,
              CloneNode, Normalize, IsSupported, AddEventListener, RemoveEventListener,
  -           DispatchEvent, Contains, IsSameNode,
  +           DispatchEvent, Contains,
              OnAbort, OnBlur, OnChange, OnClick, OnContextMenu, OnDblClick, OnDragDrop, OnError,
              OnDragEnter, OnDragOver, OnDragLeave, OnDrop, OnDragStart, OnDrag, OnDragEnd,
              OnBeforeCut, OnCut, OnBeforeCopy, OnCopy, OnBeforePaste, OnPaste, OnSelectStart,
  
  
  
  1.66      +4 -3      WebCore/khtml/ecma/kjs_events.cpp
  
  Index: kjs_events.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/kjs_events.cpp,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- kjs_events.cpp	5 Oct 2005 07:01:49 -0000	1.65
  +++ kjs_events.cpp	16 Oct 2005 03:36:04 -0000	1.66
  @@ -156,10 +156,11 @@
           if (ret.type() == QVariant::Bool && ret.toBool() == false)
               evt->preventDefault();
         }
  -  
  -      DOM::DocumentImpl::updateDocumentsRendering();
  -      deref();
     }
  +  
  +  DOM::DocumentImpl::updateDocumentsRendering();
  +  
  +  deref();
   }
   
   DOM::DOMString JSAbstractEventListener::eventListenerType()
  
  
  
  1.82      +0 -6      WebCore/khtml/html/html_objectimpl.cpp
  
  Index: html_objectimpl.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/html/html_objectimpl.cpp,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- html_objectimpl.cpp	5 Oct 2005 08:18:26 -0000	1.81
  +++ html_objectimpl.cpp	16 Oct 2005 03:36:05 -0000	1.82
  @@ -839,12 +839,6 @@
                   serviceType = "text/plain"; // Data URLs with no MIME type are considered text/plain.
           }
       }
  -    
  -#if SVG_SUPPORT
  -    // Even if the image system supports it, we don't want to render SVGs as images.
  -    if (serviceType == "image/svg+xml")
  -        return false;
  -#endif
   
       return canRenderImageType(serviceType);
   }
  
  
  
  1.120     +7 -18     WebCore/khtml/html/htmlparser.cpp
  
  Index: htmlparser.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/html/htmlparser.cpp,v
  retrieving revision 1.119
  retrieving revision 1.120
  diff -u -r1.119 -r1.120
  --- htmlparser.cpp	7 Oct 2005 18:38:46 -0000	1.119
  +++ htmlparser.cpp	16 Oct 2005 03:36:06 -0000	1.120
  @@ -84,24 +84,13 @@
           level(_level),
           strayTableContent(false),
           node(_node),
  -        holdingRef(!_node->isDocumentNode()),
           next(_next)
  -    {
  -        if (holdingRef)
  -            _node->ref();
  -    }
  -
  -    ~HTMLStackElem()
  -    {
  -        if (holdingRef)
  -            node->deref();
  -    }
  +        { }
   
       AtomicString tagName;
       int level;
       bool strayTableContent;
  -    NodeImpl *node;
  -    bool holdingRef;
  +    SharedPtr<NodeImpl> node;
       HTMLStackElem* next;
   };
   
  @@ -893,7 +882,7 @@
           }
           if (currNode && !isInline(currNode))
               return;
  -        currNode = curr->node;
  +        currNode = curr->node.get();
       }
   }
   
  @@ -1001,9 +990,9 @@
   
       if (!curr || !maxElem || !isAffectedByResidualStyle(maxElem->tagName)) return;
   
  -    NodeImpl* residualElem = prev->node;
  -    NodeImpl* blockElem = prevMaxElem ? prevMaxElem->node : current;
  -    NodeImpl* parentElem = elem->node;
  +    NodeImpl* residualElem = prev->node.get();
  +    NodeImpl* blockElem = prevMaxElem ? prevMaxElem->node.get() : current;
  +    NodeImpl* parentElem = elem->node.get();
   
       // Check to see if the reparenting that is going to occur is allowed according to the DOM.
       // FIXME: We should either always allow it or perform an additional fixup instead of
  @@ -1285,7 +1274,7 @@
       }
   
       blockStack = Elem->next;
  -    setCurrent(Elem->node);
  +    setCurrent(Elem->node.get());
   
       if (Elem->strayTableContent)
           inStrayTableContent--;
  
  
  
  1.106     +0 -2      WebCore/khtml/xml/dom_nodeimpl.h
  
  Index: dom_nodeimpl.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/xml/dom_nodeimpl.h,v
  retrieving revision 1.105
  retrieving revision 1.106
  diff -u -r1.105 -r1.106
  --- dom_nodeimpl.h	5 Oct 2005 07:26:46 -0000	1.105
  +++ dom_nodeimpl.h	16 Oct 2005 03:36:06 -0000	1.106
  @@ -111,8 +111,6 @@
       void normalize ();
       static bool isSupported(const DOMString &feature, const DOMString &version);
   
  -    bool isSameNode(NodeImpl *other) { return this == other; }
  -    
       NodeImpl *lastDescendant() const;
   
       // Other methods (not part of DOM)
  
  
  
  1.52      +0 -5      WebCore/kwq/DOM.mm
  
  Index: DOM.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/DOM.mm,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- DOM.mm	5 Oct 2005 07:26:47 -0000	1.51
  +++ DOM.mm	16 Oct 2005 03:36:07 -0000	1.52
  @@ -376,11 +376,6 @@
       return [self _nodeImpl]->hasAttributes();
   }
   
  -- (BOOL)isSameNode:(DOMNode *)other
  -{
  -    return [self _nodeImpl]->isSameNode([other _nodeImpl]);
  -}
  -
   - (void)addEventListener:(NSString *)type :(id <DOMEventListener>)listener :(BOOL)useCapture
   {
       EventListener *wrapper = ObjCEventListener::create(listener);
  
  
  



More information about the webkit-changes mailing list