1. 07 Jul, 2006 1 commit
    • andersca's avatar
      2006-07-08 Anders Carlsson <acarlsson@apple.com> · ee9cb8ce
      andersca authored
              Reviewed by Brady.
      
              http://bugzilla.opendarwin.org/show_bug.cgi?id=9777
              Reproducible crash in Loading/Frames in ToT.
              
              The problem was that the renderpart destructor resets the frame's 
              owner element. For iframes, this should only be done when the element is 
              going to be removed from the document.
              
              * html/HTMLIFrameElement.cpp:
              (WebCore::HTMLIFrameElement::~HTMLIFrameElement):
              (WebCore::HTMLIFrameElement::willRemove):
              (WebCore::HTMLIFrameElement::removedFromDocument):
              (WebCore::HTMLIFrameElement::detach):        
              * html/HTMLIFrameElement.h:
              Remove the frame in willRemove instead.
              
              * rendering/RenderPart.cpp:
              (WebCore::RenderPart::RenderPart):
              (WebCore::RenderPart::~RenderPart):
              * rendering/RenderPart.h:
              Don't call setFrame(0) in the destructor when the element is an iframe element.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee9cb8ce
  2. 05 Jul, 2006 1 commit
    • andersca's avatar
      WebCore: · 3a434621
      andersca authored
      2006-07-05  Anders Carlsson  <acarlsson@apple.com>
      
              Reviewed by Maciej.
      
              http://bugzilla.opendarwin.org/show_bug.cgi?id=3581
              iFrames set to display:none are Missing from frames array
      
              * bridge/mac/FrameMac.h:
              * bridge/mac/FrameMac.mm:
              (WebCore::FrameMac::FrameMac):
              (WebCore::FrameMac::createFrame):
              * bridge/mac/WebCoreFrameBridge.h:
              * bridge/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge initSubframeWithOwnerElement:]):
              (-[WebCoreFrameBridge installInFrame:]):
              Modify to pass the owner element instead of the owner renderer.        
      
              * dom/ContainerNode.cpp:
              (WebCore::ContainerNode::insertBefore):
              (WebCore::ContainerNode::replaceChild):
              (WebCore::ContainerNode::appendChild):
              Dispatch the node inserted events before attaching the nodes. This is what the
              tokenizer does.
              
              * html/HTMLFrameElement.cpp:
              (WebCore::HTMLFrameElement::openURL):
              (WebCore::HTMLFrameElement::attach):
              Pass the element to requestFrame.
              
              (WebCore::HTMLFrameElement::setLocation):
              Don't call attach/detach on an iframe.
      
              * html/HTMLIFrameElement.cpp:
              (WebCore::HTMLIFrameElement::insertedIntoDocument):
              Load the frame here (using openURL).
              
              (WebCore::HTMLIFrameElement::removedFromDocument):
              Call frameDetached.
              
              (WebCore::HTMLIFrameElement::attach):
              If there's a renderer, attach the content frame to it.
              
              (WebCore::HTMLIFrameElement::detach):
              Reset the renderer's frame.
              
              (WebCore::HTMLIFrameElement::openURL):
              Modify to request the frame.
              
              * html/HTMLIFrameElement.h:
              Add detach.
              
              * page/Frame.cpp:
              (WebCore::parentFromOwnerElement):
              (WebCore::Frame::Frame):
              (WebCore::Frame::~Frame):
              (WebCore::Frame::requestFrame):
              (WebCore::Frame::requestObject):
              (WebCore::Frame::loadSubframe):
              (WebCore::Frame::ownerElement):
              (WebCore::Frame::ownerRenderer):
              (WebCore::Frame::disconnectOwnerElement):
              * page/Frame.h:
              * page/FramePrivate.h:
              (WebCore::FramePrivate::FramePrivate):        
              * rendering/RenderPart.cpp:
              (WebCore::RenderPart::setFrame):
              Modify to keep an owner element around instead of the renderer. 
              
              * rendering/RenderPartObject.cpp:
              (WebCore::RenderPartObject::updateWidget):
              Don't do anything for iframes.
      
      WebKit:
      
      2006-07-05  Anders Carlsson  <acarlsson@apple.com>
      
              Reviewed by Maciej.
      
              http://bugzilla.opendarwin.org/show_bug.cgi?id=3581
              iFrames set to display:none are Missing from frames array
              
              * WebCoreSupport/WebFrameBridge.m:
              (-[WebFrameBridge initSubframeWithOwnerElement:frameName:view:]):
              (-[WebFrameBridge createChildFrameNamed:withURL:referrer:ownerElement:allowsScrolling:marginWidth:marginHeight:]):
              Modify to pass the owner element instead of the owner renderer.
              
              * WebView/WebHTMLView.m:
              (-[WebHTMLView _topHTMLView]):
              Remove assertion, it's not valid anymore.
      
      LayoutTests:
      
      2006-07-05  Anders Carlsson  <acarlsson@apple.com>
      
              Reviewed by Maciej.
      
              http://bugzilla.opendarwin.org/show_bug.cgi?id=3581
              iFrames set to display:none are Missing from frames array
      
              * fast/events/mouseover-mouseout2-expected.txt:
              * fast/events/mouseover-mouseout2.html:
              Update expected result. Since we now keep the frame around, the mouseout event is 
              now dispatched to the element in the frame.
      
              * fast/events/onloadFrameCrash-expected.checksum:
              * fast/events/onloadFrameCrash-expected.png:
              * fast/events/onloadFrameCrash-expected.txt:
              This does hide the frame now.
              
              * fast/frames/iframe-display-none-expected.txt: Added.
              * fast/frames/iframe-display-none.html: Added.
              * fast/frames/resources/iframe-display-none-child.html: Added.
              New test that tests JS interaction with frames.
              
              * fast/frames/iframe-double-attach-expected.txt: Added.
              * fast/frames/iframe-double-attach.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3a434621
  3. 12 May, 2006 1 commit
    • eseidel's avatar
      2006-05-12 Eric Seidel <eseidel@apple.com> · 409f4301
      eseidel authored
              Reviewed by mjs.
      
              Split render_frames.* render_replaced.* and html_baseimpl.* into separate files (one class per file).
              http://bugzilla.opendarwin.org/show_bug.cgi?id=8878
      
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/kjs_html.cpp:
              (KJS::JSHTMLDocumentProtoFunc::callAsFunction):
              (KJS::JSHTMLDocument::namedItemGetter):
              (KJS::JSHTMLDocument::getValueProperty):
              (KJS::JSHTMLDocument::getOwnPropertySlot):
              (KJS::JSHTMLDocument::putValueProperty):
              (KJS::JSHTMLElement::formIndexGetter):
              (KJS::JSHTMLElement::formNameGetter):
              (KJS::JSHTMLElement::selectIndexGetter):
              (KJS::JSHTMLElement::framesetNameGetter):
              (KJS::JSHTMLElement::runtimeObjectGetter):
              (KJS::JSHTMLElement::runtimeObjectPropertyGetter):
              (KJS::JSHTMLElement::getOwnPropertySlot):
              (KJS::JSHTMLElement::implementsCall):
              (KJS::JSHTMLElement::callAsFunction):
              (KJS::JSHTMLElement::getValueProperty):
              (KJS::JSHTMLElement::toString):
              (KJS::getForm):
              (KJS::JSHTMLElement::pushEventHandlerScope):
              (KJS::HTMLElementFunction::callAsFunction):
              (KJS::JSHTMLElement::put):
              (KJS::JSHTMLElement::selectSetter):
              (KJS::JSHTMLElement::putValueProperty):
              (KJS::toHTMLElement):
              (KJS::toHTMLTableCaptionElement):
              (KJS::toHTMLTableSectionElement):
              (KJS::JSHTMLCollection::lengthGetter):
              (KJS::JSHTMLCollection::indexGetter):
              (KJS::JSHTMLCollection::nameGetter):
              (KJS::JSHTMLCollection::getOwnPropertySlot):
              (KJS::HTMLCollectionProtoFunc::callAsFunction):
              (KJS::JSHTMLSelectCollection::selectedIndexGetter):
              (KJS::JSHTMLSelectCollection::put):
              (KJS::OptionConstructorImp::construct):
              (KJS::getSelectHTMLCollection):
              * bindings/objc/DOMHTML.mm:
              * bridge/mac/FrameMac.mm:
              (WebCore::FrameMac::createFrame):
              * bridge/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge copyRenderNode:copier:]):
              * dom/Document.cpp:
              (WebCore::widgetForNode):
              * html/HTMLBodyElement.cpp: Added.
              (WebCore::HTMLBodyElement::HTMLBodyElement):
              (WebCore::HTMLBodyElement::parseMappedAttribute):
              * html/HTMLBodyElement.h: Added.
              * html/HTMLDocument.cpp:
              * html/HTMLElementFactory.cpp:
              * html/HTMLEmbedElement.cpp:
              * html/HTMLFrameElement.cpp: Added.
              (WebCore::HTMLFrameElement::isURLAllowed):
              (WebCore::HTMLFrameElement::parseMappedAttribute):
              (WebCore::HTMLFrameElement::setLocation):
              * html/HTMLFrameElement.h: Added.
              * html/HTMLFrameSetElement.cpp: Added.
              (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
              (WebCore::HTMLFrameSetElement::parseMappedAttribute):
              (WebCore::HTMLFrameSetElement::attach):
              (WebCore::HTMLFrameSetElement::defaultEventHandler):
              (WebCore::HTMLFrameSetElement::recalcStyle):
              * html/HTMLFrameSetElement.h: Added.
              * html/HTMLHeadElement.cpp: Added.
              (WebCore::HTMLHeadElement::HTMLHeadElement):
              * html/HTMLHeadElement.h: Added.
              * html/HTMLHtmlElement.cpp: Added.
              (WebCore::HTMLHtmlElement::HTMLHtmlElement):
              * html/HTMLHtmlElement.h: Added.
              * html/HTMLIFrameElement.cpp: Added.
              (WebCore::HTMLIFrameElement::HTMLIFrameElement):
              * html/HTMLIFrameElement.h: Added.
              * html/HTMLObjectElement.cpp:
              * html/HTMLParser.cpp:
              * html/html_baseimpl.cpp: Removed.
              * html/html_baseimpl.h: Removed.
              * kwq/WebCoreAXObject.mm:
              * page/Frame.cpp:
              (WebCore::isFrameElement):
              (WebCore::Frame::applyEditingStyleToBodyElement):
              (WebCore::Frame::removeEditingStyleFromBodyElement):
              (WebCore::Frame::applyEditingStyleToElement):
              (WebCore::Frame::removeEditingStyleFromElement):
              (WebCore::Frame::selectionRect):
              (WebCore::Frame::isFrameSet):
              (WebCore::scanForForm):
              (WebCore::Frame::currentForm):
              (WebCore::Frame::nodeInfoAtPoint):
              (WebCore::Frame::adjustPageHeight):
              (WebCore::Frame::frameForWidget):
              (WebCore::Frame::forceLayoutWithPageWidthRange):
              (WebCore::Frame::passWidgetMouseDownEventToWidget):
              * page/FrameView.cpp:
              * rendering/RenderFrame.cpp: Added.
              (WebCore::RenderFrame::viewCleared):
              * rendering/RenderFrame.h: Added.
              * rendering/RenderFrameSet.cpp: Added.
              (WebCore::RenderFrameSet::RenderFrameSet):
              (WebCore::RenderFrameSet::~RenderFrameSet):
              (WebCore::RenderFrameSet::layout):
              (WebCore::RenderFrameSet::positionFrames):
              (WebCore::RenderFrameSet::userResize):
              (WebCore::RenderFrameSet::canResize):
              (WebCore::RenderFrameSet::dump):
              * rendering/RenderFrameSet.h: Added.
              * rendering/RenderImage.h:
              * rendering/RenderPart.cpp: Added.
              (WebCore::RenderPart::RenderPart):
              * rendering/RenderPart.h: Added.
              * rendering/RenderPartObject.cpp: Added.
              (WebCore::isURLAllowed):
              (WebCore::RenderPartObject::updateWidget):
              (WebCore::RenderPartObject::viewCleared):
              * rendering/RenderPartObject.h: Added.
              * rendering/RenderReplaced.cpp: Added.
              (WebCore::RenderReplaced::selectionColor):
              * rendering/RenderReplaced.h: Added.
              * rendering/RenderWidget.cpp: Added.
              (WebCore::RenderWidget::deleteWidget):
              * rendering/RenderWidget.h: Added.
              * rendering/render_form.h:
              * rendering/render_frames.cpp: Removed.
              * rendering/render_frames.h: Removed.
              * rendering/render_replaced.cpp: Removed.
              * rendering/render_replaced.h: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14334 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      409f4301